From 222824f438d5540f92d22717ef90fe753df52973 Mon Sep 17 00:00:00 2001 From: freedakgmail Date: Sun, 23 Nov 2025 16:12:05 +0800 Subject: [PATCH] 0.0.5.2 --- .next/dev/logs/next-development.log | 168 + .next/dev/server/app-paths-manifest.json | 1 + .../api/trees/[treeId]/collaborators/route.js | 10 + .../trees/[treeId]/collaborators/route.js.map | 5 + .../route/app-paths-manifest.json | 3 + .../collaborators/route/build-manifest.json | 11 + .../route/server-reference-manifest.json | 4 + .../route_client-reference-manifest.js | 2 + .../[id]/page_client-reference-manifest.js | 2 +- .../server/chunks/4e98a_next_a9e0b3e8._.js | 15634 ++++++++++++++++ .../chunks/4e98a_next_a9e0b3e8._.js.map | 127 + ...d]_collaborators_route_actions_9236bcfc.js | 7 + ...ollaborators_route_actions_9236bcfc.js.map | 6 + .../[root-of-the-server]__586bf482._.js | 344 + .../[root-of-the-server]__586bf482._.js.map | 8 + ...s_go-new_chinese-family-tree_ae245aad._.js | 613 +- ...-new_chinese-family-tree_ae245aad._.js.map | 2 +- .../ssr/[root-of-the-server]__10b90bc2._.js | 295 +- .../[root-of-the-server]__10b90bc2._.js.map | 2 +- .../ssr/[root-of-the-server]__3f095049._.js | 67 +- .../[root-of-the-server]__3f095049._.js.map | 2 +- .../chunks/ssr/a0629__pnpm_9ad89ea1._.js | 9727 ++++++++++ .../chunks/ssr/a0629__pnpm_9ad89ea1._.js.map | 60 + ...s_go-new_chinese-family-tree_5461dd2a._.js | 76 +- ...-new_chinese-family-tree_5461dd2a._.js.map | 2 +- ...tree_app_globals_css_bad6b30c._.single.css | 204 + ..._app_globals_css_bad6b30c._.single.css.map | 2 +- ...ee_app_members_[id]_page_tsx_03538adf._.js | 4 +- ...s_go-new_chinese-family-tree_c77f613d._.js | 625 +- ...-new_chinese-family-tree_c77f613d._.js.map | 2 +- ...s_go-new_chinese-family-tree_fa7c1a71._.js | 295 +- ...-new_chinese-family-tree_fa7c1a71._.js.map | 2 +- .../[root-of-the-server]__6d150df4._.css | 204 + .../[root-of-the-server]__6d150df4._.css.map | 2 +- .../static/chunks/a0629__pnpm_f422604c._.js | 10784 +++++++++++ .../chunks/a0629__pnpm_f422604c._.js.map | 67 + .next/dev/trace | 8 + app/members/[id]/page.tsx | 32 +- app/members/new/page.tsx | 57 +- app/page.tsx | 120 +- 40 files changed, 38962 insertions(+), 624 deletions(-) create mode 100644 .next/dev/server/app/api/trees/[treeId]/collaborators/route.js create mode 100644 .next/dev/server/app/api/trees/[treeId]/collaborators/route.js.map create mode 100644 .next/dev/server/app/api/trees/[treeId]/collaborators/route/app-paths-manifest.json create mode 100644 .next/dev/server/app/api/trees/[treeId]/collaborators/route/build-manifest.json create mode 100644 .next/dev/server/app/api/trees/[treeId]/collaborators/route/server-reference-manifest.json create mode 100644 .next/dev/server/app/api/trees/[treeId]/collaborators/route_client-reference-manifest.js create mode 100644 .next/dev/server/chunks/4e98a_next_a9e0b3e8._.js create mode 100644 .next/dev/server/chunks/4e98a_next_a9e0b3e8._.js.map create mode 100644 .next/dev/server/chunks/54027_server_app_api_trees_[treeId]_collaborators_route_actions_9236bcfc.js create mode 100644 .next/dev/server/chunks/54027_server_app_api_trees_[treeId]_collaborators_route_actions_9236bcfc.js.map create mode 100644 .next/dev/server/chunks/[root-of-the-server]__586bf482._.js create mode 100644 .next/dev/server/chunks/[root-of-the-server]__586bf482._.js.map create mode 100644 .next/dev/server/chunks/ssr/a0629__pnpm_9ad89ea1._.js create mode 100644 .next/dev/server/chunks/ssr/a0629__pnpm_9ad89ea1._.js.map create mode 100644 .next/dev/static/chunks/a0629__pnpm_f422604c._.js create mode 100644 .next/dev/static/chunks/a0629__pnpm_f422604c._.js.map diff --git a/.next/dev/logs/next-development.log b/.next/dev/logs/next-development.log index a3c998ad..3b6ae046 100644 --- a/.next/dev/logs/next-development.log +++ b/.next/dev/logs/next-development.log @@ -3891,3 +3891,171 @@ It can also happen if the client has a browser extension installed which messes [04:31:58.461] Browser LOG 迁徙数据: {"lines":[{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[121.48,31.22]],"fromName":"济南","toName":"上海"},{"coords":[[117.12,36.65],[114.07,22.62]],"fromName":"济南","toName":"深圳"},{"coords":[[117.12,36.65],[120.19,30.26]],"fromName":"济南","toName":"杭州"},{"coords":[[117.12,36.65],[104.06,30.67]],"fromName":"济南","toName":"成都"},{"coords":[[117.12,36.65],[120.62,31.32]],"fromName":"济南","toName":"苏州"},{"coords":[[117.12,36.65],[108.95,34.27]],"fromName":"济南","toName":"西安"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"}],"migrations":[{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmib8zhse000jhhxlt3ppgfn2","cmib8zhsj000nhhxlg7s8axjz"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.023Z","deathDate":"1985-06-15","email":null,"fatherId":"cmib8zhrs0005hhxlk83tffvl","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmib8zhrz0009hhxlgs0r588g","isLunarDate":false,"motherId":"cmib8zhrv0007hhxl3q1knmo9","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhs1000bhhxlovwol0op"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员","退伍军人"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T05:04:04.978Z"},"from":"山东省济南市历城区","person":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmib8zhsx000xhhxlpbjrwykn","cmib8zht10011hhxla6g9be98"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.039Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmib8zhrz0009hhxlgs0r588g","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmib8zhse000jhhxlt3ppgfn2","isLunarDate":false,"motherId":"cmib8zhs1000bhhxlovwol0op","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhsg000lhhxlqxteubiw"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T07:40:46.245Z"},"to":"山东省济南市历下区","year":1945},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmib8zhse000jhhxlt3ppgfn2","cmib8zhsj000nhhxlg7s8axjz"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.023Z","deathDate":"1985-06-15","email":null,"fatherId":"cmib8zhrs0005hhxlk83tffvl","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmib8zhrz0009hhxlgs0r588g","isLunarDate":false,"motherId":"cmib8zhrv0007hhxl3q1knmo9","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhs1000bhhxlovwol0op"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员","退伍军人"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T05:04:04.978Z"},"from":"山东省济南市历城区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmib8zht20013hhxl039l48mr"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.043Z","deathDate":null,"email":null,"fatherId":"cmib8zhrz0009hhxlgs0r588g","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmib8zhsj000nhhxlg7s8axjz","isLunarDate":false,"motherId":"cmib8zhs1000bhhxlovwol0op","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.072Z"},"to":"山东省济南市历下区","year":1950},{"father":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmib8zhsx000xhhxlpbjrwykn","cmib8zht10011hhxla6g9be98"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.039Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmib8zhrz0009hhxlgs0r588g","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmib8zhse000jhhxlt3ppgfn2","isLunarDate":false,"motherId":"cmib8zhs1000bhhxlovwol0op","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhsg000lhhxlqxteubiw"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T07:40:46.245Z"},"from":"山东省济南市历下区","person":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmib8zhtl001hhhxl289f3j07"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.061Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmib8zhse000jhhxlt3ppgfn2","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmib8zht10011hhxla6g9be98","isLunarDate":false,"motherId":"cmib8zhsg000lhhxlqxteubiw","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.088Z"},"to":"上海市浦东新区","year":1978},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmib8zht20013hhxl039l48mr"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.043Z","deathDate":null,"email":null,"fatherId":"cmib8zhrz0009hhxlgs0r588g","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmib8zhsj000nhhxlg7s8axjz","isLunarDate":false,"motherId":"cmib8zhs1000bhhxlovwol0op","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.072Z"},"from":"山东省济南市历下区","person":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmib8zhtm001jhhxlxi4lvq62"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.063Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmib8zhsj000nhhxlg7s8axjz","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmib8zht20013hhxl039l48mr","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.089Z"},"to":"广东省深圳市","year":1980},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmib8zht40015hhxlblc0udh0","cmib8zht50017hhxldt6nnba6"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.044Z","deathDate":null,"email":null,"fatherId":"cmib8zhs5000dhhxlo39he5la","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmib8zhsk000phhxl0b7ow8vz","isLunarDate":false,"motherId":"cmib8zhs6000fhhxl8h0rd5as","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhsm000rhhxlwm3mv5ci"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.073Z"},"from":"山东省济南市历城区","person":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmib8zhto001lhhxlkizg2ig6"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.064Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmib8zhsk000phhxl0b7ow8vz","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmib8zht40015hhxlblc0udh0","isLunarDate":false,"motherId":"cmib8zhsm000rhhxlwm3mv5ci","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.091Z"},"to":"浙江省杭州市","year":1982},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmib8zht40015hhxlblc0udh0","cmib8zht50017hhxldt6nnba6"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.044Z","deathDate":null,"email":null,"fatherId":"cmib8zhs5000dhhxlo39he5la","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmib8zhsk000phhxl0b7ow8vz","isLunarDate":false,"motherId":"cmib8zhs6000fhhxl8h0rd5as","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhsm000rhhxlwm3mv5ci"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.073Z"},"from":"山东省济南市历城区","person":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.066Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmib8zhsk000phhxl0b7ow8vz","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmib8zht50017hhxldt6nnba6","isLunarDate":false,"motherId":"cmib8zhsm000rhhxlwm3mv5ci","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.066Z"},"to":"四川省成都市","year":1984},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmib8zht70019hhxlg7l25qh6"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.049Z","deathDate":null,"email":null,"fatherId":"cmib8zhs5000dhhxlo39he5la","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmib8zhso000thhxl6jztirc0","isLunarDate":false,"motherId":"cmib8zhs6000fhhxl8h0rd5as","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmibe02rs000r13eiug7grp9w"],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T07:18:58.316Z"},"from":"山东省济南市历城区","person":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.067Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmib8zhso000thhxl6jztirc0","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmib8zht70019hhxlg7l25qh6","isLunarDate":false,"motherId":"cmibe02rs000r13eiug7grp9w","phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T07:41:20.485Z"},"to":"江苏省苏州市","year":1986},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmib8zht8001bhhxlzoa6z9y2"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.050Z","deathDate":null,"email":null,"fatherId":"cmib8zhs5000dhhxlo39he5la","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmib8zhsq000vhhxl2whod7u2","isLunarDate":false,"motherId":"cmib8zhs6000fhhxl8h0rd5as","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmibdvdad000n13ei0juo7xxm"],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T07:40:46.248Z"},"from":"山东省济南市历城区","person":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.068Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmib8zhsq000vhhxl2whod7u2","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmib8zht8001bhhxlzoa6z9y2","isLunarDate":false,"motherId":"cmibdvdad000n13ei0juo7xxm","phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T07:40:46.240Z"},"to":"陕西省西安市","year":1988},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmib8zhti001dhhxlzhzwnmmv","cmib8zhtj001fhhxlq9zssb2u"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.057Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmib8zhse000jhhxlt3ppgfn2","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmib8zhsx000xhhxlpbjrwykn","isLunarDate":false,"motherId":"cmib8zhsg000lhhxlqxteubiw","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhsy000zhhxlj2wvxjok"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.085Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.078Z","deathDate":null,"email":null,"fatherId":"cmib8zhsx000xhhxlpbjrwykn","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmib8zhti001dhhxlzhzwnmmv","isLunarDate":false,"motherId":"cmib8zhsy000zhhxlj2wvxjok","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.078Z"},"to":"山东省济南市高新区","year":2005},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmib8zhti001dhhxlzhzwnmmv","cmib8zhtj001fhhxlq9zssb2u"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.057Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmib8zhse000jhhxlt3ppgfn2","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmib8zhsx000xhhxlpbjrwykn","isLunarDate":false,"motherId":"cmib8zhsg000lhhxlqxteubiw","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhsy000zhhxlj2wvxjok"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.085Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.079Z","deathDate":null,"email":null,"fatherId":"cmib8zhsx000xhhxlpbjrwykn","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmib8zhtj001fhhxlq9zssb2u","isLunarDate":false,"motherId":"cmib8zhsy000zhhxlj2wvxjok","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.079Z"},"to":"山东省济南市高新区","year":2008}]} [04:31:58.461] Browser LOG 迁徙数据: {"lines":[{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[121.48,31.22]],"fromName":"济南","toName":"上海"},{"coords":[[117.12,36.65],[114.07,22.62]],"fromName":"济南","toName":"深圳"},{"coords":[[117.12,36.65],[120.19,30.26]],"fromName":"济南","toName":"杭州"},{"coords":[[117.12,36.65],[104.06,30.67]],"fromName":"济南","toName":"成都"},{"coords":[[117.12,36.65],[120.62,31.32]],"fromName":"济南","toName":"苏州"},{"coords":[[117.12,36.65],[108.95,34.27]],"fromName":"济南","toName":"西安"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"},{"coords":[[117.12,36.65],[117.12,36.65]],"fromName":"济南","toName":"济南"}],"migrations":[{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmib8zhse000jhhxlt3ppgfn2","cmib8zhsj000nhhxlg7s8axjz"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.023Z","deathDate":"1985-06-15","email":null,"fatherId":"cmib8zhrs0005hhxlk83tffvl","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmib8zhrz0009hhxlgs0r588g","isLunarDate":false,"motherId":"cmib8zhrv0007hhxl3q1knmo9","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhs1000bhhxlovwol0op"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员","退伍军人"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T05:04:04.978Z"},"from":"山东省济南市历城区","person":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmib8zhsx000xhhxlpbjrwykn","cmib8zht10011hhxla6g9be98"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.039Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmib8zhrz0009hhxlgs0r588g","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmib8zhse000jhhxlt3ppgfn2","isLunarDate":false,"motherId":"cmib8zhs1000bhhxlovwol0op","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhsg000lhhxlqxteubiw"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T07:40:46.245Z"},"to":"山东省济南市历下区","year":1945},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"参加过抗日战争,新中国成立后在政府部门工作。","birthDate":"1910-01-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmib8zhse000jhhxlt3ppgfn2","cmib8zhsj000nhhxlg7s8axjz"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.023Z","deathDate":"1985-06-15","email":null,"fatherId":"cmib8zhrs0005hhxlk83tffvl","fullName":"王建国","gender":"MALE","generation":2,"generationName":"建","givenName":"建国","id":"cmib8zhrz0009hhxlgs0r588g","isLunarDate":false,"motherId":"cmib8zhrv0007hhxl3q1knmo9","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhs1000bhhxlovwol0op"],"spouseMotherName":null,"surname":"王","tags":["抗战老兵","公务员","退伍军人"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T05:04:04.978Z"},"from":"山东省济南市历城区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmib8zht20013hhxl039l48mr"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.043Z","deathDate":null,"email":null,"fatherId":"cmib8zhrz0009hhxlgs0r588g","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmib8zhsj000nhhxlg7s8axjz","isLunarDate":false,"motherId":"cmib8zhs1000bhhxlovwol0op","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.072Z"},"to":"山东省济南市历下区","year":1950},{"father":{"address":"山东省济南市历下区解放路123号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,从事机械制造行业。","birthDate":"1945-04-18","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmib8zhsx000xhhxlpbjrwykn","cmib8zht10011hhxla6g9be98"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.039Z","deathDate":null,"email":"wangming@example.com","fatherId":"cmib8zhrz0009hhxlgs0r588g","fullName":"王明","gender":"MALE","generation":3,"generationName":"明","givenName":"明","id":"cmib8zhse000jhhxlt3ppgfn2","isLunarDate":false,"motherId":"cmib8zhs1000bhhxlovwol0op","phone":"13800138001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhsg000lhhxlqxteubiw"],"spouseMotherName":null,"surname":"王","tags":["工程师","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T07:40:46.245Z"},"from":"山东省济南市历下区","person":{"address":"上海市浦东新区陆家嘴环路1000号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"金融分析师,在投资银行工作。","birthDate":"1978-03-22","birthPlace":"上海市浦东新区","burialPlace":null,"childrenIds":["cmib8zhtl001hhhxl289f3j07"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.061Z","deathDate":null,"email":"wanglei@example.com","fatherId":"cmib8zhse000jhhxlt3ppgfn2","fullName":"王磊","gender":"MALE","generation":4,"generationName":"浩","givenName":"磊","id":"cmib8zht10011hhxla6g9be98","isLunarDate":false,"motherId":"cmib8zhsg000lhhxlqxteubiw","phone":"13900139003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["金融","在世","上海"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.088Z"},"to":"上海市浦东新区","year":1978},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在中学任教。","birthDate":"1950-09-12","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmib8zht20013hhxl039l48mr"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.043Z","deathDate":null,"email":null,"fatherId":"cmib8zhrz0009hhxlgs0r588g","fullName":"王亮","gender":"MALE","generation":3,"generationName":"明","givenName":"亮","id":"cmib8zhsj000nhhxlg7s8axjz","isLunarDate":false,"motherId":"cmib8zhs1000bhhxlovwol0op","phone":"13800138003","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.072Z"},"from":"山东省济南市历下区","person":{"address":"广东省深圳市南山区科技园","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"创业者,经营科技公司。","birthDate":"1980-11-08","birthPlace":"广东省深圳市","burialPlace":null,"childrenIds":["cmib8zhtm001jhhxlxi4lvq62"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.063Z","deathDate":null,"email":"wangchao@example.com","fatherId":"cmib8zhsj000nhhxlg7s8axjz","fullName":"王超","gender":"MALE","generation":4,"generationName":"浩","givenName":"超","id":"cmib8zht20013hhxl039l48mr","isLunarDate":false,"motherId":null,"phone":"13900139004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["创业者","在世","深圳"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.089Z"},"to":"广东省深圳市","year":1980},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmib8zht40015hhxlblc0udh0","cmib8zht50017hhxldt6nnba6"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.044Z","deathDate":null,"email":null,"fatherId":"cmib8zhs5000dhhxlo39he5la","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmib8zhsk000phhxl0b7ow8vz","isLunarDate":false,"motherId":"cmib8zhs6000fhhxl8h0rd5as","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhsm000rhhxlwm3mv5ci"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.073Z"},"from":"山东省济南市历城区","person":{"address":"浙江省杭州市西湖区文三路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,在浙江大学附属医院工作。","birthDate":"1982-05-15","birthPlace":"浙江省杭州市","burialPlace":null,"childrenIds":["cmib8zhto001lhhxlkizg2ig6"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.064Z","deathDate":null,"email":"wangpeng@example.com","fatherId":"cmib8zhsk000phhxl0b7ow8vz","fullName":"王鹏","gender":"MALE","generation":4,"generationName":"浩","givenName":"鹏","id":"cmib8zht40015hhxlblc0udh0","isLunarDate":false,"motherId":"cmib8zhsm000rhhxlwm3mv5ci","phone":"13900139005","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["医生","在世","杭州"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.091Z"},"to":"浙江省杭州市","year":1982},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"医生,继承父业。","birthDate":"1952-02-28","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmib8zht40015hhxlblc0udh0","cmib8zht50017hhxldt6nnba6"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.044Z","deathDate":null,"email":null,"fatherId":"cmib8zhs5000dhhxlo39he5la","fullName":"王强","gender":"MALE","generation":3,"generationName":"明","givenName":"强","id":"cmib8zhsk000phhxl0b7ow8vz","isLunarDate":false,"motherId":"cmib8zhs6000fhhxl8h0rd5as","phone":"13800138004","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhsm000rhhxlwm3mv5ci"],"spouseMotherName":null,"surname":"王","tags":["医生","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.073Z"},"from":"山东省济南市历城区","person":{"address":"四川省成都市武侯区天府大道","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"教师,在大学任教。","birthDate":"1984-08-20","birthPlace":"四川省成都市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.066Z","deathDate":null,"email":"wangting@example.com","fatherId":"cmib8zhsk000phhxl0b7ow8vz","fullName":"王婷","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"婷","id":"cmib8zht50017hhxldt6nnba6","isLunarDate":false,"motherId":"cmib8zhsm000rhhxlwm3mv5ci","phone":"13900139006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["教师","在世","成都"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.066Z"},"to":"四川省成都市","year":1984},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1954-07-20","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmib8zht70019hhxlg7l25qh6"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.049Z","deathDate":null,"email":null,"fatherId":"cmib8zhs5000dhhxlo39he5la","fullName":"王丽","gender":"FEMALE","generation":3,"generationName":"明","givenName":"丽","id":"cmib8zhso000thhxl6jztirc0","isLunarDate":false,"motherId":"cmib8zhs6000fhhxl8h0rd5as","phone":"13800138006","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmibe02rs000r13eiug7grp9w"],"spouseMotherName":null,"surname":"王","tags":["护士","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T07:18:58.316Z"},"from":"山东省济南市历城区","person":{"address":"江苏省苏州市工业园区","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"护士,在医院工作。","birthDate":"1986-02-14","birthPlace":"江苏省苏州市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.067Z","deathDate":null,"email":"wangna@example.com","fatherId":"cmib8zhso000thhxl6jztirc0","fullName":"王娜","gender":"FEMALE","generation":4,"generationName":"浩","givenName":"娜","id":"cmib8zht70019hhxlg7l25qh6","isLunarDate":false,"motherId":"cmibe02rs000r13eiug7grp9w","phone":"13900139007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["护士","在世","苏州"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T07:41:20.485Z"},"to":"江苏省苏州市","year":1986},{"father":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"军人,服役20年后转业。","birthDate":"1956-12-08","birthPlace":"山东省济南市历城区","burialPlace":null,"childrenIds":["cmib8zht8001bhhxlzoa6z9y2"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.050Z","deathDate":null,"email":null,"fatherId":"cmib8zhs5000dhhxlo39he5la","fullName":"王军","gender":"MALE","generation":3,"generationName":"明","givenName":"军","id":"cmib8zhsq000vhhxl2whod7u2","isLunarDate":false,"motherId":"cmib8zhs6000fhhxl8h0rd5as","phone":"13800138007","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmibdvdad000n13ei0juo7xxm"],"spouseMotherName":null,"surname":"王","tags":["军人","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T07:40:46.248Z"},"from":"山东省济南市历城区","person":{"address":"陕西省西安市雁塔区高新路","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"工程师,在航天企业工作。","birthDate":"1988-07-30","birthPlace":"陕西省西安市","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.068Z","deathDate":null,"email":"wangtao@example.com","fatherId":"cmib8zhsq000vhhxl2whod7u2","fullName":"王涛","gender":"MALE","generation":4,"generationName":"浩","givenName":"涛","id":"cmib8zht8001bhhxlzoa6z9y2","isLunarDate":false,"motherId":"cmibdvdad000n13ei0juo7xxm","phone":"13900139008","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["工程师","在世","西安"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T07:40:46.240Z"},"to":"陕西省西安市","year":1988},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmib8zhti001dhhxlzhzwnmmv","cmib8zhtj001fhhxlq9zssb2u"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.057Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmib8zhse000jhhxlt3ppgfn2","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmib8zhsx000xhhxlpbjrwykn","isLunarDate":false,"motherId":"cmib8zhsg000lhhxlqxteubiw","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhsy000zhhxlj2wvxjok"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.085Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读大学生,就读于计算机科学专业。","birthDate":"2005-03-20","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.078Z","deathDate":null,"email":null,"fatherId":"cmib8zhsx000xhhxlpbjrwykn","fullName":"王子轩","gender":"MALE","generation":5,"generationName":"子","givenName":"子轩","id":"cmib8zhti001dhhxlzhzwnmmv","isLunarDate":false,"motherId":"cmib8zhsy000zhhxlj2wvxjok","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.078Z"},"to":"山东省济南市高新区","year":2005},{"father":{"address":"山东省济南市高新区科技路456号","ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"软件工程师,在互联网公司工作。","birthDate":"1975-06-10","birthPlace":"山东省济南市历下区","burialPlace":null,"childrenIds":["cmib8zhti001dhhxlzhzwnmmv","cmib8zhtj001fhhxlq9zssb2u"],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.057Z","deathDate":null,"email":"wanghao@example.com","fatherId":"cmib8zhse000jhhxlt3ppgfn2","fullName":"王浩","gender":"MALE","generation":4,"generationName":"浩","givenName":"浩","id":"cmib8zhsx000xhhxlpbjrwykn","isLunarDate":false,"motherId":"cmib8zhsg000lhhxlqxteubiw","phone":"13900139001","photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":["cmib8zhsy000zhhxlj2wvxjok"],"spouseMotherName":null,"surname":"王","tags":["程序员","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.085Z"},"from":"山东省济南市历下区","person":{"address":null,"ancestralHome":"山东省济南市","artName":null,"avatarImageId":null,"avatarUrl":null,"bio":"在读高中生。","birthDate":"2008-07-15","birthPlace":"山东省济南市高新区","burialPlace":null,"childrenIds":[],"courtesyName":null,"createdAt":"2025-11-23T04:58:33.079Z","deathDate":null,"email":null,"fatherId":"cmib8zhsx000xhhxlpbjrwykn","fullName":"王梓涵","gender":"FEMALE","generation":5,"generationName":"子","givenName":"梓涵","id":"cmib8zhtj001fhhxlq9zssb2u","isLunarDate":false,"motherId":"cmib8zhsy000zhhxlj2wvxjok","phone":null,"photoIds":[],"posthumousName":null,"rank":null,"spouseFatherName":null,"spouseIds":[],"spouseMotherName":null,"surname":"王","tags":["学生","在世"],"telephone":null,"treeId":"cmib8zhrq0003hhxlvnsi96nh","updatedAt":"2025-11-23T04:58:33.079Z"},"to":"山东省济南市高新区","year":2008}]} [04:32:01.402] Browser WARN {} +[04:36:17.456] Server LOG ✓ Compiled in 112ms +[04:36:34.667] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:36:36.006] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:36:36.069] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:36:36.123] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763884838461} +[04:36:49.431] Server LOG ✓ Compiled in 107ms +[04:37:39.475] Server LOG ✓ Compiled in 64ms +[04:37:53.993] Server LOG ✓ Compiled in 80ms +[04:38:05.611] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:06.349] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:06.375] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:06.394] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:06.503] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:38:06.558] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763884928822} +[04:38:08.529] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:08.560] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:08.624] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763884931002} +[04:38:24.152] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:25.757] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:25.790] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:38:25.841] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/new color: rgb(120, 120, 120) color: inherit {"dp":"/members/new","o":"http://localhost:3000/members/new","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763884948244} +[04:38:26.061] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:26.076] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:37.391] Server LOG ✓ Compiled in 59ms +[04:38:44.520] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:44.556] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:44.595] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763884966990} +[04:38:48.181] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:48.200] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:48.296] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763884970681} +[04:38:50.864] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:50.896] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:38:50.949] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/cmib8zhs6000fhhxl8h0rd5as color: rgb(120, 120, 120) color: inherit {"dp":"/members/[id]","o":"http://localhost:3000/members/cmib8zhs6000fhhxl8h0rd5as","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763884973357} +[04:38:51.163] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:51.181] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:54.842] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:54.858] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:54.873] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:38:54.985] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:38:55.053] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/new?motherId=cmib8zhs6000fhhxl8h0rd5as&generation=3 color: rgb(120, 120, 120) color: inherit {"dp":"/members/new","o":"http://localhost:3000/members/new?motherId=cmib8zhs6000fhhxl8h0rd5as&generation=3","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763884977339} +[04:39:01.863] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:01.882] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:01.900] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:01.920] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:39:01.962] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/cmib8zhs6000fhhxl8h0rd5as color: rgb(120, 120, 120) color: inherit {"dp":"/members/[id]","o":"http://localhost:3000/members/cmib8zhs6000fhhxl8h0rd5as","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763884984357} +[04:39:34.840] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:35.390] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:35.403] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:35.416] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:35.490] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:39:35.575] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/new?motherId=cmib8zhs6000fhhxl8h0rd5as&generation=3 color: rgb(120, 120, 120) color: inherit {"dp":"/members/new","o":"http://localhost:3000/members/new?motherId=cmib8zhs6000fhhxl8h0rd5as&generation=3","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885017885} +[04:39:39.807] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:39.824] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:39.840] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:39.866] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:39:39.909] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/cmib8zhs6000fhhxl8h0rd5as color: rgb(120, 120, 120) color: inherit {"dp":"/members/[id]","o":"http://localhost:3000/members/cmib8zhs6000fhhxl8h0rd5as","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885022302} +[04:39:44.684] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:44.696] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:44.711] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:44.772] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:39:44.861] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/new?motherId=cmib8zhs6000fhhxl8h0rd5as&generation=3 color: rgb(120, 120, 120) color: inherit {"dp":"/members/new","o":"http://localhost:3000/members/new?motherId=cmib8zhs6000fhhxl8h0rd5as&generation=3","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885027177} +[04:39:46.364] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:46.384] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:46.402] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:39:46.422] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:39:46.468] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/cmib8zhs6000fhhxl8h0rd5as color: rgb(120, 120, 120) color: inherit {"dp":"/members/[id]","o":"http://localhost:3000/members/cmib8zhs6000fhhxl8h0rd5as","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885028861} +[04:40:20.893] Server LOG ✓ Compiled in 71ms +[04:40:22.523] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:40:25.090] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:40:25.120] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:40:25.191] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885067561} +[04:40:41.664] Server LOG ✓ Compiled in 66ms +[04:41:00.725] Server LOG ✓ Compiled in 60ms +[04:41:02.770] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:02.788] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:02.875] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885105259} +[04:41:04.585] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:04.604] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:04.680] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/tree?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/tree","o":"http://localhost:3000/tree?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885107078} +[04:41:05.460] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:05.477] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:05.563] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885107952} +[04:41:06.509] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:06.526] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:06.553] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:06.568] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:41:06.608] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/cmibe8n5a000v13eibqryw8ey color: rgb(120, 120, 120) color: inherit {"dp":"/members/[id]","o":"http://localhost:3000/members/cmibe8n5a000v13eibqryw8ey","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885108999} +[04:41:08.250] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:08.262] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:08.273] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:08.330] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:41:08.408] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/new?spouseId=cmibe8n5a000v13eibqryw8ey&generation=1&gender=MALE color: rgb(120, 120, 120) color: inherit {"dp":"/members/new","o":"http://localhost:3000/members/new?spouseId=cmibe8n5a000v13eibqryw8ey&generation=1&gender=MALE","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885110741} +[04:41:12.649] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:12.666] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:12.689] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:12.701] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:41:12.740] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/cmibe8n5a000v13eibqryw8ey color: rgb(120, 120, 120) color: inherit {"dp":"/members/[id]","o":"http://localhost:3000/members/cmibe8n5a000v13eibqryw8ey","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885115130} +[04:41:21.639] Server LOG ✓ Compiled in 62ms +[04:41:24.300] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:24.332] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:24.343] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:24.388] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:41:24.472] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/new?spouseId=cmibe8n5a000v13eibqryw8ey&generation=1&gender=MALE color: rgb(120, 120, 120) color: inherit {"dp":"/members/new","o":"http://localhost:3000/members/new?spouseId=cmibe8n5a000v13eibqryw8ey&generation=1&gender=MALE","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885126788} +[04:41:32.073] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:32.091] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:32.134] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:32.188] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/cmibe8n5a000v13eibqryw8ey color: rgb(120, 120, 120) color: inherit {"dp":"/members/[id]","o":"http://localhost:3000/members/cmibe8n5a000v13eibqryw8ey","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885134565} +[04:41:32.203] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:41:34.744] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:34.757] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:34.770] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:34.816] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:41:34.891] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/new?spouseId=cmibe8n5a000v13eibqryw8ey&generation=1&gender=MALE color: rgb(120, 120, 120) color: inherit {"dp":"/members/new","o":"http://localhost:3000/members/new?spouseId=cmibe8n5a000v13eibqryw8ey&generation=1&gender=MALE","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885137201} +[04:41:40.400] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:40.418] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:40.443] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:40.456] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:41:40.501] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/cmibe8n5a000v13eibqryw8ey color: rgb(120, 120, 120) color: inherit {"dp":"/members/[id]","o":"http://localhost:3000/members/cmibe8n5a000v13eibqryw8ey","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885142888} +[04:41:43.444] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:43.459] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:43.539] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885145933} +[04:41:45.437] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:45.453] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:45.485] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:45.499] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:41:45.539] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/cmib8zhs5000dhhxlo39he5la color: rgb(120, 120, 120) color: inherit {"dp":"/members/[id]","o":"http://localhost:3000/members/cmib8zhs5000dhhxlo39he5la","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885147928} +[04:41:46.836] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:46.851] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:46.862] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:46.940] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:41:47.019] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/new?spouseId=cmib8zhs5000dhhxlo39he5la&generation=2&gender=FEMALE color: rgb(120, 120, 120) color: inherit {"dp":"/members/new","o":"http://localhost:3000/members/new?spouseId=cmib8zhs5000dhhxlo39he5la&generation=2&gender=FEMALE","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885149327} +[04:41:53.756] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:53.772] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:53.789] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:41:53.838] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:41:53.867] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/cmib8zhs5000dhhxlo39he5la color: rgb(120, 120, 120) color: inherit {"dp":"/members/[id]","o":"http://localhost:3000/members/cmib8zhs5000dhhxlo39he5la","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885156246} +[04:42:01.680] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:42:01.715] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:42:01.773] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885164156} +[04:43:03.660] Server LOG ✓ Compiled in 63ms +[04:44:13.483] Server LOG ✓ Compiled in 210ms +[04:44:54.465] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:44:56.550] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[04:44:56.826] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[04:44:56.826] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[04:44:56.826] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885339129} +[04:44:57.207] Server LOG 🌳 GET /api/trees/[treeId] 返回数据: {} +[04:44:57.569] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:44:58.182] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:44:58.209] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:45:15.645] Server LOG ✓ Compiled in 192ms +[04:46:10.377] Server LOG ✓ Compiled in 191ms +[04:46:28.596] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:46:30.571] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/tree?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/tree","o":"http://localhost:3000/tree?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885432330} +[04:46:30.664] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:46:30.700] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:46:35.636] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:46:35.640] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885437969} +[04:46:35.666] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:46:59.887] Server LOG ✓ Compiled in 180ms +[04:47:36.717] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[04:47:36.928] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[04:47:36.928] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[04:47:36.928] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885499262} +[04:47:36.948] Server LOG 🌳 GET /api/trees/[treeId] 返回数据: {} +[04:47:36.999] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:47:37.119] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:47:37.156] Server LOG 🌳 GET /api/trees 返回数据: {} diff --git a/.next/dev/server/app-paths-manifest.json b/.next/dev/server/app-paths-manifest.json index 928309f8..6649c691 100644 --- a/.next/dev/server/app-paths-manifest.json +++ b/.next/dev/server/app-paths-manifest.json @@ -2,6 +2,7 @@ "/_not-found/page": "app/_not-found/page.js", "/api/auth/[...nextauth]/route": "app/api/auth/[...nextauth]/route.js", "/api/trees/[treeId]/activity-logs/route": "app/api/trees/[treeId]/activity-logs/route.js", + "/api/trees/[treeId]/collaborators/route": "app/api/trees/[treeId]/collaborators/route.js", "/api/trees/[treeId]/members/[memberId]/route": "app/api/trees/[treeId]/members/[memberId]/route.js", "/api/trees/[treeId]/members/route": "app/api/trees/[treeId]/members/route.js", "/api/trees/[treeId]/route": "app/api/trees/[treeId]/route.js", diff --git a/.next/dev/server/app/api/trees/[treeId]/collaborators/route.js b/.next/dev/server/app/api/trees/[treeId]/collaborators/route.js new file mode 100644 index 00000000..f240d310 --- /dev/null +++ b/.next/dev/server/app/api/trees/[treeId]/collaborators/route.js @@ -0,0 +1,10 @@ +var R=require("../../../../../chunks/[turbopack]_runtime.js")("server/app/api/trees/[treeId]/collaborators/route.js") +R.c("server/chunks/4e98a_next_a9e0b3e8._.js") +R.c("server/chunks/00caa_next-auth_0fe46a47._.js") +R.c("server/chunks/220bc_openid-client_5e32089b._.js") +R.c("server/chunks/36042_jose_dist_node_cjs_e602ff23._.js") +R.c("server/chunks/a0629__pnpm_9fe4b27d._.js") +R.c("server/chunks/[root-of-the-server]__586bf482._.js") +R.c("server/chunks/54027_server_app_api_trees_[treeId]_collaborators_route_actions_9236bcfc.js") +R.m("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/build/templates/app-route.js { INNER_APP_ROUTE => \"[project]/Documents/go-new/chinese-family-tree/app/api/trees/[treeId]/collaborators/route.ts [app-route] (ecmascript)\" } [app-route] (ecmascript)") +module.exports=R.m("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/build/templates/app-route.js { INNER_APP_ROUTE => \"[project]/Documents/go-new/chinese-family-tree/app/api/trees/[treeId]/collaborators/route.ts [app-route] (ecmascript)\" } [app-route] (ecmascript)").exports diff --git a/.next/dev/server/app/api/trees/[treeId]/collaborators/route.js.map b/.next/dev/server/app/api/trees/[treeId]/collaborators/route.js.map new file mode 100644 index 00000000..c15d7ec0 --- /dev/null +++ b/.next/dev/server/app/api/trees/[treeId]/collaborators/route.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/.next/dev/server/app/api/trees/[treeId]/collaborators/route/app-paths-manifest.json b/.next/dev/server/app/api/trees/[treeId]/collaborators/route/app-paths-manifest.json new file mode 100644 index 00000000..f67d9d1e --- /dev/null +++ b/.next/dev/server/app/api/trees/[treeId]/collaborators/route/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/api/trees/[treeId]/collaborators/route": "app/api/trees/[treeId]/collaborators/route.js" +} \ No newline at end of file diff --git a/.next/dev/server/app/api/trees/[treeId]/collaborators/route/build-manifest.json b/.next/dev/server/app/api/trees/[treeId]/collaborators/route/build-manifest.json new file mode 100644 index 00000000..301ddbb8 --- /dev/null +++ b/.next/dev/server/app/api/trees/[treeId]/collaborators/route/build-manifest.json @@ -0,0 +1,11 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [ + "static/chunks/4e98a_next_dist_build_polyfills_polyfill-nomodule.js" + ], + "lowPriorityFiles": [], + "rootMainFiles": [], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/.next/dev/server/app/api/trees/[treeId]/collaborators/route/server-reference-manifest.json b/.next/dev/server/app/api/trees/[treeId]/collaborators/route/server-reference-manifest.json new file mode 100644 index 00000000..27a92af5 --- /dev/null +++ b/.next/dev/server/app/api/trees/[treeId]/collaborators/route/server-reference-manifest.json @@ -0,0 +1,4 @@ +{ + "node": {}, + "edge": {} +} \ No newline at end of file diff --git a/.next/dev/server/app/api/trees/[treeId]/collaborators/route_client-reference-manifest.js b/.next/dev/server/app/api/trees/[treeId]/collaborators/route_client-reference-manifest.js new file mode 100644 index 00000000..84e57c7d --- /dev/null +++ b/.next/dev/server/app/api/trees/[treeId]/collaborators/route_client-reference-manifest.js @@ -0,0 +1,2 @@ +globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; +globalThis.__RSC_MANIFEST["/api/trees/[treeId]/collaborators/route"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"rscModuleMapping":{},"edgeRscModuleMapping":{},"entryCSSFiles":{},"entryJSFiles":{}} diff --git a/.next/dev/server/app/members/[id]/page_client-reference-manifest.js b/.next/dev/server/app/members/[id]/page_client-reference-manifest.js index 112b81d8..2bbc1c3c 100644 --- a/.next/dev/server/app/members/[id]/page_client-reference-manifest.js +++ b/.next/dev/server/app/members/[id]/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/members/[id]/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_fa7c1a71._.js","/_next/static/chunks/a0629__pnpm_98cfd81b._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_members_%5Bid%5D_page_tsx_03538adf._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_fa7c1a71._.js","/_next/static/chunks/a0629__pnpm_98cfd81b._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_members_%5Bid%5D_page_tsx_03538adf._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__9d08ee54._.js","server/chunks/ssr/a0629__pnpm_a0c33371._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__9d08ee54._.js","server/chunks/ssr/a0629__pnpm_a0c33371._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__9d08ee54._.js","server/chunks/ssr/a0629__pnpm_a0c33371._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__9d08ee54._.js","server/chunks/ssr/a0629__pnpm_a0c33371._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__9d08ee54._.js","server/chunks/ssr/a0629__pnpm_a0c33371._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__9d08ee54._.js","server/chunks/ssr/a0629__pnpm_a0c33371._.js","server/chunks/ssr/[root-of-the-server]__10b90bc2._.js","server/chunks/ssr/4e98a_next_dist_c8d928f7._.js","server/chunks/ssr/f6bfd_@radix-ui_react-select_dist_index_mjs_9c1e4dbd._.js","server/chunks/ssr/3032b_dexie_289025a5._.js","server/chunks/ssr/a0629__pnpm_7c1f1e29._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/go-new/chinese-family-tree/app/layout":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}],"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false},{"path":"static/chunks/4c051_react-image-crop_dist_ReactCrop_bde06fd8.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/4e98a_next_dist_85312e63._.js","static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"[project]/Documents/go-new/chinese-family-tree/app/layout":["static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","static/chunks/a0629__pnpm_8124a564._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page":["static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","static/chunks/a0629__pnpm_8124a564._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","static/chunks/Documents_go-new_chinese-family-tree_fa7c1a71._.js","static/chunks/a0629__pnpm_98cfd81b._.js","static/chunks/Documents_go-new_chinese-family-tree_app_members_[id]_page_tsx_03538adf._.js"]}} +globalThis.__RSC_MANIFEST["/members/[id]/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/4e98a_next_dist_85312e63._.js","/_next/static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs ":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx ":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_fa7c1a71._.js","/_next/static/chunks/f6bfd_%40radix-ui_react-select_dist_index_mjs_f8eb705a._.js","/_next/static/chunks/3032b_dexie_2a245be4._.js","/_next/static/chunks/a0629__pnpm_f422604c._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_members_%5Bid%5D_page_tsx_03538adf._.js"],"async":false},"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","/_next/static/chunks/a0629__pnpm_8124a564._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_fa7c1a71._.js","/_next/static/chunks/f6bfd_%40radix-ui_react-select_dist_index_mjs_f8eb705a._.js","/_next/static/chunks/3032b_dexie_2a245be4._.js","/_next/static/chunks/a0629__pnpm_f422604c._.js","/_next/static/chunks/Documents_go-new_chinese-family-tree_app_members_%5Bid%5D_page_tsx_03538adf._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/4e98a_next_dist_8a92b219._.js","server/chunks/ssr/[root-of-the-server]__1aaf5479._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__9d08ee54._.js","server/chunks/ssr/a0629__pnpm_a0c33371._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__9d08ee54._.js","server/chunks/ssr/a0629__pnpm_a0c33371._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__9d08ee54._.js","server/chunks/ssr/a0629__pnpm_a0c33371._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__9d08ee54._.js","server/chunks/ssr/a0629__pnpm_a0c33371._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__9d08ee54._.js","server/chunks/ssr/a0629__pnpm_a0c33371._.js"],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__9d08ee54._.js","server/chunks/ssr/a0629__pnpm_a0c33371._.js","server/chunks/ssr/[root-of-the-server]__10b90bc2._.js","server/chunks/ssr/4e98a_next_dist_c8d928f7._.js","server/chunks/ssr/f6bfd_@radix-ui_react-select_dist_index_mjs_9c1e4dbd._.js","server/chunks/ssr/3032b_dexie_289025a5._.js","server/chunks/ssr/a0629__pnpm_9ad89ea1._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/providers/session-provider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/components/ui/alert-dialog-custom.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/go-new/chinese-family-tree/app/layout":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false}],"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page":[{"path":"static/chunks/[root-of-the-server]__6d150df4._.css","inlined":false},{"path":"static/chunks/4c051_react-image-crop_dist_ReactCrop_bde06fd8.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/4e98a_next_dist_85312e63._.js","static/chunks/4e98a_next_dist_client_components_builtin_global-error_98813eb2.js"],"[project]/Documents/go-new/chinese-family-tree/app/layout":["static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","static/chunks/a0629__pnpm_8124a564._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js"],"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page":["static/chunks/Documents_go-new_chinese-family-tree_2268dbd5._.js","static/chunks/a0629__pnpm_8124a564._.js","static/chunks/Documents_go-new_chinese-family-tree_app_layout_tsx_98813eb2._.js","static/chunks/Documents_go-new_chinese-family-tree_fa7c1a71._.js","static/chunks/f6bfd_@radix-ui_react-select_dist_index_mjs_f8eb705a._.js","static/chunks/3032b_dexie_2a245be4._.js","static/chunks/a0629__pnpm_f422604c._.js","static/chunks/Documents_go-new_chinese-family-tree_app_members_[id]_page_tsx_03538adf._.js"]}} diff --git a/.next/dev/server/chunks/4e98a_next_a9e0b3e8._.js b/.next/dev/server/chunks/4e98a_next_a9e0b3e8._.js new file mode 100644 index 00000000..655e444a --- /dev/null +++ b/.next/dev/server/chunks/4e98a_next_a9e0b3e8._.js @@ -0,0 +1,15634 @@ +module.exports = [ +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/route-modules/app-route/module.compiled.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { + +if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable +; +else { + if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable + ; + else { + if ("TURBOPACK compile-time truthy", 1) { + if ("TURBOPACK compile-time truthy", 1) { + module.exports = __turbopack_context__.r("[externals]/next/dist/compiled/next-server/app-route-turbo.runtime.dev.js [external] (next/dist/compiled/next-server/app-route-turbo.runtime.dev.js, cjs)"); + } else //TURBOPACK unreachable + ; + } else //TURBOPACK unreachable + ; + } +} //# sourceMappingURL=module.compiled.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/route-kind.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "RouteKind", + ()=>RouteKind +]); +var RouteKind = /*#__PURE__*/ function(RouteKind) { + /** + * `PAGES` represents all the React pages that are under `pages/`. + */ RouteKind["PAGES"] = "PAGES"; + /** + * `PAGES_API` represents all the API routes under `pages/api/`. + */ RouteKind["PAGES_API"] = "PAGES_API"; + /** + * `APP_PAGE` represents all the React pages that are under `app/` with the + * filename of `page.{j,t}s{,x}`. + */ RouteKind["APP_PAGE"] = "APP_PAGE"; + /** + * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the + * filename of `route.{j,t}s{,x}`. + */ RouteKind["APP_ROUTE"] = "APP_ROUTE"; + /** + * `IMAGE` represents all the images that are generated by `next/image`. + */ RouteKind["IMAGE"] = "IMAGE"; + return RouteKind; +}({}); //# sourceMappingURL=route-kind.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/trace/constants.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * Contains predefined constants for the trace span name in next/server. + * + * Currently, next/server/tracer is internal implementation only for tracking + * next.js's implementation only with known span names defined here. + **/ // eslint typescript has a bug with TS enums +__turbopack_context__.s([ + "AppRenderSpan", + ()=>AppRenderSpan, + "AppRouteRouteHandlersSpan", + ()=>AppRouteRouteHandlersSpan, + "BaseServerSpan", + ()=>BaseServerSpan, + "LoadComponentsSpan", + ()=>LoadComponentsSpan, + "LogSpanAllowList", + ()=>LogSpanAllowList, + "MiddlewareSpan", + ()=>MiddlewareSpan, + "NextNodeServerSpan", + ()=>NextNodeServerSpan, + "NextServerSpan", + ()=>NextServerSpan, + "NextVanillaSpanAllowlist", + ()=>NextVanillaSpanAllowlist, + "NodeSpan", + ()=>NodeSpan, + "RenderSpan", + ()=>RenderSpan, + "ResolveMetadataSpan", + ()=>ResolveMetadataSpan, + "RouterSpan", + ()=>RouterSpan, + "StartServerSpan", + ()=>StartServerSpan +]); +var BaseServerSpan = /*#__PURE__*/ function(BaseServerSpan) { + BaseServerSpan["handleRequest"] = "BaseServer.handleRequest"; + BaseServerSpan["run"] = "BaseServer.run"; + BaseServerSpan["pipe"] = "BaseServer.pipe"; + BaseServerSpan["getStaticHTML"] = "BaseServer.getStaticHTML"; + BaseServerSpan["render"] = "BaseServer.render"; + BaseServerSpan["renderToResponseWithComponents"] = "BaseServer.renderToResponseWithComponents"; + BaseServerSpan["renderToResponse"] = "BaseServer.renderToResponse"; + BaseServerSpan["renderToHTML"] = "BaseServer.renderToHTML"; + BaseServerSpan["renderError"] = "BaseServer.renderError"; + BaseServerSpan["renderErrorToResponse"] = "BaseServer.renderErrorToResponse"; + BaseServerSpan["renderErrorToHTML"] = "BaseServer.renderErrorToHTML"; + BaseServerSpan["render404"] = "BaseServer.render404"; + return BaseServerSpan; +}(BaseServerSpan || {}); +var LoadComponentsSpan = /*#__PURE__*/ function(LoadComponentsSpan) { + LoadComponentsSpan["loadDefaultErrorComponents"] = "LoadComponents.loadDefaultErrorComponents"; + LoadComponentsSpan["loadComponents"] = "LoadComponents.loadComponents"; + return LoadComponentsSpan; +}(LoadComponentsSpan || {}); +var NextServerSpan = /*#__PURE__*/ function(NextServerSpan) { + NextServerSpan["getRequestHandler"] = "NextServer.getRequestHandler"; + NextServerSpan["getRequestHandlerWithMetadata"] = "NextServer.getRequestHandlerWithMetadata"; + NextServerSpan["getServer"] = "NextServer.getServer"; + NextServerSpan["getServerRequestHandler"] = "NextServer.getServerRequestHandler"; + NextServerSpan["createServer"] = "createServer.createServer"; + return NextServerSpan; +}(NextServerSpan || {}); +var NextNodeServerSpan = /*#__PURE__*/ function(NextNodeServerSpan) { + NextNodeServerSpan["compression"] = "NextNodeServer.compression"; + NextNodeServerSpan["getBuildId"] = "NextNodeServer.getBuildId"; + NextNodeServerSpan["createComponentTree"] = "NextNodeServer.createComponentTree"; + NextNodeServerSpan["clientComponentLoading"] = "NextNodeServer.clientComponentLoading"; + NextNodeServerSpan["getLayoutOrPageModule"] = "NextNodeServer.getLayoutOrPageModule"; + NextNodeServerSpan["generateStaticRoutes"] = "NextNodeServer.generateStaticRoutes"; + NextNodeServerSpan["generateFsStaticRoutes"] = "NextNodeServer.generateFsStaticRoutes"; + NextNodeServerSpan["generatePublicRoutes"] = "NextNodeServer.generatePublicRoutes"; + NextNodeServerSpan["generateImageRoutes"] = "NextNodeServer.generateImageRoutes.route"; + NextNodeServerSpan["sendRenderResult"] = "NextNodeServer.sendRenderResult"; + NextNodeServerSpan["proxyRequest"] = "NextNodeServer.proxyRequest"; + NextNodeServerSpan["runApi"] = "NextNodeServer.runApi"; + NextNodeServerSpan["render"] = "NextNodeServer.render"; + NextNodeServerSpan["renderHTML"] = "NextNodeServer.renderHTML"; + NextNodeServerSpan["imageOptimizer"] = "NextNodeServer.imageOptimizer"; + NextNodeServerSpan["getPagePath"] = "NextNodeServer.getPagePath"; + NextNodeServerSpan["getRoutesManifest"] = "NextNodeServer.getRoutesManifest"; + NextNodeServerSpan["findPageComponents"] = "NextNodeServer.findPageComponents"; + NextNodeServerSpan["getFontManifest"] = "NextNodeServer.getFontManifest"; + NextNodeServerSpan["getServerComponentManifest"] = "NextNodeServer.getServerComponentManifest"; + NextNodeServerSpan["getRequestHandler"] = "NextNodeServer.getRequestHandler"; + NextNodeServerSpan["renderToHTML"] = "NextNodeServer.renderToHTML"; + NextNodeServerSpan["renderError"] = "NextNodeServer.renderError"; + NextNodeServerSpan["renderErrorToHTML"] = "NextNodeServer.renderErrorToHTML"; + NextNodeServerSpan["render404"] = "NextNodeServer.render404"; + NextNodeServerSpan["startResponse"] = "NextNodeServer.startResponse"; + // nested inner span, does not require parent scope name + NextNodeServerSpan["route"] = "route"; + NextNodeServerSpan["onProxyReq"] = "onProxyReq"; + NextNodeServerSpan["apiResolver"] = "apiResolver"; + NextNodeServerSpan["internalFetch"] = "internalFetch"; + return NextNodeServerSpan; +}(NextNodeServerSpan || {}); +var StartServerSpan = /*#__PURE__*/ function(StartServerSpan) { + StartServerSpan["startServer"] = "startServer.startServer"; + return StartServerSpan; +}(StartServerSpan || {}); +var RenderSpan = /*#__PURE__*/ function(RenderSpan) { + RenderSpan["getServerSideProps"] = "Render.getServerSideProps"; + RenderSpan["getStaticProps"] = "Render.getStaticProps"; + RenderSpan["renderToString"] = "Render.renderToString"; + RenderSpan["renderDocument"] = "Render.renderDocument"; + RenderSpan["createBodyResult"] = "Render.createBodyResult"; + return RenderSpan; +}(RenderSpan || {}); +var AppRenderSpan = /*#__PURE__*/ function(AppRenderSpan) { + AppRenderSpan["renderToString"] = "AppRender.renderToString"; + AppRenderSpan["renderToReadableStream"] = "AppRender.renderToReadableStream"; + AppRenderSpan["getBodyResult"] = "AppRender.getBodyResult"; + AppRenderSpan["fetch"] = "AppRender.fetch"; + return AppRenderSpan; +}(AppRenderSpan || {}); +var RouterSpan = /*#__PURE__*/ function(RouterSpan) { + RouterSpan["executeRoute"] = "Router.executeRoute"; + return RouterSpan; +}(RouterSpan || {}); +var NodeSpan = /*#__PURE__*/ function(NodeSpan) { + NodeSpan["runHandler"] = "Node.runHandler"; + return NodeSpan; +}(NodeSpan || {}); +var AppRouteRouteHandlersSpan = /*#__PURE__*/ function(AppRouteRouteHandlersSpan) { + AppRouteRouteHandlersSpan["runHandler"] = "AppRouteRouteHandlers.runHandler"; + return AppRouteRouteHandlersSpan; +}(AppRouteRouteHandlersSpan || {}); +var ResolveMetadataSpan = /*#__PURE__*/ function(ResolveMetadataSpan) { + ResolveMetadataSpan["generateMetadata"] = "ResolveMetadata.generateMetadata"; + ResolveMetadataSpan["generateViewport"] = "ResolveMetadata.generateViewport"; + return ResolveMetadataSpan; +}(ResolveMetadataSpan || {}); +var MiddlewareSpan = /*#__PURE__*/ function(MiddlewareSpan) { + MiddlewareSpan["execute"] = "Middleware.execute"; + return MiddlewareSpan; +}(MiddlewareSpan || {}); +const NextVanillaSpanAllowlist = new Set([ + "Middleware.execute", + "BaseServer.handleRequest", + "Render.getServerSideProps", + "Render.getStaticProps", + "AppRender.fetch", + "AppRender.getBodyResult", + "Render.renderDocument", + "Node.runHandler", + "AppRouteRouteHandlers.runHandler", + "ResolveMetadata.generateMetadata", + "ResolveMetadata.generateViewport", + "NextNodeServer.createComponentTree", + "NextNodeServer.findPageComponents", + "NextNodeServer.getLayoutOrPageModule", + "NextNodeServer.startResponse", + "NextNodeServer.clientComponentLoading" +]); +const LogSpanAllowList = new Set([ + "NextNodeServer.findPageComponents", + "NextNodeServer.createComponentTree", + "NextNodeServer.clientComponentLoading" +]); +; + //# sourceMappingURL=constants.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/is-thenable.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * Check to see if a value is Thenable. + * + * @param promise the maybe-thenable value + * @returns true if the value is thenable + */ __turbopack_context__.s([ + "isThenable", + ()=>isThenable +]); +function isThenable(promise) { + return promise !== null && typeof promise === 'object' && 'then' in promise && typeof promise.then === 'function'; +} //# sourceMappingURL=is-thenable.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { + +(()=>{ + "use strict"; + var e = { + 491: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.ContextAPI = void 0; + const n = r(223); + const a = r(172); + const o = r(930); + const i = "context"; + const c = new n.NoopContextManager; + class ContextAPI { + constructor(){} + static getInstance() { + if (!this._instance) { + this._instance = new ContextAPI; + } + return this._instance; + } + setGlobalContextManager(e) { + return (0, a.registerGlobal)(i, e, o.DiagAPI.instance()); + } + active() { + return this._getContextManager().active(); + } + with(e, t, r, ...n) { + return this._getContextManager().with(e, t, r, ...n); + } + bind(e, t) { + return this._getContextManager().bind(e, t); + } + _getContextManager() { + return (0, a.getGlobal)(i) || c; + } + disable() { + this._getContextManager().disable(); + (0, a.unregisterGlobal)(i, o.DiagAPI.instance()); + } + } + t.ContextAPI = ContextAPI; + }, + 930: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.DiagAPI = void 0; + const n = r(56); + const a = r(912); + const o = r(957); + const i = r(172); + const c = "diag"; + class DiagAPI { + constructor(){ + function _logProxy(e) { + return function(...t) { + const r = (0, i.getGlobal)("diag"); + if (!r) return; + return r[e](...t); + }; + } + const e = this; + const setLogger = (t, r = { + logLevel: o.DiagLogLevel.INFO + })=>{ + var n, c, s; + if (t === e) { + const t = new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation"); + e.error((n = t.stack) !== null && n !== void 0 ? n : t.message); + return false; + } + if (typeof r === "number") { + r = { + logLevel: r + }; + } + const u = (0, i.getGlobal)("diag"); + const l = (0, a.createLogLevelDiagLogger)((c = r.logLevel) !== null && c !== void 0 ? c : o.DiagLogLevel.INFO, t); + if (u && !r.suppressOverrideMessage) { + const e = (s = (new Error).stack) !== null && s !== void 0 ? s : ""; + u.warn(`Current logger will be overwritten from ${e}`); + l.warn(`Current logger will overwrite one already registered from ${e}`); + } + return (0, i.registerGlobal)("diag", l, e, true); + }; + e.setLogger = setLogger; + e.disable = ()=>{ + (0, i.unregisterGlobal)(c, e); + }; + e.createComponentLogger = (e)=>new n.DiagComponentLogger(e); + e.verbose = _logProxy("verbose"); + e.debug = _logProxy("debug"); + e.info = _logProxy("info"); + e.warn = _logProxy("warn"); + e.error = _logProxy("error"); + } + static instance() { + if (!this._instance) { + this._instance = new DiagAPI; + } + return this._instance; + } + } + t.DiagAPI = DiagAPI; + }, + 653: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.MetricsAPI = void 0; + const n = r(660); + const a = r(172); + const o = r(930); + const i = "metrics"; + class MetricsAPI { + constructor(){} + static getInstance() { + if (!this._instance) { + this._instance = new MetricsAPI; + } + return this._instance; + } + setGlobalMeterProvider(e) { + return (0, a.registerGlobal)(i, e, o.DiagAPI.instance()); + } + getMeterProvider() { + return (0, a.getGlobal)(i) || n.NOOP_METER_PROVIDER; + } + getMeter(e, t, r) { + return this.getMeterProvider().getMeter(e, t, r); + } + disable() { + (0, a.unregisterGlobal)(i, o.DiagAPI.instance()); + } + } + t.MetricsAPI = MetricsAPI; + }, + 181: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.PropagationAPI = void 0; + const n = r(172); + const a = r(874); + const o = r(194); + const i = r(277); + const c = r(369); + const s = r(930); + const u = "propagation"; + const l = new a.NoopTextMapPropagator; + class PropagationAPI { + constructor(){ + this.createBaggage = c.createBaggage; + this.getBaggage = i.getBaggage; + this.getActiveBaggage = i.getActiveBaggage; + this.setBaggage = i.setBaggage; + this.deleteBaggage = i.deleteBaggage; + } + static getInstance() { + if (!this._instance) { + this._instance = new PropagationAPI; + } + return this._instance; + } + setGlobalPropagator(e) { + return (0, n.registerGlobal)(u, e, s.DiagAPI.instance()); + } + inject(e, t, r = o.defaultTextMapSetter) { + return this._getGlobalPropagator().inject(e, t, r); + } + extract(e, t, r = o.defaultTextMapGetter) { + return this._getGlobalPropagator().extract(e, t, r); + } + fields() { + return this._getGlobalPropagator().fields(); + } + disable() { + (0, n.unregisterGlobal)(u, s.DiagAPI.instance()); + } + _getGlobalPropagator() { + return (0, n.getGlobal)(u) || l; + } + } + t.PropagationAPI = PropagationAPI; + }, + 997: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.TraceAPI = void 0; + const n = r(172); + const a = r(846); + const o = r(139); + const i = r(607); + const c = r(930); + const s = "trace"; + class TraceAPI { + constructor(){ + this._proxyTracerProvider = new a.ProxyTracerProvider; + this.wrapSpanContext = o.wrapSpanContext; + this.isSpanContextValid = o.isSpanContextValid; + this.deleteSpan = i.deleteSpan; + this.getSpan = i.getSpan; + this.getActiveSpan = i.getActiveSpan; + this.getSpanContext = i.getSpanContext; + this.setSpan = i.setSpan; + this.setSpanContext = i.setSpanContext; + } + static getInstance() { + if (!this._instance) { + this._instance = new TraceAPI; + } + return this._instance; + } + setGlobalTracerProvider(e) { + const t = (0, n.registerGlobal)(s, this._proxyTracerProvider, c.DiagAPI.instance()); + if (t) { + this._proxyTracerProvider.setDelegate(e); + } + return t; + } + getTracerProvider() { + return (0, n.getGlobal)(s) || this._proxyTracerProvider; + } + getTracer(e, t) { + return this.getTracerProvider().getTracer(e, t); + } + disable() { + (0, n.unregisterGlobal)(s, c.DiagAPI.instance()); + this._proxyTracerProvider = new a.ProxyTracerProvider; + } + } + t.TraceAPI = TraceAPI; + }, + 277: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.deleteBaggage = t.setBaggage = t.getActiveBaggage = t.getBaggage = void 0; + const n = r(491); + const a = r(780); + const o = (0, a.createContextKey)("OpenTelemetry Baggage Key"); + function getBaggage(e) { + return e.getValue(o) || undefined; + } + t.getBaggage = getBaggage; + function getActiveBaggage() { + return getBaggage(n.ContextAPI.getInstance().active()); + } + t.getActiveBaggage = getActiveBaggage; + function setBaggage(e, t) { + return e.setValue(o, t); + } + t.setBaggage = setBaggage; + function deleteBaggage(e) { + return e.deleteValue(o); + } + t.deleteBaggage = deleteBaggage; + }, + 993: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.BaggageImpl = void 0; + class BaggageImpl { + constructor(e){ + this._entries = e ? new Map(e) : new Map; + } + getEntry(e) { + const t = this._entries.get(e); + if (!t) { + return undefined; + } + return Object.assign({}, t); + } + getAllEntries() { + return Array.from(this._entries.entries()).map(([e, t])=>[ + e, + t + ]); + } + setEntry(e, t) { + const r = new BaggageImpl(this._entries); + r._entries.set(e, t); + return r; + } + removeEntry(e) { + const t = new BaggageImpl(this._entries); + t._entries.delete(e); + return t; + } + removeEntries(...e) { + const t = new BaggageImpl(this._entries); + for (const r of e){ + t._entries.delete(r); + } + return t; + } + clear() { + return new BaggageImpl; + } + } + t.BaggageImpl = BaggageImpl; + }, + 830: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.baggageEntryMetadataSymbol = void 0; + t.baggageEntryMetadataSymbol = Symbol("BaggageEntryMetadata"); + }, + 369: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.baggageEntryMetadataFromString = t.createBaggage = void 0; + const n = r(930); + const a = r(993); + const o = r(830); + const i = n.DiagAPI.instance(); + function createBaggage(e = {}) { + return new a.BaggageImpl(new Map(Object.entries(e))); + } + t.createBaggage = createBaggage; + function baggageEntryMetadataFromString(e) { + if (typeof e !== "string") { + i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`); + e = ""; + } + return { + __TYPE__: o.baggageEntryMetadataSymbol, + toString () { + return e; + } + }; + } + t.baggageEntryMetadataFromString = baggageEntryMetadataFromString; + }, + 67: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.context = void 0; + const n = r(491); + t.context = n.ContextAPI.getInstance(); + }, + 223: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.NoopContextManager = void 0; + const n = r(780); + class NoopContextManager { + active() { + return n.ROOT_CONTEXT; + } + with(e, t, r, ...n) { + return t.call(r, ...n); + } + bind(e, t) { + return t; + } + enable() { + return this; + } + disable() { + return this; + } + } + t.NoopContextManager = NoopContextManager; + }, + 780: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.ROOT_CONTEXT = t.createContextKey = void 0; + function createContextKey(e) { + return Symbol.for(e); + } + t.createContextKey = createContextKey; + class BaseContext { + constructor(e){ + const t = this; + t._currentContext = e ? new Map(e) : new Map; + t.getValue = (e)=>t._currentContext.get(e); + t.setValue = (e, r)=>{ + const n = new BaseContext(t._currentContext); + n._currentContext.set(e, r); + return n; + }; + t.deleteValue = (e)=>{ + const r = new BaseContext(t._currentContext); + r._currentContext.delete(e); + return r; + }; + } + } + t.ROOT_CONTEXT = new BaseContext; + }, + 506: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.diag = void 0; + const n = r(930); + t.diag = n.DiagAPI.instance(); + }, + 56: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.DiagComponentLogger = void 0; + const n = r(172); + class DiagComponentLogger { + constructor(e){ + this._namespace = e.namespace || "DiagComponentLogger"; + } + debug(...e) { + return logProxy("debug", this._namespace, e); + } + error(...e) { + return logProxy("error", this._namespace, e); + } + info(...e) { + return logProxy("info", this._namespace, e); + } + warn(...e) { + return logProxy("warn", this._namespace, e); + } + verbose(...e) { + return logProxy("verbose", this._namespace, e); + } + } + t.DiagComponentLogger = DiagComponentLogger; + function logProxy(e, t, r) { + const a = (0, n.getGlobal)("diag"); + if (!a) { + return; + } + r.unshift(t); + return a[e](...r); + } + }, + 972: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.DiagConsoleLogger = void 0; + const r = [ + { + n: "error", + c: "error" + }, + { + n: "warn", + c: "warn" + }, + { + n: "info", + c: "info" + }, + { + n: "debug", + c: "debug" + }, + { + n: "verbose", + c: "trace" + } + ]; + class DiagConsoleLogger { + constructor(){ + function _consoleFunc(e) { + return function(...t) { + if (console) { + let r = console[e]; + if (typeof r !== "function") { + r = console.log; + } + if (typeof r === "function") { + return r.apply(console, t); + } + } + }; + } + for(let e = 0; e < r.length; e++){ + this[r[e].n] = _consoleFunc(r[e].c); + } + } + } + t.DiagConsoleLogger = DiagConsoleLogger; + }, + 912: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.createLogLevelDiagLogger = void 0; + const n = r(957); + function createLogLevelDiagLogger(e, t) { + if (e < n.DiagLogLevel.NONE) { + e = n.DiagLogLevel.NONE; + } else if (e > n.DiagLogLevel.ALL) { + e = n.DiagLogLevel.ALL; + } + t = t || {}; + function _filterFunc(r, n) { + const a = t[r]; + if (typeof a === "function" && e >= n) { + return a.bind(t); + } + return function() {}; + } + return { + error: _filterFunc("error", n.DiagLogLevel.ERROR), + warn: _filterFunc("warn", n.DiagLogLevel.WARN), + info: _filterFunc("info", n.DiagLogLevel.INFO), + debug: _filterFunc("debug", n.DiagLogLevel.DEBUG), + verbose: _filterFunc("verbose", n.DiagLogLevel.VERBOSE) + }; + } + t.createLogLevelDiagLogger = createLogLevelDiagLogger; + }, + 957: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.DiagLogLevel = void 0; + var r; + (function(e) { + e[e["NONE"] = 0] = "NONE"; + e[e["ERROR"] = 30] = "ERROR"; + e[e["WARN"] = 50] = "WARN"; + e[e["INFO"] = 60] = "INFO"; + e[e["DEBUG"] = 70] = "DEBUG"; + e[e["VERBOSE"] = 80] = "VERBOSE"; + e[e["ALL"] = 9999] = "ALL"; + })(r = t.DiagLogLevel || (t.DiagLogLevel = {})); + }, + 172: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.unregisterGlobal = t.getGlobal = t.registerGlobal = void 0; + const n = r(200); + const a = r(521); + const o = r(130); + const i = a.VERSION.split(".")[0]; + const c = Symbol.for(`opentelemetry.js.api.${i}`); + const s = n._globalThis; + function registerGlobal(e, t, r, n = false) { + var o; + const i = s[c] = (o = s[c]) !== null && o !== void 0 ? o : { + version: a.VERSION + }; + if (!n && i[e]) { + const t = new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`); + r.error(t.stack || t.message); + return false; + } + if (i.version !== a.VERSION) { + const t = new Error(`@opentelemetry/api: Registration of version v${i.version} for ${e} does not match previously registered API v${a.VERSION}`); + r.error(t.stack || t.message); + return false; + } + i[e] = t; + r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`); + return true; + } + t.registerGlobal = registerGlobal; + function getGlobal(e) { + var t, r; + const n = (t = s[c]) === null || t === void 0 ? void 0 : t.version; + if (!n || !(0, o.isCompatible)(n)) { + return; + } + return (r = s[c]) === null || r === void 0 ? void 0 : r[e]; + } + t.getGlobal = getGlobal; + function unregisterGlobal(e, t) { + t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`); + const r = s[c]; + if (r) { + delete r[e]; + } + } + t.unregisterGlobal = unregisterGlobal; + }, + 130: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.isCompatible = t._makeCompatibilityCheck = void 0; + const n = r(521); + const a = /^(\d+)\.(\d+)\.(\d+)(-(.+))?$/; + function _makeCompatibilityCheck(e) { + const t = new Set([ + e + ]); + const r = new Set; + const n = e.match(a); + if (!n) { + return ()=>false; + } + const o = { + major: +n[1], + minor: +n[2], + patch: +n[3], + prerelease: n[4] + }; + if (o.prerelease != null) { + return function isExactmatch(t) { + return t === e; + }; + } + function _reject(e) { + r.add(e); + return false; + } + function _accept(e) { + t.add(e); + return true; + } + return function isCompatible(e) { + if (t.has(e)) { + return true; + } + if (r.has(e)) { + return false; + } + const n = e.match(a); + if (!n) { + return _reject(e); + } + const i = { + major: +n[1], + minor: +n[2], + patch: +n[3], + prerelease: n[4] + }; + if (i.prerelease != null) { + return _reject(e); + } + if (o.major !== i.major) { + return _reject(e); + } + if (o.major === 0) { + if (o.minor === i.minor && o.patch <= i.patch) { + return _accept(e); + } + return _reject(e); + } + if (o.minor <= i.minor) { + return _accept(e); + } + return _reject(e); + }; + } + t._makeCompatibilityCheck = _makeCompatibilityCheck; + t.isCompatible = _makeCompatibilityCheck(n.VERSION); + }, + 886: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.metrics = void 0; + const n = r(653); + t.metrics = n.MetricsAPI.getInstance(); + }, + 901: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.ValueType = void 0; + var r; + (function(e) { + e[e["INT"] = 0] = "INT"; + e[e["DOUBLE"] = 1] = "DOUBLE"; + })(r = t.ValueType || (t.ValueType = {})); + }, + 102: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.createNoopMeter = t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = t.NOOP_OBSERVABLE_GAUGE_METRIC = t.NOOP_OBSERVABLE_COUNTER_METRIC = t.NOOP_UP_DOWN_COUNTER_METRIC = t.NOOP_HISTOGRAM_METRIC = t.NOOP_COUNTER_METRIC = t.NOOP_METER = t.NoopObservableUpDownCounterMetric = t.NoopObservableGaugeMetric = t.NoopObservableCounterMetric = t.NoopObservableMetric = t.NoopHistogramMetric = t.NoopUpDownCounterMetric = t.NoopCounterMetric = t.NoopMetric = t.NoopMeter = void 0; + class NoopMeter { + constructor(){} + createHistogram(e, r) { + return t.NOOP_HISTOGRAM_METRIC; + } + createCounter(e, r) { + return t.NOOP_COUNTER_METRIC; + } + createUpDownCounter(e, r) { + return t.NOOP_UP_DOWN_COUNTER_METRIC; + } + createObservableGauge(e, r) { + return t.NOOP_OBSERVABLE_GAUGE_METRIC; + } + createObservableCounter(e, r) { + return t.NOOP_OBSERVABLE_COUNTER_METRIC; + } + createObservableUpDownCounter(e, r) { + return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC; + } + addBatchObservableCallback(e, t) {} + removeBatchObservableCallback(e) {} + } + t.NoopMeter = NoopMeter; + class NoopMetric { + } + t.NoopMetric = NoopMetric; + class NoopCounterMetric extends NoopMetric { + add(e, t) {} + } + t.NoopCounterMetric = NoopCounterMetric; + class NoopUpDownCounterMetric extends NoopMetric { + add(e, t) {} + } + t.NoopUpDownCounterMetric = NoopUpDownCounterMetric; + class NoopHistogramMetric extends NoopMetric { + record(e, t) {} + } + t.NoopHistogramMetric = NoopHistogramMetric; + class NoopObservableMetric { + addCallback(e) {} + removeCallback(e) {} + } + t.NoopObservableMetric = NoopObservableMetric; + class NoopObservableCounterMetric extends NoopObservableMetric { + } + t.NoopObservableCounterMetric = NoopObservableCounterMetric; + class NoopObservableGaugeMetric extends NoopObservableMetric { + } + t.NoopObservableGaugeMetric = NoopObservableGaugeMetric; + class NoopObservableUpDownCounterMetric extends NoopObservableMetric { + } + t.NoopObservableUpDownCounterMetric = NoopObservableUpDownCounterMetric; + t.NOOP_METER = new NoopMeter; + t.NOOP_COUNTER_METRIC = new NoopCounterMetric; + t.NOOP_HISTOGRAM_METRIC = new NoopHistogramMetric; + t.NOOP_UP_DOWN_COUNTER_METRIC = new NoopUpDownCounterMetric; + t.NOOP_OBSERVABLE_COUNTER_METRIC = new NoopObservableCounterMetric; + t.NOOP_OBSERVABLE_GAUGE_METRIC = new NoopObservableGaugeMetric; + t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = new NoopObservableUpDownCounterMetric; + function createNoopMeter() { + return t.NOOP_METER; + } + t.createNoopMeter = createNoopMeter; + }, + 660: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.NOOP_METER_PROVIDER = t.NoopMeterProvider = void 0; + const n = r(102); + class NoopMeterProvider { + getMeter(e, t, r) { + return n.NOOP_METER; + } + } + t.NoopMeterProvider = NoopMeterProvider; + t.NOOP_METER_PROVIDER = new NoopMeterProvider; + }, + 200: function(e, t, r) { + var n = this && this.__createBinding || (Object.create ? function(e, t, r, n) { + if (n === undefined) n = r; + Object.defineProperty(e, n, { + enumerable: true, + get: function() { + return t[r]; + } + }); + } : function(e, t, r, n) { + if (n === undefined) n = r; + e[n] = t[r]; + }); + var a = this && this.__exportStar || function(e, t) { + for(var r in e)if (r !== "default" && !Object.prototype.hasOwnProperty.call(t, r)) n(t, e, r); + }; + Object.defineProperty(t, "__esModule", { + value: true + }); + a(r(46), t); + }, + 651: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t._globalThis = void 0; + t._globalThis = typeof globalThis === "object" ? globalThis : /*TURBOPACK member replacement*/ __turbopack_context__.g; + }, + 46: function(e, t, r) { + var n = this && this.__createBinding || (Object.create ? function(e, t, r, n) { + if (n === undefined) n = r; + Object.defineProperty(e, n, { + enumerable: true, + get: function() { + return t[r]; + } + }); + } : function(e, t, r, n) { + if (n === undefined) n = r; + e[n] = t[r]; + }); + var a = this && this.__exportStar || function(e, t) { + for(var r in e)if (r !== "default" && !Object.prototype.hasOwnProperty.call(t, r)) n(t, e, r); + }; + Object.defineProperty(t, "__esModule", { + value: true + }); + a(r(651), t); + }, + 939: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.propagation = void 0; + const n = r(181); + t.propagation = n.PropagationAPI.getInstance(); + }, + 874: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.NoopTextMapPropagator = void 0; + class NoopTextMapPropagator { + inject(e, t) {} + extract(e, t) { + return e; + } + fields() { + return []; + } + } + t.NoopTextMapPropagator = NoopTextMapPropagator; + }, + 194: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.defaultTextMapSetter = t.defaultTextMapGetter = void 0; + t.defaultTextMapGetter = { + get (e, t) { + if (e == null) { + return undefined; + } + return e[t]; + }, + keys (e) { + if (e == null) { + return []; + } + return Object.keys(e); + } + }; + t.defaultTextMapSetter = { + set (e, t, r) { + if (e == null) { + return; + } + e[t] = r; + } + }; + }, + 845: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.trace = void 0; + const n = r(997); + t.trace = n.TraceAPI.getInstance(); + }, + 403: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.NonRecordingSpan = void 0; + const n = r(476); + class NonRecordingSpan { + constructor(e = n.INVALID_SPAN_CONTEXT){ + this._spanContext = e; + } + spanContext() { + return this._spanContext; + } + setAttribute(e, t) { + return this; + } + setAttributes(e) { + return this; + } + addEvent(e, t) { + return this; + } + setStatus(e) { + return this; + } + updateName(e) { + return this; + } + end(e) {} + isRecording() { + return false; + } + recordException(e, t) {} + } + t.NonRecordingSpan = NonRecordingSpan; + }, + 614: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.NoopTracer = void 0; + const n = r(491); + const a = r(607); + const o = r(403); + const i = r(139); + const c = n.ContextAPI.getInstance(); + class NoopTracer { + startSpan(e, t, r = c.active()) { + const n = Boolean(t === null || t === void 0 ? void 0 : t.root); + if (n) { + return new o.NonRecordingSpan; + } + const s = r && (0, a.getSpanContext)(r); + if (isSpanContext(s) && (0, i.isSpanContextValid)(s)) { + return new o.NonRecordingSpan(s); + } else { + return new o.NonRecordingSpan; + } + } + startActiveSpan(e, t, r, n) { + let o; + let i; + let s; + if (arguments.length < 2) { + return; + } else if (arguments.length === 2) { + s = t; + } else if (arguments.length === 3) { + o = t; + s = r; + } else { + o = t; + i = r; + s = n; + } + const u = i !== null && i !== void 0 ? i : c.active(); + const l = this.startSpan(e, o, u); + const g = (0, a.setSpan)(u, l); + return c.with(g, s, undefined, l); + } + } + t.NoopTracer = NoopTracer; + function isSpanContext(e) { + return typeof e === "object" && typeof e["spanId"] === "string" && typeof e["traceId"] === "string" && typeof e["traceFlags"] === "number"; + } + }, + 124: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.NoopTracerProvider = void 0; + const n = r(614); + class NoopTracerProvider { + getTracer(e, t, r) { + return new n.NoopTracer; + } + } + t.NoopTracerProvider = NoopTracerProvider; + }, + 125: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.ProxyTracer = void 0; + const n = r(614); + const a = new n.NoopTracer; + class ProxyTracer { + constructor(e, t, r, n){ + this._provider = e; + this.name = t; + this.version = r; + this.options = n; + } + startSpan(e, t, r) { + return this._getTracer().startSpan(e, t, r); + } + startActiveSpan(e, t, r, n) { + const a = this._getTracer(); + return Reflect.apply(a.startActiveSpan, a, arguments); + } + _getTracer() { + if (this._delegate) { + return this._delegate; + } + const e = this._provider.getDelegateTracer(this.name, this.version, this.options); + if (!e) { + return a; + } + this._delegate = e; + return this._delegate; + } + } + t.ProxyTracer = ProxyTracer; + }, + 846: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.ProxyTracerProvider = void 0; + const n = r(125); + const a = r(124); + const o = new a.NoopTracerProvider; + class ProxyTracerProvider { + getTracer(e, t, r) { + var a; + return (a = this.getDelegateTracer(e, t, r)) !== null && a !== void 0 ? a : new n.ProxyTracer(this, e, t, r); + } + getDelegate() { + var e; + return (e = this._delegate) !== null && e !== void 0 ? e : o; + } + setDelegate(e) { + this._delegate = e; + } + getDelegateTracer(e, t, r) { + var n; + return (n = this._delegate) === null || n === void 0 ? void 0 : n.getTracer(e, t, r); + } + } + t.ProxyTracerProvider = ProxyTracerProvider; + }, + 996: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.SamplingDecision = void 0; + var r; + (function(e) { + e[e["NOT_RECORD"] = 0] = "NOT_RECORD"; + e[e["RECORD"] = 1] = "RECORD"; + e[e["RECORD_AND_SAMPLED"] = 2] = "RECORD_AND_SAMPLED"; + })(r = t.SamplingDecision || (t.SamplingDecision = {})); + }, + 607: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.getSpanContext = t.setSpanContext = t.deleteSpan = t.setSpan = t.getActiveSpan = t.getSpan = void 0; + const n = r(780); + const a = r(403); + const o = r(491); + const i = (0, n.createContextKey)("OpenTelemetry Context Key SPAN"); + function getSpan(e) { + return e.getValue(i) || undefined; + } + t.getSpan = getSpan; + function getActiveSpan() { + return getSpan(o.ContextAPI.getInstance().active()); + } + t.getActiveSpan = getActiveSpan; + function setSpan(e, t) { + return e.setValue(i, t); + } + t.setSpan = setSpan; + function deleteSpan(e) { + return e.deleteValue(i); + } + t.deleteSpan = deleteSpan; + function setSpanContext(e, t) { + return setSpan(e, new a.NonRecordingSpan(t)); + } + t.setSpanContext = setSpanContext; + function getSpanContext(e) { + var t; + return (t = getSpan(e)) === null || t === void 0 ? void 0 : t.spanContext(); + } + t.getSpanContext = getSpanContext; + }, + 325: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.TraceStateImpl = void 0; + const n = r(564); + const a = 32; + const o = 512; + const i = ","; + const c = "="; + class TraceStateImpl { + constructor(e){ + this._internalState = new Map; + if (e) this._parse(e); + } + set(e, t) { + const r = this._clone(); + if (r._internalState.has(e)) { + r._internalState.delete(e); + } + r._internalState.set(e, t); + return r; + } + unset(e) { + const t = this._clone(); + t._internalState.delete(e); + return t; + } + get(e) { + return this._internalState.get(e); + } + serialize() { + return this._keys().reduce((e, t)=>{ + e.push(t + c + this.get(t)); + return e; + }, []).join(i); + } + _parse(e) { + if (e.length > o) return; + this._internalState = e.split(i).reverse().reduce((e, t)=>{ + const r = t.trim(); + const a = r.indexOf(c); + if (a !== -1) { + const o = r.slice(0, a); + const i = r.slice(a + 1, t.length); + if ((0, n.validateKey)(o) && (0, n.validateValue)(i)) { + e.set(o, i); + } else {} + } + return e; + }, new Map); + if (this._internalState.size > a) { + this._internalState = new Map(Array.from(this._internalState.entries()).reverse().slice(0, a)); + } + } + _keys() { + return Array.from(this._internalState.keys()).reverse(); + } + _clone() { + const e = new TraceStateImpl; + e._internalState = new Map(this._internalState); + return e; + } + } + t.TraceStateImpl = TraceStateImpl; + }, + 564: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.validateValue = t.validateKey = void 0; + const r = "[_0-9a-z-*/]"; + const n = `[a-z]${r}{0,255}`; + const a = `[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`; + const o = new RegExp(`^(?:${n}|${a})$`); + const i = /^[ -~]{0,255}[!-~]$/; + const c = /,|=/; + function validateKey(e) { + return o.test(e); + } + t.validateKey = validateKey; + function validateValue(e) { + return i.test(e) && !c.test(e); + } + t.validateValue = validateValue; + }, + 98: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.createTraceState = void 0; + const n = r(325); + function createTraceState(e) { + return new n.TraceStateImpl(e); + } + t.createTraceState = createTraceState; + }, + 476: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.INVALID_SPAN_CONTEXT = t.INVALID_TRACEID = t.INVALID_SPANID = void 0; + const n = r(475); + t.INVALID_SPANID = "0000000000000000"; + t.INVALID_TRACEID = "00000000000000000000000000000000"; + t.INVALID_SPAN_CONTEXT = { + traceId: t.INVALID_TRACEID, + spanId: t.INVALID_SPANID, + traceFlags: n.TraceFlags.NONE + }; + }, + 357: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.SpanKind = void 0; + var r; + (function(e) { + e[e["INTERNAL"] = 0] = "INTERNAL"; + e[e["SERVER"] = 1] = "SERVER"; + e[e["CLIENT"] = 2] = "CLIENT"; + e[e["PRODUCER"] = 3] = "PRODUCER"; + e[e["CONSUMER"] = 4] = "CONSUMER"; + })(r = t.SpanKind || (t.SpanKind = {})); + }, + 139: (e, t, r)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.wrapSpanContext = t.isSpanContextValid = t.isValidSpanId = t.isValidTraceId = void 0; + const n = r(476); + const a = r(403); + const o = /^([0-9a-f]{32})$/i; + const i = /^[0-9a-f]{16}$/i; + function isValidTraceId(e) { + return o.test(e) && e !== n.INVALID_TRACEID; + } + t.isValidTraceId = isValidTraceId; + function isValidSpanId(e) { + return i.test(e) && e !== n.INVALID_SPANID; + } + t.isValidSpanId = isValidSpanId; + function isSpanContextValid(e) { + return isValidTraceId(e.traceId) && isValidSpanId(e.spanId); + } + t.isSpanContextValid = isSpanContextValid; + function wrapSpanContext(e) { + return new a.NonRecordingSpan(e); + } + t.wrapSpanContext = wrapSpanContext; + }, + 847: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.SpanStatusCode = void 0; + var r; + (function(e) { + e[e["UNSET"] = 0] = "UNSET"; + e[e["OK"] = 1] = "OK"; + e[e["ERROR"] = 2] = "ERROR"; + })(r = t.SpanStatusCode || (t.SpanStatusCode = {})); + }, + 475: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.TraceFlags = void 0; + var r; + (function(e) { + e[e["NONE"] = 0] = "NONE"; + e[e["SAMPLED"] = 1] = "SAMPLED"; + })(r = t.TraceFlags || (t.TraceFlags = {})); + }, + 521: (e, t)=>{ + Object.defineProperty(t, "__esModule", { + value: true + }); + t.VERSION = void 0; + t.VERSION = "1.6.0"; + } + }; + var t = {}; + function __nccwpck_require__(r) { + var n = t[r]; + if (n !== undefined) { + return n.exports; + } + var a = t[r] = { + exports: {} + }; + var o = true; + try { + e[r].call(a.exports, a, a.exports, __nccwpck_require__); + o = false; + } finally{ + if (o) delete t[r]; + } + return a.exports; + } + if (typeof __nccwpck_require__ !== "undefined") __nccwpck_require__.ab = ("TURBOPACK compile-time value", "/ROOT/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/@opentelemetry/api") + "/"; + var r = {}; + (()=>{ + var e = r; + Object.defineProperty(e, "__esModule", { + value: true + }); + e.trace = e.propagation = e.metrics = e.diag = e.context = e.INVALID_SPAN_CONTEXT = e.INVALID_TRACEID = e.INVALID_SPANID = e.isValidSpanId = e.isValidTraceId = e.isSpanContextValid = e.createTraceState = e.TraceFlags = e.SpanStatusCode = e.SpanKind = e.SamplingDecision = e.ProxyTracerProvider = e.ProxyTracer = e.defaultTextMapSetter = e.defaultTextMapGetter = e.ValueType = e.createNoopMeter = e.DiagLogLevel = e.DiagConsoleLogger = e.ROOT_CONTEXT = e.createContextKey = e.baggageEntryMetadataFromString = void 0; + var t = __nccwpck_require__(369); + Object.defineProperty(e, "baggageEntryMetadataFromString", { + enumerable: true, + get: function() { + return t.baggageEntryMetadataFromString; + } + }); + var n = __nccwpck_require__(780); + Object.defineProperty(e, "createContextKey", { + enumerable: true, + get: function() { + return n.createContextKey; + } + }); + Object.defineProperty(e, "ROOT_CONTEXT", { + enumerable: true, + get: function() { + return n.ROOT_CONTEXT; + } + }); + var a = __nccwpck_require__(972); + Object.defineProperty(e, "DiagConsoleLogger", { + enumerable: true, + get: function() { + return a.DiagConsoleLogger; + } + }); + var o = __nccwpck_require__(957); + Object.defineProperty(e, "DiagLogLevel", { + enumerable: true, + get: function() { + return o.DiagLogLevel; + } + }); + var i = __nccwpck_require__(102); + Object.defineProperty(e, "createNoopMeter", { + enumerable: true, + get: function() { + return i.createNoopMeter; + } + }); + var c = __nccwpck_require__(901); + Object.defineProperty(e, "ValueType", { + enumerable: true, + get: function() { + return c.ValueType; + } + }); + var s = __nccwpck_require__(194); + Object.defineProperty(e, "defaultTextMapGetter", { + enumerable: true, + get: function() { + return s.defaultTextMapGetter; + } + }); + Object.defineProperty(e, "defaultTextMapSetter", { + enumerable: true, + get: function() { + return s.defaultTextMapSetter; + } + }); + var u = __nccwpck_require__(125); + Object.defineProperty(e, "ProxyTracer", { + enumerable: true, + get: function() { + return u.ProxyTracer; + } + }); + var l = __nccwpck_require__(846); + Object.defineProperty(e, "ProxyTracerProvider", { + enumerable: true, + get: function() { + return l.ProxyTracerProvider; + } + }); + var g = __nccwpck_require__(996); + Object.defineProperty(e, "SamplingDecision", { + enumerable: true, + get: function() { + return g.SamplingDecision; + } + }); + var p = __nccwpck_require__(357); + Object.defineProperty(e, "SpanKind", { + enumerable: true, + get: function() { + return p.SpanKind; + } + }); + var d = __nccwpck_require__(847); + Object.defineProperty(e, "SpanStatusCode", { + enumerable: true, + get: function() { + return d.SpanStatusCode; + } + }); + var _ = __nccwpck_require__(475); + Object.defineProperty(e, "TraceFlags", { + enumerable: true, + get: function() { + return _.TraceFlags; + } + }); + var f = __nccwpck_require__(98); + Object.defineProperty(e, "createTraceState", { + enumerable: true, + get: function() { + return f.createTraceState; + } + }); + var b = __nccwpck_require__(139); + Object.defineProperty(e, "isSpanContextValid", { + enumerable: true, + get: function() { + return b.isSpanContextValid; + } + }); + Object.defineProperty(e, "isValidTraceId", { + enumerable: true, + get: function() { + return b.isValidTraceId; + } + }); + Object.defineProperty(e, "isValidSpanId", { + enumerable: true, + get: function() { + return b.isValidSpanId; + } + }); + var v = __nccwpck_require__(476); + Object.defineProperty(e, "INVALID_SPANID", { + enumerable: true, + get: function() { + return v.INVALID_SPANID; + } + }); + Object.defineProperty(e, "INVALID_TRACEID", { + enumerable: true, + get: function() { + return v.INVALID_TRACEID; + } + }); + Object.defineProperty(e, "INVALID_SPAN_CONTEXT", { + enumerable: true, + get: function() { + return v.INVALID_SPAN_CONTEXT; + } + }); + const O = __nccwpck_require__(67); + Object.defineProperty(e, "context", { + enumerable: true, + get: function() { + return O.context; + } + }); + const P = __nccwpck_require__(506); + Object.defineProperty(e, "diag", { + enumerable: true, + get: function() { + return P.diag; + } + }); + const N = __nccwpck_require__(886); + Object.defineProperty(e, "metrics", { + enumerable: true, + get: function() { + return N.metrics; + } + }); + const S = __nccwpck_require__(939); + Object.defineProperty(e, "propagation", { + enumerable: true, + get: function() { + return S.propagation; + } + }); + const C = __nccwpck_require__(845); + Object.defineProperty(e, "trace", { + enumerable: true, + get: function() { + return C.trace; + } + }); + e["default"] = { + context: O.context, + diag: P.diag, + metrics: N.metrics, + propagation: S.propagation, + trace: C.trace + }; + })(); + module.exports = r; +})(); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/trace/tracer.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "BubbledError", + ()=>BubbledError, + "SpanKind", + ()=>SpanKind, + "SpanStatusCode", + ()=>SpanStatusCode, + "getTracer", + ()=>getTracer, + "isBubbledError", + ()=>isBubbledError +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/trace/constants.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$is$2d$thenable$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/is-thenable.js [app-route] (ecmascript)"); +; +; +const NEXT_OTEL_PERFORMANCE_PREFIX = process.env.NEXT_OTEL_PERFORMANCE_PREFIX; +let api; +// we want to allow users to use their own version of @opentelemetry/api if they +// want to, so we try to require it first, and if it fails we fall back to the +// version that is bundled with Next.js +// this is because @opentelemetry/api has to be synced with the version of +// @opentelemetry/tracing that is used, and we don't want to force users to use +// the version that is bundled with Next.js. +// the API is ~stable, so this should be fine +if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable +; +else { + try { + api = __turbopack_context__.r("[externals]/next/dist/compiled/@opentelemetry/api [external] (next/dist/compiled/@opentelemetry/api, cjs)"); + } catch (err) { + api = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js [app-route] (ecmascript)"); + } +} +const { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } = api; +class BubbledError extends Error { + constructor(bubble, result){ + super(), this.bubble = bubble, this.result = result; + } +} +function isBubbledError(error) { + if (typeof error !== 'object' || error === null) return false; + return error instanceof BubbledError; +} +const closeSpanWithError = (span, error)=>{ + if (isBubbledError(error) && error.bubble) { + span.setAttribute('next.bubble', true); + } else { + if (error) { + span.recordException(error); + span.setAttribute('error.type', error.name); + } + span.setStatus({ + code: SpanStatusCode.ERROR, + message: error == null ? void 0 : error.message + }); + } + span.end(); +}; +/** we use this map to propagate attributes from nested spans to the top span */ const rootSpanAttributesStore = new Map(); +const rootSpanIdKey = api.createContextKey('next.rootSpanId'); +let lastSpanId = 0; +const getSpanId = ()=>lastSpanId++; +const clientTraceDataSetter = { + set (carrier, key, value) { + carrier.push({ + key, + value + }); + } +}; +class NextTracerImpl { + /** + * Returns an instance to the trace with configured name. + * Since wrap / trace can be defined in any place prior to actual trace subscriber initialization, + * This should be lazily evaluated. + */ getTracerInstance() { + return trace.getTracer('next.js', '0.0.1'); + } + getContext() { + return context; + } + getTracePropagationData() { + const activeContext = context.active(); + const entries = []; + propagation.inject(activeContext, entries, clientTraceDataSetter); + return entries; + } + getActiveScopeSpan() { + return trace.getSpan(context == null ? void 0 : context.active()); + } + withPropagatedContext(carrier, fn, getter) { + const activeContext = context.active(); + if (trace.getSpanContext(activeContext)) { + // Active span is already set, too late to propagate. + return fn(); + } + const remoteContext = propagation.extract(activeContext, carrier, getter); + return context.with(remoteContext, fn); + } + trace(...args) { + const [type, fnOrOptions, fnOrEmpty] = args; + // coerce options form overload + const { fn, options } = typeof fnOrOptions === 'function' ? { + fn: fnOrOptions, + options: {} + } : { + fn: fnOrEmpty, + options: { + ...fnOrOptions + } + }; + const spanName = options.spanName ?? type; + if (!__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextVanillaSpanAllowlist"].has(type) && process.env.NEXT_OTEL_VERBOSE !== '1' || options.hideSpan) { + return fn(); + } + // Trying to get active scoped span to assign parent. If option specifies parent span manually, will try to use it. + let spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan()); + if (!spanContext) { + spanContext = (context == null ? void 0 : context.active()) ?? ROOT_CONTEXT; + } + // Check if there's already a root span in the store for this trace + // We are intentionally not checking whether there is an active context + // from outside of nextjs to ensure that we can provide the same level + // of telemetry when using a custom server + const existingRootSpanId = spanContext.getValue(rootSpanIdKey); + const isRootSpan = typeof existingRootSpanId !== 'number' || !rootSpanAttributesStore.has(existingRootSpanId); + const spanId = getSpanId(); + options.attributes = { + 'next.span_name': spanName, + 'next.span_type': type, + ...options.attributes + }; + return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{ + let startTime; + if (NEXT_OTEL_PERFORMANCE_PREFIX && type && __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["LogSpanAllowList"].has(type)) { + startTime = 'performance' in globalThis && 'measure' in performance ? globalThis.performance.now() : undefined; + } + let cleanedUp = false; + const onCleanup = ()=>{ + if (cleanedUp) return; + cleanedUp = true; + rootSpanAttributesStore.delete(spanId); + if (startTime) { + performance.measure(`${NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split('.').pop() || '').replace(/[A-Z]/g, (match)=>'-' + match.toLowerCase())}`, { + start: startTime, + end: performance.now() + }); + } + }; + if (isRootSpan) { + rootSpanAttributesStore.set(spanId, new Map(Object.entries(options.attributes ?? {}))); + } + if (fn.length > 1) { + try { + return fn(span, (err)=>closeSpanWithError(span, err)); + } catch (err) { + closeSpanWithError(span, err); + throw err; + } finally{ + onCleanup(); + } + } + try { + const result = fn(span); + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$is$2d$thenable$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["isThenable"])(result)) { + // If there's error make sure it throws + return result.then((res)=>{ + span.end(); + // Need to pass down the promise result, + // it could be react stream response with error { error, stream } + return res; + }).catch((err)=>{ + closeSpanWithError(span, err); + throw err; + }).finally(onCleanup); + } else { + span.end(); + onCleanup(); + } + return result; + } catch (err) { + closeSpanWithError(span, err); + onCleanup(); + throw err; + } + })); + } + wrap(...args) { + const tracer = this; + const [name, options, fn] = args.length === 3 ? args : [ + args[0], + {}, + args[1] + ]; + if (!__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextVanillaSpanAllowlist"].has(name) && process.env.NEXT_OTEL_VERBOSE !== '1') { + return fn; + } + return function() { + let optionsObj = options; + if (typeof optionsObj === 'function' && typeof fn === 'function') { + optionsObj = optionsObj.apply(this, arguments); + } + const lastArgId = arguments.length - 1; + const cb = arguments[lastArgId]; + if (typeof cb === 'function') { + const scopeBoundCb = tracer.getContext().bind(context.active(), cb); + return tracer.trace(name, optionsObj, (_span, done)=>{ + arguments[lastArgId] = function(err) { + done == null ? void 0 : done(err); + return scopeBoundCb.apply(this, arguments); + }; + return fn.apply(this, arguments); + }); + } else { + return tracer.trace(name, optionsObj, ()=>fn.apply(this, arguments)); + } + }; + } + startSpan(...args) { + const [type, options] = args; + const spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan()); + return this.getTracerInstance().startSpan(type, options, spanContext); + } + getSpanContext(parentSpan) { + const spanContext = parentSpan ? trace.setSpan(context.active(), parentSpan) : undefined; + return spanContext; + } + getRootSpanAttributes() { + const spanId = context.active().getValue(rootSpanIdKey); + return rootSpanAttributesStore.get(spanId); + } + setRootSpanAttribute(key, value) { + const spanId = context.active().getValue(rootSpanIdKey); + const attributes = rootSpanAttributesStore.get(spanId); + if (attributes && !attributes.has(key)) { + attributes.set(key, value); + } + } +} +const getTracer = (()=>{ + const tracer = new NextTracerImpl(); + return ()=>tracer; +})(); +; + //# sourceMappingURL=tracer.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/constants.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "ACTION_SUFFIX", + ()=>ACTION_SUFFIX, + "APP_DIR_ALIAS", + ()=>APP_DIR_ALIAS, + "CACHE_ONE_YEAR", + ()=>CACHE_ONE_YEAR, + "DOT_NEXT_ALIAS", + ()=>DOT_NEXT_ALIAS, + "ESLINT_DEFAULT_DIRS", + ()=>ESLINT_DEFAULT_DIRS, + "GSP_NO_RETURNED_VALUE", + ()=>GSP_NO_RETURNED_VALUE, + "GSSP_COMPONENT_MEMBER_ERROR", + ()=>GSSP_COMPONENT_MEMBER_ERROR, + "GSSP_NO_RETURNED_VALUE", + ()=>GSSP_NO_RETURNED_VALUE, + "HTML_CONTENT_TYPE_HEADER", + ()=>HTML_CONTENT_TYPE_HEADER, + "INFINITE_CACHE", + ()=>INFINITE_CACHE, + "INSTRUMENTATION_HOOK_FILENAME", + ()=>INSTRUMENTATION_HOOK_FILENAME, + "JSON_CONTENT_TYPE_HEADER", + ()=>JSON_CONTENT_TYPE_HEADER, + "MATCHED_PATH_HEADER", + ()=>MATCHED_PATH_HEADER, + "MIDDLEWARE_FILENAME", + ()=>MIDDLEWARE_FILENAME, + "MIDDLEWARE_LOCATION_REGEXP", + ()=>MIDDLEWARE_LOCATION_REGEXP, + "NEXT_BODY_SUFFIX", + ()=>NEXT_BODY_SUFFIX, + "NEXT_CACHE_IMPLICIT_TAG_ID", + ()=>NEXT_CACHE_IMPLICIT_TAG_ID, + "NEXT_CACHE_REVALIDATED_TAGS_HEADER", + ()=>NEXT_CACHE_REVALIDATED_TAGS_HEADER, + "NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER", + ()=>NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER, + "NEXT_CACHE_SOFT_TAG_MAX_LENGTH", + ()=>NEXT_CACHE_SOFT_TAG_MAX_LENGTH, + "NEXT_CACHE_TAGS_HEADER", + ()=>NEXT_CACHE_TAGS_HEADER, + "NEXT_CACHE_TAG_MAX_ITEMS", + ()=>NEXT_CACHE_TAG_MAX_ITEMS, + "NEXT_CACHE_TAG_MAX_LENGTH", + ()=>NEXT_CACHE_TAG_MAX_LENGTH, + "NEXT_DATA_SUFFIX", + ()=>NEXT_DATA_SUFFIX, + "NEXT_INTERCEPTION_MARKER_PREFIX", + ()=>NEXT_INTERCEPTION_MARKER_PREFIX, + "NEXT_META_SUFFIX", + ()=>NEXT_META_SUFFIX, + "NEXT_QUERY_PARAM_PREFIX", + ()=>NEXT_QUERY_PARAM_PREFIX, + "NEXT_RESUME_HEADER", + ()=>NEXT_RESUME_HEADER, + "NON_STANDARD_NODE_ENV", + ()=>NON_STANDARD_NODE_ENV, + "PAGES_DIR_ALIAS", + ()=>PAGES_DIR_ALIAS, + "PRERENDER_REVALIDATE_HEADER", + ()=>PRERENDER_REVALIDATE_HEADER, + "PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER", + ()=>PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER, + "PROXY_FILENAME", + ()=>PROXY_FILENAME, + "PROXY_LOCATION_REGEXP", + ()=>PROXY_LOCATION_REGEXP, + "PUBLIC_DIR_MIDDLEWARE_CONFLICT", + ()=>PUBLIC_DIR_MIDDLEWARE_CONFLICT, + "ROOT_DIR_ALIAS", + ()=>ROOT_DIR_ALIAS, + "RSC_ACTION_CLIENT_WRAPPER_ALIAS", + ()=>RSC_ACTION_CLIENT_WRAPPER_ALIAS, + "RSC_ACTION_ENCRYPTION_ALIAS", + ()=>RSC_ACTION_ENCRYPTION_ALIAS, + "RSC_ACTION_PROXY_ALIAS", + ()=>RSC_ACTION_PROXY_ALIAS, + "RSC_ACTION_VALIDATE_ALIAS", + ()=>RSC_ACTION_VALIDATE_ALIAS, + "RSC_CACHE_WRAPPER_ALIAS", + ()=>RSC_CACHE_WRAPPER_ALIAS, + "RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS", + ()=>RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS, + "RSC_MOD_REF_PROXY_ALIAS", + ()=>RSC_MOD_REF_PROXY_ALIAS, + "RSC_PREFETCH_SUFFIX", + ()=>RSC_PREFETCH_SUFFIX, + "RSC_SEGMENTS_DIR_SUFFIX", + ()=>RSC_SEGMENTS_DIR_SUFFIX, + "RSC_SEGMENT_SUFFIX", + ()=>RSC_SEGMENT_SUFFIX, + "RSC_SUFFIX", + ()=>RSC_SUFFIX, + "SERVER_PROPS_EXPORT_ERROR", + ()=>SERVER_PROPS_EXPORT_ERROR, + "SERVER_PROPS_GET_INIT_PROPS_CONFLICT", + ()=>SERVER_PROPS_GET_INIT_PROPS_CONFLICT, + "SERVER_PROPS_SSG_CONFLICT", + ()=>SERVER_PROPS_SSG_CONFLICT, + "SERVER_RUNTIME", + ()=>SERVER_RUNTIME, + "SSG_FALLBACK_EXPORT_ERROR", + ()=>SSG_FALLBACK_EXPORT_ERROR, + "SSG_GET_INITIAL_PROPS_CONFLICT", + ()=>SSG_GET_INITIAL_PROPS_CONFLICT, + "STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR", + ()=>STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR, + "TEXT_PLAIN_CONTENT_TYPE_HEADER", + ()=>TEXT_PLAIN_CONTENT_TYPE_HEADER, + "UNSTABLE_REVALIDATE_RENAME_ERROR", + ()=>UNSTABLE_REVALIDATE_RENAME_ERROR, + "WEBPACK_LAYERS", + ()=>WEBPACK_LAYERS, + "WEBPACK_RESOURCE_QUERIES", + ()=>WEBPACK_RESOURCE_QUERIES, + "WEB_SOCKET_MAX_RECONNECTIONS", + ()=>WEB_SOCKET_MAX_RECONNECTIONS +]); +const TEXT_PLAIN_CONTENT_TYPE_HEADER = 'text/plain'; +const HTML_CONTENT_TYPE_HEADER = 'text/html; charset=utf-8'; +const JSON_CONTENT_TYPE_HEADER = 'application/json; charset=utf-8'; +const NEXT_QUERY_PARAM_PREFIX = 'nxtP'; +const NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI'; +const MATCHED_PATH_HEADER = 'x-matched-path'; +const PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate'; +const PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = 'x-prerender-revalidate-if-generated'; +const RSC_PREFETCH_SUFFIX = '.prefetch.rsc'; +const RSC_SEGMENTS_DIR_SUFFIX = '.segments'; +const RSC_SEGMENT_SUFFIX = '.segment.rsc'; +const RSC_SUFFIX = '.rsc'; +const ACTION_SUFFIX = '.action'; +const NEXT_DATA_SUFFIX = '.json'; +const NEXT_META_SUFFIX = '.meta'; +const NEXT_BODY_SUFFIX = '.body'; +const NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags'; +const NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags'; +const NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = 'x-next-revalidate-tag-token'; +const NEXT_RESUME_HEADER = 'next-resume'; +const NEXT_CACHE_TAG_MAX_ITEMS = 128; +const NEXT_CACHE_TAG_MAX_LENGTH = 256; +const NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024; +const NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_'; +const CACHE_ONE_YEAR = 31536000; +const INFINITE_CACHE = 0xfffffffe; +const MIDDLEWARE_FILENAME = 'middleware'; +const MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`; +const PROXY_FILENAME = 'proxy'; +const PROXY_LOCATION_REGEXP = `(?:src/)?${PROXY_FILENAME}`; +const INSTRUMENTATION_HOOK_FILENAME = 'instrumentation'; +const PAGES_DIR_ALIAS = 'private-next-pages'; +const DOT_NEXT_ALIAS = 'private-dot-next'; +const ROOT_DIR_ALIAS = 'private-next-root-dir'; +const APP_DIR_ALIAS = 'private-next-app-dir'; +const RSC_MOD_REF_PROXY_ALIAS = 'private-next-rsc-mod-ref-proxy'; +const RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate'; +const RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference'; +const RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper'; +const RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS = 'private-next-rsc-track-dynamic-import'; +const RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption'; +const RSC_ACTION_CLIENT_WRAPPER_ALIAS = 'private-next-rsc-action-client-wrapper'; +const PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`; +const SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`; +const SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`; +const SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`; +const STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`; +const SERVER_PROPS_EXPORT_ERROR = `pages with \`getServerSideProps\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`; +const GSP_NO_RETURNED_VALUE = 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?'; +const GSSP_NO_RETURNED_VALUE = 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?'; +const UNSTABLE_REVALIDATE_RENAME_ERROR = 'The `unstable_revalidate` property is available for general use.\n' + 'Please use `revalidate` instead.'; +const GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`; +const NON_STANDARD_NODE_ENV = `You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`; +const SSG_FALLBACK_EXPORT_ERROR = `Pages with \`fallback\` enabled in \`getStaticPaths\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`; +const ESLINT_DEFAULT_DIRS = [ + 'app', + 'pages', + 'components', + 'lib', + 'src' +]; +const SERVER_RUNTIME = { + edge: 'edge', + experimentalEdge: 'experimental-edge', + nodejs: 'nodejs' +}; +const WEB_SOCKET_MAX_RECONNECTIONS = 12; +/** + * The names of the webpack layers. These layers are the primitives for the + * webpack chunks. + */ const WEBPACK_LAYERS_NAMES = { + /** + * The layer for the shared code between the client and server bundles. + */ shared: 'shared', + /** + * The layer for server-only runtime and picking up `react-server` export conditions. + * Including app router RSC pages and app router custom routes and metadata routes. + */ reactServerComponents: 'rsc', + /** + * Server Side Rendering layer for app (ssr). + */ serverSideRendering: 'ssr', + /** + * The browser client bundle layer for actions. + */ actionBrowser: 'action-browser', + /** + * The Node.js bundle layer for the API routes. + */ apiNode: 'api-node', + /** + * The Edge Lite bundle layer for the API routes. + */ apiEdge: 'api-edge', + /** + * The layer for the middleware code. + */ middleware: 'middleware', + /** + * The layer for the instrumentation hooks. + */ instrument: 'instrument', + /** + * The layer for assets on the edge. + */ edgeAsset: 'edge-asset', + /** + * The browser client bundle layer for App directory. + */ appPagesBrowser: 'app-pages-browser', + /** + * The browser client bundle layer for Pages directory. + */ pagesDirBrowser: 'pages-dir-browser', + /** + * The Edge Lite bundle layer for Pages directory. + */ pagesDirEdge: 'pages-dir-edge', + /** + * The Node.js bundle layer for Pages directory. + */ pagesDirNode: 'pages-dir-node' +}; +const WEBPACK_LAYERS = { + ...WEBPACK_LAYERS_NAMES, + GROUP: { + builtinReact: [ + WEBPACK_LAYERS_NAMES.reactServerComponents, + WEBPACK_LAYERS_NAMES.actionBrowser + ], + serverOnly: [ + WEBPACK_LAYERS_NAMES.reactServerComponents, + WEBPACK_LAYERS_NAMES.actionBrowser, + WEBPACK_LAYERS_NAMES.instrument, + WEBPACK_LAYERS_NAMES.middleware + ], + neutralTarget: [ + // pages api + WEBPACK_LAYERS_NAMES.apiNode, + WEBPACK_LAYERS_NAMES.apiEdge + ], + clientOnly: [ + WEBPACK_LAYERS_NAMES.serverSideRendering, + WEBPACK_LAYERS_NAMES.appPagesBrowser + ], + bundled: [ + WEBPACK_LAYERS_NAMES.reactServerComponents, + WEBPACK_LAYERS_NAMES.actionBrowser, + WEBPACK_LAYERS_NAMES.serverSideRendering, + WEBPACK_LAYERS_NAMES.appPagesBrowser, + WEBPACK_LAYERS_NAMES.shared, + WEBPACK_LAYERS_NAMES.instrument, + WEBPACK_LAYERS_NAMES.middleware + ], + appPages: [ + // app router pages and layouts + WEBPACK_LAYERS_NAMES.reactServerComponents, + WEBPACK_LAYERS_NAMES.serverSideRendering, + WEBPACK_LAYERS_NAMES.appPagesBrowser, + WEBPACK_LAYERS_NAMES.actionBrowser + ] + } +}; +const WEBPACK_RESOURCE_QUERIES = { + edgeSSREntry: '__next_edge_ssr_entry__', + metadata: '__next_metadata__', + metadataRoute: '__next_metadata_route__', + metadataImageMeta: '__next_metadata_image_meta__' +}; +; + //# sourceMappingURL=constants.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/module.compiled.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable +; +else { + if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable + ; + else { + if ("TURBOPACK compile-time truthy", 1) { + if ("TURBOPACK compile-time truthy", 1) { + module.exports = __turbopack_context__.r("[externals]/next/dist/compiled/next-server/app-page-turbo.runtime.dev.js [external] (next/dist/compiled/next-server/app-page-turbo.runtime.dev.js, cjs)"); + } else //TURBOPACK unreachable + ; + } else //TURBOPACK unreachable + ; + } +} //# sourceMappingURL=module.compiled.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +module.exports = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/module.compiled.js [app-route] (ecmascript)").vendored['react-rsc'].React; //# sourceMappingURL=react.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/hooks-server-context.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "DynamicServerError", + ()=>DynamicServerError, + "isDynamicServerError", + ()=>isDynamicServerError +]); +const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'; +class DynamicServerError extends Error { + constructor(description){ + super(`Dynamic server usage: ${description}`), this.description = description, this.digest = DYNAMIC_ERROR_CODE; + } +} +function isDynamicServerError(err) { + if (typeof err !== 'object' || err === null || !('digest' in err) || typeof err.digest !== 'string') { + return false; + } + return err.digest === DYNAMIC_ERROR_CODE; +} //# sourceMappingURL=hooks-server-context.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/static-generation-bailout.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "StaticGenBailoutError", + ()=>StaticGenBailoutError, + "isStaticGenBailoutError", + ()=>isStaticGenBailoutError +]); +const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'; +class StaticGenBailoutError extends Error { + constructor(...args){ + super(...args), this.code = NEXT_STATIC_GEN_BAILOUT; + } +} +function isStaticGenBailoutError(error) { + if (typeof error !== 'object' || error === null || !('code' in error)) { + return false; + } + return error.code === NEXT_STATIC_GEN_BAILOUT; +} //# sourceMappingURL=static-generation-bailout.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/dynamic-rendering-utils.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "isHangingPromiseRejectionError", + ()=>isHangingPromiseRejectionError, + "makeDevtoolsIOAwarePromise", + ()=>makeDevtoolsIOAwarePromise, + "makeHangingPromise", + ()=>makeHangingPromise +]); +function isHangingPromiseRejectionError(err) { + if (typeof err !== 'object' || err === null || !('digest' in err)) { + return false; + } + return err.digest === HANGING_PROMISE_REJECTION; +} +const HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION'; +class HangingPromiseRejectionError extends Error { + constructor(route, expression){ + super(`During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${route}".`), this.route = route, this.expression = expression, this.digest = HANGING_PROMISE_REJECTION; + } +} +const abortListenersBySignal = new WeakMap(); +function makeHangingPromise(signal, route, expression) { + if (signal.aborted) { + return Promise.reject(new HangingPromiseRejectionError(route, expression)); + } else { + const hangingPromise = new Promise((_, reject)=>{ + const boundRejection = reject.bind(null, new HangingPromiseRejectionError(route, expression)); + let currentListeners = abortListenersBySignal.get(signal); + if (currentListeners) { + currentListeners.push(boundRejection); + } else { + const listeners = [ + boundRejection + ]; + abortListenersBySignal.set(signal, listeners); + signal.addEventListener('abort', ()=>{ + for(let i = 0; i < listeners.length; i++){ + listeners[i](); + } + }, { + once: true + }); + } + }); + // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so + // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct + // your own promise out of it you'll need to ensure you handle the error when it rejects. + hangingPromise.catch(ignoreReject); + return hangingPromise; + } +} +function ignoreReject() {} +function makeDevtoolsIOAwarePromise(underlying, requestStore, stage) { + if (requestStore.stagedRendering) { + // We resolve each stage in a timeout, so React DevTools will pick this up as IO. + return requestStore.stagedRendering.delayUntilStage(stage, undefined, underlying); + } + // in React DevTools if we resolve in a setTimeout we will observe + // the promise resolution as something that can suspend a boundary or root. + return new Promise((resolve)=>{ + // Must use setTimeout to be considered IO React DevTools. setImmediate will not work. + setTimeout(()=>{ + resolve(underlying); + }, 0); + }); +} //# sourceMappingURL=dynamic-rendering-utils.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-constants.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "METADATA_BOUNDARY_NAME", + ()=>METADATA_BOUNDARY_NAME, + "OUTLET_BOUNDARY_NAME", + ()=>OUTLET_BOUNDARY_NAME, + "ROOT_LAYOUT_BOUNDARY_NAME", + ()=>ROOT_LAYOUT_BOUNDARY_NAME, + "VIEWPORT_BOUNDARY_NAME", + ()=>VIEWPORT_BOUNDARY_NAME +]); +const METADATA_BOUNDARY_NAME = '__next_metadata_boundary__'; +const VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__'; +const OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__'; +const ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__'; //# sourceMappingURL=boundary-constants.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/scheduler.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * Schedules a function to be called on the next tick after the other promises + * have been resolved. + * + * @param cb the function to schedule + */ __turbopack_context__.s([ + "atLeastOneTask", + ()=>atLeastOneTask, + "scheduleImmediate", + ()=>scheduleImmediate, + "scheduleOnNextTick", + ()=>scheduleOnNextTick, + "waitAtLeastOneReactRenderTask", + ()=>waitAtLeastOneReactRenderTask +]); +const scheduleOnNextTick = (cb)=>{ + // We use Promise.resolve().then() here so that the operation is scheduled at + // the end of the promise job queue, we then add it to the next process tick + // to ensure it's evaluated afterwards. + // + // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255 + // + Promise.resolve().then(()=>{ + if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable + ; + else { + process.nextTick(cb); + } + }); +}; +const scheduleImmediate = (cb)=>{ + if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable + ; + else { + setImmediate(cb); + } +}; +function atLeastOneTask() { + return new Promise((resolve)=>scheduleImmediate(resolve)); +} +function waitAtLeastOneReactRenderTask() { + if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable + ; + else { + return new Promise((r)=>setImmediate(r)); + } +} //# sourceMappingURL=scheduler.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +// This has to be a shared module which is shared between client component error boundary and dynamic component +__turbopack_context__.s([ + "BailoutToCSRError", + ()=>BailoutToCSRError, + "isBailoutToCSRError", + ()=>isBailoutToCSRError +]); +const BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING'; +class BailoutToCSRError extends Error { + constructor(reason){ + super(`Bail out to client-side rendering: ${reason}`), this.reason = reason, this.digest = BAILOUT_TO_CSR; + } +} +function isBailoutToCSRError(err) { + if (typeof err !== 'object' || err === null || !('digest' in err)) { + return false; + } + return err.digest === BAILOUT_TO_CSR; +} //# sourceMappingURL=bailout-to-csr.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/invariant-error.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "InvariantError", + ()=>InvariantError +]); +class InvariantError extends Error { + constructor(message, options){ + super(`Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`, options); + this.name = 'InvariantError'; + } +} //# sourceMappingURL=invariant-error.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/promise-with-resolvers.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "createPromiseWithResolvers", + ()=>createPromiseWithResolvers +]); +function createPromiseWithResolvers() { + // Shim of Stage 4 Promise.withResolvers proposal + let resolve; + let reject; + const promise = new Promise((res, rej)=>{ + resolve = res; + reject = rej; + }); + return { + resolve: resolve, + reject: reject, + promise + }; +} //# sourceMappingURL=promise-with-resolvers.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/staged-rendering.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "RenderStage", + ()=>RenderStage, + "StagedRenderingController", + ()=>StagedRenderingController +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/invariant-error.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$promise$2d$with$2d$resolvers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/promise-with-resolvers.js [app-route] (ecmascript)"); +; +; +var RenderStage = /*#__PURE__*/ function(RenderStage) { + RenderStage[RenderStage["Static"] = 1] = "Static"; + RenderStage[RenderStage["Runtime"] = 2] = "Runtime"; + RenderStage[RenderStage["Dynamic"] = 3] = "Dynamic"; + return RenderStage; +}({}); +class StagedRenderingController { + constructor(abortSignal = null){ + this.abortSignal = abortSignal; + this.currentStage = 1; + this.runtimeStagePromise = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$promise$2d$with$2d$resolvers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["createPromiseWithResolvers"])(); + this.dynamicStagePromise = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$promise$2d$with$2d$resolvers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["createPromiseWithResolvers"])(); + if (abortSignal) { + abortSignal.addEventListener('abort', ()=>{ + const { reason } = abortSignal; + if (this.currentStage < 2) { + this.runtimeStagePromise.promise.catch(ignoreReject) // avoid unhandled rejections + ; + this.runtimeStagePromise.reject(reason); + } + if (this.currentStage < 3) { + this.dynamicStagePromise.promise.catch(ignoreReject) // avoid unhandled rejections + ; + this.dynamicStagePromise.reject(reason); + } + }, { + once: true + }); + } + } + advanceStage(stage) { + // If we're already at the target stage or beyond, do nothing. + // (this can happen e.g. if sync IO advanced us to the dynamic stage) + if (this.currentStage >= stage) { + return; + } + this.currentStage = stage; + // Note that we might be going directly from Static to Dynamic, + // so we need to resolve the runtime stage as well. + if (stage >= 2) { + this.runtimeStagePromise.resolve(); + } + if (stage >= 3) { + this.dynamicStagePromise.resolve(); + } + } + getStagePromise(stage) { + switch(stage){ + case 2: + { + return this.runtimeStagePromise.promise; + } + case 3: + { + return this.dynamicStagePromise.promise; + } + default: + { + stage; + throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["InvariantError"](`Invalid render stage: ${stage}`), "__NEXT_ERROR_CODE", { + value: "E881", + enumerable: false, + configurable: true + }); + } + } + } + waitForStage(stage) { + return this.getStagePromise(stage); + } + delayUntilStage(stage, displayName, resolvedValue) { + const ioTriggerPromise = this.getStagePromise(stage); + const promise = makeDevtoolsIOPromiseFromIOTrigger(ioTriggerPromise, displayName, resolvedValue); + // Analogously to `makeHangingPromise`, we might reject this promise if the signal is invoked. + // (e.g. in the case where we don't want want the render to proceed to the dynamic stage and abort it). + // We shouldn't consider this an unhandled rejection, so we attach a noop catch handler here to suppress this warning. + if (this.abortSignal) { + promise.catch(ignoreReject); + } + return promise; + } +} +function ignoreReject() {} +// TODO(restart-on-cache-miss): the layering of `delayUntilStage`, +// `makeDevtoolsIOPromiseFromIOTrigger` and and `makeDevtoolsIOAwarePromise` +// is confusing, we should clean it up. +function makeDevtoolsIOPromiseFromIOTrigger(ioTrigger, displayName, resolvedValue) { + // If we create a `new Promise` and give it a displayName + // (with no userspace code above us in the stack) + // React Devtools will use it as the IO cause when determining "suspended by". + // In particular, it should shadow any inner IO that resolved/rejected the promise + // (in case of staged rendering, this will be the `setTimeout` that triggers the relevant stage) + const promise = new Promise((resolve, reject)=>{ + ioTrigger.then(resolve.bind(null, resolvedValue), reject); + }); + if (displayName !== undefined) { + // @ts-expect-error + promise.displayName = displayName; + } + return promise; +} //# sourceMappingURL=staged-rendering.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/dynamic-rendering.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * The functions provided by this module are used to communicate certain properties + * about the currently running code so that Next.js can make decisions on how to handle + * the current execution in different rendering modes such as pre-rendering, resuming, and SSR. + * + * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering. + * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts + * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of + * Dynamic indications. + * + * The first is simply an intention to be dynamic. unstable_noStore is an example of this where + * the currently executing code simply declares that the current scope is dynamic but if you use it + * inside unstable_cache it can still be cached. This type of indication can be removed if we ever + * make the default dynamic to begin with because the only way you would ever be static is inside + * a cache scope which this indication does not affect. + * + * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic + * because it means that it is inappropriate to cache this at all. using a dynamic data source inside + * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should + * read that data outside the cache and pass it in as an argument to the cached function. + */ // Once postpone is in stable we should switch to importing the postpone export directly +__turbopack_context__.s([ + "Postpone", + ()=>Postpone, + "PreludeState", + ()=>PreludeState, + "abortAndThrowOnSynchronousRequestDataAccess", + ()=>abortAndThrowOnSynchronousRequestDataAccess, + "abortOnSynchronousPlatformIOAccess", + ()=>abortOnSynchronousPlatformIOAccess, + "accessedDynamicData", + ()=>accessedDynamicData, + "annotateDynamicAccess", + ()=>annotateDynamicAccess, + "consumeDynamicAccess", + ()=>consumeDynamicAccess, + "createDynamicTrackingState", + ()=>createDynamicTrackingState, + "createDynamicValidationState", + ()=>createDynamicValidationState, + "createHangingInputAbortSignal", + ()=>createHangingInputAbortSignal, + "createRenderInBrowserAbortSignal", + ()=>createRenderInBrowserAbortSignal, + "delayUntilRuntimeStage", + ()=>delayUntilRuntimeStage, + "formatDynamicAPIAccesses", + ()=>formatDynamicAPIAccesses, + "getFirstDynamicReason", + ()=>getFirstDynamicReason, + "isDynamicPostpone", + ()=>isDynamicPostpone, + "isPrerenderInterruptedError", + ()=>isPrerenderInterruptedError, + "logDisallowedDynamicError", + ()=>logDisallowedDynamicError, + "markCurrentScopeAsDynamic", + ()=>markCurrentScopeAsDynamic, + "postponeWithTracking", + ()=>postponeWithTracking, + "throwIfDisallowedDynamic", + ()=>throwIfDisallowedDynamic, + "throwToInterruptStaticGeneration", + ()=>throwToInterruptStaticGeneration, + "trackAllowedDynamicAccess", + ()=>trackAllowedDynamicAccess, + "trackDynamicDataInDynamicRender", + ()=>trackDynamicDataInDynamicRender, + "trackSynchronousPlatformIOAccessInDev", + ()=>trackSynchronousPlatformIOAccessInDev, + "useDynamicRouteParams", + ()=>useDynamicRouteParams, + "useDynamicSearchParams", + ()=>useDynamicSearchParams +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$hooks$2d$server$2d$context$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/hooks-server-context.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/static-generation-bailout.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)"); +var __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/dynamic-rendering-utils.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-constants.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$scheduler$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/scheduler.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$lazy$2d$dynamic$2f$bailout$2d$to$2d$csr$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/invariant-error.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$staged$2d$rendering$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/staged-rendering.js [app-route] (ecmascript)"); +; +; +; +; +; +; +; +; +; +; +; +const hasPostpone = typeof __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].unstable_postpone === 'function'; +function createDynamicTrackingState(isDebugDynamicAccesses) { + return { + isDebugDynamicAccesses, + dynamicAccesses: [], + syncDynamicErrorWithStack: null + }; +} +function createDynamicValidationState() { + return { + hasSuspenseAboveBody: false, + hasDynamicMetadata: false, + hasDynamicViewport: false, + hasAllowedDynamic: false, + dynamicErrors: [] + }; +} +function getFirstDynamicReason(trackingState) { + var _trackingState_dynamicAccesses_; + return (_trackingState_dynamicAccesses_ = trackingState.dynamicAccesses[0]) == null ? void 0 : _trackingState_dynamicAccesses_.expression; +} +function markCurrentScopeAsDynamic(store, workUnitStore, expression) { + if (workUnitStore) { + switch(workUnitStore.type){ + case 'cache': + case 'unstable-cache': + // Inside cache scopes, marking a scope as dynamic has no effect, + // because the outer cache scope creates a cache boundary. This is + // subtly different from reading a dynamic data source, which is + // forbidden inside a cache scope. + return; + case 'private-cache': + // A private cache scope is already dynamic by definition. + return; + case 'prerender-legacy': + case 'prerender-ppr': + case 'request': + break; + default: + workUnitStore; + } + } + // If we're forcing dynamic rendering or we're forcing static rendering, we + // don't need to do anything here because the entire page is already dynamic + // or it's static and it should not throw or postpone here. + if (store.forceDynamic || store.forceStatic) return; + if (store.dynamicShouldError) { + throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["StaticGenBailoutError"](`Route ${store.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), "__NEXT_ERROR_CODE", { + value: "E553", + enumerable: false, + configurable: true + }); + } + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender-ppr': + return postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking); + case 'prerender-legacy': + workUnitStore.revalidate = 0; + // We aren't prerendering, but we are generating a static page. We need + // to bail out of static generation. + const err = Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$hooks$2d$server$2d$context$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["DynamicServerError"](`Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), "__NEXT_ERROR_CODE", { + value: "E550", + enumerable: false, + configurable: true + }); + store.dynamicUsageDescription = expression; + store.dynamicUsageStack = err.stack; + throw err; + case 'request': + if ("TURBOPACK compile-time truthy", 1) { + workUnitStore.usedDynamic = true; + } + break; + default: + workUnitStore; + } + } +} +function throwToInterruptStaticGeneration(expression, store, prerenderStore) { + // We aren't prerendering but we are generating a static page. We need to bail out of static generation + const err = Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$hooks$2d$server$2d$context$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["DynamicServerError"](`Route ${store.route} couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), "__NEXT_ERROR_CODE", { + value: "E558", + enumerable: false, + configurable: true + }); + prerenderStore.revalidate = 0; + store.dynamicUsageDescription = expression; + store.dynamicUsageStack = err.stack; + throw err; +} +function trackDynamicDataInDynamicRender(workUnitStore) { + switch(workUnitStore.type){ + case 'cache': + case 'unstable-cache': + // Inside cache scopes, marking a scope as dynamic has no effect, + // because the outer cache scope creates a cache boundary. This is + // subtly different from reading a dynamic data source, which is + // forbidden inside a cache scope. + return; + case 'private-cache': + // A private cache scope is already dynamic by definition. + return; + case 'prerender': + case 'prerender-runtime': + case 'prerender-legacy': + case 'prerender-ppr': + case 'prerender-client': + break; + case 'request': + if ("TURBOPACK compile-time truthy", 1) { + workUnitStore.usedDynamic = true; + } + break; + default: + workUnitStore; + } +} +function abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore) { + const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`; + const error = createPrerenderInterruptedError(reason); + prerenderStore.controller.abort(error); + const dynamicTracking = prerenderStore.dynamicTracking; + if (dynamicTracking) { + dynamicTracking.dynamicAccesses.push({ + // When we aren't debugging, we don't need to create another error for the + // stack trace. + stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined, + expression + }); + } +} +function abortOnSynchronousPlatformIOAccess(route, expression, errorWithStack, prerenderStore) { + const dynamicTracking = prerenderStore.dynamicTracking; + abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore); + // It is important that we set this tracking value after aborting. Aborts are executed + // synchronously except for the case where you abort during render itself. By setting this + // value late we can use it to determine if any of the aborted tasks are the task that + // called the sync IO expression in the first place. + if (dynamicTracking) { + if (dynamicTracking.syncDynamicErrorWithStack === null) { + dynamicTracking.syncDynamicErrorWithStack = errorWithStack; + } + } +} +function trackSynchronousPlatformIOAccessInDev(requestStore) { + // We don't actually have a controller to abort but we do the semantic equivalent by + // advancing the request store out of the prerender stage + if (requestStore.stagedRendering) { + // TODO: error for sync IO in the runtime stage + // (which is not currently covered by the validation render in `spawnDynamicValidationInDev`) + requestStore.stagedRendering.advanceStage(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$staged$2d$rendering$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RenderStage"].Dynamic); + } +} +function abortAndThrowOnSynchronousRequestDataAccess(route, expression, errorWithStack, prerenderStore) { + const prerenderSignal = prerenderStore.controller.signal; + if (prerenderSignal.aborted === false) { + // TODO it would be better to move this aborted check into the callsite so we can avoid making + // the error object when it isn't relevant to the aborting of the prerender however + // since we need the throw semantics regardless of whether we abort it is easier to land + // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer + // to ideal implementation + abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore); + // It is important that we set this tracking value after aborting. Aborts are executed + // synchronously except for the case where you abort during render itself. By setting this + // value late we can use it to determine if any of the aborted tasks are the task that + // called the sync IO expression in the first place. + const dynamicTracking = prerenderStore.dynamicTracking; + if (dynamicTracking) { + if (dynamicTracking.syncDynamicErrorWithStack === null) { + dynamicTracking.syncDynamicErrorWithStack = errorWithStack; + } + } + } + throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`); +} +function Postpone({ reason, route }) { + const prerenderStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workUnitAsyncStorage"].getStore(); + const dynamicTracking = prerenderStore && prerenderStore.type === 'prerender-ppr' ? prerenderStore.dynamicTracking : null; + postponeWithTracking(route, reason, dynamicTracking); +} +function postponeWithTracking(route, expression, dynamicTracking) { + assertPostpone(); + if (dynamicTracking) { + dynamicTracking.dynamicAccesses.push({ + // When we aren't debugging, we don't need to create another error for the + // stack trace. + stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined, + expression + }); + } + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].unstable_postpone(createPostponeReason(route, expression)); +} +function createPostponeReason(route, expression) { + return `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` + `React throws this special object to indicate where. It should not be caught by ` + `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`; +} +function isDynamicPostpone(err) { + if (typeof err === 'object' && err !== null && typeof err.message === 'string') { + return isDynamicPostponeReason(err.message); + } + return false; +} +function isDynamicPostponeReason(reason) { + return reason.includes('needs to bail out of prerendering at this point because it used') && reason.includes('Learn more: https://nextjs.org/docs/messages/ppr-caught-error'); +} +if (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) { + throw Object.defineProperty(new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'), "__NEXT_ERROR_CODE", { + value: "E296", + enumerable: false, + configurable: true + }); +} +const NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED'; +function createPrerenderInterruptedError(message) { + const error = Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + error.digest = NEXT_PRERENDER_INTERRUPTED; + return error; +} +function isPrerenderInterruptedError(error) { + return typeof error === 'object' && error !== null && error.digest === NEXT_PRERENDER_INTERRUPTED && 'name' in error && 'message' in error && error instanceof Error; +} +function accessedDynamicData(dynamicAccesses) { + return dynamicAccesses.length > 0; +} +function consumeDynamicAccess(serverDynamic, clientDynamic) { + // We mutate because we only call this once we are no longer writing + // to the dynamicTrackingState and it's more efficient than creating a new + // array. + serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses); + return serverDynamic.dynamicAccesses; +} +function formatDynamicAPIAccesses(dynamicAccesses) { + return dynamicAccesses.filter((access)=>typeof access.stack === 'string' && access.stack.length > 0).map(({ expression, stack })=>{ + stack = stack.split('\n') // Remove the "Error: " prefix from the first line of the stack trace as + // well as the first 4 lines of the stack trace which is the distance + // from the user code and the `new Error().stack` call. + .slice(4).filter((line)=>{ + // Exclude Next.js internals from the stack trace. + if (line.includes('node_modules/next/')) { + return false; + } + // Exclude anonymous functions from the stack trace. + if (line.includes(' ()')) { + return false; + } + // Exclude Node.js internals from the stack trace. + if (line.includes(' (node:')) { + return false; + } + return true; + }).join('\n'); + return `Dynamic API Usage Debug - ${expression}:\n${stack}`; + }); +} +function assertPostpone() { + if (!hasPostpone) { + throw Object.defineProperty(new Error(`Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`), "__NEXT_ERROR_CODE", { + value: "E224", + enumerable: false, + configurable: true + }); + } +} +function createRenderInBrowserAbortSignal() { + const controller = new AbortController(); + controller.abort(Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$lazy$2d$dynamic$2f$bailout$2d$to$2d$csr$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["BailoutToCSRError"]('Render in Browser'), "__NEXT_ERROR_CODE", { + value: "E721", + enumerable: false, + configurable: true + })); + return controller.signal; +} +function createHangingInputAbortSignal(workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-runtime': + const controller = new AbortController(); + if (workUnitStore.cacheSignal) { + // If we have a cacheSignal it means we're in a prospective render. If + // the input we're waiting on is coming from another cache, we do want + // to wait for it so that we can resolve this cache entry too. + workUnitStore.cacheSignal.inputReady().then(()=>{ + controller.abort(); + }); + } else { + // Otherwise we're in the final render and we should already have all + // our caches filled. + // If the prerender uses stages, we have wait until the runtime stage, + // at which point all runtime inputs will be resolved. + // (otherwise, a runtime prerender might consider `cookies()` hanging + // even though they'd resolve in the next task.) + // + // We might still be waiting on some microtasks so we + // wait one tick before giving up. When we give up, we still want to + // render the content of this cache as deeply as we can so that we can + // suspend as deeply as possible in the tree or not at all if we don't + // end up waiting for the input. + const runtimeStagePromise = (0, __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["getRuntimeStagePromise"])(workUnitStore); + if (runtimeStagePromise) { + runtimeStagePromise.then(()=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$scheduler$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["scheduleOnNextTick"])(()=>controller.abort())); + } else { + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$scheduler$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["scheduleOnNextTick"])(()=>controller.abort()); + } + } + return controller.signal; + case 'prerender-client': + case 'prerender-ppr': + case 'prerender-legacy': + case 'request': + case 'cache': + case 'private-cache': + case 'unstable-cache': + return undefined; + default: + workUnitStore; + } +} +function annotateDynamicAccess(expression, prerenderStore) { + const dynamicTracking = prerenderStore.dynamicTracking; + if (dynamicTracking) { + dynamicTracking.dynamicAccesses.push({ + stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined, + expression + }); + } +} +function useDynamicRouteParams(expression) { + const workStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workAsyncStorage"].getStore(); + const workUnitStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workUnitAsyncStorage"].getStore(); + if (workStore && workUnitStore) { + switch(workUnitStore.type){ + case 'prerender-client': + case 'prerender': + { + const fallbackParams = workUnitStore.fallbackRouteParams; + if (fallbackParams && fallbackParams.size > 0) { + // We are in a prerender with cacheComponents semantics. We are going to + // hang here and never resolve. This will cause the currently + // rendering component to effectively be a dynamic hole. + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].use((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["makeHangingPromise"])(workUnitStore.renderSignal, workStore.route, expression)); + } + break; + } + case 'prerender-ppr': + { + const fallbackParams = workUnitStore.fallbackRouteParams; + if (fallbackParams && fallbackParams.size > 0) { + return postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking); + } + break; + } + case 'prerender-runtime': + throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["InvariantError"](`\`${expression}\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E771", + enumerable: false, + configurable: true + }); + case 'cache': + case 'private-cache': + throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["InvariantError"](`\`${expression}\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E745", + enumerable: false, + configurable: true + }); + case 'prerender-legacy': + case 'request': + case 'unstable-cache': + break; + default: + workUnitStore; + } + } +} +function useDynamicSearchParams(expression) { + const workStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workAsyncStorage"].getStore(); + const workUnitStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workUnitAsyncStorage"].getStore(); + if (!workStore) { + // We assume pages router context and just return + return; + } + if (!workUnitStore) { + (0, __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["throwForMissingRequestStore"])(expression); + } + switch(workUnitStore.type){ + case 'prerender-client': + { + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].use((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["makeHangingPromise"])(workUnitStore.renderSignal, workStore.route, expression)); + break; + } + case 'prerender-legacy': + case 'prerender-ppr': + { + if (workStore.forceStatic) { + return; + } + throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$lazy$2d$dynamic$2f$bailout$2d$to$2d$csr$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["BailoutToCSRError"](expression), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + case 'prerender': + case 'prerender-runtime': + throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["InvariantError"](`\`${expression}\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E795", + enumerable: false, + configurable: true + }); + case 'cache': + case 'unstable-cache': + case 'private-cache': + throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["InvariantError"](`\`${expression}\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E745", + enumerable: false, + configurable: true + }); + case 'request': + return; + default: + workUnitStore; + } +} +const hasSuspenseRegex = /\n\s+at Suspense \(\)/; +// Common implicit body tags that React will treat as body when placed directly in html +const bodyAndImplicitTags = 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6'; +// Detects when RootLayoutBoundary (our framework marker component) appears +// after Suspense in the component stack, indicating the root layout is wrapped +// within a Suspense boundary. Ensures no body/html/implicit-body components are in between. +// +// Example matches: +// at Suspense () +// at __next_root_layout_boundary__ () +// +// Or with other components in between (but not body/html/implicit-body): +// at Suspense () +// at SomeComponent () +// at __next_root_layout_boundary__ () +const hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(`\\n\\s+at Suspense \\(\\)(?:(?!\\n\\s+at (?:${bodyAndImplicitTags}) \\(\\))[\\s\\S])*?\\n\\s+at ${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ROOT_LAYOUT_BOUNDARY_NAME"]} \\([^\\n]*\\)`); +const hasMetadataRegex = new RegExp(`\\n\\s+at ${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["METADATA_BOUNDARY_NAME"]}[\\n\\s]`); +const hasViewportRegex = new RegExp(`\\n\\s+at ${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["VIEWPORT_BOUNDARY_NAME"]}[\\n\\s]`); +const hasOutletRegex = new RegExp(`\\n\\s+at ${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["OUTLET_BOUNDARY_NAME"]}[\\n\\s]`); +function trackAllowedDynamicAccess(workStore, componentStack, dynamicValidation, clientDynamic) { + if (hasOutletRegex.test(componentStack)) { + // We don't need to track that this is dynamic. It is only so when something else is also dynamic. + return; + } else if (hasMetadataRegex.test(componentStack)) { + dynamicValidation.hasDynamicMetadata = true; + return; + } else if (hasViewportRegex.test(componentStack)) { + dynamicValidation.hasDynamicViewport = true; + return; + } else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) { + // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule. + // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense + // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering. + dynamicValidation.hasAllowedDynamic = true; + dynamicValidation.hasSuspenseAboveBody = true; + return; + } else if (hasSuspenseRegex.test(componentStack)) { + // this error had a Suspense boundary above it so we don't need to report it as a source + // of disallowed + dynamicValidation.hasAllowedDynamic = true; + return; + } else if (clientDynamic.syncDynamicErrorWithStack) { + // This task was the task that called the sync error. + dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack); + return; + } else { + const message = `Route "${workStore.route}": Uncached data was accessed outside of ` + '. This delays the entire page from rendering, resulting in a ' + 'slow user experience. Learn more: ' + 'https://nextjs.org/docs/messages/blocking-route'; + const error = createErrorWithComponentOrOwnerStack(message, componentStack); + dynamicValidation.dynamicErrors.push(error); + return; + } +} +/** + * In dev mode, we prefer using the owner stack, otherwise the provided + * component stack is used. + */ function createErrorWithComponentOrOwnerStack(message, componentStack) { + const ownerStack = ("TURBOPACK compile-time value", "development") !== 'production' && __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].captureOwnerStack ? __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].captureOwnerStack() : null; + const error = Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + error.stack = error.name + ': ' + message + (ownerStack ?? componentStack); + return error; +} +var PreludeState = /*#__PURE__*/ function(PreludeState) { + PreludeState[PreludeState["Full"] = 0] = "Full"; + PreludeState[PreludeState["Empty"] = 1] = "Empty"; + PreludeState[PreludeState["Errored"] = 2] = "Errored"; + return PreludeState; +}({}); +function logDisallowedDynamicError(workStore, error) { + console.error(error); + if (!workStore.dev) { + if (workStore.hasReadableErrorStacks) { + console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${workStore.route}" in your browser to investigate the error.`); + } else { + console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following: + - Start the app in development mode by running \`next dev\`, then open "${workStore.route}" in your browser to investigate the error. + - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`); + } + } +} +function throwIfDisallowedDynamic(workStore, prelude, dynamicValidation, serverDynamic) { + if (serverDynamic.syncDynamicErrorWithStack) { + logDisallowedDynamicError(workStore, serverDynamic.syncDynamicErrorWithStack); + throw new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["StaticGenBailoutError"](); + } + if (prelude !== 0) { + if (dynamicValidation.hasSuspenseAboveBody) { + // This route has opted into allowing fully dynamic rendering + // by including a Suspense boundary above the body. In this case + // a lack of a shell is not considered disallowed so we simply return + return; + } + // We didn't have any sync bailouts but there may be user code which + // blocked the root. We would have captured these during the prerender + // and can log them here and then terminate the build/validating render + const dynamicErrors = dynamicValidation.dynamicErrors; + if (dynamicErrors.length > 0) { + for(let i = 0; i < dynamicErrors.length; i++){ + logDisallowedDynamicError(workStore, dynamicErrors[i]); + } + throw new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["StaticGenBailoutError"](); + } + // If we got this far then the only other thing that could be blocking + // the root is dynamic Viewport. If this is dynamic then + // you need to opt into that by adding a Suspense boundary above the body + // to indicate your are ok with fully dynamic rendering. + if (dynamicValidation.hasDynamicViewport) { + console.error(`Route "${workStore.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`); + throw new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["StaticGenBailoutError"](); + } + if (prelude === 1) { + // If we ever get this far then we messed up the tracking of invalid dynamic. + // We still adhere to the constraint that you must produce a shell but invite the + // user to report this as a bug in Next.js. + console.error(`Route "${workStore.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`); + throw new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["StaticGenBailoutError"](); + } + } else { + if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.hasDynamicMetadata) { + console.error(`Route "${workStore.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`); + throw new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["StaticGenBailoutError"](); + } + } +} +function delayUntilRuntimeStage(prerenderStore, result) { + if (prerenderStore.runtimeStagePromise) { + return prerenderStore.runtimeStagePromise.then(()=>result); + } + return result; +} //# sourceMappingURL=dynamic-rendering.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/clone-response.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "cloneResponse", + ()=>cloneResponse +]); +const noop = ()=>{}; +let registry; +if (globalThis.FinalizationRegistry) { + registry = new FinalizationRegistry((weakRef)=>{ + const stream = weakRef.deref(); + if (stream && !stream.locked) { + stream.cancel('Response object has been garbage collected').then(noop); + } + }); +} +function cloneResponse(original) { + // If the response has no body, then we can just return the original response + // twice because it's immutable. + if (!original.body) { + return [ + original, + original + ]; + } + const [body1, body2] = original.body.tee(); + const cloned1 = new Response(body1, { + status: original.status, + statusText: original.statusText, + headers: original.headers + }); + Object.defineProperty(cloned1, 'url', { + value: original.url, + // How the original response.url behaves + configurable: true, + enumerable: true, + writable: false + }); + // The Fetch Standard allows users to skip consuming the response body by + // relying on garbage collection to release connection resources. + // https://github.com/nodejs/undici?tab=readme-ov-file#garbage-collection + // + // To cancel the stream you then need to cancel both resulting branches. + // Teeing a stream will generally lock it for the duration, preventing other + // readers from locking it. + // https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/tee + // cloned2 is stored in a react cache and cloned for subsequent requests. + // It is the original request, and is is garbage collected by a + // FinalizationRegistry in Undici, but since we're tee-ing the stream + // ourselves, we need to cancel clone1's stream (the response returned from + // our dedupe fetch) when clone1 is reclaimed, otherwise we leak memory. + if (registry && cloned1.body) { + registry.register(cloned1, new WeakRef(cloned1.body)); + } + const cloned2 = new Response(body2, { + status: original.status, + statusText: original.statusText, + headers: original.headers + }); + Object.defineProperty(cloned2, 'url', { + value: original.url, + // How the original response.url behaves + configurable: true, + enumerable: true, + writable: false + }); + return [ + cloned1, + cloned2 + ]; +} //# sourceMappingURL=clone-response.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/dedupe-fetch.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * Based on https://github.com/facebook/react/blob/d4e78c42a94be027b4dc7ed2659a5fddfbf9bd4e/packages/react/src/ReactFetch.js + */ __turbopack_context__.s([ + "createDedupeFetch", + ()=>createDedupeFetch +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$clone$2d$response$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/clone-response.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/invariant-error.js [app-route] (ecmascript)"); +; +; +; +const simpleCacheKey = '["GET",[],null,"follow",null,null,null,null]' // generateCacheKey(new Request('https://blank')); +; +// Headers that should not affect deduplication +// traceparent and tracestate are used for distributed tracing and should not affect cache keys +const headersToExcludeInCacheKey = new Set([ + 'traceparent', + 'tracestate' +]); +function generateCacheKey(request) { + // We pick the fields that goes into the key used to dedupe requests. + // We don't include the `cache` field, because we end up using whatever + // caching resulted from the first request. + // Notably we currently don't consider non-standard (or future) options. + // This might not be safe. TODO: warn for non-standard extensions differing. + // IF YOU CHANGE THIS UPDATE THE simpleCacheKey ABOVE. + const filteredHeaders = Array.from(request.headers.entries()).filter(([key])=>!headersToExcludeInCacheKey.has(key.toLowerCase())); + return JSON.stringify([ + request.method, + filteredHeaders, + request.mode, + request.redirect, + request.credentials, + request.referrer, + request.referrerPolicy, + request.integrity + ]); +} +function createDedupeFetch(originalFetch) { + const getCacheEntries = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["cache"]((url)=>[]); + return function dedupeFetch(resource, options) { + if (options && options.signal) { + // If we're passed a signal, then we assume that + // someone else controls the lifetime of this object and opts out of + // caching. It's effectively the opt-out mechanism. + // Ideally we should be able to check this on the Request but + // it always gets initialized with its own signal so we don't + // know if it's supposed to override - unless we also override the + // Request constructor. + return originalFetch(resource, options); + } + // Normalize the Request + let url; + let cacheKey; + if (typeof resource === 'string' && !options) { + // Fast path. + cacheKey = simpleCacheKey; + url = resource; + } else { + // Normalize the request. + // if resource is not a string or a URL (its an instance of Request) + // then do not instantiate a new Request but instead + // reuse the request as to not disturb the body in the event it's a ReadableStream. + const request = typeof resource === 'string' || resource instanceof URL ? new Request(resource, options) : resource; + if (request.method !== 'GET' && request.method !== 'HEAD' || request.keepalive) { + // We currently don't dedupe requests that might have side-effects. Those + // have to be explicitly cached. We assume that the request doesn't have a + // body if it's GET or HEAD. + // keepalive gets treated the same as if you passed a custom cache signal. + return originalFetch(resource, options); + } + cacheKey = generateCacheKey(request); + url = request.url; + } + const cacheEntries = getCacheEntries(url); + for(let i = 0, j = cacheEntries.length; i < j; i += 1){ + const [key, promise] = cacheEntries[i]; + if (key === cacheKey) { + return promise.then(()=>{ + const response = cacheEntries[i][2]; + if (!response) throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["InvariantError"]('No cached response'), "__NEXT_ERROR_CODE", { + value: "E579", + enumerable: false, + configurable: true + }); + // We're cloning the response using this utility because there exists + // a bug in the undici library around response cloning. See the + // following pull request for more details: + // https://github.com/vercel/next.js/pull/73274 + const [cloned1, cloned2] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$clone$2d$response$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["cloneResponse"])(response); + cacheEntries[i][2] = cloned2; + return cloned1; + }); + } + } + // We pass the original arguments here in case normalizing the Request + // doesn't include all the options in this environment. + const promise = originalFetch(resource, options); + const entry = [ + cacheKey, + promise, + null + ]; + cacheEntries.push(entry); + return promise.then((response)=>{ + // We're cloning the response using this utility because there exists + // a bug in the undici library around response cloning. See the + // following pull request for more details: + // https://github.com/vercel/next.js/pull/73274 + const [cloned1, cloned2] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$clone$2d$response$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["cloneResponse"])(response); + entry[2] = cloned2; + return cloned1; + }); + }; +} //# sourceMappingURL=dedupe-fetch.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/detached-promise.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * A `Promise.withResolvers` implementation that exposes the `resolve` and + * `reject` functions on a `Promise`. + * + * @see https://tc39.es/proposal-promise-with-resolvers/ + */ __turbopack_context__.s([ + "DetachedPromise", + ()=>DetachedPromise +]); +class DetachedPromise { + constructor(){ + let resolve; + let reject; + // Create the promise and assign the resolvers to the object. + this.promise = new Promise((res, rej)=>{ + resolve = res; + reject = rej; + }); + // We know that resolvers is defined because the Promise constructor runs + // synchronously. + this.resolve = resolve; + this.reject = reject; + } +} //# sourceMappingURL=detached-promise.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/batcher.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Batcher", + ()=>Batcher +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$detached$2d$promise$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/detached-promise.js [app-route] (ecmascript)"); +; +class Batcher { + constructor(cacheKeyFn, /** + * A function that will be called to schedule the wrapped function to be + * executed. This defaults to a function that will execute the function + * immediately. + */ schedulerFn = (fn)=>fn()){ + this.cacheKeyFn = cacheKeyFn; + this.schedulerFn = schedulerFn; + this.pending = new Map(); + } + static create(options) { + return new Batcher(options == null ? void 0 : options.cacheKeyFn, options == null ? void 0 : options.schedulerFn); + } + /** + * Wraps a function in a promise that will be resolved or rejected only once + * for a given key. This will allow multiple calls to the function to be + * made, but only one will be executed at a time. The result of the first + * call will be returned to all callers. + * + * @param key the key to use for the cache + * @param fn the function to wrap + * @returns a promise that resolves to the result of the function + */ async batch(key, fn) { + const cacheKey = this.cacheKeyFn ? await this.cacheKeyFn(key) : key; + if (cacheKey === null) { + return fn({ + resolve: (value)=>Promise.resolve(value), + key + }); + } + const pending = this.pending.get(cacheKey); + if (pending) return pending; + const { promise, resolve, reject } = new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$detached$2d$promise$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["DetachedPromise"](); + this.pending.set(cacheKey, promise); + this.schedulerFn(async ()=>{ + try { + const result = await fn({ + resolve, + key + }); + // Resolving a promise multiple times is a no-op, so we can safely + // resolve all pending promises with the same result. + resolve(result); + } catch (err) { + reject(err); + } finally{ + this.pending.delete(cacheKey); + } + }); + return promise; + } +} //# sourceMappingURL=batcher.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/response-cache/types.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "CachedRouteKind", + ()=>CachedRouteKind, + "IncrementalCacheKind", + ()=>IncrementalCacheKind +]); +var CachedRouteKind = /*#__PURE__*/ function(CachedRouteKind) { + CachedRouteKind["APP_PAGE"] = "APP_PAGE"; + CachedRouteKind["APP_ROUTE"] = "APP_ROUTE"; + CachedRouteKind["PAGES"] = "PAGES"; + CachedRouteKind["FETCH"] = "FETCH"; + CachedRouteKind["REDIRECT"] = "REDIRECT"; + CachedRouteKind["IMAGE"] = "IMAGE"; + return CachedRouteKind; +}({}); +var IncrementalCacheKind = /*#__PURE__*/ function(IncrementalCacheKind) { + IncrementalCacheKind["APP_PAGE"] = "APP_PAGE"; + IncrementalCacheKind["APP_ROUTE"] = "APP_ROUTE"; + IncrementalCacheKind["PAGES"] = "PAGES"; + IncrementalCacheKind["FETCH"] = "FETCH"; + IncrementalCacheKind["IMAGE"] = "IMAGE"; + return IncrementalCacheKind; +}({}); //# sourceMappingURL=types.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/stream-utils/encoded-tags.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "ENCODED_TAGS", + ()=>ENCODED_TAGS +]); +const ENCODED_TAGS = { + // opening tags do not have the closing `>` since they can contain other attributes such as `` + OPENING: { + // + HEAD: new Uint8Array([ + 60, + 47, + 104, + 101, + 97, + 100, + 62 + ]), + // + BODY: new Uint8Array([ + 60, + 47, + 98, + 111, + 100, + 121, + 62 + ]), + // + HTML: new Uint8Array([ + 60, + 47, + 104, + 116, + 109, + 108, + 62 + ]), + // + BODY_AND_HTML: new Uint8Array([ + 60, + 47, + 98, + 111, + 100, + 121, + 62, + 60, + 47, + 104, + 116, + 109, + 108, + 62 + ]) + }, + META: { + // Only the match the prefix cause the suffix can be different wether it's xml compatible or not ">" or "/>" + // { +"use strict"; + +/** + * Find the starting index of Uint8Array `b` within Uint8Array `a`. + */ __turbopack_context__.s([ + "indexOfUint8Array", + ()=>indexOfUint8Array, + "isEquivalentUint8Arrays", + ()=>isEquivalentUint8Arrays, + "removeFromUint8Array", + ()=>removeFromUint8Array +]); +function indexOfUint8Array(a, b) { + if (b.length === 0) return 0; + if (a.length === 0 || b.length > a.length) return -1; + // start iterating through `a` + for(let i = 0; i <= a.length - b.length; i++){ + let completeMatch = true; + // from index `i`, iterate through `b` and check for mismatch + for(let j = 0; j < b.length; j++){ + // if the values do not match, then this isn't a complete match, exit `b` iteration early and iterate to next index of `a`. + if (a[i + j] !== b[j]) { + completeMatch = false; + break; + } + } + if (completeMatch) { + return i; + } + } + return -1; +} +function isEquivalentUint8Arrays(a, b) { + if (a.length !== b.length) return false; + for(let i = 0; i < a.length; i++){ + if (a[i] !== b[i]) return false; + } + return true; +} +function removeFromUint8Array(a, b) { + const tagIndex = indexOfUint8Array(a, b); + if (tagIndex === 0) return a.subarray(b.length); + if (tagIndex > -1) { + const removed = new Uint8Array(a.length - b.length); + removed.set(a.slice(0, tagIndex)); + removed.set(a.slice(tagIndex + b.length), tagIndex); + return removed; + } else { + return a; + } +} //# sourceMappingURL=uint8array-helpers.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/errors/constants.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "MISSING_ROOT_TAGS_ERROR", + ()=>MISSING_ROOT_TAGS_ERROR +]); +const MISSING_ROOT_TAGS_ERROR = 'NEXT_MISSING_ROOT_TAGS'; //# sourceMappingURL=constants.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/segment-cache/output-export-prefetch-encoding.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +// In output: export mode, the build id is added to the start of the HTML +// document, directly after the doctype declaration. During a prefetch, the +// client performs a range request to get the build id, so it can check whether +// the target page belongs to the same build. +// +// The first 64 bytes of the document are requested. The exact number isn't +// too important; it must be larger than the build id + doctype + closing and +// ending comment markers, but it doesn't need to match the end of the +// comment exactly. +// +// Build ids are 21 bytes long in the default implementation, though this +// can be overridden in the Next.js config. For the purposes of this check, +// it's OK to only match the start of the id, so we'll truncate it if exceeds +// a certain length. +__turbopack_context__.s([ + "DOC_PREFETCH_RANGE_HEADER_VALUE", + ()=>DOC_PREFETCH_RANGE_HEADER_VALUE, + "doesExportedHtmlMatchBuildId", + ()=>doesExportedHtmlMatchBuildId, + "insertBuildIdComment", + ()=>insertBuildIdComment +]); +const DOCTYPE_PREFIX = '' // 15 bytes +; +const MAX_BUILD_ID_LENGTH = 24; +const DOC_PREFETCH_RANGE_HEADER_VALUE = 'bytes=0-63'; +function escapeBuildId(buildId) { + // If the build id is longer than the given limit, it's OK for our purposes + // to only match the beginning. + const truncated = buildId.slice(0, MAX_BUILD_ID_LENGTH); + // Replace hyphens with underscores so it doesn't break the HTML comment. + // (Unlikely, but if this did happen it would break the whole document.) + return truncated.replace(/-/g, '_'); +} +function insertBuildIdComment(originalHtml, buildId) { + if (buildId.includes('-->') || // React always inserts a doctype at the start of the document. Skip if it + // isn't present. Shouldn't happen; suggests an issue elsewhere. + !originalHtml.startsWith(DOCTYPE_PREFIX)) { + // Return the original HTML unchanged. This means the document will not + // be prefetched. + // TODO: The build id comment is currently only used during prefetches, but + // if we eventually use this mechanism for regular navigations, we may need + // to error during build if we fail to insert it for some reason. + return originalHtml; + } + // The comment must be inserted after the doctype. + return originalHtml.replace(DOCTYPE_PREFIX, DOCTYPE_PREFIX + ''); +} +function doesExportedHtmlMatchBuildId(partialHtmlDocument, buildId) { + // Check whether the document starts with the expected buildId. + return partialHtmlDocument.startsWith(DOCTYPE_PREFIX + ''); +} //# sourceMappingURL=output-export-prefetch-encoding.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/app-router-headers.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "ACTION_HEADER", + ()=>ACTION_HEADER, + "FLIGHT_HEADERS", + ()=>FLIGHT_HEADERS, + "NEXT_ACTION_NOT_FOUND_HEADER", + ()=>NEXT_ACTION_NOT_FOUND_HEADER, + "NEXT_DID_POSTPONE_HEADER", + ()=>NEXT_DID_POSTPONE_HEADER, + "NEXT_HMR_REFRESH_HASH_COOKIE", + ()=>NEXT_HMR_REFRESH_HASH_COOKIE, + "NEXT_HMR_REFRESH_HEADER", + ()=>NEXT_HMR_REFRESH_HEADER, + "NEXT_HTML_REQUEST_ID_HEADER", + ()=>NEXT_HTML_REQUEST_ID_HEADER, + "NEXT_IS_PRERENDER_HEADER", + ()=>NEXT_IS_PRERENDER_HEADER, + "NEXT_REQUEST_ID_HEADER", + ()=>NEXT_REQUEST_ID_HEADER, + "NEXT_REWRITTEN_PATH_HEADER", + ()=>NEXT_REWRITTEN_PATH_HEADER, + "NEXT_REWRITTEN_QUERY_HEADER", + ()=>NEXT_REWRITTEN_QUERY_HEADER, + "NEXT_ROUTER_PREFETCH_HEADER", + ()=>NEXT_ROUTER_PREFETCH_HEADER, + "NEXT_ROUTER_SEGMENT_PREFETCH_HEADER", + ()=>NEXT_ROUTER_SEGMENT_PREFETCH_HEADER, + "NEXT_ROUTER_STALE_TIME_HEADER", + ()=>NEXT_ROUTER_STALE_TIME_HEADER, + "NEXT_ROUTER_STATE_TREE_HEADER", + ()=>NEXT_ROUTER_STATE_TREE_HEADER, + "NEXT_RSC_UNION_QUERY", + ()=>NEXT_RSC_UNION_QUERY, + "NEXT_URL", + ()=>NEXT_URL, + "RSC_CONTENT_TYPE_HEADER", + ()=>RSC_CONTENT_TYPE_HEADER, + "RSC_HEADER", + ()=>RSC_HEADER +]); +const RSC_HEADER = 'rsc'; +const ACTION_HEADER = 'next-action'; +const NEXT_ROUTER_STATE_TREE_HEADER = 'next-router-state-tree'; +const NEXT_ROUTER_PREFETCH_HEADER = 'next-router-prefetch'; +const NEXT_ROUTER_SEGMENT_PREFETCH_HEADER = 'next-router-segment-prefetch'; +const NEXT_HMR_REFRESH_HEADER = 'next-hmr-refresh'; +const NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__'; +const NEXT_URL = 'next-url'; +const RSC_CONTENT_TYPE_HEADER = 'text/x-component'; +const FLIGHT_HEADERS = [ + RSC_HEADER, + NEXT_ROUTER_STATE_TREE_HEADER, + NEXT_ROUTER_PREFETCH_HEADER, + NEXT_HMR_REFRESH_HEADER, + NEXT_ROUTER_SEGMENT_PREFETCH_HEADER +]; +const NEXT_RSC_UNION_QUERY = '_rsc'; +const NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time'; +const NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed'; +const NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path'; +const NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query'; +const NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender'; +const NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found'; +const NEXT_REQUEST_ID_HEADER = 'x-nextjs-request-id'; +const NEXT_HTML_REQUEST_ID_HEADER = 'x-nextjs-html-request-id'; //# sourceMappingURL=app-router-headers.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/hash.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +// http://www.cse.yorku.ca/~oz/hash.html +// More specifically, 32-bit hash via djbxor +// (ref: https://gist.github.com/eplawless/52813b1d8ad9af510d85?permalink_comment_id=3367765#gistcomment-3367765) +// This is due to number type differences between rust for turbopack to js number types, +// where rust does not have easy way to repreesnt js's 53-bit float number type for the matching +// overflow behavior. This is more `correct` in terms of having canonical hash across different runtime / implementation +// as can gaurantee determinstic output from 32bit hash. +__turbopack_context__.s([ + "djb2Hash", + ()=>djb2Hash, + "hexHash", + ()=>hexHash +]); +function djb2Hash(str) { + let hash = 5381; + for(let i = 0; i < str.length; i++){ + const char = str.charCodeAt(i); + hash = (hash << 5) + hash + char & 0xffffffff; + } + return hash >>> 0; +} +function hexHash(str) { + return djb2Hash(str).toString(36).slice(0, 5); +} //# sourceMappingURL=hash.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/cache-busting-search-param.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "computeCacheBustingSearchParam", + ()=>computeCacheBustingSearchParam +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$hash$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/hash.js [app-route] (ecmascript)"); +; +function computeCacheBustingSearchParam(prefetchHeader, segmentPrefetchHeader, stateTreeHeader, nextUrlHeader) { + if ((prefetchHeader === undefined || prefetchHeader === '0') && segmentPrefetchHeader === undefined && stateTreeHeader === undefined && nextUrlHeader === undefined) { + return ''; + } + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$hash$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["hexHash"])([ + prefetchHeader || '0', + segmentPrefetchHeader || '0', + stateTreeHeader || '0', + nextUrlHeader || '0' + ].join(',')); +} //# sourceMappingURL=cache-busting-search-param.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/stream-utils/node-web-streams-helper.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "chainStreams", + ()=>chainStreams, + "continueDynamicHTMLResume", + ()=>continueDynamicHTMLResume, + "continueDynamicPrerender", + ()=>continueDynamicPrerender, + "continueFizzStream", + ()=>continueFizzStream, + "continueStaticFallbackPrerender", + ()=>continueStaticFallbackPrerender, + "continueStaticPrerender", + ()=>continueStaticPrerender, + "createBufferedTransformStream", + ()=>createBufferedTransformStream, + "createDocumentClosingStream", + ()=>createDocumentClosingStream, + "createRootLayoutValidatorStream", + ()=>createRootLayoutValidatorStream, + "renderToInitialFizzStream", + ()=>renderToInitialFizzStream, + "streamFromBuffer", + ()=>streamFromBuffer, + "streamFromString", + ()=>streamFromString, + "streamToBuffer", + ()=>streamToBuffer, + "streamToString", + ()=>streamToString +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$tracer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/trace/tracer.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/trace/constants.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$detached$2d$promise$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/detached-promise.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$scheduler$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/scheduler.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/stream-utils/encoded-tags.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$uint8array$2d$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/stream-utils/uint8array-helpers.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$errors$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/errors/constants.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2d$cache$2f$output$2d$export$2d$prefetch$2d$encoding$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/segment-cache/output-export-prefetch-encoding.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/app-router-headers.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$cache$2d$busting$2d$search$2d$param$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/cache-busting-search-param.js [app-route] (ecmascript)"); +; +; +; +; +; +; +; +; +; +; +function voidCatch() { +// this catcher is designed to be used with pipeTo where we expect the underlying +// pipe implementation to forward errors but we don't want the pipeTo promise to reject +// and be unhandled +} +// We can share the same encoder instance everywhere +// Notably we cannot do the same for TextDecoder because it is stateful +// when handling streaming data +const encoder = new TextEncoder(); +function chainStreams(...streams) { + // If we have no streams, return an empty stream. This behavior is + // intentional as we're now providing the `RenderResult.EMPTY` value. + if (streams.length === 0) { + return new ReadableStream({ + start (controller) { + controller.close(); + } + }); + } + // If we only have 1 stream we fast path it by returning just this stream + if (streams.length === 1) { + return streams[0]; + } + const { readable, writable } = new TransformStream(); + // We always initiate pipeTo immediately. We know we have at least 2 streams + // so we need to avoid closing the writable when this one finishes. + let promise = streams[0].pipeTo(writable, { + preventClose: true + }); + let i = 1; + for(; i < streams.length - 1; i++){ + const nextStream = streams[i]; + promise = promise.then(()=>nextStream.pipeTo(writable, { + preventClose: true + })); + } + // We can omit the length check because we halted before the last stream and there + // is at least two streams so the lastStream here will always be defined + const lastStream = streams[i]; + promise = promise.then(()=>lastStream.pipeTo(writable)); + // Catch any errors from the streams and ignore them, they will be handled + // by whatever is consuming the readable stream. + promise.catch(voidCatch); + return readable; +} +function streamFromString(str) { + return new ReadableStream({ + start (controller) { + controller.enqueue(encoder.encode(str)); + controller.close(); + } + }); +} +function streamFromBuffer(chunk) { + return new ReadableStream({ + start (controller) { + controller.enqueue(chunk); + controller.close(); + } + }); +} +async function streamToBuffer(stream) { + const reader = stream.getReader(); + const chunks = []; + while(true){ + const { done, value } = await reader.read(); + if (done) { + break; + } + chunks.push(value); + } + return Buffer.concat(chunks); +} +async function streamToString(stream, signal) { + const decoder = new TextDecoder('utf-8', { + fatal: true + }); + let string = ''; + for await (const chunk of stream){ + if (signal == null ? void 0 : signal.aborted) { + return string; + } + string += decoder.decode(chunk, { + stream: true + }); + } + string += decoder.decode(); + return string; +} +function createBufferedTransformStream(options = {}) { + const { maxBufferByteLength = Infinity } = options; + let bufferedChunks = []; + let bufferByteLength = 0; + let pending; + const flush = (controller)=>{ + try { + if (bufferedChunks.length === 0) { + return; + } + const chunk = new Uint8Array(bufferByteLength); + let copiedBytes = 0; + for(let i = 0; i < bufferedChunks.length; i++){ + const bufferedChunk = bufferedChunks[i]; + chunk.set(bufferedChunk, copiedBytes); + copiedBytes += bufferedChunk.byteLength; + } + // We just wrote all the buffered chunks so we need to reset the bufferedChunks array + // and our bufferByteLength to prepare for the next round of buffered chunks + bufferedChunks.length = 0; + bufferByteLength = 0; + controller.enqueue(chunk); + } catch { + // If an error occurs while enqueuing, it can't be due to this + // transformer. It's most likely caused by the controller having been + // errored (for example, if the stream was cancelled). + } + }; + const scheduleFlush = (controller)=>{ + if (pending) { + return; + } + const detached = new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$detached$2d$promise$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["DetachedPromise"](); + pending = detached; + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$scheduler$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["scheduleImmediate"])(()=>{ + try { + flush(controller); + } finally{ + pending = undefined; + detached.resolve(); + } + }); + }; + return new TransformStream({ + transform (chunk, controller) { + // Combine the previous buffer with the new chunk. + bufferedChunks.push(chunk); + bufferByteLength += chunk.byteLength; + if (bufferByteLength >= maxBufferByteLength) { + flush(controller); + } else { + scheduleFlush(controller); + } + }, + flush () { + return pending == null ? void 0 : pending.promise; + } + }); +} +function createPrefetchCommentStream(isBuildTimePrerendering, buildId) { + // Insert an extra comment at the beginning of the HTML document. This must + // come after the DOCTYPE, which is inserted by React. + // + // The first chunk sent by React will contain the doctype. After that, we can + // pass through the rest of the chunks as-is. + let didTransformFirstChunk = false; + return new TransformStream({ + transform (chunk, controller) { + if (isBuildTimePrerendering && !didTransformFirstChunk) { + didTransformFirstChunk = true; + const decoder = new TextDecoder('utf-8', { + fatal: true + }); + const chunkStr = decoder.decode(chunk, { + stream: true + }); + const updatedChunkStr = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2d$cache$2f$output$2d$export$2d$prefetch$2d$encoding$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["insertBuildIdComment"])(chunkStr, buildId); + controller.enqueue(encoder.encode(updatedChunkStr)); + return; + } + controller.enqueue(chunk); + } + }); +} +function renderToInitialFizzStream({ ReactDOMServer, element, streamOptions }) { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$tracer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getTracer"])().trace(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["AppRenderSpan"].renderToReadableStream, async ()=>ReactDOMServer.renderToReadableStream(element, streamOptions)); +} +function createMetadataTransformStream(insert) { + let chunkIndex = -1; + let isMarkRemoved = false; + return new TransformStream({ + async transform (chunk, controller) { + let iconMarkIndex = -1; + let closedHeadIndex = -1; + chunkIndex++; + if (isMarkRemoved) { + controller.enqueue(chunk); + return; + } + let iconMarkLength = 0; + // Only search for the closed head tag once + if (iconMarkIndex === -1) { + iconMarkIndex = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$uint8array$2d$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["indexOfUint8Array"])(chunk, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].META.ICON_MARK); + if (iconMarkIndex === -1) { + controller.enqueue(chunk); + return; + } else { + // When we found the `` or `>`, checking the next char to ensure we cover both cases. + iconMarkLength = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].META.ICON_MARK.length; + // Check if next char is /, this is for xml mode. + if (chunk[iconMarkIndex + iconMarkLength] === 47) { + iconMarkLength += 2; + } else { + // The last char is `>` + iconMarkLength++; + } + } + } + // Check if icon mark is inside tag in the first chunk. + if (chunkIndex === 0) { + closedHeadIndex = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$uint8array$2d$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["indexOfUint8Array"])(chunk, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].CLOSED.HEAD); + if (iconMarkIndex !== -1) { + // The mark icon is located in the 1st chunk before the head tag. + // We do not need to insert the script tag in this case because it's in the head. + // Just remove the icon mark from the chunk. + if (iconMarkIndex < closedHeadIndex) { + const replaced = new Uint8Array(chunk.length - iconMarkLength); + // Remove the icon mark from the chunk. + replaced.set(chunk.subarray(0, iconMarkIndex)); + replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex); + chunk = replaced; + } else { + // The icon mark is after the head tag, replace and insert the script tag at that position. + const insertion = await insert(); + const encodedInsertion = encoder.encode(insertion); + const insertionLength = encodedInsertion.length; + const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength); + replaced.set(chunk.subarray(0, iconMarkIndex)); + replaced.set(encodedInsertion, iconMarkIndex); + replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength); + chunk = replaced; + } + isMarkRemoved = true; + } + // If there's no icon mark located, it will be handled later when if present in the following chunks. + } else { + // When it's appeared in the following chunks, we'll need to + // remove the mark and then insert the script tag at that position. + const insertion = await insert(); + const encodedInsertion = encoder.encode(insertion); + const insertionLength = encodedInsertion.length; + // Replace the icon mark with the hoist script or empty string. + const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength); + // Set the first part of the chunk, before the icon mark. + replaced.set(chunk.subarray(0, iconMarkIndex)); + // Set the insertion after the icon mark. + replaced.set(encodedInsertion, iconMarkIndex); + // Set the rest of the chunk after the icon mark. + replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength); + chunk = replaced; + isMarkRemoved = true; + } + controller.enqueue(chunk); + } + }); +} +function createHeadInsertionTransformStream(insert) { + let inserted = false; + // We need to track if this transform saw any bytes because if it didn't + // we won't want to insert any server HTML at all + let hasBytes = false; + return new TransformStream({ + async transform (chunk, controller) { + hasBytes = true; + const insertion = await insert(); + if (inserted) { + if (insertion) { + const encodedInsertion = encoder.encode(insertion); + controller.enqueue(encodedInsertion); + } + controller.enqueue(chunk); + } else { + // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for. + const index = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$uint8array$2d$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["indexOfUint8Array"])(chunk, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].CLOSED.HEAD); + // In fully static rendering or non PPR rendering cases: + // `/head>` will always be found in the chunk in first chunk rendering. + if (index !== -1) { + if (insertion) { + const encodedInsertion = encoder.encode(insertion); + // Get the total count of the bytes in the chunk and the insertion + // e.g. + // chunk = + // insertion = + // output = [ ] + const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length); + // Append the first part of the chunk, before the head tag + insertedHeadContent.set(chunk.slice(0, index)); + // Append the server inserted content + insertedHeadContent.set(encodedInsertion, index); + // Append the rest of the chunk + insertedHeadContent.set(chunk.slice(index), index + encodedInsertion.length); + controller.enqueue(insertedHeadContent); + } else { + controller.enqueue(chunk); + } + inserted = true; + } else { + // This will happens in PPR rendering during next start, when the page is partially rendered. + // When the page resumes, the head tag will be found in the middle of the chunk. + // Where we just need to append the insertion and chunk to the current stream. + // e.g. + // PPR-static: ... [ resume content ] + // PPR-resume: [ insertion ] [ rest content ] + if (insertion) { + controller.enqueue(encoder.encode(insertion)); + } + controller.enqueue(chunk); + inserted = true; + } + } + }, + async flush (controller) { + // Check before closing if there's anything remaining to insert. + if (hasBytes) { + const insertion = await insert(); + if (insertion) { + controller.enqueue(encoder.encode(insertion)); + } + } + } + }); +} +function createClientResumeScriptInsertionTransformStream() { + const segmentPath = '/_full'; + const cacheBustingHeader = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$cache$2d$busting$2d$search$2d$param$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["computeCacheBustingSearchParam"])('1', '/_full', undefined, undefined // headers[NEXT_URL] + ); + const searchStr = `${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NEXT_RSC_UNION_QUERY"]}=${cacheBustingHeader}`; + const NEXT_CLIENT_RESUME_SCRIPT = ``; + let didAlreadyInsert = false; + return new TransformStream({ + transform (chunk, controller) { + if (didAlreadyInsert) { + // Already inserted the script into the head. Pass through. + controller.enqueue(chunk); + return; + } + // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for. + const headClosingTagIndex = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$uint8array$2d$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["indexOfUint8Array"])(chunk, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].CLOSED.HEAD); + if (headClosingTagIndex === -1) { + // In fully static rendering or non PPR rendering cases: + // `/head>` will always be found in the chunk in first chunk rendering. + controller.enqueue(chunk); + return; + } + const encodedInsertion = encoder.encode(NEXT_CLIENT_RESUME_SCRIPT); + // Get the total count of the bytes in the chunk and the insertion + // e.g. + // chunk = + // insertion = + // output = [ ] + const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length); + // Append the first part of the chunk, before the head tag + insertedHeadContent.set(chunk.slice(0, headClosingTagIndex)); + // Append the server inserted content + insertedHeadContent.set(encodedInsertion, headClosingTagIndex); + // Append the rest of the chunk + insertedHeadContent.set(chunk.slice(headClosingTagIndex), headClosingTagIndex + encodedInsertion.length); + controller.enqueue(insertedHeadContent); + didAlreadyInsert = true; + } + }); +} +// Suffix after main body content - scripts before , +// but wait for the major chunks to be enqueued. +function createDeferredSuffixStream(suffix) { + let flushed = false; + let pending; + const flush = (controller)=>{ + const detached = new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$detached$2d$promise$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["DetachedPromise"](); + pending = detached; + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$scheduler$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["scheduleImmediate"])(()=>{ + try { + controller.enqueue(encoder.encode(suffix)); + } catch { + // If an error occurs while enqueuing it can't be due to this + // transformers fault. It's likely due to the controller being + // errored due to the stream being cancelled. + } finally{ + pending = undefined; + detached.resolve(); + } + }); + }; + return new TransformStream({ + transform (chunk, controller) { + controller.enqueue(chunk); + // If we've already flushed, we're done. + if (flushed) return; + // Schedule the flush to happen. + flushed = true; + flush(controller); + }, + flush (controller) { + if (pending) return pending.promise; + if (flushed) return; + // Flush now. + controller.enqueue(encoder.encode(suffix)); + } + }); +} +function createFlightDataInjectionTransformStream(stream, delayDataUntilFirstHtmlChunk) { + let htmlStreamFinished = false; + let pull = null; + let donePulling = false; + function startOrContinuePulling(controller) { + if (!pull) { + pull = startPulling(controller); + } + return pull; + } + async function startPulling(controller) { + const reader = stream.getReader(); + if (delayDataUntilFirstHtmlChunk) { + // NOTE: streaming flush + // We are buffering here for the inlined data stream because the + // "shell" stream might be chunkenized again by the underlying stream + // implementation, e.g. with a specific high-water mark. To ensure it's + // the safe timing to pipe the data stream, this extra tick is + // necessary. + // We don't start reading until we've left the current Task to ensure + // that it's inserted after flushing the shell. Note that this implementation + // might get stale if impl details of Fizz change in the future. + await (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$scheduler$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["atLeastOneTask"])(); + } + try { + while(true){ + const { done, value } = await reader.read(); + if (done) { + donePulling = true; + return; + } + // We want to prioritize HTML over RSC data. + // The SSR render is based on the same RSC stream, so when we get a new RSC chunk, + // we're likely to produce an HTML chunk as well, so give it a chance to flush first. + if (!delayDataUntilFirstHtmlChunk && !htmlStreamFinished) { + await (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$scheduler$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["atLeastOneTask"])(); + } + controller.enqueue(value); + } + } catch (err) { + controller.error(err); + } + } + return new TransformStream({ + start (controller) { + if (!delayDataUntilFirstHtmlChunk) { + startOrContinuePulling(controller); + } + }, + transform (chunk, controller) { + controller.enqueue(chunk); + // Start the streaming if it hasn't already been started yet. + if (delayDataUntilFirstHtmlChunk) { + startOrContinuePulling(controller); + } + }, + flush (controller) { + htmlStreamFinished = true; + if (donePulling) { + return; + } + return startOrContinuePulling(controller); + } + }); +} +const CLOSE_TAG = ''; +/** + * This transform stream moves the suffix to the end of the stream, so results + * like `` will be transformed to + * ``. + */ function createMoveSuffixStream() { + let foundSuffix = false; + return new TransformStream({ + transform (chunk, controller) { + if (foundSuffix) { + return controller.enqueue(chunk); + } + const index = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$uint8array$2d$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["indexOfUint8Array"])(chunk, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].CLOSED.BODY_AND_HTML); + if (index > -1) { + foundSuffix = true; + // If the whole chunk is the suffix, then don't write anything, it will + // be written in the flush. + if (chunk.length === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].CLOSED.BODY_AND_HTML.length) { + return; + } + // Write out the part before the suffix. + const before = chunk.slice(0, index); + controller.enqueue(before); + // In the case where the suffix is in the middle of the chunk, we need + // to split the chunk into two parts. + if (chunk.length > __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].CLOSED.BODY_AND_HTML.length + index) { + // Write out the part after the suffix. + const after = chunk.slice(index + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].CLOSED.BODY_AND_HTML.length); + controller.enqueue(after); + } + } else { + controller.enqueue(chunk); + } + }, + flush (controller) { + // Even if we didn't find the suffix, the HTML is not valid if we don't + // add it, so insert it at the end. + controller.enqueue(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].CLOSED.BODY_AND_HTML); + } + }); +} +function createStripDocumentClosingTagsTransform() { + return new TransformStream({ + transform (chunk, controller) { + // We rely on the assumption that chunks will never break across a code unit. + // This is reasonable because we currently concat all of React's output from a single + // flush into one chunk before streaming it forward which means the chunk will represent + // a single coherent utf-8 string. This is not safe to use if we change our streaming to no + // longer do this large buffered chunk + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$uint8array$2d$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["isEquivalentUint8Arrays"])(chunk, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].CLOSED.BODY_AND_HTML) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$uint8array$2d$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["isEquivalentUint8Arrays"])(chunk, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].CLOSED.BODY) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$uint8array$2d$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["isEquivalentUint8Arrays"])(chunk, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].CLOSED.HTML)) { + // the entire chunk is the closing tags; return without enqueueing anything. + return; + } + // We assume these tags will go at together at the end of the document and that + // they won't appear anywhere else in the document. This is not really a safe assumption + // but until we revamp our streaming infra this is a performant way to string the tags + chunk = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$uint8array$2d$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["removeFromUint8Array"])(chunk, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].CLOSED.BODY); + chunk = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$uint8array$2d$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["removeFromUint8Array"])(chunk, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].CLOSED.HTML); + controller.enqueue(chunk); + } + }); +} +function createRootLayoutValidatorStream() { + let foundHtml = false; + let foundBody = false; + return new TransformStream({ + async transform (chunk, controller) { + // Peek into the streamed chunk to see if the tags are present. + if (!foundHtml && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$uint8array$2d$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["indexOfUint8Array"])(chunk, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].OPENING.HTML) > -1) { + foundHtml = true; + } + if (!foundBody && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$uint8array$2d$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["indexOfUint8Array"])(chunk, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$encoded$2d$tags$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ENCODED_TAGS"].OPENING.BODY) > -1) { + foundBody = true; + } + controller.enqueue(chunk); + }, + flush (controller) { + const missingTags = []; + if (!foundHtml) missingTags.push('html'); + if (!foundBody) missingTags.push('body'); + if (!missingTags.length) return; + controller.enqueue(encoder.encode(` + + `)); + } + }); +} +function chainTransformers(readable, transformers) { + let stream = readable; + for (const transformer of transformers){ + if (!transformer) continue; + stream = stream.pipeThrough(transformer); + } + return stream; +} +async function continueFizzStream(renderStream, { suffix, inlinedDataStream, isStaticGeneration, isBuildTimePrerendering, buildId, getServerInsertedHTML, getServerInsertedMetadata, validateRootLayout }) { + // Suffix itself might contain close tags at the end, so we need to split it. + const suffixUnclosed = suffix ? suffix.split(CLOSE_TAG, 1)[0] : null; + // If we're generating static HTML we need to wait for it to resolve before continuing. + if (isStaticGeneration) { + await renderStream.allReady; + } + return chainTransformers(renderStream, [ + // Buffer everything to avoid flushing too frequently + createBufferedTransformStream(), + // Add build id comment to start of the HTML document (in export mode) + createPrefetchCommentStream(isBuildTimePrerendering, buildId), + // Transform metadata + createMetadataTransformStream(getServerInsertedMetadata), + // Insert suffix content + suffixUnclosed != null && suffixUnclosed.length > 0 ? createDeferredSuffixStream(suffixUnclosed) : null, + // Insert the inlined data (Flight data, form state, etc.) stream into the HTML + inlinedDataStream ? createFlightDataInjectionTransformStream(inlinedDataStream, true) : null, + // Validate the root layout for missing html or body tags + validateRootLayout ? createRootLayoutValidatorStream() : null, + // Close tags should always be deferred to the end + createMoveSuffixStream(), + // Special head insertions + // TODO-APP: Insert server side html to end of head in app layout rendering, to avoid + // hydration errors. Remove this once it's ready to be handled by react itself. + createHeadInsertionTransformStream(getServerInsertedHTML) + ]); +} +async function continueDynamicPrerender(prerenderStream, { getServerInsertedHTML, getServerInsertedMetadata }) { + return prerenderStream // Buffer everything to avoid flushing too frequently + .pipeThrough(createBufferedTransformStream()).pipeThrough(createStripDocumentClosingTagsTransform()) // Insert generated tags to head + .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML)) // Transform metadata + .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata)); +} +async function continueStaticPrerender(prerenderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata, isBuildTimePrerendering, buildId }) { + return prerenderStream // Buffer everything to avoid flushing too frequently + .pipeThrough(createBufferedTransformStream()) // Add build id comment to start of the HTML document (in export mode) + .pipeThrough(createPrefetchCommentStream(isBuildTimePrerendering, buildId)) // Insert generated tags to head + .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML)) // Transform metadata + .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata)) // Insert the inlined data (Flight data, form state, etc.) stream into the HTML + .pipeThrough(createFlightDataInjectionTransformStream(inlinedDataStream, true)) // Close tags should always be deferred to the end + .pipeThrough(createMoveSuffixStream()); +} +async function continueStaticFallbackPrerender(prerenderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata, isBuildTimePrerendering, buildId }) { + // Same as `continueStaticPrerender`, but also inserts an additional script + // to instruct the client to start fetching the hydration data as early + // as possible. + return prerenderStream // Buffer everything to avoid flushing too frequently + .pipeThrough(createBufferedTransformStream()) // Add build id comment to start of the HTML document (in export mode) + .pipeThrough(createPrefetchCommentStream(isBuildTimePrerendering, buildId)) // Insert generated tags to head + .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML)) // Insert the client resume script into the head + .pipeThrough(createClientResumeScriptInsertionTransformStream()) // Transform metadata + .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata)) // Insert the inlined data (Flight data, form state, etc.) stream into the HTML + .pipeThrough(createFlightDataInjectionTransformStream(inlinedDataStream, true)) // Close tags should always be deferred to the end + .pipeThrough(createMoveSuffixStream()); +} +async function continueDynamicHTMLResume(renderStream, { delayDataUntilFirstHtmlChunk, inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata }) { + return renderStream // Buffer everything to avoid flushing too frequently + .pipeThrough(createBufferedTransformStream()) // Insert generated tags to head + .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML)) // Transform metadata + .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata)) // Insert the inlined data (Flight data, form state, etc.) stream into the HTML + .pipeThrough(createFlightDataInjectionTransformStream(inlinedDataStream, delayDataUntilFirstHtmlChunk)) // Close tags should always be deferred to the end + .pipeThrough(createMoveSuffixStream()); +} +function createDocumentClosingStream() { + return streamFromString(CLOSE_TAG); +} //# sourceMappingURL=node-web-streams-helper.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/request-meta.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +// FIXME: (wyattjoh) this is a temporary solution to allow us to pass data between bundled modules +__turbopack_context__.s([ + "NEXT_REQUEST_META", + ()=>NEXT_REQUEST_META, + "addRequestMeta", + ()=>addRequestMeta, + "getRequestMeta", + ()=>getRequestMeta, + "removeRequestMeta", + ()=>removeRequestMeta, + "setRequestMeta", + ()=>setRequestMeta +]); +const NEXT_REQUEST_META = Symbol.for('NextInternalRequestMeta'); +function getRequestMeta(req, key) { + const meta = req[NEXT_REQUEST_META] || {}; + return typeof key === 'string' ? meta[key] : meta; +} +function setRequestMeta(req, meta) { + req[NEXT_REQUEST_META] = meta; + return meta; +} +function addRequestMeta(request, key, value) { + const meta = getRequestMeta(request); + meta[key] = value; + return setRequestMeta(request, meta); +} +function removeRequestMeta(request, key) { + const meta = getRequestMeta(request); + delete meta[key]; + return setRequestMeta(request, meta); +} //# sourceMappingURL=request-meta.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/utils.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "fromNodeOutgoingHttpHeaders", + ()=>fromNodeOutgoingHttpHeaders, + "normalizeNextQueryParam", + ()=>normalizeNextQueryParam, + "splitCookiesString", + ()=>splitCookiesString, + "toNodeOutgoingHttpHeaders", + ()=>toNodeOutgoingHttpHeaders, + "validateURL", + ()=>validateURL +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/constants.js [app-route] (ecmascript)"); +; +function fromNodeOutgoingHttpHeaders(nodeHeaders) { + const headers = new Headers(); + for (let [key, value] of Object.entries(nodeHeaders)){ + const values = Array.isArray(value) ? value : [ + value + ]; + for (let v of values){ + if (typeof v === 'undefined') continue; + if (typeof v === 'number') { + v = v.toString(); + } + headers.append(key, v); + } + } + return headers; +} +function splitCookiesString(cookiesString) { + var cookiesStrings = []; + var pos = 0; + var start; + var ch; + var lastComma; + var nextStart; + var cookiesSeparatorFound; + function skipWhitespace() { + while(pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))){ + pos += 1; + } + return pos < cookiesString.length; + } + function notSpecialChar() { + ch = cookiesString.charAt(pos); + return ch !== '=' && ch !== ';' && ch !== ','; + } + while(pos < cookiesString.length){ + start = pos; + cookiesSeparatorFound = false; + while(skipWhitespace()){ + ch = cookiesString.charAt(pos); + if (ch === ',') { + // ',' is a cookie separator if we have later first '=', not ';' or ',' + lastComma = pos; + pos += 1; + skipWhitespace(); + nextStart = pos; + while(pos < cookiesString.length && notSpecialChar()){ + pos += 1; + } + // currently special character + if (pos < cookiesString.length && cookiesString.charAt(pos) === '=') { + // we found cookies separator + cookiesSeparatorFound = true; + // pos is inside the next cookie, so back up and return it. + pos = nextStart; + cookiesStrings.push(cookiesString.substring(start, lastComma)); + start = pos; + } else { + // in param ',' or param separator ';', + // we continue from that comma + pos = lastComma + 1; + } + } else { + pos += 1; + } + } + if (!cookiesSeparatorFound || pos >= cookiesString.length) { + cookiesStrings.push(cookiesString.substring(start, cookiesString.length)); + } + } + return cookiesStrings; +} +function toNodeOutgoingHttpHeaders(headers) { + const nodeHeaders = {}; + const cookies = []; + if (headers) { + for (const [key, value] of headers.entries()){ + if (key.toLowerCase() === 'set-cookie') { + // We may have gotten a comma joined string of cookies, or multiple + // set-cookie headers. We need to merge them into one header array + // to represent all the cookies. + cookies.push(...splitCookiesString(value)); + nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies; + } else { + nodeHeaders[key] = value; + } + } + } + return nodeHeaders; +} +function validateURL(url) { + try { + return String(new URL(String(url))); + } catch (error) { + throw Object.defineProperty(new Error(`URL is malformed "${String(url)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, { + cause: error + }), "__NEXT_ERROR_CODE", { + value: "E61", + enumerable: false, + configurable: true + }); + } +} +function normalizeNextQueryParam(key) { + const prefixes = [ + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NEXT_QUERY_PARAM_PREFIX"], + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NEXT_INTERCEPTION_MARKER_PREFIX"] + ]; + for (const prefix of prefixes){ + if (key !== prefix && key.startsWith(prefix)) { + return key.substring(prefix.length); + } + } + return null; +} //# sourceMappingURL=utils.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "detectDomainLocale", + ()=>detectDomainLocale +]); +function detectDomainLocale(domainItems, hostname, detectedLocale) { + if (!domainItems) return; + if (detectedLocale) { + detectedLocale = detectedLocale.toLowerCase(); + } + for (const item of domainItems){ + // remove port if present + const domainHostname = item.domain?.split(':', 1)[0].toLowerCase(); + if (hostname === domainHostname || detectedLocale === item.defaultLocale.toLowerCase() || item.locales?.some((locale)=>locale.toLowerCase() === detectedLocale)) { + return item; + } + } +} //# sourceMappingURL=detect-domain-locale.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * Removes the trailing slash for a given route or page path. Preserves the + * root page. Examples: + * - `/foo/bar/` -> `/foo/bar` + * - `/foo/bar` -> `/foo/bar` + * - `/` -> `/` + */ __turbopack_context__.s([ + "removeTrailingSlash", + ()=>removeTrailingSlash +]); +function removeTrailingSlash(route) { + return route.replace(/\/$/, '') || '/'; +} //# sourceMappingURL=remove-trailing-slash.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * Given a path this function will find the pathname, query and hash and return + * them. This is useful to parse full paths on the client side. + * @param path A path to parse e.g. /foo/bar?id=1#hash + */ __turbopack_context__.s([ + "parsePath", + ()=>parsePath +]); +function parsePath(path) { + const hashIndex = path.indexOf('#'); + const queryIndex = path.indexOf('?'); + const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex); + if (hasQuery || hashIndex > -1) { + return { + pathname: path.substring(0, hasQuery ? queryIndex : hashIndex), + query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : '', + hash: hashIndex > -1 ? path.slice(hashIndex) : '' + }; + } + return { + pathname: path, + query: '', + hash: '' + }; +} //# sourceMappingURL=parse-path.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "addPathPrefix", + ()=>addPathPrefix +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$parse$2d$path$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js [app-route] (ecmascript)"); +; +function addPathPrefix(path, prefix) { + if (!path.startsWith('/') || !prefix) { + return path; + } + const { pathname, query, hash } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$parse$2d$path$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["parsePath"])(path); + return `${prefix}${pathname}${query}${hash}`; +} //# sourceMappingURL=add-path-prefix.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "addPathSuffix", + ()=>addPathSuffix +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$parse$2d$path$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js [app-route] (ecmascript)"); +; +function addPathSuffix(path, suffix) { + if (!path.startsWith('/') || !suffix) { + return path; + } + const { pathname, query, hash } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$parse$2d$path$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["parsePath"])(path); + return `${pathname}${suffix}${query}${hash}`; +} //# sourceMappingURL=add-path-suffix.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "pathHasPrefix", + ()=>pathHasPrefix +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$parse$2d$path$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js [app-route] (ecmascript)"); +; +function pathHasPrefix(path, prefix) { + if (typeof path !== 'string') { + return false; + } + const { pathname } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$parse$2d$path$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["parsePath"])(path); + return pathname === prefix || pathname.startsWith(prefix + '/'); +} //# sourceMappingURL=path-has-prefix.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "addLocale", + ()=>addLocale +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$add$2d$path$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$path$2d$has$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js [app-route] (ecmascript)"); +; +; +function addLocale(path, locale, defaultLocale, ignorePrefix) { + // If no locale was given or the locale is the default locale, we don't need + // to prefix the path. + if (!locale || locale === defaultLocale) return path; + const lower = path.toLowerCase(); + // If the path is an API path or the path already has the locale prefix, we + // don't need to prefix the path. + if (!ignorePrefix) { + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$path$2d$has$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["pathHasPrefix"])(lower, '/api')) return path; + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$path$2d$has$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["pathHasPrefix"])(lower, `/${locale.toLowerCase()}`)) return path; + } + // Add the locale prefix to the path. + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$add$2d$path$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["addPathPrefix"])(path, `/${locale}`); +} //# sourceMappingURL=add-locale.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "formatNextPathnameInfo", + ()=>formatNextPathnameInfo +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$remove$2d$trailing$2d$slash$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$add$2d$path$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$add$2d$path$2d$suffix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$add$2d$locale$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js [app-route] (ecmascript)"); +; +; +; +; +function formatNextPathnameInfo(info) { + let pathname = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$add$2d$locale$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["addLocale"])(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix); + if (info.buildId || !info.trailingSlash) { + pathname = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$remove$2d$trailing$2d$slash$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["removeTrailingSlash"])(pathname); + } + if (info.buildId) { + pathname = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$add$2d$path$2d$suffix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["addPathSuffix"])((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$add$2d$path$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["addPathPrefix"])(pathname, `/_next/data/${info.buildId}`), info.pathname === '/' ? 'index.json' : '.json'); + } + pathname = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$add$2d$path$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["addPathPrefix"])(pathname, info.basePath); + return !info.buildId && info.trailingSlash ? !pathname.endsWith('/') ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$add$2d$path$2d$suffix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["addPathSuffix"])(pathname, '/') : pathname : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$remove$2d$trailing$2d$slash$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["removeTrailingSlash"])(pathname); +} //# sourceMappingURL=format-next-pathname-info.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/get-hostname.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * Takes an object with a hostname property (like a parsed URL) and some + * headers that may contain Host and returns the preferred hostname. + * @param parsed An object containing a hostname property. + * @param headers A dictionary with headers containing a `host`. + */ __turbopack_context__.s([ + "getHostname", + ()=>getHostname +]); +function getHostname(parsed, headers) { + // Get the hostname from the headers if it exists, otherwise use the parsed + // hostname. + let hostname; + if (headers?.host && !Array.isArray(headers.host)) { + hostname = headers.host.toString().split(':', 1)[0]; + } else if (parsed.hostname) { + hostname = parsed.hostname; + } else return; + return hostname.toLowerCase(); +} //# sourceMappingURL=get-hostname.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * A cache of lowercased locales for each list of locales. This is stored as a + * WeakMap so if the locales are garbage collected, the cache entry will be + * removed as well. + */ __turbopack_context__.s([ + "normalizeLocalePath", + ()=>normalizeLocalePath +]); +const cache = new WeakMap(); +function normalizeLocalePath(pathname, locales) { + // If locales is undefined, return the pathname as is. + if (!locales) return { + pathname + }; + // Get the cached lowercased locales or create a new cache entry. + let lowercasedLocales = cache.get(locales); + if (!lowercasedLocales) { + lowercasedLocales = locales.map((locale)=>locale.toLowerCase()); + cache.set(locales, lowercasedLocales); + } + let detectedLocale; + // The first segment will be empty, because it has a leading `/`. If + // there is no further segment, there is no locale (or it's the default). + const segments = pathname.split('/', 2); + // If there's no second segment (ie, the pathname is just `/`), there's no + // locale. + if (!segments[1]) return { + pathname + }; + // The second segment will contain the locale part if any. + const segment = segments[1].toLowerCase(); + // See if the segment matches one of the locales. If it doesn't, there is + // no locale (or it's the default). + const index = lowercasedLocales.indexOf(segment); + if (index < 0) return { + pathname + }; + // Return the case-sensitive locale. + detectedLocale = locales[index]; + // Remove the `/${locale}` part of the pathname. + pathname = pathname.slice(detectedLocale.length + 1) || '/'; + return { + pathname, + detectedLocale + }; +} //# sourceMappingURL=normalize-locale-path.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "removePathPrefix", + ()=>removePathPrefix +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$path$2d$has$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js [app-route] (ecmascript)"); +; +function removePathPrefix(path, prefix) { + // If the path doesn't start with the prefix we can return it as is. This + // protects us from situations where the prefix is a substring of the path + // prefix such as: + // + // For prefix: /blog + // + // /blog -> true + // /blog/ -> true + // /blog/1 -> true + // /blogging -> false + // /blogging/ -> false + // /blogging/1 -> false + if (!(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$path$2d$has$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["pathHasPrefix"])(path, prefix)) { + return path; + } + // Remove the prefix from the path via slicing. + const withoutPrefix = path.slice(prefix.length); + // If the path without the prefix starts with a `/` we can return it as is. + if (withoutPrefix.startsWith('/')) { + return withoutPrefix; + } + // If the path without the prefix doesn't start with a `/` we need to add it + // back to the path to make sure it's a valid path. + return `/${withoutPrefix}`; +} //# sourceMappingURL=remove-path-prefix.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "getNextPathnameInfo", + ()=>getNextPathnameInfo +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$i18n$2f$normalize$2d$locale$2d$path$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$remove$2d$path$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$path$2d$has$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js [app-route] (ecmascript)"); +; +; +; +function getNextPathnameInfo(pathname, options) { + const { basePath, i18n, trailingSlash } = options.nextConfig ?? {}; + const info = { + pathname, + trailingSlash: pathname !== '/' ? pathname.endsWith('/') : trailingSlash + }; + if (basePath && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$path$2d$has$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["pathHasPrefix"])(info.pathname, basePath)) { + info.pathname = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$remove$2d$path$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["removePathPrefix"])(info.pathname, basePath); + info.basePath = basePath; + } + let pathnameNoDataPrefix = info.pathname; + if (info.pathname.startsWith('/_next/data/') && info.pathname.endsWith('.json')) { + const paths = info.pathname.replace(/^\/_next\/data\//, '').replace(/\.json$/, '').split('/'); + const buildId = paths[0]; + info.buildId = buildId; + pathnameNoDataPrefix = paths[1] !== 'index' ? `/${paths.slice(1).join('/')}` : '/'; + // update pathname with normalized if enabled although + // we use normalized to populate locale info still + if (options.parseData === true) { + info.pathname = pathnameNoDataPrefix; + } + } + // If provided, use the locale route normalizer to detect the locale instead + // of the function below. + if (i18n) { + let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$i18n$2f$normalize$2d$locale$2d$path$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["normalizeLocalePath"])(info.pathname, i18n.locales); + info.locale = result.detectedLocale; + info.pathname = result.pathname ?? info.pathname; + if (!result.detectedLocale && info.buildId) { + result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$i18n$2f$normalize$2d$locale$2d$path$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["normalizeLocalePath"])(pathnameNoDataPrefix, i18n.locales); + if (result.detectedLocale) { + info.locale = result.detectedLocale; + } + } + } + return info; +} //# sourceMappingURL=get-next-pathname-info.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/next-url.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "NextURL", + ()=>NextURL +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$i18n$2f$detect$2d$domain$2d$locale$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$format$2d$next$2d$pathname$2d$info$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$get$2d$hostname$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/get-hostname.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$get$2d$next$2d$pathname$2d$info$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js [app-route] (ecmascript)"); +; +; +; +; +const REGEX_LOCALHOST_HOSTNAME = /(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)/; +function parseURL(url, base) { + return new URL(String(url).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'), base && String(base).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost')); +} +const Internal = Symbol('NextURLInternal'); +class NextURL { + constructor(input, baseOrOpts, opts){ + let base; + let options; + if (typeof baseOrOpts === 'object' && 'pathname' in baseOrOpts || typeof baseOrOpts === 'string') { + base = baseOrOpts; + options = opts || {}; + } else { + options = opts || baseOrOpts || {}; + } + this[Internal] = { + url: parseURL(input, base ?? options.base), + options: options, + basePath: '' + }; + this.analyze(); + } + analyze() { + var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig, _this_Internal_domainLocale, _this_Internal_options_nextConfig_i18n1, _this_Internal_options_nextConfig1; + const info = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$get$2d$next$2d$pathname$2d$info$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getNextPathnameInfo"])(this[Internal].url.pathname, { + nextConfig: this[Internal].options.nextConfig, + parseData: !("TURBOPACK compile-time value", void 0), + i18nProvider: this[Internal].options.i18nProvider + }); + const hostname = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$get$2d$hostname$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getHostname"])(this[Internal].url, this[Internal].options.headers); + this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$i18n$2f$detect$2d$domain$2d$locale$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["detectDomainLocale"])((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.domains, hostname); + const defaultLocale = ((_this_Internal_domainLocale = this[Internal].domainLocale) == null ? void 0 : _this_Internal_domainLocale.defaultLocale) || ((_this_Internal_options_nextConfig1 = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n1 = _this_Internal_options_nextConfig1.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n1.defaultLocale); + this[Internal].url.pathname = info.pathname; + this[Internal].defaultLocale = defaultLocale; + this[Internal].basePath = info.basePath ?? ''; + this[Internal].buildId = info.buildId; + this[Internal].locale = info.locale ?? defaultLocale; + this[Internal].trailingSlash = info.trailingSlash; + } + formatPathname() { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$format$2d$next$2d$pathname$2d$info$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["formatNextPathnameInfo"])({ + basePath: this[Internal].basePath, + buildId: this[Internal].buildId, + defaultLocale: !this[Internal].options.forceLocale ? this[Internal].defaultLocale : undefined, + locale: this[Internal].locale, + pathname: this[Internal].url.pathname, + trailingSlash: this[Internal].trailingSlash + }); + } + formatSearch() { + return this[Internal].url.search; + } + get buildId() { + return this[Internal].buildId; + } + set buildId(buildId) { + this[Internal].buildId = buildId; + } + get locale() { + return this[Internal].locale ?? ''; + } + set locale(locale) { + var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig; + if (!this[Internal].locale || !((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.locales.includes(locale))) { + throw Object.defineProperty(new TypeError(`The NextURL configuration includes no locale "${locale}"`), "__NEXT_ERROR_CODE", { + value: "E597", + enumerable: false, + configurable: true + }); + } + this[Internal].locale = locale; + } + get defaultLocale() { + return this[Internal].defaultLocale; + } + get domainLocale() { + return this[Internal].domainLocale; + } + get searchParams() { + return this[Internal].url.searchParams; + } + get host() { + return this[Internal].url.host; + } + set host(value) { + this[Internal].url.host = value; + } + get hostname() { + return this[Internal].url.hostname; + } + set hostname(value) { + this[Internal].url.hostname = value; + } + get port() { + return this[Internal].url.port; + } + set port(value) { + this[Internal].url.port = value; + } + get protocol() { + return this[Internal].url.protocol; + } + set protocol(value) { + this[Internal].url.protocol = value; + } + get href() { + const pathname = this.formatPathname(); + const search = this.formatSearch(); + return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`; + } + set href(url) { + this[Internal].url = parseURL(url); + this.analyze(); + } + get origin() { + return this[Internal].url.origin; + } + get pathname() { + return this[Internal].url.pathname; + } + set pathname(value) { + this[Internal].url.pathname = value; + } + get hash() { + return this[Internal].url.hash; + } + set hash(value) { + this[Internal].url.hash = value; + } + get search() { + return this[Internal].url.search; + } + set search(value) { + this[Internal].url.search = value; + } + get password() { + return this[Internal].url.password; + } + set password(value) { + this[Internal].url.password = value; + } + get username() { + return this[Internal].url.username; + } + set username(value) { + this[Internal].url.username = value; + } + get basePath() { + return this[Internal].basePath; + } + set basePath(value) { + this[Internal].basePath = value.startsWith('/') ? value : `/${value}`; + } + toString() { + return this.href; + } + toJSON() { + return this.href; + } + [Symbol.for('edge-runtime.inspect.custom')]() { + return { + href: this.href, + origin: this.origin, + protocol: this.protocol, + username: this.username, + password: this.password, + host: this.host, + hostname: this.hostname, + port: this.port, + pathname: this.pathname, + search: this.search, + searchParams: this.searchParams, + hash: this.hash + }; + } + clone() { + return new NextURL(String(this), this[Internal].options); + } +} //# sourceMappingURL=next-url.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/error.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "PageSignatureError", + ()=>PageSignatureError, + "RemovedPageError", + ()=>RemovedPageError, + "RemovedUAError", + ()=>RemovedUAError +]); +class PageSignatureError extends Error { + constructor({ page }){ + super(`The middleware "${page}" accepts an async API directly with the form: + + export function middleware(request, event) { + return NextResponse.redirect('/new-location') + } + + Read more: https://nextjs.org/docs/messages/middleware-new-signature + `); + } +} +class RemovedPageError extends Error { + constructor(){ + super(`The request.page has been deprecated in favour of \`URLPattern\`. + Read more: https://nextjs.org/docs/messages/middleware-request-page + `); + } +} +class RemovedUAError extends Error { + constructor(){ + super(`The request.ua has been removed in favour of \`userAgent\` function. + Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent + `); + } +} //# sourceMappingURL=error.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all)=>{ + for(var name in all)__defProp(target, name, { + get: all[name], + enumerable: true + }); +}; +var __copyProps = (to, from, except, desc)=>{ + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from))if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { + get: ()=>from[key], + enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }); + } + return to; +}; +var __toCommonJS = (mod)=>__copyProps(__defProp({}, "__esModule", { + value: true + }), mod); +// src/index.ts +var src_exports = {}; +__export(src_exports, { + RequestCookies: ()=>RequestCookies, + ResponseCookies: ()=>ResponseCookies, + parseCookie: ()=>parseCookie, + parseSetCookie: ()=>parseSetCookie, + stringifyCookie: ()=>stringifyCookie +}); +module.exports = __toCommonJS(src_exports); +// src/serialize.ts +function stringifyCookie(c) { + var _a; + const attrs = [ + "path" in c && c.path && `Path=${c.path}`, + "expires" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === "number" ? new Date(c.expires) : c.expires).toUTCString()}`, + "maxAge" in c && typeof c.maxAge === "number" && `Max-Age=${c.maxAge}`, + "domain" in c && c.domain && `Domain=${c.domain}`, + "secure" in c && c.secure && "Secure", + "httpOnly" in c && c.httpOnly && "HttpOnly", + "sameSite" in c && c.sameSite && `SameSite=${c.sameSite}`, + "partitioned" in c && c.partitioned && "Partitioned", + "priority" in c && c.priority && `Priority=${c.priority}` + ].filter(Boolean); + const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : "")}`; + return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join("; ")}`; +} +function parseCookie(cookie) { + const map = /* @__PURE__ */ new Map(); + for (const pair of cookie.split(/; */)){ + if (!pair) continue; + const splitAt = pair.indexOf("="); + if (splitAt === -1) { + map.set(pair, "true"); + continue; + } + const [key, value] = [ + pair.slice(0, splitAt), + pair.slice(splitAt + 1) + ]; + try { + map.set(key, decodeURIComponent(value != null ? value : "true")); + } catch {} + } + return map; +} +function parseSetCookie(setCookie) { + if (!setCookie) { + return void 0; + } + const [[name, value], ...attributes] = parseCookie(setCookie); + const { domain, expires, httponly, maxage, path, samesite, secure, partitioned, priority } = Object.fromEntries(attributes.map(([key, value2])=>[ + key.toLowerCase().replace(/-/g, ""), + value2 + ])); + const cookie = { + name, + value: decodeURIComponent(value), + domain, + ...expires && { + expires: new Date(expires) + }, + ...httponly && { + httpOnly: true + }, + ...typeof maxage === "string" && { + maxAge: Number(maxage) + }, + path, + ...samesite && { + sameSite: parseSameSite(samesite) + }, + ...secure && { + secure: true + }, + ...priority && { + priority: parsePriority(priority) + }, + ...partitioned && { + partitioned: true + } + }; + return compact(cookie); +} +function compact(t) { + const newT = {}; + for(const key in t){ + if (t[key]) { + newT[key] = t[key]; + } + } + return newT; +} +var SAME_SITE = [ + "strict", + "lax", + "none" +]; +function parseSameSite(string) { + string = string.toLowerCase(); + return SAME_SITE.includes(string) ? string : void 0; +} +var PRIORITY = [ + "low", + "medium", + "high" +]; +function parsePriority(string) { + string = string.toLowerCase(); + return PRIORITY.includes(string) ? string : void 0; +} +function splitCookiesString(cookiesString) { + if (!cookiesString) return []; + var cookiesStrings = []; + var pos = 0; + var start; + var ch; + var lastComma; + var nextStart; + var cookiesSeparatorFound; + function skipWhitespace() { + while(pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))){ + pos += 1; + } + return pos < cookiesString.length; + } + function notSpecialChar() { + ch = cookiesString.charAt(pos); + return ch !== "=" && ch !== ";" && ch !== ","; + } + while(pos < cookiesString.length){ + start = pos; + cookiesSeparatorFound = false; + while(skipWhitespace()){ + ch = cookiesString.charAt(pos); + if (ch === ",") { + lastComma = pos; + pos += 1; + skipWhitespace(); + nextStart = pos; + while(pos < cookiesString.length && notSpecialChar()){ + pos += 1; + } + if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") { + cookiesSeparatorFound = true; + pos = nextStart; + cookiesStrings.push(cookiesString.substring(start, lastComma)); + start = pos; + } else { + pos = lastComma + 1; + } + } else { + pos += 1; + } + } + if (!cookiesSeparatorFound || pos >= cookiesString.length) { + cookiesStrings.push(cookiesString.substring(start, cookiesString.length)); + } + } + return cookiesStrings; +} +// src/request-cookies.ts +var RequestCookies = class { + constructor(requestHeaders){ + /** @internal */ this._parsed = /* @__PURE__ */ new Map(); + this._headers = requestHeaders; + const header = requestHeaders.get("cookie"); + if (header) { + const parsed = parseCookie(header); + for (const [name, value] of parsed){ + this._parsed.set(name, { + name, + value + }); + } + } + } + [Symbol.iterator]() { + return this._parsed[Symbol.iterator](); + } + /** + * The amount of cookies received from the client + */ get size() { + return this._parsed.size; + } + get(...args) { + const name = typeof args[0] === "string" ? args[0] : args[0].name; + return this._parsed.get(name); + } + getAll(...args) { + var _a; + const all = Array.from(this._parsed); + if (!args.length) { + return all.map(([_, value])=>value); + } + const name = typeof args[0] === "string" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name; + return all.filter(([n])=>n === name).map(([_, value])=>value); + } + has(name) { + return this._parsed.has(name); + } + set(...args) { + const [name, value] = args.length === 1 ? [ + args[0].name, + args[0].value + ] : args; + const map = this._parsed; + map.set(name, { + name, + value + }); + this._headers.set("cookie", Array.from(map).map(([_, value2])=>stringifyCookie(value2)).join("; ")); + return this; + } + /** + * Delete the cookies matching the passed name or names in the request. + */ delete(names) { + const map = this._parsed; + const result = !Array.isArray(names) ? map.delete(names) : names.map((name)=>map.delete(name)); + this._headers.set("cookie", Array.from(map).map(([_, value])=>stringifyCookie(value)).join("; ")); + return result; + } + /** + * Delete all the cookies in the cookies in the request. + */ clear() { + this.delete(Array.from(this._parsed.keys())); + return this; + } + /** + * Format the cookies in the request as a string for logging + */ [Symbol.for("edge-runtime.inspect.custom")]() { + return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`; + } + toString() { + return [ + ...this._parsed.values() + ].map((v)=>`${v.name}=${encodeURIComponent(v.value)}`).join("; "); + } +}; +// src/response-cookies.ts +var ResponseCookies = class { + constructor(responseHeaders){ + /** @internal */ this._parsed = /* @__PURE__ */ new Map(); + var _a, _b, _c; + this._headers = responseHeaders; + const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get("set-cookie")) != null ? _c : []; + const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie); + for (const cookieString of cookieStrings){ + const parsed = parseSetCookie(cookieString); + if (parsed) this._parsed.set(parsed.name, parsed); + } + } + /** + * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise. + */ get(...args) { + const key = typeof args[0] === "string" ? args[0] : args[0].name; + return this._parsed.get(key); + } + /** + * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise. + */ getAll(...args) { + var _a; + const all = Array.from(this._parsed.values()); + if (!args.length) { + return all; + } + const key = typeof args[0] === "string" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name; + return all.filter((c)=>c.name === key); + } + has(name) { + return this._parsed.has(name); + } + /** + * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise. + */ set(...args) { + const [name, value, cookie] = args.length === 1 ? [ + args[0].name, + args[0].value, + args[0] + ] : args; + const map = this._parsed; + map.set(name, normalizeCookie({ + name, + value, + ...cookie + })); + replace(map, this._headers); + return this; + } + /** + * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise. + */ delete(...args) { + const [name, options] = typeof args[0] === "string" ? [ + args[0] + ] : [ + args[0].name, + args[0] + ]; + return this.set({ + ...options, + name, + value: "", + expires: /* @__PURE__ */ new Date(0) + }); + } + [Symbol.for("edge-runtime.inspect.custom")]() { + return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`; + } + toString() { + return [ + ...this._parsed.values() + ].map(stringifyCookie).join("; "); + } +}; +function replace(bag, headers) { + headers.delete("set-cookie"); + for (const [, value] of bag){ + const serialized = stringifyCookie(value); + headers.append("set-cookie", serialized); + } +} +function normalizeCookie(cookie = { + name: "", + value: "" +}) { + if (typeof cookie.expires === "number") { + cookie.expires = new Date(cookie.expires); + } + if (cookie.maxAge) { + cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3); + } + if (cookie.path === null || cookie.path === void 0) { + cookie.path = "/"; + } + return cookie; +} +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + RequestCookies, + ResponseCookies, + parseCookie, + parseSetCookie, + stringifyCookie +}); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/spec-extension/cookies.js [app-route] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f40$edge$2d$runtime$2f$cookies$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js [app-route] (ecmascript)"); //# sourceMappingURL=cookies.js.map +; +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/spec-extension/request.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "INTERNALS", + ()=>INTERNALS, + "NextRequest", + ()=>NextRequest +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$next$2d$url$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/next-url.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/utils.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/error.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$cookies$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__$3c$locals$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/spec-extension/cookies.js [app-route] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f40$edge$2d$runtime$2f$cookies$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js [app-route] (ecmascript)"); +; +; +; +; +const INTERNALS = Symbol('internal request'); +class NextRequest extends Request { + constructor(input, init = {}){ + const url = typeof input !== 'string' && 'url' in input ? input.url : String(input); + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["validateURL"])(url); + // node Request instance requires duplex option when a body + // is present or it errors, we don't handle this for + // Request being passed in since it would have already + // errored if this wasn't configured + if ("TURBOPACK compile-time truthy", 1) { + if (init.body && init.duplex !== 'half') { + init.duplex = 'half'; + } + } + if (input instanceof Request) super(input, init); + else super(url, init); + const nextUrl = new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$next$2d$url$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextURL"](url, { + headers: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["toNodeOutgoingHttpHeaders"])(this.headers), + nextConfig: init.nextConfig + }); + this[INTERNALS] = { + cookies: new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f40$edge$2d$runtime$2f$cookies$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RequestCookies"](this.headers), + nextUrl, + url: ("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : nextUrl.toString() + }; + } + [Symbol.for('edge-runtime.inspect.custom')]() { + return { + cookies: this.cookies, + nextUrl: this.nextUrl, + url: this.url, + // rest of props come from Request + bodyUsed: this.bodyUsed, + cache: this.cache, + credentials: this.credentials, + destination: this.destination, + headers: Object.fromEntries(this.headers), + integrity: this.integrity, + keepalive: this.keepalive, + method: this.method, + mode: this.mode, + redirect: this.redirect, + referrer: this.referrer, + referrerPolicy: this.referrerPolicy, + signal: this.signal + }; + } + get cookies() { + return this[INTERNALS].cookies; + } + get nextUrl() { + return this[INTERNALS].nextUrl; + } + /** + * @deprecated + * `page` has been deprecated in favour of `URLPattern`. + * Read more: https://nextjs.org/docs/messages/middleware-request-page + */ get page() { + throw new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RemovedPageError"](); + } + /** + * @deprecated + * `ua` has been removed in favour of \`userAgent\` function. + * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent + */ get ua() { + throw new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RemovedUAError"](); + } + get url() { + return this[INTERNALS].url; + } +} //# sourceMappingURL=request.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/base-http/helpers.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * This file provides some helpers that should be used in conjunction with + * explicit environment checks. When combined with the environment checks, it + * will ensure that the correct typings are used as well as enable code + * elimination. + */ /** + * Type guard to determine if a request is a WebNextRequest. This does not + * actually check the type of the request, but rather the runtime environment. + * It's expected that when the runtime environment is the edge runtime, that any + * base request is a WebNextRequest. + */ __turbopack_context__.s([ + "isNodeNextRequest", + ()=>isNodeNextRequest, + "isNodeNextResponse", + ()=>isNodeNextResponse, + "isWebNextRequest", + ()=>isWebNextRequest, + "isWebNextResponse", + ()=>isWebNextResponse +]); +const isWebNextRequest = (req)=>("TURBOPACK compile-time value", "nodejs") === 'edge'; +const isWebNextResponse = (res)=>("TURBOPACK compile-time value", "nodejs") === 'edge'; +const isNodeNextRequest = (req)=>("TURBOPACK compile-time value", "nodejs") !== 'edge'; +const isNodeNextResponse = (res)=>("TURBOPACK compile-time value", "nodejs") !== 'edge'; //# sourceMappingURL=helpers.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/spec-extension/adapters/next-request.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "NextRequestAdapter", + ()=>NextRequestAdapter, + "ResponseAborted", + ()=>ResponseAborted, + "ResponseAbortedName", + ()=>ResponseAbortedName, + "createAbortController", + ()=>createAbortController, + "signalFromNodeResponse", + ()=>signalFromNodeResponse +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2d$meta$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/request-meta.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/utils.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$request$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/spec-extension/request.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$base$2d$http$2f$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/base-http/helpers.js [app-route] (ecmascript)"); +; +; +; +; +const ResponseAbortedName = 'ResponseAborted'; +class ResponseAborted extends Error { + constructor(...args){ + super(...args), this.name = ResponseAbortedName; + } +} +function createAbortController(response) { + const controller = new AbortController(); + // If `finish` fires first, then `res.end()` has been called and the close is + // just us finishing the stream on our side. If `close` fires first, then we + // know the client disconnected before we finished. + response.once('close', ()=>{ + if (response.writableFinished) return; + controller.abort(new ResponseAborted()); + }); + return controller; +} +function signalFromNodeResponse(response) { + const { errored, destroyed } = response; + if (errored || destroyed) { + return AbortSignal.abort(errored ?? new ResponseAborted()); + } + const { signal } = createAbortController(response); + return signal; +} +class NextRequestAdapter { + static fromBaseNextRequest(request, signal) { + if (// environment variable check provides dead code elimination. + ("TURBOPACK compile-time value", "nodejs") === 'edge' && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$base$2d$http$2f$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["isWebNextRequest"])(request)) //TURBOPACK unreachable + ; + else if (// environment variable check provides dead code elimination. + ("TURBOPACK compile-time value", "nodejs") !== 'edge' && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$base$2d$http$2f$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["isNodeNextRequest"])(request)) { + return NextRequestAdapter.fromNodeNextRequest(request, signal); + } else { + throw Object.defineProperty(new Error('Invariant: Unsupported NextRequest type'), "__NEXT_ERROR_CODE", { + value: "E345", + enumerable: false, + configurable: true + }); + } + } + static fromNodeNextRequest(request, signal) { + // HEAD and GET requests can not have a body. + let body = null; + if (request.method !== 'GET' && request.method !== 'HEAD' && request.body) { + // @ts-expect-error - this is handled by undici, when streams/web land use it instead + body = request.body; + } + let url; + if (request.url.startsWith('http')) { + url = new URL(request.url); + } else { + // Grab the full URL from the request metadata. + const base = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2d$meta$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getRequestMeta"])(request, 'initURL'); + if (!base || !base.startsWith('http')) { + // Because the URL construction relies on the fact that the URL provided + // is absolute, we need to provide a base URL. We can't use the request + // URL because it's relative, so we use a dummy URL instead. + url = new URL(request.url, 'http://n'); + } else { + url = new URL(request.url, base); + } + } + return new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$request$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextRequest"](url, { + method: request.method, + headers: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["fromNodeOutgoingHttpHeaders"])(request.headers), + duplex: 'half', + signal, + // geo + // ip + // nextConfig + // body can not be passed if request was aborted + // or we get a Request body was disturbed error + ...signal.aborted ? {} : { + body + } + }); + } + static fromWebNextRequest(request) { + // HEAD and GET requests can not have a body. + let body = null; + if (request.method !== 'GET' && request.method !== 'HEAD') { + body = request.body; + } + return new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$request$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextRequest"](request.url, { + method: request.method, + headers: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["fromNodeOutgoingHttpHeaders"])(request.headers), + duplex: 'half', + signal: request.request.signal, + // geo + // ip + // nextConfig + // body can not be passed if request was aborted + // or we get a Request body was disturbed error + ...request.request.signal.aborted ? {} : { + body + } + }); + } +} //# sourceMappingURL=next-request.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/client-component-renderer-logger.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +// Combined load times for loading client components +__turbopack_context__.s([ + "getClientComponentLoaderMetrics", + ()=>getClientComponentLoaderMetrics, + "wrapClientComponentLoader", + ()=>wrapClientComponentLoader +]); +let clientComponentLoadStart = 0; +let clientComponentLoadTimes = 0; +let clientComponentLoadCount = 0; +function wrapClientComponentLoader(ComponentMod) { + if (!('performance' in globalThis)) { + return ComponentMod.__next_app__; + } + return { + require: (...args)=>{ + const startTime = performance.now(); + if (clientComponentLoadStart === 0) { + clientComponentLoadStart = startTime; + } + try { + clientComponentLoadCount += 1; + return ComponentMod.__next_app__.require(...args); + } finally{ + clientComponentLoadTimes += performance.now() - startTime; + } + }, + loadChunk: (...args)=>{ + const startTime = performance.now(); + const result = ComponentMod.__next_app__.loadChunk(...args); + // Avoid wrapping `loadChunk`'s result in an extra promise in case something like React depends on its identity. + // We only need to know when it's settled. + result.finally(()=>{ + clientComponentLoadTimes += performance.now() - startTime; + }); + return result; + } + }; +} +function getClientComponentLoaderMetrics(options = {}) { + const metrics = clientComponentLoadStart === 0 ? undefined : { + clientComponentLoadStart, + clientComponentLoadTimes, + clientComponentLoadCount + }; + if (options.reset) { + clientComponentLoadStart = 0; + clientComponentLoadTimes = 0; + clientComponentLoadCount = 0; + } + return metrics; +} //# sourceMappingURL=client-component-renderer-logger.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/pipe-readable.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "isAbortError", + ()=>isAbortError, + "pipeToNodeResponse", + ()=>pipeToNodeResponse +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$next$2d$request$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/spec-extension/adapters/next-request.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$detached$2d$promise$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/detached-promise.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$tracer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/trace/tracer.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/trace/constants.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$client$2d$component$2d$renderer$2d$logger$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/client-component-renderer-logger.js [app-route] (ecmascript)"); +; +; +; +; +; +function isAbortError(e) { + return (e == null ? void 0 : e.name) === 'AbortError' || (e == null ? void 0 : e.name) === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$next$2d$request$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ResponseAbortedName"]; +} +function createWriterFromResponse(res, waitUntilForEnd) { + let started = false; + // Create a promise that will resolve once the response has drained. See + // https://nodejs.org/api/stream.html#stream_event_drain + let drained = new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$detached$2d$promise$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["DetachedPromise"](); + function onDrain() { + drained.resolve(); + } + res.on('drain', onDrain); + // If the finish event fires, it means we shouldn't block and wait for the + // drain event. + res.once('close', ()=>{ + res.off('drain', onDrain); + drained.resolve(); + }); + // Create a promise that will resolve once the response has finished. See + // https://nodejs.org/api/http.html#event-finish_1 + const finished = new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$detached$2d$promise$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["DetachedPromise"](); + res.once('finish', ()=>{ + finished.resolve(); + }); + // Create a writable stream that will write to the response. + return new WritableStream({ + write: async (chunk)=>{ + // You'd think we'd want to use `start` instead of placing this in `write` + // but this ensures that we don't actually flush the headers until we've + // started writing chunks. + if (!started) { + started = true; + if ('performance' in globalThis && process.env.NEXT_OTEL_PERFORMANCE_PREFIX) { + const metrics = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$client$2d$component$2d$renderer$2d$logger$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getClientComponentLoaderMetrics"])(); + if (metrics) { + performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`, { + start: metrics.clientComponentLoadStart, + end: metrics.clientComponentLoadStart + metrics.clientComponentLoadTimes + }); + } + } + res.flushHeaders(); + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$tracer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getTracer"])().trace(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextNodeServerSpan"].startResponse, { + spanName: 'start response' + }, ()=>undefined); + } + try { + const ok = res.write(chunk); + // Added by the `compression` middleware, this is a function that will + // flush the partially-compressed response to the client. + if ('flush' in res && typeof res.flush === 'function') { + res.flush(); + } + // If the write returns false, it means there's some backpressure, so + // wait until it's streamed before continuing. + if (!ok) { + await drained.promise; + // Reset the drained promise so that we can wait for the next drain event. + drained = new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$detached$2d$promise$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["DetachedPromise"](); + } + } catch (err) { + res.end(); + throw Object.defineProperty(new Error('failed to write chunk to response', { + cause: err + }), "__NEXT_ERROR_CODE", { + value: "E321", + enumerable: false, + configurable: true + }); + } + }, + abort: (err)=>{ + if (res.writableFinished) return; + res.destroy(err); + }, + close: async ()=>{ + // if a waitUntil promise was passed, wait for it to resolve before + // ending the response. + if (waitUntilForEnd) { + await waitUntilForEnd; + } + if (res.writableFinished) return; + res.end(); + return finished.promise; + } + }); +} +async function pipeToNodeResponse(readable, res, waitUntilForEnd) { + try { + // If the response has already errored, then just return now. + const { errored, destroyed } = res; + if (errored || destroyed) return; + // Create a new AbortController so that we can abort the readable if the + // client disconnects. + const controller = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$next$2d$request$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["createAbortController"])(res); + const writer = createWriterFromResponse(res, waitUntilForEnd); + await readable.pipeTo(writer, { + signal: controller.signal + }); + } catch (err) { + // If this isn't related to an abort error, re-throw it. + if (isAbortError(err)) return; + throw Object.defineProperty(new Error('failed to pipe response', { + cause: err + }), "__NEXT_ERROR_CODE", { + value: "E180", + enumerable: false, + configurable: true + }); + } +} //# sourceMappingURL=pipe-readable.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/render-result.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "default", + ()=>RenderResult +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$node$2d$web$2d$streams$2d$helper$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/stream-utils/node-web-streams-helper.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$pipe$2d$readable$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/pipe-readable.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/invariant-error.js [app-route] (ecmascript)"); +; +; +; +class RenderResult { + static #_ = /** + * A render result that represents an empty response. This is used to + * represent a response that was not found or was already sent. + */ this.EMPTY = new RenderResult(null, { + metadata: {}, + contentType: null + }); + /** + * Creates a new RenderResult instance from a static response. + * + * @param value the static response value + * @param contentType the content type of the response + * @returns a new RenderResult instance + */ static fromStatic(value, contentType) { + return new RenderResult(value, { + metadata: {}, + contentType + }); + } + constructor(response, { contentType, waitUntil, metadata }){ + this.response = response; + this.contentType = contentType; + this.metadata = metadata; + this.waitUntil = waitUntil; + } + assignMetadata(metadata) { + Object.assign(this.metadata, metadata); + } + /** + * Returns true if the response is null. It can be null if the response was + * not found or was already sent. + */ get isNull() { + return this.response === null; + } + /** + * Returns false if the response is a string. It can be a string if the page + * was prerendered. If it's not, then it was generated dynamically. + */ get isDynamic() { + return typeof this.response !== 'string'; + } + toUnchunkedString(stream = false) { + if (this.response === null) { + // If the response is null, return an empty string. This behavior is + // intentional as we're now providing the `RenderResult.EMPTY` value. + return ''; + } + if (typeof this.response !== 'string') { + if (!stream) { + throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["InvariantError"]('dynamic responses cannot be unchunked. This is a bug in Next.js'), "__NEXT_ERROR_CODE", { + value: "E732", + enumerable: false, + configurable: true + }); + } + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$node$2d$web$2d$streams$2d$helper$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["streamToString"])(this.readable); + } + return this.response; + } + /** + * Returns a readable stream of the response. + */ get readable() { + if (this.response === null) { + // If the response is null, return an empty stream. This behavior is + // intentional as we're now providing the `RenderResult.EMPTY` value. + return new ReadableStream({ + start (controller) { + controller.close(); + } + }); + } + if (typeof this.response === 'string') { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$node$2d$web$2d$streams$2d$helper$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["streamFromString"])(this.response); + } + if (Buffer.isBuffer(this.response)) { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$node$2d$web$2d$streams$2d$helper$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["streamFromBuffer"])(this.response); + } + // If the response is an array of streams, then chain them together. + if (Array.isArray(this.response)) { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$node$2d$web$2d$streams$2d$helper$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["chainStreams"])(...this.response); + } + return this.response; + } + /** + * Coerces the response to an array of streams. This will convert the response + * to an array of streams if it is not already one. + * + * @returns An array of streams + */ coerce() { + if (this.response === null) { + // If the response is null, return an empty stream. This behavior is + // intentional as we're now providing the `RenderResult.EMPTY` value. + return []; + } + if (typeof this.response === 'string') { + return [ + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$node$2d$web$2d$streams$2d$helper$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["streamFromString"])(this.response) + ]; + } else if (Array.isArray(this.response)) { + return this.response; + } else if (Buffer.isBuffer(this.response)) { + return [ + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$stream$2d$utils$2f$node$2d$web$2d$streams$2d$helper$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["streamFromBuffer"])(this.response) + ]; + } else { + return [ + this.response + ]; + } + } + /** + * Unshifts a new stream to the response. This will convert the response to an + * array of streams if it is not already one and will add the new stream to + * the start of the array. When this response is piped, all of the streams + * will be piped one after the other. + * + * @param readable The new stream to unshift + */ unshift(readable) { + // Coerce the response to an array of streams. + this.response = this.coerce(); + // Add the new stream to the start of the array. + this.response.unshift(readable); + } + /** + * Chains a new stream to the response. This will convert the response to an + * array of streams if it is not already one and will add the new stream to + * the end. When this response is piped, all of the streams will be piped + * one after the other. + * + * @param readable The new stream to chain + */ push(readable) { + // Coerce the response to an array of streams. + this.response = this.coerce(); + // Add the new stream to the end of the array. + this.response.push(readable); + } + /** + * Pipes the response to a writable stream. This will close/cancel the + * writable stream if an error is encountered. If this doesn't throw, then + * the writable stream will be closed or aborted. + * + * @param writable Writable stream to pipe the response to + */ async pipeTo(writable) { + try { + await this.readable.pipeTo(writable, { + // We want to close the writable stream ourselves so that we can wait + // for the waitUntil promise to resolve before closing it. If an error + // is encountered, we'll abort the writable stream if we swallowed the + // error. + preventClose: true + }); + // If there is a waitUntil promise, wait for it to resolve before + // closing the writable stream. + if (this.waitUntil) await this.waitUntil; + // Close the writable stream. + await writable.close(); + } catch (err) { + // If this is an abort error, we should abort the writable stream (as we + // took ownership of it when we started piping). We don't need to re-throw + // because we handled the error. + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$pipe$2d$readable$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["isAbortError"])(err)) { + // Abort the writable stream if an error is encountered. + await writable.abort(err); + return; + } + // We're not aborting the writer here as when this method throws it's not + // clear as to how so the caller should assume it's their responsibility + // to clean up the writer. + throw err; + } + } + /** + * Pipes the response to a node response. This will close/cancel the node + * response if an error is encountered. + * + * @param res + */ async pipeToNodeResponse(res) { + await (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$pipe$2d$readable$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["pipeToNodeResponse"])(this.readable, res, this.waitUntil); + } +} //# sourceMappingURL=render-result.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/response-cache/utils.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "fromResponseCacheEntry", + ()=>fromResponseCacheEntry, + "routeKindToIncrementalCacheKind", + ()=>routeKindToIncrementalCacheKind, + "toResponseCacheEntry", + ()=>toResponseCacheEntry +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/response-cache/types.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$render$2d$result$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/render-result.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$route$2d$kind$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/route-kind.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/constants.js [app-route] (ecmascript)"); +; +; +; +; +async function fromResponseCacheEntry(cacheEntry) { + var _cacheEntry_value, _cacheEntry_value1; + return { + ...cacheEntry, + value: ((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["CachedRouteKind"].PAGES ? { + kind: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["CachedRouteKind"].PAGES, + html: await cacheEntry.value.html.toUnchunkedString(true), + pageData: cacheEntry.value.pageData, + headers: cacheEntry.value.headers, + status: cacheEntry.value.status + } : ((_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind) === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["CachedRouteKind"].APP_PAGE ? { + kind: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["CachedRouteKind"].APP_PAGE, + html: await cacheEntry.value.html.toUnchunkedString(true), + postponed: cacheEntry.value.postponed, + rscData: cacheEntry.value.rscData, + headers: cacheEntry.value.headers, + status: cacheEntry.value.status, + segmentData: cacheEntry.value.segmentData + } : cacheEntry.value + }; +} +async function toResponseCacheEntry(response) { + var _response_value, _response_value1; + if (!response) return null; + return { + isMiss: response.isMiss, + isStale: response.isStale, + cacheControl: response.cacheControl, + value: ((_response_value = response.value) == null ? void 0 : _response_value.kind) === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["CachedRouteKind"].PAGES ? { + kind: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["CachedRouteKind"].PAGES, + html: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$render$2d$result$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].fromStatic(response.value.html, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["HTML_CONTENT_TYPE_HEADER"]), + pageData: response.value.pageData, + headers: response.value.headers, + status: response.value.status + } : ((_response_value1 = response.value) == null ? void 0 : _response_value1.kind) === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["CachedRouteKind"].APP_PAGE ? { + kind: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["CachedRouteKind"].APP_PAGE, + html: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$render$2d$result$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].fromStatic(response.value.html, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["HTML_CONTENT_TYPE_HEADER"]), + rscData: response.value.rscData, + headers: response.value.headers, + status: response.value.status, + postponed: response.value.postponed, + segmentData: response.value.segmentData + } : response.value + }; +} +function routeKindToIncrementalCacheKind(routeKind) { + switch(routeKind){ + case __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$route$2d$kind$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RouteKind"].PAGES: + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["IncrementalCacheKind"].PAGES; + case __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$route$2d$kind$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RouteKind"].APP_PAGE: + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["IncrementalCacheKind"].APP_PAGE; + case __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$route$2d$kind$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RouteKind"].IMAGE: + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["IncrementalCacheKind"].IMAGE; + case __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$route$2d$kind$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RouteKind"].APP_ROUTE: + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["IncrementalCacheKind"].APP_ROUTE; + case __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$route$2d$kind$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RouteKind"].PAGES_API: + // Pages Router API routes are not cached in the incremental cache. + throw Object.defineProperty(new Error(`Unexpected route kind ${routeKind}`), "__NEXT_ERROR_CODE", { + value: "E64", + enumerable: false, + configurable: true + }); + default: + return routeKind; + } +} //# sourceMappingURL=utils.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/response-cache/index.js [app-route] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "default", + ()=>ResponseCache +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$batcher$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/batcher.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$scheduler$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/scheduler.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/response-cache/utils.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/response-cache/types.js [app-route] (ecmascript)"); +; +; +; +; +class ResponseCache { + constructor(minimal_mode){ + this.getBatcher = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$batcher$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["Batcher"].create({ + // Ensure on-demand revalidate doesn't block normal requests, it should be + // safe to run an on-demand revalidate for the same key as a normal request. + cacheKeyFn: ({ key, isOnDemandRevalidate })=>`${key}-${isOnDemandRevalidate ? '1' : '0'}`, + // We wait to do any async work until after we've added our promise to + // `pendingResponses` to ensure that any any other calls will reuse the + // same promise until we've fully finished our work. + schedulerFn: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$scheduler$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["scheduleOnNextTick"] + }); + this.revalidateBatcher = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$batcher$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["Batcher"].create({ + // We wait to do any async work until after we've added our promise to + // `pendingResponses` to ensure that any any other calls will reuse the + // same promise until we've fully finished our work. + schedulerFn: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$scheduler$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["scheduleOnNextTick"] + }); + this.minimal_mode = minimal_mode; + } + /** + * Gets the response cache entry for the given key. + * + * @param key - The key to get the response cache entry for. + * @param responseGenerator - The response generator to use to generate the response cache entry. + * @param context - The context for the get request. + * @returns The response cache entry. + */ async get(key, responseGenerator, context) { + var _this_previousCacheItem; + // If there is no key for the cache, we can't possibly look this up in the + // cache so just return the result of the response generator. + if (!key) { + return responseGenerator({ + hasResolved: false, + previousCacheEntry: null + }); + } + // Check minimal mode cache before doing any other work + if (this.minimal_mode && ((_this_previousCacheItem = this.previousCacheItem) == null ? void 0 : _this_previousCacheItem.key) === key && this.previousCacheItem.expiresAt > Date.now()) { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["toResponseCacheEntry"])(this.previousCacheItem.entry); + } + const { incrementalCache, isOnDemandRevalidate = false, isFallback = false, isRoutePPREnabled = false, isPrefetch = false, waitUntil, routeKind } = context; + const response = await this.getBatcher.batch({ + key, + isOnDemandRevalidate + }, ({ resolve })=>{ + const promise = this.handleGet(key, responseGenerator, { + incrementalCache, + isOnDemandRevalidate, + isFallback, + isRoutePPREnabled, + isPrefetch, + routeKind + }, resolve); + // We need to ensure background revalidates are passed to waitUntil. + if (waitUntil) waitUntil(promise); + return promise; + }); + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["toResponseCacheEntry"])(response); + } + /** + * Handles the get request for the response cache. + * + * @param key - The key to get the response cache entry for. + * @param responseGenerator - The response generator to use to generate the response cache entry. + * @param context - The context for the get request. + * @param resolve - The resolve function to use to resolve the response cache entry. + * @returns The response cache entry. + */ async handleGet(key, responseGenerator, context, resolve) { + let previousIncrementalCacheEntry = null; + let resolved = false; + try { + // Get the previous cache entry if not in minimal mode + previousIncrementalCacheEntry = !this.minimal_mode ? await context.incrementalCache.get(key, { + kind: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["routeKindToIncrementalCacheKind"])(context.routeKind), + isRoutePPREnabled: context.isRoutePPREnabled, + isFallback: context.isFallback + }) : null; + if (previousIncrementalCacheEntry && !context.isOnDemandRevalidate) { + resolve(previousIncrementalCacheEntry); + resolved = true; + if (!previousIncrementalCacheEntry.isStale || context.isPrefetch) { + // The cached value is still valid, so we don't need to update it yet. + return previousIncrementalCacheEntry; + } + } + // Revalidate the cache entry + const incrementalResponseCacheEntry = await this.revalidate(key, context.incrementalCache, context.isRoutePPREnabled, context.isFallback, responseGenerator, previousIncrementalCacheEntry, previousIncrementalCacheEntry !== null && !context.isOnDemandRevalidate); + // Handle null response + if (!incrementalResponseCacheEntry) { + // Unset the previous cache item if it was set so we don't use it again. + if (this.minimal_mode) this.previousCacheItem = undefined; + return null; + } + // Resolve for on-demand revalidation or if not already resolved + if (context.isOnDemandRevalidate && !resolved) { + return incrementalResponseCacheEntry; + } + return incrementalResponseCacheEntry; + } catch (err) { + // If we've already resolved the cache entry, we can't reject as we + // already resolved the cache entry so log the error here. + if (resolved) { + console.error(err); + return null; + } + throw err; + } + } + /** + * Revalidates the cache entry for the given key. + * + * @param key - The key to revalidate the cache entry for. + * @param incrementalCache - The incremental cache to use to revalidate the cache entry. + * @param isRoutePPREnabled - Whether the route is PPR enabled. + * @param isFallback - Whether the route is a fallback. + * @param responseGenerator - The response generator to use to generate the response cache entry. + * @param previousIncrementalCacheEntry - The previous cache entry to use to revalidate the cache entry. + * @param hasResolved - Whether the response has been resolved. + * @returns The revalidated cache entry. + */ async revalidate(key, incrementalCache, isRoutePPREnabled, isFallback, responseGenerator, previousIncrementalCacheEntry, hasResolved, waitUntil) { + return this.revalidateBatcher.batch(key, ()=>{ + const promise = this.handleRevalidate(key, incrementalCache, isRoutePPREnabled, isFallback, responseGenerator, previousIncrementalCacheEntry, hasResolved); + // We need to ensure background revalidates are passed to waitUntil. + if (waitUntil) waitUntil(promise); + return promise; + }); + } + async handleRevalidate(key, incrementalCache, isRoutePPREnabled, isFallback, responseGenerator, previousIncrementalCacheEntry, hasResolved) { + try { + // Generate the response cache entry using the response generator. + const responseCacheEntry = await responseGenerator({ + hasResolved, + previousCacheEntry: previousIncrementalCacheEntry, + isRevalidating: true + }); + if (!responseCacheEntry) { + return null; + } + // Convert the response cache entry to an incremental response cache entry. + const incrementalResponseCacheEntry = await (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["fromResponseCacheEntry"])({ + ...responseCacheEntry, + isMiss: !previousIncrementalCacheEntry + }); + // We want to persist the result only if it has a cache control value + // defined. + if (incrementalResponseCacheEntry.cacheControl) { + if (this.minimal_mode) { + this.previousCacheItem = { + key, + entry: incrementalResponseCacheEntry, + expiresAt: Date.now() + 1000 + }; + } else { + await incrementalCache.set(key, incrementalResponseCacheEntry.value, { + cacheControl: incrementalResponseCacheEntry.cacheControl, + isRoutePPREnabled, + isFallback + }); + } + } + return incrementalResponseCacheEntry; + } catch (err) { + // When a path is erroring we automatically re-set the existing cache + // with new revalidate and expire times to prevent non-stop retrying. + if (previousIncrementalCacheEntry == null ? void 0 : previousIncrementalCacheEntry.cacheControl) { + const revalidate = Math.min(Math.max(previousIncrementalCacheEntry.cacheControl.revalidate || 3, 3), 30); + const expire = previousIncrementalCacheEntry.cacheControl.expire === undefined ? undefined : Math.max(revalidate + 3, previousIncrementalCacheEntry.cacheControl.expire); + await incrementalCache.set(key, previousIncrementalCacheEntry.value, { + cacheControl: { + revalidate: revalidate, + expire: expire + }, + isRoutePPREnabled, + isFallback + }); + } + // We haven't resolved yet, so let's throw to indicate an error. + throw err; + } + } +} //# sourceMappingURL=index.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/patch-fetch.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "NEXT_PATCH_SYMBOL", + ()=>NEXT_PATCH_SYMBOL, + "createPatchedFetcher", + ()=>createPatchedFetcher, + "patchFetch", + ()=>patchFetch, + "validateRevalidate", + ()=>validateRevalidate, + "validateTags", + ()=>validateTags +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/trace/constants.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$tracer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/trace/tracer.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/constants.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/dynamic-rendering.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/dynamic-rendering-utils.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$dedupe$2d$fetch$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/dedupe-fetch.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__$3c$locals$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/response-cache/index.js [app-route] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/response-cache/types.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$clone$2d$response$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/clone-response.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$staged$2d$rendering$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/staged-rendering.js [app-route] (ecmascript)"); +; +; +; +; +; +; +; +; +; +; +const isEdgeRuntime = ("TURBOPACK compile-time value", "nodejs") === 'edge'; +const NEXT_PATCH_SYMBOL = Symbol.for('next-patch'); +function isFetchPatched() { + return globalThis[NEXT_PATCH_SYMBOL] === true; +} +function validateRevalidate(revalidateVal, route) { + try { + let normalizedRevalidate = undefined; + if (revalidateVal === false) { + normalizedRevalidate = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["INFINITE_CACHE"]; + } else if (typeof revalidateVal === 'number' && !isNaN(revalidateVal) && revalidateVal > -1) { + normalizedRevalidate = revalidateVal; + } else if (typeof revalidateVal !== 'undefined') { + throw Object.defineProperty(new Error(`Invalid revalidate value "${revalidateVal}" on "${route}", must be a non-negative number or false`), "__NEXT_ERROR_CODE", { + value: "E179", + enumerable: false, + configurable: true + }); + } + return normalizedRevalidate; + } catch (err) { + // handle client component error from attempting to check revalidate value + if (err instanceof Error && err.message.includes('Invalid revalidate')) { + throw err; + } + return undefined; + } +} +function validateTags(tags, description) { + const validTags = []; + const invalidTags = []; + for(let i = 0; i < tags.length; i++){ + const tag = tags[i]; + if (typeof tag !== 'string') { + invalidTags.push({ + tag, + reason: 'invalid type, must be a string' + }); + } else if (tag.length > __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NEXT_CACHE_TAG_MAX_LENGTH"]) { + invalidTags.push({ + tag, + reason: `exceeded max length of ${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NEXT_CACHE_TAG_MAX_LENGTH"]}` + }); + } else { + validTags.push(tag); + } + if (validTags.length > __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NEXT_CACHE_TAG_MAX_ITEMS"]) { + console.warn(`Warning: exceeded max tag count for ${description}, dropped tags:`, tags.slice(i).join(', ')); + break; + } + } + if (invalidTags.length > 0) { + console.warn(`Warning: invalid tags passed to ${description}: `); + for (const { tag, reason } of invalidTags){ + console.log(`tag: "${tag}" ${reason}`); + } + } + return validTags; +} +function trackFetchMetric(workStore, ctx) { + if (!workStore.shouldTrackFetchMetrics) { + return; + } + workStore.fetchMetrics ??= []; + workStore.fetchMetrics.push({ + ...ctx, + end: performance.timeOrigin + performance.now(), + idx: workStore.nextFetchId || 0 + }); +} +async function createCachedPrerenderResponse(res, cacheKey, incrementalCacheContext, incrementalCache, revalidate, handleUnlock) { + // We are prerendering at build time or revalidate time with cacheComponents so we + // need to buffer the response so we can guarantee it can be read in a + // microtask. + const bodyBuffer = await res.arrayBuffer(); + const fetchedData = { + headers: Object.fromEntries(res.headers.entries()), + body: Buffer.from(bodyBuffer).toString('base64'), + status: res.status, + url: res.url + }; + // We can skip setting the serverComponentsHmrCache because we aren't in dev + // mode. + if (incrementalCacheContext) { + await incrementalCache.set(cacheKey, { + kind: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["CachedRouteKind"].FETCH, + data: fetchedData, + revalidate + }, incrementalCacheContext); + } + await handleUnlock(); + // We return a new Response to the caller. + return new Response(bodyBuffer, { + headers: res.headers, + status: res.status, + statusText: res.statusText + }); +} +async function createCachedDynamicResponse(workStore, res, cacheKey, incrementalCacheContext, incrementalCache, serverComponentsHmrCache, revalidate, input, handleUnlock) { + // We're cloning the response using this utility because there exists a bug in + // the undici library around response cloning. See the following pull request + // for more details: https://github.com/vercel/next.js/pull/73274 + const [cloned1, cloned2] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$clone$2d$response$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["cloneResponse"])(res); + // We are dynamically rendering including dev mode. We want to return the + // response to the caller as soon as possible because it might stream over a + // very long time. + const cacheSetPromise = cloned1.arrayBuffer().then(async (arrayBuffer)=>{ + const bodyBuffer = Buffer.from(arrayBuffer); + const fetchedData = { + headers: Object.fromEntries(cloned1.headers.entries()), + body: bodyBuffer.toString('base64'), + status: cloned1.status, + url: cloned1.url + }; + serverComponentsHmrCache == null ? void 0 : serverComponentsHmrCache.set(cacheKey, fetchedData); + if (incrementalCacheContext) { + await incrementalCache.set(cacheKey, { + kind: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["CachedRouteKind"].FETCH, + data: fetchedData, + revalidate + }, incrementalCacheContext); + } + }).catch((error)=>console.warn(`Failed to set fetch cache`, input, error)).finally(handleUnlock); + const pendingRevalidateKey = `cache-set-${cacheKey}`; + workStore.pendingRevalidates ??= {}; + if (pendingRevalidateKey in workStore.pendingRevalidates) { + // there is already a pending revalidate entry that we need to await to + // avoid race conditions + await workStore.pendingRevalidates[pendingRevalidateKey]; + } + workStore.pendingRevalidates[pendingRevalidateKey] = cacheSetPromise.finally(()=>{ + var _workStore_pendingRevalidates; + // If the pending revalidate is not present in the store, then we have + // nothing to delete. + if (!((_workStore_pendingRevalidates = workStore.pendingRevalidates) == null ? void 0 : _workStore_pendingRevalidates[pendingRevalidateKey])) { + return; + } + delete workStore.pendingRevalidates[pendingRevalidateKey]; + }); + return cloned2; +} +function createPatchedFetcher(originFetch, { workAsyncStorage, workUnitAsyncStorage }) { + // Create the patched fetch function. + const patched = async function fetch(input, init) { + var _init_method, _init_next; + let url; + try { + url = new URL(input instanceof Request ? input.url : input); + url.username = ''; + url.password = ''; + } catch { + // Error caused by malformed URL should be handled by native fetch + url = undefined; + } + const fetchUrl = (url == null ? void 0 : url.href) ?? ''; + const method = (init == null ? void 0 : (_init_method = init.method) == null ? void 0 : _init_method.toUpperCase()) || 'GET'; + // Do create a new span trace for internal fetches in the + // non-verbose mode. + const isInternal = (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next.internal) === true; + const hideSpan = process.env.NEXT_OTEL_FETCH_DISABLED === '1'; + // We don't track fetch metrics for internal fetches + // so it's not critical that we have a start time, as it won't be recorded. + // This is to workaround a flaky issue where performance APIs might + // not be available and will require follow-up investigation. + const fetchStart = isInternal ? undefined : performance.timeOrigin + performance.now(); + const workStore = workAsyncStorage.getStore(); + const workUnitStore = workUnitAsyncStorage.getStore(); + let cacheSignal = workUnitStore ? (0, __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["getCacheSignal"])(workUnitStore) : null; + if (cacheSignal) { + cacheSignal.beginRead(); + } + const result = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$tracer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getTracer"])().trace(isInternal ? __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextNodeServerSpan"].internalFetch : __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["AppRenderSpan"].fetch, { + hideSpan, + kind: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$tracer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["SpanKind"].CLIENT, + spanName: [ + 'fetch', + method, + fetchUrl + ].filter(Boolean).join(' '), + attributes: { + 'http.url': fetchUrl, + 'http.method': method, + 'net.peer.name': url == null ? void 0 : url.hostname, + 'net.peer.port': (url == null ? void 0 : url.port) || undefined + } + }, async ()=>{ + var _getRequestMeta; + // If this is an internal fetch, we should not do any special treatment. + if (isInternal) { + return originFetch(input, init); + } + // If the workStore is not available, we can't do any + // special treatment of fetch, therefore fallback to the original + // fetch implementation. + if (!workStore) { + return originFetch(input, init); + } + // We should also fallback to the original fetch implementation if we + // are in draft mode, it does not constitute a static generation. + if (workStore.isDraftMode) { + return originFetch(input, init); + } + const isRequestInput = input && typeof input === 'object' && typeof input.method === 'string'; + const getRequestMeta = (field)=>{ + // If request input is present but init is not, retrieve from input first. + const value = init == null ? void 0 : init[field]; + return value || (isRequestInput ? input[field] : null); + }; + let finalRevalidate = undefined; + const getNextField = (field)=>{ + var _init_next, _init_next1, _input_next; + return typeof (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next[field]) !== 'undefined' ? init == null ? void 0 : (_init_next1 = init.next) == null ? void 0 : _init_next1[field] : isRequestInput ? (_input_next = input.next) == null ? void 0 : _input_next[field] : undefined; + }; + // RequestInit doesn't keep extra fields e.g. next so it's + // only available if init is used separate + const originalFetchRevalidate = getNextField('revalidate'); + let currentFetchRevalidate = originalFetchRevalidate; + const tags = validateTags(getNextField('tags') || [], `fetch ${input.toString()}`); + let revalidateStore; + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-runtime': + // TODO: Stop accumulating tags in client prerender. (fallthrough) + case 'prerender-client': + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + revalidateStore = workUnitStore; + break; + case 'request': + case 'unstable-cache': + break; + default: + workUnitStore; + } + } + if (revalidateStore) { + if (Array.isArray(tags)) { + // Collect tags onto parent caches or parent prerenders. + const collectedTags = revalidateStore.tags ?? (revalidateStore.tags = []); + for (const tag of tags){ + if (!collectedTags.includes(tag)) { + collectedTags.push(tag); + } + } + } + } + const implicitTags = workUnitStore == null ? void 0 : workUnitStore.implicitTags; + let pageFetchCacheMode = workStore.fetchCache; + if (workUnitStore) { + switch(workUnitStore.type){ + case 'unstable-cache': + // Inside unstable-cache we treat it the same as force-no-store on + // the page. + pageFetchCacheMode = 'force-no-store'; + break; + case 'prerender': + case 'prerender-client': + case 'prerender-runtime': + case 'prerender-ppr': + case 'prerender-legacy': + case 'request': + case 'cache': + case 'private-cache': + break; + default: + workUnitStore; + } + } + const isUsingNoStore = !!workStore.isUnstableNoStore; + let currentFetchCacheConfig = getRequestMeta('cache'); + let cacheReason = ''; + let cacheWarning; + if (typeof currentFetchCacheConfig === 'string' && typeof currentFetchRevalidate !== 'undefined') { + // If the revalidate value conflicts with the cache value, we should warn the user and unset the conflicting values. + const isConflictingRevalidate = currentFetchCacheConfig === 'force-cache' && currentFetchRevalidate === 0 || // revalidate: >0 or revalidate: false and cache: no-store + currentFetchCacheConfig === 'no-store' && (currentFetchRevalidate > 0 || currentFetchRevalidate === false); + if (isConflictingRevalidate) { + cacheWarning = `Specified "cache: ${currentFetchCacheConfig}" and "revalidate: ${currentFetchRevalidate}", only one should be specified.`; + currentFetchCacheConfig = undefined; + currentFetchRevalidate = undefined; + } + } + const hasExplicitFetchCacheOptOut = currentFetchCacheConfig === 'no-cache' || currentFetchCacheConfig === 'no-store' || // the fetch isn't explicitly caching and the segment level cache config signals not to cache + // note: `pageFetchCacheMode` is also set by being in an unstable_cache context. + pageFetchCacheMode === 'force-no-store' || pageFetchCacheMode === 'only-no-store'; + // If no explicit fetch cache mode is set, but dynamic = `force-dynamic` is set, + // we shouldn't consider caching the fetch. This is because the `dynamic` cache + // is considered a "top-level" cache mode, whereas something like `fetchCache` is more + // fine-grained. Top-level modes are responsible for setting reasonable defaults for the + // other configurations. + const noFetchConfigAndForceDynamic = !pageFetchCacheMode && !currentFetchCacheConfig && !currentFetchRevalidate && workStore.forceDynamic; + if (// which will signal the cache to not revalidate + currentFetchCacheConfig === 'force-cache' && typeof currentFetchRevalidate === 'undefined') { + currentFetchRevalidate = false; + } else if (hasExplicitFetchCacheOptOut || noFetchConfigAndForceDynamic) { + currentFetchRevalidate = 0; + } + if (currentFetchCacheConfig === 'no-cache' || currentFetchCacheConfig === 'no-store') { + cacheReason = `cache: ${currentFetchCacheConfig}`; + } + finalRevalidate = validateRevalidate(currentFetchRevalidate, workStore.route); + const _headers = getRequestMeta('headers'); + const initHeaders = typeof (_headers == null ? void 0 : _headers.get) === 'function' ? _headers : new Headers(_headers || {}); + const hasUnCacheableHeader = initHeaders.get('authorization') || initHeaders.get('cookie'); + const isUnCacheableMethod = ![ + 'get', + 'head' + ].includes(((_getRequestMeta = getRequestMeta('method')) == null ? void 0 : _getRequestMeta.toLowerCase()) || 'get'); + /** + * We automatically disable fetch caching under the following conditions: + * - Fetch cache configs are not set. Specifically: + * - A page fetch cache mode is not set (export const fetchCache=...) + * - A fetch cache mode is not set in the fetch call (fetch(url, { cache: ... })) + * or the fetch cache mode is set to 'default' + * - A fetch revalidate value is not set in the fetch call (fetch(url, { revalidate: ... })) + * - OR the fetch comes after a configuration that triggered dynamic rendering (e.g., reading cookies()) + * and the fetch was considered uncacheable (e.g., POST method or has authorization headers) + */ const hasNoExplicitCacheConfig = pageFetchCacheMode == undefined && // eslint-disable-next-line eqeqeq + (currentFetchCacheConfig == undefined || // when considering whether to opt into the default "no-cache" fetch semantics, + // a "default" cache config should be treated the same as no cache config + currentFetchCacheConfig === 'default') && // eslint-disable-next-line eqeqeq + currentFetchRevalidate == undefined; + let autoNoCache = Boolean((hasUnCacheableHeader || isUnCacheableMethod) && (revalidateStore == null ? void 0 : revalidateStore.revalidate) === 0); + let isImplicitBuildTimeCache = false; + if (!autoNoCache && hasNoExplicitCacheConfig) { + // We don't enable automatic no-cache behavior during build-time + // prerendering so that we can still leverage the fetch cache between + // export workers. + if (workStore.isBuildTimePrerendering) { + isImplicitBuildTimeCache = true; + } else { + autoNoCache = true; + } + } + // If we have no cache config, and we're in Dynamic I/O prerendering, + // it'll be a dynamic call. We don't have to issue that dynamic call. + if (hasNoExplicitCacheConfig && workUnitStore !== undefined) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-runtime': + // While we don't want to do caching in the client scope we know the + // fetch will be dynamic for cacheComponents so we may as well avoid the + // call here. (fallthrough) + case 'prerender-client': + if (cacheSignal) { + cacheSignal.endRead(); + cacheSignal = null; + } + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["makeHangingPromise"])(workUnitStore.renderSignal, workStore.route, 'fetch()'); + case 'request': + if (("TURBOPACK compile-time value", "development") === 'development' && workUnitStore.stagedRendering) { + if (cacheSignal) { + cacheSignal.endRead(); + cacheSignal = null; + } + await workUnitStore.stagedRendering.waitForStage(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$staged$2d$rendering$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RenderStage"].Dynamic); + } + break; + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + case 'unstable-cache': + break; + default: + workUnitStore; + } + } + switch(pageFetchCacheMode){ + case 'force-no-store': + { + cacheReason = 'fetchCache = force-no-store'; + break; + } + case 'only-no-store': + { + if (currentFetchCacheConfig === 'force-cache' || typeof finalRevalidate !== 'undefined' && finalRevalidate > 0) { + throw Object.defineProperty(new Error(`cache: 'force-cache' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-no-store'`), "__NEXT_ERROR_CODE", { + value: "E448", + enumerable: false, + configurable: true + }); + } + cacheReason = 'fetchCache = only-no-store'; + break; + } + case 'only-cache': + { + if (currentFetchCacheConfig === 'no-store') { + throw Object.defineProperty(new Error(`cache: 'no-store' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-cache'`), "__NEXT_ERROR_CODE", { + value: "E521", + enumerable: false, + configurable: true + }); + } + break; + } + case 'force-cache': + { + if (typeof currentFetchRevalidate === 'undefined' || currentFetchRevalidate === 0) { + cacheReason = 'fetchCache = force-cache'; + finalRevalidate = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["INFINITE_CACHE"]; + } + break; + } + case 'default-cache': + case 'default-no-store': + case 'auto': + case undefined: + break; + default: + pageFetchCacheMode; + } + if (typeof finalRevalidate === 'undefined') { + if (pageFetchCacheMode === 'default-cache' && !isUsingNoStore) { + finalRevalidate = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["INFINITE_CACHE"]; + cacheReason = 'fetchCache = default-cache'; + } else if (pageFetchCacheMode === 'default-no-store') { + finalRevalidate = 0; + cacheReason = 'fetchCache = default-no-store'; + } else if (isUsingNoStore) { + finalRevalidate = 0; + cacheReason = 'noStore call'; + } else if (autoNoCache) { + finalRevalidate = 0; + cacheReason = 'auto no cache'; + } else { + // TODO: should we consider this case an invariant? + cacheReason = 'auto cache'; + finalRevalidate = revalidateStore ? revalidateStore.revalidate : __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["INFINITE_CACHE"]; + } + } else if (!cacheReason) { + cacheReason = `revalidate: ${finalRevalidate}`; + } + if (// `revalidate: 0` values + !(workStore.forceStatic && finalRevalidate === 0) && // we don't consider autoNoCache to switch to dynamic for ISR + !autoNoCache && // If the revalidate value isn't currently set or the value is less + // than the current revalidate value, we should update the revalidate + // value. + revalidateStore && finalRevalidate < revalidateStore.revalidate) { + // If we were setting the revalidate value to 0, we should try to + // postpone instead first. + if (finalRevalidate === 0) { + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-client': + case 'prerender-runtime': + if (cacheSignal) { + cacheSignal.endRead(); + cacheSignal = null; + } + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["makeHangingPromise"])(workUnitStore.renderSignal, workStore.route, 'fetch()'); + case 'request': + if (("TURBOPACK compile-time value", "development") === 'development' && workUnitStore.stagedRendering) { + if (cacheSignal) { + cacheSignal.endRead(); + cacheSignal = null; + } + await workUnitStore.stagedRendering.waitForStage(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$staged$2d$rendering$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RenderStage"].Dynamic); + } + break; + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + case 'unstable-cache': + break; + default: + workUnitStore; + } + } + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["markCurrentScopeAsDynamic"])(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`); + } + // We only want to set the revalidate store's revalidate time if it + // was explicitly set for the fetch call, i.e. + // originalFetchRevalidate. + if (revalidateStore && originalFetchRevalidate === finalRevalidate) { + revalidateStore.revalidate = finalRevalidate; + } + } + const isCacheableRevalidate = typeof finalRevalidate === 'number' && finalRevalidate > 0; + let cacheKey; + const { incrementalCache } = workStore; + let isHmrRefresh = false; + let serverComponentsHmrCache; + if (workUnitStore) { + switch(workUnitStore.type){ + case 'request': + case 'cache': + case 'private-cache': + isHmrRefresh = workUnitStore.isHmrRefresh ?? false; + serverComponentsHmrCache = workUnitStore.serverComponentsHmrCache; + break; + case 'prerender': + case 'prerender-client': + case 'prerender-runtime': + case 'prerender-ppr': + case 'prerender-legacy': + case 'unstable-cache': + break; + default: + workUnitStore; + } + } + if (incrementalCache && (isCacheableRevalidate || serverComponentsHmrCache)) { + try { + cacheKey = await incrementalCache.generateCacheKey(fetchUrl, isRequestInput ? input : init); + } catch (err) { + console.error(`Failed to generate cache key for`, input); + } + } + const fetchIdx = workStore.nextFetchId ?? 1; + workStore.nextFetchId = fetchIdx + 1; + let handleUnlock = ()=>{}; + const doOriginalFetch = async (isStale, cacheReasonOverride)=>{ + const requestInputFields = [ + 'cache', + 'credentials', + 'headers', + 'integrity', + 'keepalive', + 'method', + 'mode', + 'redirect', + 'referrer', + 'referrerPolicy', + 'window', + 'duplex', + // don't pass through signal when revalidating + ...isStale ? [] : [ + 'signal' + ] + ]; + if (isRequestInput) { + const reqInput = input; + const reqOptions = { + body: reqInput._ogBody || reqInput.body + }; + for (const field of requestInputFields){ + // @ts-expect-error custom fields + reqOptions[field] = reqInput[field]; + } + input = new Request(reqInput.url, reqOptions); + } else if (init) { + const { _ogBody, body, signal, ...otherInput } = init; + init = { + ...otherInput, + body: _ogBody || body, + signal: isStale ? undefined : signal + }; + } + // add metadata to init without editing the original + const clonedInit = { + ...init, + next: { + ...init == null ? void 0 : init.next, + fetchType: 'origin', + fetchIdx + } + }; + return originFetch(input, clonedInit).then(async (res)=>{ + if (!isStale && fetchStart) { + trackFetchMetric(workStore, { + start: fetchStart, + url: fetchUrl, + cacheReason: cacheReasonOverride || cacheReason, + cacheStatus: finalRevalidate === 0 || cacheReasonOverride ? 'skip' : 'miss', + cacheWarning, + status: res.status, + method: clonedInit.method || 'GET' + }); + } + if (res.status === 200 && incrementalCache && cacheKey && (isCacheableRevalidate || serverComponentsHmrCache)) { + const normalizedRevalidate = finalRevalidate >= __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["INFINITE_CACHE"] ? __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["CACHE_ONE_YEAR"] : finalRevalidate; + const incrementalCacheConfig = isCacheableRevalidate ? { + fetchCache: true, + fetchUrl, + fetchIdx, + tags, + isImplicitBuildTimeCache + } : undefined; + switch(workUnitStore == null ? void 0 : workUnitStore.type){ + case 'prerender': + case 'prerender-client': + case 'prerender-runtime': + return createCachedPrerenderResponse(res, cacheKey, incrementalCacheConfig, incrementalCache, normalizedRevalidate, handleUnlock); + case 'request': + if (("TURBOPACK compile-time value", "development") === 'development' && workUnitStore.stagedRendering && workUnitStore.cacheSignal) { + // We're filling caches for a staged render, + // so we need to wait for the response to finish instead of streaming. + return createCachedPrerenderResponse(res, cacheKey, incrementalCacheConfig, incrementalCache, normalizedRevalidate, handleUnlock); + } + // fallthrough + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + case 'unstable-cache': + case undefined: + return createCachedDynamicResponse(workStore, res, cacheKey, incrementalCacheConfig, incrementalCache, serverComponentsHmrCache, normalizedRevalidate, input, handleUnlock); + default: + workUnitStore; + } + } + // we had response that we determined shouldn't be cached so we return it + // and don't cache it. This also needs to unlock the cache lock we acquired. + await handleUnlock(); + return res; + }).catch((error)=>{ + handleUnlock(); + throw error; + }); + }; + let cacheReasonOverride; + let isForegroundRevalidate = false; + let isHmrRefreshCache = false; + if (cacheKey && incrementalCache) { + let cachedFetchData; + if (isHmrRefresh && serverComponentsHmrCache) { + cachedFetchData = serverComponentsHmrCache.get(cacheKey); + isHmrRefreshCache = true; + } + if (isCacheableRevalidate && !cachedFetchData) { + handleUnlock = await incrementalCache.lock(cacheKey); + const entry = workStore.isOnDemandRevalidate ? null : await incrementalCache.get(cacheKey, { + kind: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["IncrementalCacheKind"].FETCH, + revalidate: finalRevalidate, + fetchUrl, + fetchIdx, + tags, + softTags: implicitTags == null ? void 0 : implicitTags.tags + }); + if (hasNoExplicitCacheConfig && workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-client': + case 'prerender-runtime': + // We sometimes use the cache to dedupe fetches that do not + // specify a cache configuration. In these cases we want to + // make sure we still exclude them from prerenders if + // cacheComponents is on so we introduce an artificial task boundary + // here. + await getTimeoutBoundary(); + break; + case 'request': + if (("TURBOPACK compile-time value", "development") === 'development' && workUnitStore.stagedRendering) { + await workUnitStore.stagedRendering.waitForStage(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$staged$2d$rendering$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RenderStage"].Dynamic); + } + break; + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + case 'unstable-cache': + break; + default: + workUnitStore; + } + } + if (entry) { + await handleUnlock(); + } else { + // in dev, incremental cache response will be null in case the browser adds `cache-control: no-cache` in the request headers + // TODO: it seems like we also hit this after revalidates in dev? + cacheReasonOverride = 'cache-control: no-cache (hard refresh)'; + } + if ((entry == null ? void 0 : entry.value) && entry.value.kind === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["CachedRouteKind"].FETCH) { + // when stale and is revalidating we wait for fresh data + // so the revalidated entry has the updated data + if (workStore.isStaticGeneration && entry.isStale) { + isForegroundRevalidate = true; + } else { + if (entry.isStale) { + workStore.pendingRevalidates ??= {}; + if (!workStore.pendingRevalidates[cacheKey]) { + const pendingRevalidate = doOriginalFetch(true).then(async (response)=>({ + body: await response.arrayBuffer(), + headers: response.headers, + status: response.status, + statusText: response.statusText + })).finally(()=>{ + workStore.pendingRevalidates ??= {}; + delete workStore.pendingRevalidates[cacheKey || '']; + }); + // Attach the empty catch here so we don't get a "unhandled + // promise rejection" warning. + pendingRevalidate.catch(console.error); + workStore.pendingRevalidates[cacheKey] = pendingRevalidate; + } + } + cachedFetchData = entry.value.data; + } + } + } + if (cachedFetchData) { + if (fetchStart) { + trackFetchMetric(workStore, { + start: fetchStart, + url: fetchUrl, + cacheReason, + cacheStatus: isHmrRefreshCache ? 'hmr' : 'hit', + cacheWarning, + status: cachedFetchData.status || 200, + method: (init == null ? void 0 : init.method) || 'GET' + }); + } + const response = new Response(Buffer.from(cachedFetchData.body, 'base64'), { + headers: cachedFetchData.headers, + status: cachedFetchData.status + }); + Object.defineProperty(response, 'url', { + value: cachedFetchData.url + }); + return response; + } + } + if ((workStore.isStaticGeneration || ("TURBOPACK compile-time value", "development") === 'development' && ("TURBOPACK compile-time value", false) && workUnitStore && // eslint-disable-next-line no-restricted-syntax + workUnitStore.type === 'request' && workUnitStore.stagedRendering) && init && typeof init === 'object') { + const { cache } = init; + // Delete `cache` property as Cloudflare Workers will throw an error + if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable + ; + if (cache === 'no-store') { + // If enabled, we should bail out of static generation. + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-client': + case 'prerender-runtime': + if (cacheSignal) { + cacheSignal.endRead(); + cacheSignal = null; + } + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["makeHangingPromise"])(workUnitStore.renderSignal, workStore.route, 'fetch()'); + case 'request': + if (("TURBOPACK compile-time value", "development") === 'development' && workUnitStore.stagedRendering) { + if (cacheSignal) { + cacheSignal.endRead(); + cacheSignal = null; + } + await workUnitStore.stagedRendering.waitForStage(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$staged$2d$rendering$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RenderStage"].Dynamic); + } + break; + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + case 'unstable-cache': + break; + default: + workUnitStore; + } + } + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["markCurrentScopeAsDynamic"])(workStore, workUnitStore, `no-store fetch ${input} ${workStore.route}`); + } + const hasNextConfig = 'next' in init; + const { next = {} } = init; + if (typeof next.revalidate === 'number' && revalidateStore && next.revalidate < revalidateStore.revalidate) { + if (next.revalidate === 0) { + // If enabled, we should bail out of static generation. + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-client': + case 'prerender-runtime': + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["makeHangingPromise"])(workUnitStore.renderSignal, workStore.route, 'fetch()'); + case 'request': + if (("TURBOPACK compile-time value", "development") === 'development' && workUnitStore.stagedRendering) { + await workUnitStore.stagedRendering.waitForStage(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$staged$2d$rendering$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RenderStage"].Dynamic); + } + break; + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'prerender-legacy': + case 'prerender-ppr': + break; + default: + workUnitStore; + } + } + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["markCurrentScopeAsDynamic"])(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`); + } + if (!workStore.forceStatic || next.revalidate !== 0) { + revalidateStore.revalidate = next.revalidate; + } + } + if (hasNextConfig) delete init.next; + } + // if we are revalidating the whole page via time or on-demand and + // the fetch cache entry is stale we should still de-dupe the + // origin hit if it's a cache-able entry + if (cacheKey && isForegroundRevalidate) { + const pendingRevalidateKey = cacheKey; + workStore.pendingRevalidates ??= {}; + let pendingRevalidate = workStore.pendingRevalidates[pendingRevalidateKey]; + if (pendingRevalidate) { + const revalidatedResult = await pendingRevalidate; + return new Response(revalidatedResult.body, { + headers: revalidatedResult.headers, + status: revalidatedResult.status, + statusText: revalidatedResult.statusText + }); + } + // We used to just resolve the Response and clone it however for + // static generation with cacheComponents we need the response to be able to + // be resolved in a microtask and cloning the response will never have + // a body that can resolve in a microtask in node (as observed through + // experimentation) So instead we await the body and then when it is + // available we construct manually cloned Response objects with the + // body as an ArrayBuffer. This will be resolvable in a microtask + // making it compatible with cacheComponents. + const pendingResponse = doOriginalFetch(true, cacheReasonOverride) // We're cloning the response using this utility because there + // exists a bug in the undici library around response cloning. + // See the following pull request for more details: + // https://github.com/vercel/next.js/pull/73274 + .then(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$clone$2d$response$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["cloneResponse"]); + pendingRevalidate = pendingResponse.then(async (responses)=>{ + const response = responses[0]; + return { + body: await response.arrayBuffer(), + headers: response.headers, + status: response.status, + statusText: response.statusText + }; + }).finally(()=>{ + var _workStore_pendingRevalidates; + // If the pending revalidate is not present in the store, then + // we have nothing to delete. + if (!((_workStore_pendingRevalidates = workStore.pendingRevalidates) == null ? void 0 : _workStore_pendingRevalidates[pendingRevalidateKey])) { + return; + } + delete workStore.pendingRevalidates[pendingRevalidateKey]; + }); + // Attach the empty catch here so we don't get a "unhandled promise + // rejection" warning + pendingRevalidate.catch(()=>{}); + workStore.pendingRevalidates[pendingRevalidateKey] = pendingRevalidate; + return pendingResponse.then((responses)=>responses[1]); + } else { + return doOriginalFetch(false, cacheReasonOverride); + } + }); + if (cacheSignal) { + try { + return await result; + } finally{ + if (cacheSignal) { + cacheSignal.endRead(); + } + } + } + return result; + }; + // Attach the necessary properties to the patched fetch function. + // We don't use this to determine if the fetch function has been patched, + // but for external consumers to determine if the fetch function has been + // patched. + patched.__nextPatched = true; + patched.__nextGetStaticStore = ()=>workAsyncStorage; + patched._nextOriginalFetch = originFetch; + globalThis[NEXT_PATCH_SYMBOL] = true; + // Assign the function name also as a name property, so that it's preserved + // even when mangling is enabled. + Object.defineProperty(patched, 'name', { + value: 'fetch', + writable: false + }); + return patched; +} +function patchFetch(options) { + // If we've already patched fetch, we should not patch it again. + if (isFetchPatched()) return; + // Grab the original fetch function. We'll attach this so we can use it in + // the patched fetch function. + const original = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$dedupe$2d$fetch$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["createDedupeFetch"])(globalThis.fetch); + // Set the global fetch to the patched fetch. + globalThis.fetch = createPatchedFetcher(original, options); +} +let currentTimeoutBoundary = null; +function getTimeoutBoundary() { + if (!currentTimeoutBoundary) { + currentTimeoutBoundary = new Promise((r)=>{ + setTimeout(()=>{ + currentTimeoutBoundary = null; + r(); + }, 0); + }); + } + return currentTimeoutBoundary; +} //# sourceMappingURL=patch-fetch.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * For a given page path, this function ensures that there is a leading slash. + * If there is not a leading slash, one is added, otherwise it is noop. + */ __turbopack_context__.s([ + "ensureLeadingSlash", + ()=>ensureLeadingSlash +]); +function ensureLeadingSlash(path) { + return path.startsWith('/') ? path : `/${path}`; +} //# sourceMappingURL=ensure-leading-slash.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/segment.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "DEFAULT_SEGMENT_KEY", + ()=>DEFAULT_SEGMENT_KEY, + "PAGE_SEGMENT_KEY", + ()=>PAGE_SEGMENT_KEY, + "addSearchParamsIfPageSegment", + ()=>addSearchParamsIfPageSegment, + "computeSelectedLayoutSegment", + ()=>computeSelectedLayoutSegment, + "getSegmentValue", + ()=>getSegmentValue, + "getSelectedLayoutSegmentPath", + ()=>getSelectedLayoutSegmentPath, + "isGroupSegment", + ()=>isGroupSegment, + "isParallelRouteSegment", + ()=>isParallelRouteSegment +]); +function getSegmentValue(segment) { + return Array.isArray(segment) ? segment[1] : segment; +} +function isGroupSegment(segment) { + // Use array[0] for performant purpose + return segment[0] === '(' && segment.endsWith(')'); +} +function isParallelRouteSegment(segment) { + return segment.startsWith('@') && segment !== '@children'; +} +function addSearchParamsIfPageSegment(segment, searchParams) { + const isPageSegment = segment.includes(PAGE_SEGMENT_KEY); + if (isPageSegment) { + const stringifiedQuery = JSON.stringify(searchParams); + return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY; + } + return segment; +} +function computeSelectedLayoutSegment(segments, parallelRouteKey) { + if (!segments || segments.length === 0) { + return null; + } + // For 'children', use first segment; for other parallel routes, use last segment + const rawSegment = parallelRouteKey === 'children' ? segments[0] : segments[segments.length - 1]; + // If the default slot is showing, return null since it's not technically "selected" (it's a fallback) + // Returning an internal value like `__DEFAULT__` would be confusing + return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment; +} +function getSelectedLayoutSegmentPath(tree, parallelRouteKey, first = true, segmentPath = []) { + let node; + if (first) { + // Use the provided parallel route key on the first parallel route + node = tree[1][parallelRouteKey]; + } else { + // After first parallel route prefer children, if there's no children pick the first parallel route. + const parallelRoutes = tree[1]; + node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]; + } + if (!node) return segmentPath; + const segment = node[0]; + let segmentValue = getSegmentValue(segment); + if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) { + return segmentPath; + } + segmentPath.push(segmentValue); + return getSelectedLayoutSegmentPath(node, parallelRouteKey, false, segmentPath); +} +const PAGE_SEGMENT_KEY = '__PAGE__'; +const DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "normalizeAppPath", + ()=>normalizeAppPath, + "normalizeRscURL", + ()=>normalizeRscURL +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$page$2d$path$2f$ensure$2d$leading$2d$slash$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/segment.js [app-route] (ecmascript)"); +; +; +function normalizeAppPath(route) { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$page$2d$path$2f$ensure$2d$leading$2d$slash$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ensureLeadingSlash"])(route.split('/').reduce((pathname, segment, index, segments)=>{ + // Empty segments are ignored. + if (!segment) { + return pathname; + } + // Groups are ignored. + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["isGroupSegment"])(segment)) { + return pathname; + } + // Parallel segments are ignored. + if (segment[0] === '@') { + return pathname; + } + // The last segment (if it's a leaf) should be ignored. + if ((segment === 'page' || segment === 'route') && index === segments.length - 1) { + return pathname; + } + return `${pathname}/${segment}`; + }, '')); +} +function normalizeRscURL(url) { + return url.replace(/\.rsc($|\?)/, '$1'); +} //# sourceMappingURL=app-paths.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/encryption-utils.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "arrayBufferToString", + ()=>arrayBufferToString, + "decrypt", + ()=>decrypt, + "encrypt", + ()=>encrypt, + "getActionEncryptionKey", + ()=>getActionEncryptionKey, + "getClientReferenceManifestForRsc", + ()=>getClientReferenceManifestForRsc, + "getServerModuleMap", + ()=>getServerModuleMap, + "setReferenceManifestsSingleton", + ()=>setReferenceManifestsSingleton, + "stringToUint8Array", + ()=>stringToUint8Array +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/invariant-error.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$app$2d$paths$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)"); +; +; +; +let __next_loaded_action_key; +function arrayBufferToString(buffer) { + const bytes = new Uint8Array(buffer); + const len = bytes.byteLength; + // @anonrig: V8 has a limit of 65535 arguments in a function. + // For len < 65535, this is faster. + // https://github.com/vercel/next.js/pull/56377#pullrequestreview-1656181623 + if (len < 65535) { + return String.fromCharCode.apply(null, bytes); + } + let binary = ''; + for(let i = 0; i < len; i++){ + binary += String.fromCharCode(bytes[i]); + } + return binary; +} +function stringToUint8Array(binary) { + const len = binary.length; + const arr = new Uint8Array(len); + for(let i = 0; i < len; i++){ + arr[i] = binary.charCodeAt(i); + } + return arr; +} +function encrypt(key, iv, data) { + return crypto.subtle.encrypt({ + name: 'AES-GCM', + iv + }, key, data); +} +function decrypt(key, iv, data) { + return crypto.subtle.decrypt({ + name: 'AES-GCM', + iv + }, key, data); +} +// This is a global singleton that is used to encode/decode the action bound args from +// the closure. This can't be using a AsyncLocalStorage as it might happen on the module +// level. Since the client reference manifest won't be mutated, let's use a global singleton +// to keep it. +const SERVER_ACTION_MANIFESTS_SINGLETON = Symbol.for('next.server.action-manifests'); +function setReferenceManifestsSingleton({ page, clientReferenceManifest, serverActionsManifest, serverModuleMap }) { + var _globalThis_SERVER_ACTION_MANIFESTS_SINGLETON; + // @ts-expect-error + const clientReferenceManifestsPerPage = (_globalThis_SERVER_ACTION_MANIFESTS_SINGLETON = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON]) == null ? void 0 : _globalThis_SERVER_ACTION_MANIFESTS_SINGLETON.clientReferenceManifestsPerPage; + // @ts-expect-error + globalThis[SERVER_ACTION_MANIFESTS_SINGLETON] = { + clientReferenceManifestsPerPage: { + ...clientReferenceManifestsPerPage, + [(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$app$2d$paths$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["normalizeAppPath"])(page)]: clientReferenceManifest + }, + serverActionsManifest, + serverModuleMap + }; +} +function getServerModuleMap() { + const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON]; + if (!serverActionsManifestSingleton) { + throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["InvariantError"]('Missing manifest for Server Actions.'), "__NEXT_ERROR_CODE", { + value: "E606", + enumerable: false, + configurable: true + }); + } + return serverActionsManifestSingleton.serverModuleMap; +} +function getClientReferenceManifestForRsc() { + const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON]; + if (!serverActionsManifestSingleton) { + throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["InvariantError"]('Missing manifest for Server Actions.'), "__NEXT_ERROR_CODE", { + value: "E606", + enumerable: false, + configurable: true + }); + } + const { clientReferenceManifestsPerPage } = serverActionsManifestSingleton; + const workStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workAsyncStorage"].getStore(); + if (!workStore) { + // If there's no work store defined, we can assume that a client reference + // manifest is needed during module evaluation, e.g. to create a server + // action using a higher-order function. This might also use client + // components which need to be serialized by Flight, and therefore client + // references need to be resolvable. To make this work, we're returning a + // merged manifest across all pages. This is fine as long as the module IDs + // are not page specific, which they are not for Webpack. TODO: Fix this in + // Turbopack. + return mergeClientReferenceManifests(clientReferenceManifestsPerPage); + } + const clientReferenceManifest = clientReferenceManifestsPerPage[workStore.route]; + if (!clientReferenceManifest) { + throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["InvariantError"](`Missing Client Reference Manifest for ${workStore.route}.`), "__NEXT_ERROR_CODE", { + value: "E570", + enumerable: false, + configurable: true + }); + } + return clientReferenceManifest; +} +async function getActionEncryptionKey() { + if (__next_loaded_action_key) { + return __next_loaded_action_key; + } + const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON]; + if (!serverActionsManifestSingleton) { + throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["InvariantError"]('Missing manifest for Server Actions.'), "__NEXT_ERROR_CODE", { + value: "E606", + enumerable: false, + configurable: true + }); + } + const rawKey = process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY || serverActionsManifestSingleton.serverActionsManifest.encryptionKey; + if (rawKey === undefined) { + throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["InvariantError"]('Missing encryption key for Server Actions'), "__NEXT_ERROR_CODE", { + value: "E571", + enumerable: false, + configurable: true + }); + } + __next_loaded_action_key = await crypto.subtle.importKey('raw', stringToUint8Array(atob(rawKey)), 'AES-GCM', true, [ + 'encrypt', + 'decrypt' + ]); + return __next_loaded_action_key; +} +function mergeClientReferenceManifests(clientReferenceManifestsPerPage) { + const clientReferenceManifests = Object.values(clientReferenceManifestsPerPage); + const mergedClientReferenceManifest = { + clientModules: {}, + edgeRscModuleMapping: {}, + rscModuleMapping: {} + }; + for (const clientReferenceManifest of clientReferenceManifests){ + mergedClientReferenceManifest.clientModules = { + ...mergedClientReferenceManifest.clientModules, + ...clientReferenceManifest.clientModules + }; + mergedClientReferenceManifest.edgeRscModuleMapping = { + ...mergedClientReferenceManifest.edgeRscModuleMapping, + ...clientReferenceManifest.edgeRscModuleMapping + }; + mergedClientReferenceManifest.rscModuleMapping = { + ...mergedClientReferenceManifest.rscModuleMapping, + ...clientReferenceManifest.rscModuleMapping + }; + } + return mergedClientReferenceManifest; +} //# sourceMappingURL=encryption-utils.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/action-utils.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "createServerModuleMap", + ()=>createServerModuleMap, + "selectWorkerForForwarding", + ()=>selectWorkerForForwarding +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$app$2d$paths$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$path$2d$has$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$remove$2d$path$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)"); +; +; +; +; +function createServerModuleMap({ serverActionsManifest }) { + return new Proxy({}, { + get: (_, id)=>{ + var _serverActionsManifest__id, _serverActionsManifest_; + const workers = (_serverActionsManifest_ = serverActionsManifest[("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : 'node']) == null ? void 0 : (_serverActionsManifest__id = _serverActionsManifest_[id]) == null ? void 0 : _serverActionsManifest__id.workers; + if (!workers) { + return undefined; + } + const workStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workAsyncStorage"].getStore(); + let workerEntry; + if (workStore) { + workerEntry = workers[normalizeWorkerPageName(workStore.page)]; + } else { + // If there's no work store defined, we can assume that a server + // module map is needed during module evaluation, e.g. to create a + // server action using a higher-order function. Therefore it should be + // safe to return any entry from the manifest that matches the action + // ID. They all refer to the same module ID, which must also exist in + // the current page bundle. TODO: This is currently not guaranteed in + // Turbopack, and needs to be fixed. + workerEntry = Object.values(workers).at(0); + } + if (!workerEntry) { + return undefined; + } + const { moduleId, async } = workerEntry; + return { + id: moduleId, + name: id, + chunks: [], + async + }; + } + }); +} +function selectWorkerForForwarding(actionId, pageName, serverActionsManifest) { + var _serverActionsManifest__actionId; + const workers = (_serverActionsManifest__actionId = serverActionsManifest[("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : 'node'][actionId]) == null ? void 0 : _serverActionsManifest__actionId.workers; + const workerName = normalizeWorkerPageName(pageName); + // no workers, nothing to forward to + if (!workers) return; + // if there is a worker for this page, no need to forward it. + if (workers[workerName]) { + return; + } + // otherwise, grab the first worker that has a handler for this action id + return denormalizeWorkerPageName(Object.keys(workers)[0]); +} +/** + * The flight entry loader keys actions by bundlePath. + * bundlePath corresponds with the relative path (including 'app') to the page entrypoint. + */ function normalizeWorkerPageName(pageName) { + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$path$2d$has$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["pathHasPrefix"])(pageName, 'app')) { + return pageName; + } + return 'app' + pageName; +} +/** + * Converts a bundlePath (relative path to the entrypoint) to a routable page name + */ function denormalizeWorkerPageName(bundlePath) { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$app$2d$paths$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["normalizeAppPath"])((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$remove$2d$path$2d$prefix$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["removePathPrefix"])(bundlePath, 'app')); +} //# sourceMappingURL=action-utils.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "ReflectAdapter", + ()=>ReflectAdapter +]); +class ReflectAdapter { + static get(target, prop, receiver) { + const value = Reflect.get(target, prop, receiver); + if (typeof value === 'function') { + return value.bind(target); + } + return value; + } + static set(target, prop, value, receiver) { + return Reflect.set(target, prop, value, receiver); + } + static has(target, prop) { + return Reflect.has(target, prop); + } + static deleteProperty(target, prop) { + return Reflect.deleteProperty(target, prop); + } +} //# sourceMappingURL=reflect.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "HeadersAdapter", + ()=>HeadersAdapter, + "ReadonlyHeadersError", + ()=>ReadonlyHeadersError +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js [app-route] (ecmascript)"); +; +class ReadonlyHeadersError extends Error { + constructor(){ + super('Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers'); + } + static callable() { + throw new ReadonlyHeadersError(); + } +} +class HeadersAdapter extends Headers { + constructor(headers){ + // We've already overridden the methods that would be called, so we're just + // calling the super constructor to ensure that the instanceof check works. + super(); + this.headers = new Proxy(headers, { + get (target, prop, receiver) { + // Because this is just an object, we expect that all "get" operations + // are for properties. If it's a "get" for a symbol, we'll just return + // the symbol. + if (typeof prop === 'symbol') { + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, prop, receiver); + } + const lowercased = prop.toLowerCase(); + // Let's find the original casing of the key. This assumes that there is + // no mixed case keys (e.g. "Content-Type" and "content-type") in the + // headers object. + const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased); + // If the original casing doesn't exist, return undefined. + if (typeof original === 'undefined') return; + // If the original casing exists, return the value. + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, original, receiver); + }, + set (target, prop, value, receiver) { + if (typeof prop === 'symbol') { + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ReflectAdapter"].set(target, prop, value, receiver); + } + const lowercased = prop.toLowerCase(); + // Let's find the original casing of the key. This assumes that there is + // no mixed case keys (e.g. "Content-Type" and "content-type") in the + // headers object. + const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased); + // If the original casing doesn't exist, use the prop as the key. + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ReflectAdapter"].set(target, original ?? prop, value, receiver); + }, + has (target, prop) { + if (typeof prop === 'symbol') return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ReflectAdapter"].has(target, prop); + const lowercased = prop.toLowerCase(); + // Let's find the original casing of the key. This assumes that there is + // no mixed case keys (e.g. "Content-Type" and "content-type") in the + // headers object. + const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased); + // If the original casing doesn't exist, return false. + if (typeof original === 'undefined') return false; + // If the original casing exists, return true. + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ReflectAdapter"].has(target, original); + }, + deleteProperty (target, prop) { + if (typeof prop === 'symbol') return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ReflectAdapter"].deleteProperty(target, prop); + const lowercased = prop.toLowerCase(); + // Let's find the original casing of the key. This assumes that there is + // no mixed case keys (e.g. "Content-Type" and "content-type") in the + // headers object. + const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased); + // If the original casing doesn't exist, return true. + if (typeof original === 'undefined') return true; + // If the original casing exists, delete the property. + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ReflectAdapter"].deleteProperty(target, original); + } + }); + } + /** + * Seals a Headers instance to prevent modification by throwing an error when + * any mutating method is called. + */ static seal(headers) { + return new Proxy(headers, { + get (target, prop, receiver) { + switch(prop){ + case 'append': + case 'delete': + case 'set': + return ReadonlyHeadersError.callable; + default: + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, prop, receiver); + } + } + }); + } + /** + * Merges a header value into a string. This stores multiple values as an + * array, so we need to merge them into a string. + * + * @param value a header value + * @returns a merged header value (a string) + */ merge(value) { + if (Array.isArray(value)) return value.join(', '); + return value; + } + /** + * Creates a Headers instance from a plain object or a Headers instance. + * + * @param headers a plain object or a Headers instance + * @returns a headers instance + */ static from(headers) { + if (headers instanceof Headers) return headers; + return new HeadersAdapter(headers); + } + append(name, value) { + const existing = this.headers[name]; + if (typeof existing === 'string') { + this.headers[name] = [ + existing, + value + ]; + } else if (Array.isArray(existing)) { + existing.push(value); + } else { + this.headers[name] = value; + } + } + delete(name) { + delete this.headers[name]; + } + get(name) { + const value = this.headers[name]; + if (typeof value !== 'undefined') return this.merge(value); + return null; + } + has(name) { + return typeof this.headers[name] !== 'undefined'; + } + set(name, value) { + this.headers[name] = value; + } + forEach(callbackfn, thisArg) { + for (const [name, value] of this.entries()){ + callbackfn.call(thisArg, value, name, this); + } + } + *entries() { + for (const key of Object.keys(this.headers)){ + const name = key.toLowerCase(); + // We assert here that this is a string because we got it from the + // Object.keys() call above. + const value = this.get(name); + yield [ + name, + value + ]; + } + } + *keys() { + for (const key of Object.keys(this.headers)){ + const name = key.toLowerCase(); + yield name; + } + } + *values() { + for (const key of Object.keys(this.headers)){ + // We assert here that this is a string because we got it from the + // Object.keys() call above. + const value = this.get(key); + yield value; + } + } + [Symbol.iterator]() { + return this.entries(); + } +} //# sourceMappingURL=headers.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/cookie/index.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { + +(()=>{ + "use strict"; + if (typeof __nccwpck_require__ !== "undefined") __nccwpck_require__.ab = ("TURBOPACK compile-time value", "/ROOT/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/cookie") + "/"; + var e = {}; + (()=>{ + var r = e; + /*! + * cookie + * Copyright(c) 2012-2014 Roman Shtylman + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ r.parse = parse; + r.serialize = serialize; + var i = decodeURIComponent; + var t = encodeURIComponent; + var a = /; */; + var n = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/; + function parse(e, r) { + if (typeof e !== "string") { + throw new TypeError("argument str must be a string"); + } + var t = {}; + var n = r || {}; + var o = e.split(a); + var s = n.decode || i; + for(var p = 0; p < o.length; p++){ + var f = o[p]; + var u = f.indexOf("="); + if (u < 0) { + continue; + } + var v = f.substr(0, u).trim(); + var c = f.substr(++u, f.length).trim(); + if ('"' == c[0]) { + c = c.slice(1, -1); + } + if (undefined == t[v]) { + t[v] = tryDecode(c, s); + } + } + return t; + } + function serialize(e, r, i) { + var a = i || {}; + var o = a.encode || t; + if (typeof o !== "function") { + throw new TypeError("option encode is invalid"); + } + if (!n.test(e)) { + throw new TypeError("argument name is invalid"); + } + var s = o(r); + if (s && !n.test(s)) { + throw new TypeError("argument val is invalid"); + } + var p = e + "=" + s; + if (null != a.maxAge) { + var f = a.maxAge - 0; + if (isNaN(f) || !isFinite(f)) { + throw new TypeError("option maxAge is invalid"); + } + p += "; Max-Age=" + Math.floor(f); + } + if (a.domain) { + if (!n.test(a.domain)) { + throw new TypeError("option domain is invalid"); + } + p += "; Domain=" + a.domain; + } + if (a.path) { + if (!n.test(a.path)) { + throw new TypeError("option path is invalid"); + } + p += "; Path=" + a.path; + } + if (a.expires) { + if (typeof a.expires.toUTCString !== "function") { + throw new TypeError("option expires is invalid"); + } + p += "; Expires=" + a.expires.toUTCString(); + } + if (a.httpOnly) { + p += "; HttpOnly"; + } + if (a.secure) { + p += "; Secure"; + } + if (a.sameSite) { + var u = typeof a.sameSite === "string" ? a.sameSite.toLowerCase() : a.sameSite; + switch(u){ + case true: + p += "; SameSite=Strict"; + break; + case "lax": + p += "; SameSite=Lax"; + break; + case "strict": + p += "; SameSite=Strict"; + break; + case "none": + p += "; SameSite=None"; + break; + default: + throw new TypeError("option sameSite is invalid"); + } + } + return p; + } + function tryDecode(e, r) { + try { + return r(e); + } catch (r) { + return e; + } + } + })(); + module.exports = e; +})(); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/api-utils/index.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "ApiError", + ()=>ApiError, + "COOKIE_NAME_PRERENDER_BYPASS", + ()=>COOKIE_NAME_PRERENDER_BYPASS, + "COOKIE_NAME_PRERENDER_DATA", + ()=>COOKIE_NAME_PRERENDER_DATA, + "RESPONSE_LIMIT_DEFAULT", + ()=>RESPONSE_LIMIT_DEFAULT, + "SYMBOL_CLEARED_COOKIES", + ()=>SYMBOL_CLEARED_COOKIES, + "SYMBOL_PREVIEW_DATA", + ()=>SYMBOL_PREVIEW_DATA, + "checkIsOnDemandRevalidate", + ()=>checkIsOnDemandRevalidate, + "clearPreviewData", + ()=>clearPreviewData, + "redirect", + ()=>redirect, + "sendError", + ()=>sendError, + "sendStatusCode", + ()=>sendStatusCode, + "setLazyProp", + ()=>setLazyProp, + "wrapApiHandler", + ()=>wrapApiHandler +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$headers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/constants.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$tracer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/trace/tracer.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/trace/constants.js [app-route] (ecmascript)"); +; +; +; +; +function wrapApiHandler(page, handler) { + return (...args)=>{ + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$tracer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getTracer"])().setRootSpanAttribute('next.route', page); + // Call API route method + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$tracer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getTracer"])().trace(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NodeSpan"].runHandler, { + spanName: `executing api route (pages) ${page}` + }, ()=>handler(...args)); + }; +} +function sendStatusCode(res, statusCode) { + res.statusCode = statusCode; + return res; +} +function redirect(res, statusOrUrl, url) { + if (typeof statusOrUrl === 'string') { + url = statusOrUrl; + statusOrUrl = 307; + } + if (typeof statusOrUrl !== 'number' || typeof url !== 'string') { + throw Object.defineProperty(new Error(`Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').`), "__NEXT_ERROR_CODE", { + value: "E389", + enumerable: false, + configurable: true + }); + } + res.writeHead(statusOrUrl, { + Location: url + }); + res.write(url); + res.end(); + return res; +} +function checkIsOnDemandRevalidate(req, previewProps) { + const headers = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$headers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["HeadersAdapter"].from(req.headers); + const previewModeId = headers.get(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["PRERENDER_REVALIDATE_HEADER"]); + const isOnDemandRevalidate = previewModeId === previewProps.previewModeId; + const revalidateOnlyGenerated = headers.has(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER"]); + return { + isOnDemandRevalidate, + revalidateOnlyGenerated + }; +} +const COOKIE_NAME_PRERENDER_BYPASS = `__prerender_bypass`; +const COOKIE_NAME_PRERENDER_DATA = `__next_preview_data`; +const RESPONSE_LIMIT_DEFAULT = 4 * 1024 * 1024; +const SYMBOL_PREVIEW_DATA = Symbol(COOKIE_NAME_PRERENDER_DATA); +const SYMBOL_CLEARED_COOKIES = Symbol(COOKIE_NAME_PRERENDER_BYPASS); +function clearPreviewData(res, options = {}) { + if (SYMBOL_CLEARED_COOKIES in res) { + return res; + } + const { serialize } = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/cookie/index.js [app-route] (ecmascript)"); + const previous = res.getHeader('Set-Cookie'); + res.setHeader(`Set-Cookie`, [ + ...typeof previous === 'string' ? [ + previous + ] : Array.isArray(previous) ? previous : [], + serialize(COOKIE_NAME_PRERENDER_BYPASS, '', { + // To delete a cookie, set `expires` to a date in the past: + // https://tools.ietf.org/html/rfc6265#section-4.1.1 + // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted. + expires: new Date(0), + httpOnly: true, + sameSite: ("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : 'lax', + secure: ("TURBOPACK compile-time value", "development") !== 'development', + path: '/', + ...options.path !== undefined ? { + path: options.path + } : undefined + }), + serialize(COOKIE_NAME_PRERENDER_DATA, '', { + // To delete a cookie, set `expires` to a date in the past: + // https://tools.ietf.org/html/rfc6265#section-4.1.1 + // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted. + expires: new Date(0), + httpOnly: true, + sameSite: ("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : 'lax', + secure: ("TURBOPACK compile-time value", "development") !== 'development', + path: '/', + ...options.path !== undefined ? { + path: options.path + } : undefined + }) + ]); + Object.defineProperty(res, SYMBOL_CLEARED_COOKIES, { + value: true, + enumerable: false + }); + return res; +} +class ApiError extends Error { + constructor(statusCode, message){ + super(message); + this.statusCode = statusCode; + } +} +function sendError(res, statusCode, message) { + res.statusCode = statusCode; + res.statusMessage = message; + res.end(message); +} +function setLazyProp({ req }, prop, getter) { + const opts = { + configurable: true, + enumerable: true + }; + const optsReset = { + ...opts, + writable: true + }; + Object.defineProperty(req, prop, { + ...opts, + get: ()=>{ + const value = getter(); + // we set the property on the object to avoid recalculating it + Object.defineProperty(req, prop, { + ...optsReset, + value + }); + return value; + }, + set: (value)=>{ + Object.defineProperty(req, prop, { + ...optsReset, + value + }); + } + }); +} //# sourceMappingURL=index.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/redirect-status-code.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "RedirectStatusCode", + ()=>RedirectStatusCode +]); +var RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) { + RedirectStatusCode[RedirectStatusCode["SeeOther"] = 303] = "SeeOther"; + RedirectStatusCode[RedirectStatusCode["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + RedirectStatusCode[RedirectStatusCode["PermanentRedirect"] = 308] = "PermanentRedirect"; + return RedirectStatusCode; +}({}); //# sourceMappingURL=redirect-status-code.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/api-utils/get-cookie-parser.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * Parse cookies from the `headers` of request + * @param req request object + */ __turbopack_context__.s([ + "getCookieParser", + ()=>getCookieParser +]); +function getCookieParser(headers) { + return function parseCookie() { + const { cookie } = headers; + if (!cookie) { + return {}; + } + const { parse: parseCookieFn } = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/cookie/index.js [app-route] (ecmascript)"); + return parseCookieFn(Array.isArray(cookie) ? cookie.join('; ') : cookie); + }; +} //# sourceMappingURL=get-cookie-parser.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/base-http/index.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "BaseNextRequest", + ()=>BaseNextRequest, + "BaseNextResponse", + ()=>BaseNextResponse +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$status$2d$code$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/redirect-status-code.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$api$2d$utils$2f$get$2d$cookie$2d$parser$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/api-utils/get-cookie-parser.js [app-route] (ecmascript)"); +; +; +class BaseNextRequest { + constructor(method, url, body){ + this.method = method; + this.url = url; + this.body = body; + } + // Utils implemented using the abstract methods above + get cookies() { + if (this._cookies) return this._cookies; + return this._cookies = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$api$2d$utils$2f$get$2d$cookie$2d$parser$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getCookieParser"])(this.headers)(); + } +} +class BaseNextResponse { + constructor(destination){ + this.destination = destination; + } + // Utils implemented using the abstract methods above + redirect(destination, statusCode) { + this.setHeader('Location', destination); + this.statusCode = statusCode; + // Since IE11 doesn't support the 308 header add backwards + // compatibility using refresh header + if (statusCode === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$status$2d$code$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RedirectStatusCode"].PermanentRedirect) { + this.setHeader('Refresh', `0;url=${destination}`); + } + return this; + } +} //# sourceMappingURL=index.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/base-http/node.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "NodeNextRequest", + ()=>NodeNextRequest, + "NodeNextResponse", + ()=>NodeNextResponse +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$api$2d$utils$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/api-utils/index.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2d$meta$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/request-meta.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$base$2d$http$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/base-http/index.js [app-route] (ecmascript)"); +; +; +; +let prop; +class NodeNextRequest extends __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$base$2d$http$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["BaseNextRequest"] { + static #_ = prop = _NEXT_REQUEST_META = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2d$meta$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NEXT_REQUEST_META"]; + constructor(_req){ + var _this__req; + super(_req.method.toUpperCase(), _req.url, _req), this._req = _req, this.headers = this._req.headers, this.fetchMetrics = (_this__req = this._req) == null ? void 0 : _this__req.fetchMetrics, this[_NEXT_REQUEST_META] = this._req[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2d$meta$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NEXT_REQUEST_META"]] || {}, this.streaming = false; + } + get originalRequest() { + // Need to mimic these changes to the original req object for places where we use it: + // render.tsx, api/ssg requests + this._req[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2d$meta$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NEXT_REQUEST_META"]] = this[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2d$meta$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NEXT_REQUEST_META"]]; + this._req.url = this.url; + this._req.cookies = this.cookies; + return this._req; + } + set originalRequest(value) { + this._req = value; + } + /** + * Returns the request body as a Web Readable Stream. The body here can only + * be read once as the body will start flowing as soon as the data handler + * is attached. + * + * @internal + */ stream() { + if (this.streaming) { + throw Object.defineProperty(new Error('Invariant: NodeNextRequest.stream() can only be called once'), "__NEXT_ERROR_CODE", { + value: "E467", + enumerable: false, + configurable: true + }); + } + this.streaming = true; + return new ReadableStream({ + start: (controller)=>{ + this._req.on('data', (chunk)=>{ + controller.enqueue(new Uint8Array(chunk)); + }); + this._req.on('end', ()=>{ + controller.close(); + }); + this._req.on('error', (err)=>{ + controller.error(err); + }); + } + }); + } +} +class NodeNextResponse extends __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$base$2d$http$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["BaseNextResponse"] { + get originalResponse() { + if (__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$api$2d$utils$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["SYMBOL_CLEARED_COOKIES"] in this) { + this._res[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$api$2d$utils$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["SYMBOL_CLEARED_COOKIES"]] = this[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$api$2d$utils$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["SYMBOL_CLEARED_COOKIES"]]; + } + return this._res; + } + constructor(_res){ + super(_res), this._res = _res, this.textBody = undefined; + } + get sent() { + return this._res.finished || this._res.headersSent; + } + get statusCode() { + return this._res.statusCode; + } + set statusCode(value) { + this._res.statusCode = value; + } + get statusMessage() { + return this._res.statusMessage; + } + set statusMessage(value) { + this._res.statusMessage = value; + } + setHeader(name, value) { + this._res.setHeader(name, value); + return this; + } + removeHeader(name) { + this._res.removeHeader(name); + return this; + } + getHeaderValues(name) { + const values = this._res.getHeader(name); + if (values === undefined) return undefined; + return (Array.isArray(values) ? values : [ + values + ]).map((value)=>value.toString()); + } + hasHeader(name) { + return this._res.hasHeader(name); + } + getHeader(name) { + const values = this.getHeaderValues(name); + return Array.isArray(values) ? values.join(',') : undefined; + } + getHeaders() { + return this._res.getHeaders(); + } + appendHeader(name, value) { + const currentValues = this.getHeaderValues(name) ?? []; + if (!currentValues.includes(value)) { + this._res.setHeader(name, [ + ...currentValues, + value + ]); + } + return this; + } + body(value) { + this.textBody = value; + return this; + } + send() { + this._res.end(this.textBody); + } + onClose(callback) { + this.originalResponse.on('close', callback); + } +} +var _NEXT_REQUEST_META; //# sourceMappingURL=node.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/instrumentation/utils.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "getRevalidateReason", + ()=>getRevalidateReason +]); +function getRevalidateReason(params) { + if (params.isOnDemandRevalidate) { + return 'on-demand'; + } + if (params.isStaticGeneration) { + return 'stale'; + } + return undefined; +} //# sourceMappingURL=utils.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/send-response.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "sendResponse", + ()=>sendResponse +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$base$2d$http$2f$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/base-http/helpers.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$pipe$2d$readable$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/pipe-readable.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/utils.js [app-route] (ecmascript)"); +; +; +; +async function sendResponse(req, res, response, waitUntil) { + if (// environment variable check provides dead code elimination. + ("TURBOPACK compile-time value", "nodejs") !== 'edge' && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$base$2d$http$2f$helpers$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["isNodeNextResponse"])(res)) { + var _response_headers; + // Copy over the response status. + res.statusCode = response.status; + res.statusMessage = response.statusText; + // TODO: this is not spec-compliant behavior and we should not restrict + // headers that are allowed to appear many times. + // + // See: + // https://github.com/vercel/next.js/pull/70127 + const headersWithMultipleValuesAllowed = [ + // can add more headers to this list if needed + 'set-cookie', + 'www-authenticate', + 'proxy-authenticate', + 'vary' + ]; + (_response_headers = response.headers) == null ? void 0 : _response_headers.forEach((value, name)=>{ + // `x-middleware-set-cookie` is an internal header not needed for the response + if (name.toLowerCase() === 'x-middleware-set-cookie') { + return; + } + // The append handling is special cased for `set-cookie`. + if (name.toLowerCase() === 'set-cookie') { + // TODO: (wyattjoh) replace with native response iteration when we can upgrade undici + for (const cookie of (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["splitCookiesString"])(value)){ + res.appendHeader(name, cookie); + } + } else { + // only append the header if it is either not present in the outbound response + // or if the header supports multiple values + const isHeaderPresent = typeof res.getHeader(name) !== 'undefined'; + if (headersWithMultipleValuesAllowed.includes(name.toLowerCase()) || !isHeaderPresent) { + res.appendHeader(name, value); + } + } + }); + /** + * The response can't be directly piped to the underlying response. The + * following is duplicated from the edge runtime handler. + * + * See packages/next/server/next-server.ts + */ const { originalResponse } = res; + // A response body must not be sent for HEAD requests. See https://httpwg.org/specs/rfc9110.html#HEAD + if (response.body && req.method !== 'HEAD') { + await (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$pipe$2d$readable$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["pipeToNodeResponse"])(response.body, originalResponse, waitUntil); + } else { + originalResponse.end(); + } + } +} //# sourceMappingURL=send-response.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/cache-control.js [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "getCacheControlHeader", + ()=>getCacheControlHeader +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/constants.js [app-route] (ecmascript)"); +; +function getCacheControlHeader({ revalidate, expire }) { + const swrHeader = typeof revalidate === 'number' && expire !== undefined && revalidate < expire ? `, stale-while-revalidate=${expire - revalidate}` : ''; + if (revalidate === 0) { + return 'private, no-cache, no-store, max-age=0, must-revalidate'; + } else if (typeof revalidate === 'number') { + return `s-maxage=${revalidate}${swrHeader}`; + } + return `s-maxage=${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["CACHE_ONE_YEAR"]}${swrHeader}`; +} //# sourceMappingURL=cache-control.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "detectDomainLocale", { + enumerable: true, + get: function() { + return detectDomainLocale; + } +}); +function detectDomainLocale(domainItems, hostname, detectedLocale) { + if (!domainItems) return; + if (detectedLocale) { + detectedLocale = detectedLocale.toLowerCase(); + } + for (const item of domainItems){ + // remove port if present + const domainHostname = item.domain?.split(':', 1)[0].toLowerCase(); + if (hostname === domainHostname || detectedLocale === item.defaultLocale.toLowerCase() || item.locales?.some((locale)=>locale.toLowerCase() === detectedLocale)) { + return item; + } + } +} //# sourceMappingURL=detect-domain-locale.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +/** + * Removes the trailing slash for a given route or page path. Preserves the + * root page. Examples: + * - `/foo/bar/` -> `/foo/bar` + * - `/foo/bar` -> `/foo/bar` + * - `/` -> `/` + */ Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "removeTrailingSlash", { + enumerable: true, + get: function() { + return removeTrailingSlash; + } +}); +function removeTrailingSlash(route) { + return route.replace(/\/$/, '') || '/'; +} //# sourceMappingURL=remove-trailing-slash.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/parse-path.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +/** + * Given a path this function will find the pathname, query and hash and return + * them. This is useful to parse full paths on the client side. + * @param path A path to parse e.g. /foo/bar?id=1#hash + */ Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "parsePath", { + enumerable: true, + get: function() { + return parsePath; + } +}); +function parsePath(path) { + const hashIndex = path.indexOf('#'); + const queryIndex = path.indexOf('?'); + const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex); + if (hasQuery || hashIndex > -1) { + return { + pathname: path.substring(0, hasQuery ? queryIndex : hashIndex), + query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : '', + hash: hashIndex > -1 ? path.slice(hashIndex) : '' + }; + } + return { + pathname: path, + query: '', + hash: '' + }; +} //# sourceMappingURL=parse-path.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "addPathPrefix", { + enumerable: true, + get: function() { + return addPathPrefix; + } +}); +const _parsepath = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/parse-path.js [app-route] (ecmascript)"); +function addPathPrefix(path, prefix) { + if (!path.startsWith('/') || !prefix) { + return path; + } + const { pathname, query, hash } = (0, _parsepath.parsePath)(path); + return `${prefix}${pathname}${query}${hash}`; +} //# sourceMappingURL=add-path-prefix.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "addPathSuffix", { + enumerable: true, + get: function() { + return addPathSuffix; + } +}); +const _parsepath = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/parse-path.js [app-route] (ecmascript)"); +function addPathSuffix(path, suffix) { + if (!path.startsWith('/') || !suffix) { + return path; + } + const { pathname, query, hash } = (0, _parsepath.parsePath)(path); + return `${pathname}${suffix}${query}${hash}`; +} //# sourceMappingURL=add-path-suffix.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "pathHasPrefix", { + enumerable: true, + get: function() { + return pathHasPrefix; + } +}); +const _parsepath = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/parse-path.js [app-route] (ecmascript)"); +function pathHasPrefix(path, prefix) { + if (typeof path !== 'string') { + return false; + } + const { pathname } = (0, _parsepath.parsePath)(path); + return pathname === prefix || pathname.startsWith(prefix + '/'); +} //# sourceMappingURL=path-has-prefix.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/add-locale.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "addLocale", { + enumerable: true, + get: function() { + return addLocale; + } +}); +const _addpathprefix = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js [app-route] (ecmascript)"); +const _pathhasprefix = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js [app-route] (ecmascript)"); +function addLocale(path, locale, defaultLocale, ignorePrefix) { + // If no locale was given or the locale is the default locale, we don't need + // to prefix the path. + if (!locale || locale === defaultLocale) return path; + const lower = path.toLowerCase(); + // If the path is an API path or the path already has the locale prefix, we + // don't need to prefix the path. + if (!ignorePrefix) { + if ((0, _pathhasprefix.pathHasPrefix)(lower, '/api')) return path; + if ((0, _pathhasprefix.pathHasPrefix)(lower, `/${locale.toLowerCase()}`)) return path; + } + // Add the locale prefix to the path. + return (0, _addpathprefix.addPathPrefix)(path, `/${locale}`); +} //# sourceMappingURL=add-locale.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "formatNextPathnameInfo", { + enumerable: true, + get: function() { + return formatNextPathnameInfo; + } +}); +const _removetrailingslash = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js [app-route] (ecmascript)"); +const _addpathprefix = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js [app-route] (ecmascript)"); +const _addpathsuffix = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js [app-route] (ecmascript)"); +const _addlocale = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/add-locale.js [app-route] (ecmascript)"); +function formatNextPathnameInfo(info) { + let pathname = (0, _addlocale.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix); + if (info.buildId || !info.trailingSlash) { + pathname = (0, _removetrailingslash.removeTrailingSlash)(pathname); + } + if (info.buildId) { + pathname = (0, _addpathsuffix.addPathSuffix)((0, _addpathprefix.addPathPrefix)(pathname, `/_next/data/${info.buildId}`), info.pathname === '/' ? 'index.json' : '.json'); + } + pathname = (0, _addpathprefix.addPathPrefix)(pathname, info.basePath); + return !info.buildId && info.trailingSlash ? !pathname.endsWith('/') ? (0, _addpathsuffix.addPathSuffix)(pathname, '/') : pathname : (0, _removetrailingslash.removeTrailingSlash)(pathname); +} //# sourceMappingURL=format-next-pathname-info.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/get-hostname.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getHostname", { + enumerable: true, + get: function() { + return getHostname; + } +}); +function getHostname(parsed, headers) { + // Get the hostname from the headers if it exists, otherwise use the parsed + // hostname. + let hostname; + if (headers?.host && !Array.isArray(headers.host)) { + hostname = headers.host.toString().split(':', 1)[0]; + } else if (parsed.hostname) { + hostname = parsed.hostname; + } else return; + return hostname.toLowerCase(); +} //# sourceMappingURL=get-hostname.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "normalizeLocalePath", { + enumerable: true, + get: function() { + return normalizeLocalePath; + } +}); +/** + * A cache of lowercased locales for each list of locales. This is stored as a + * WeakMap so if the locales are garbage collected, the cache entry will be + * removed as well. + */ const cache = new WeakMap(); +function normalizeLocalePath(pathname, locales) { + // If locales is undefined, return the pathname as is. + if (!locales) return { + pathname + }; + // Get the cached lowercased locales or create a new cache entry. + let lowercasedLocales = cache.get(locales); + if (!lowercasedLocales) { + lowercasedLocales = locales.map((locale)=>locale.toLowerCase()); + cache.set(locales, lowercasedLocales); + } + let detectedLocale; + // The first segment will be empty, because it has a leading `/`. If + // there is no further segment, there is no locale (or it's the default). + const segments = pathname.split('/', 2); + // If there's no second segment (ie, the pathname is just `/`), there's no + // locale. + if (!segments[1]) return { + pathname + }; + // The second segment will contain the locale part if any. + const segment = segments[1].toLowerCase(); + // See if the segment matches one of the locales. If it doesn't, there is + // no locale (or it's the default). + const index = lowercasedLocales.indexOf(segment); + if (index < 0) return { + pathname + }; + // Return the case-sensitive locale. + detectedLocale = locales[index]; + // Remove the `/${locale}` part of the pathname. + pathname = pathname.slice(detectedLocale.length + 1) || '/'; + return { + pathname, + detectedLocale + }; +} //# sourceMappingURL=normalize-locale-path.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "removePathPrefix", { + enumerable: true, + get: function() { + return removePathPrefix; + } +}); +const _pathhasprefix = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js [app-route] (ecmascript)"); +function removePathPrefix(path, prefix) { + // If the path doesn't start with the prefix we can return it as is. This + // protects us from situations where the prefix is a substring of the path + // prefix such as: + // + // For prefix: /blog + // + // /blog -> true + // /blog/ -> true + // /blog/1 -> true + // /blogging -> false + // /blogging/ -> false + // /blogging/1 -> false + if (!(0, _pathhasprefix.pathHasPrefix)(path, prefix)) { + return path; + } + // Remove the prefix from the path via slicing. + const withoutPrefix = path.slice(prefix.length); + // If the path without the prefix starts with a `/` we can return it as is. + if (withoutPrefix.startsWith('/')) { + return withoutPrefix; + } + // If the path without the prefix doesn't start with a `/` we need to add it + // back to the path to make sure it's a valid path. + return `/${withoutPrefix}`; +} //# sourceMappingURL=remove-path-prefix.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getNextPathnameInfo", { + enumerable: true, + get: function() { + return getNextPathnameInfo; + } +}); +const _normalizelocalepath = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js [app-route] (ecmascript)"); +const _removepathprefix = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js [app-route] (ecmascript)"); +const _pathhasprefix = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js [app-route] (ecmascript)"); +function getNextPathnameInfo(pathname, options) { + const { basePath, i18n, trailingSlash } = options.nextConfig ?? {}; + const info = { + pathname, + trailingSlash: pathname !== '/' ? pathname.endsWith('/') : trailingSlash + }; + if (basePath && (0, _pathhasprefix.pathHasPrefix)(info.pathname, basePath)) { + info.pathname = (0, _removepathprefix.removePathPrefix)(info.pathname, basePath); + info.basePath = basePath; + } + let pathnameNoDataPrefix = info.pathname; + if (info.pathname.startsWith('/_next/data/') && info.pathname.endsWith('.json')) { + const paths = info.pathname.replace(/^\/_next\/data\//, '').replace(/\.json$/, '').split('/'); + const buildId = paths[0]; + info.buildId = buildId; + pathnameNoDataPrefix = paths[1] !== 'index' ? `/${paths.slice(1).join('/')}` : '/'; + // update pathname with normalized if enabled although + // we use normalized to populate locale info still + if (options.parseData === true) { + info.pathname = pathnameNoDataPrefix; + } + } + // If provided, use the locale route normalizer to detect the locale instead + // of the function below. + if (i18n) { + let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : (0, _normalizelocalepath.normalizeLocalePath)(info.pathname, i18n.locales); + info.locale = result.detectedLocale; + info.pathname = result.pathname ?? info.pathname; + if (!result.detectedLocale && info.buildId) { + result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : (0, _normalizelocalepath.normalizeLocalePath)(pathnameNoDataPrefix, i18n.locales); + if (result.detectedLocale) { + info.locale = result.detectedLocale; + } + } + } + return info; +} //# sourceMappingURL=get-next-pathname-info.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/next-url.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "NextURL", { + enumerable: true, + get: function() { + return NextURL; + } +}); +const _detectdomainlocale = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js [app-route] (ecmascript)"); +const _formatnextpathnameinfo = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js [app-route] (ecmascript)"); +const _gethostname = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/get-hostname.js [app-route] (ecmascript)"); +const _getnextpathnameinfo = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js [app-route] (ecmascript)"); +const REGEX_LOCALHOST_HOSTNAME = /(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)/; +function parseURL(url, base) { + return new URL(String(url).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'), base && String(base).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost')); +} +const Internal = Symbol('NextURLInternal'); +class NextURL { + constructor(input, baseOrOpts, opts){ + let base; + let options; + if (typeof baseOrOpts === 'object' && 'pathname' in baseOrOpts || typeof baseOrOpts === 'string') { + base = baseOrOpts; + options = opts || {}; + } else { + options = opts || baseOrOpts || {}; + } + this[Internal] = { + url: parseURL(input, base ?? options.base), + options: options, + basePath: '' + }; + this.analyze(); + } + analyze() { + var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig, _this_Internal_domainLocale, _this_Internal_options_nextConfig_i18n1, _this_Internal_options_nextConfig1; + const info = (0, _getnextpathnameinfo.getNextPathnameInfo)(this[Internal].url.pathname, { + nextConfig: this[Internal].options.nextConfig, + parseData: !("TURBOPACK compile-time value", void 0), + i18nProvider: this[Internal].options.i18nProvider + }); + const hostname = (0, _gethostname.getHostname)(this[Internal].url, this[Internal].options.headers); + this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0, _detectdomainlocale.detectDomainLocale)((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.domains, hostname); + const defaultLocale = ((_this_Internal_domainLocale = this[Internal].domainLocale) == null ? void 0 : _this_Internal_domainLocale.defaultLocale) || ((_this_Internal_options_nextConfig1 = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n1 = _this_Internal_options_nextConfig1.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n1.defaultLocale); + this[Internal].url.pathname = info.pathname; + this[Internal].defaultLocale = defaultLocale; + this[Internal].basePath = info.basePath ?? ''; + this[Internal].buildId = info.buildId; + this[Internal].locale = info.locale ?? defaultLocale; + this[Internal].trailingSlash = info.trailingSlash; + } + formatPathname() { + return (0, _formatnextpathnameinfo.formatNextPathnameInfo)({ + basePath: this[Internal].basePath, + buildId: this[Internal].buildId, + defaultLocale: !this[Internal].options.forceLocale ? this[Internal].defaultLocale : undefined, + locale: this[Internal].locale, + pathname: this[Internal].url.pathname, + trailingSlash: this[Internal].trailingSlash + }); + } + formatSearch() { + return this[Internal].url.search; + } + get buildId() { + return this[Internal].buildId; + } + set buildId(buildId) { + this[Internal].buildId = buildId; + } + get locale() { + return this[Internal].locale ?? ''; + } + set locale(locale) { + var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig; + if (!this[Internal].locale || !((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.locales.includes(locale))) { + throw Object.defineProperty(new TypeError(`The NextURL configuration includes no locale "${locale}"`), "__NEXT_ERROR_CODE", { + value: "E597", + enumerable: false, + configurable: true + }); + } + this[Internal].locale = locale; + } + get defaultLocale() { + return this[Internal].defaultLocale; + } + get domainLocale() { + return this[Internal].domainLocale; + } + get searchParams() { + return this[Internal].url.searchParams; + } + get host() { + return this[Internal].url.host; + } + set host(value) { + this[Internal].url.host = value; + } + get hostname() { + return this[Internal].url.hostname; + } + set hostname(value) { + this[Internal].url.hostname = value; + } + get port() { + return this[Internal].url.port; + } + set port(value) { + this[Internal].url.port = value; + } + get protocol() { + return this[Internal].url.protocol; + } + set protocol(value) { + this[Internal].url.protocol = value; + } + get href() { + const pathname = this.formatPathname(); + const search = this.formatSearch(); + return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`; + } + set href(url) { + this[Internal].url = parseURL(url); + this.analyze(); + } + get origin() { + return this[Internal].url.origin; + } + get pathname() { + return this[Internal].url.pathname; + } + set pathname(value) { + this[Internal].url.pathname = value; + } + get hash() { + return this[Internal].url.hash; + } + set hash(value) { + this[Internal].url.hash = value; + } + get search() { + return this[Internal].url.search; + } + set search(value) { + this[Internal].url.search = value; + } + get password() { + return this[Internal].url.password; + } + set password(value) { + this[Internal].url.password = value; + } + get username() { + return this[Internal].url.username; + } + set username(value) { + this[Internal].url.username = value; + } + get basePath() { + return this[Internal].basePath; + } + set basePath(value) { + this[Internal].basePath = value.startsWith('/') ? value : `/${value}`; + } + toString() { + return this.href; + } + toJSON() { + return this.href; + } + [Symbol.for('edge-runtime.inspect.custom')]() { + return { + href: this.href, + origin: this.origin, + protocol: this.protocol, + username: this.username, + password: this.password, + host: this.host, + hostname: this.hostname, + port: this.port, + pathname: this.pathname, + search: this.search, + searchParams: this.searchParams, + hash: this.hash + }; + } + clone() { + return new NextURL(String(this), this[Internal].options); + } +} //# sourceMappingURL=next-url.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/constants.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + ACTION_SUFFIX: null, + APP_DIR_ALIAS: null, + CACHE_ONE_YEAR: null, + DOT_NEXT_ALIAS: null, + ESLINT_DEFAULT_DIRS: null, + GSP_NO_RETURNED_VALUE: null, + GSSP_COMPONENT_MEMBER_ERROR: null, + GSSP_NO_RETURNED_VALUE: null, + HTML_CONTENT_TYPE_HEADER: null, + INFINITE_CACHE: null, + INSTRUMENTATION_HOOK_FILENAME: null, + JSON_CONTENT_TYPE_HEADER: null, + MATCHED_PATH_HEADER: null, + MIDDLEWARE_FILENAME: null, + MIDDLEWARE_LOCATION_REGEXP: null, + NEXT_BODY_SUFFIX: null, + NEXT_CACHE_IMPLICIT_TAG_ID: null, + NEXT_CACHE_REVALIDATED_TAGS_HEADER: null, + NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: null, + NEXT_CACHE_SOFT_TAG_MAX_LENGTH: null, + NEXT_CACHE_TAGS_HEADER: null, + NEXT_CACHE_TAG_MAX_ITEMS: null, + NEXT_CACHE_TAG_MAX_LENGTH: null, + NEXT_DATA_SUFFIX: null, + NEXT_INTERCEPTION_MARKER_PREFIX: null, + NEXT_META_SUFFIX: null, + NEXT_QUERY_PARAM_PREFIX: null, + NEXT_RESUME_HEADER: null, + NON_STANDARD_NODE_ENV: null, + PAGES_DIR_ALIAS: null, + PRERENDER_REVALIDATE_HEADER: null, + PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: null, + PROXY_FILENAME: null, + PROXY_LOCATION_REGEXP: null, + PUBLIC_DIR_MIDDLEWARE_CONFLICT: null, + ROOT_DIR_ALIAS: null, + RSC_ACTION_CLIENT_WRAPPER_ALIAS: null, + RSC_ACTION_ENCRYPTION_ALIAS: null, + RSC_ACTION_PROXY_ALIAS: null, + RSC_ACTION_VALIDATE_ALIAS: null, + RSC_CACHE_WRAPPER_ALIAS: null, + RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS: null, + RSC_MOD_REF_PROXY_ALIAS: null, + RSC_PREFETCH_SUFFIX: null, + RSC_SEGMENTS_DIR_SUFFIX: null, + RSC_SEGMENT_SUFFIX: null, + RSC_SUFFIX: null, + SERVER_PROPS_EXPORT_ERROR: null, + SERVER_PROPS_GET_INIT_PROPS_CONFLICT: null, + SERVER_PROPS_SSG_CONFLICT: null, + SERVER_RUNTIME: null, + SSG_FALLBACK_EXPORT_ERROR: null, + SSG_GET_INITIAL_PROPS_CONFLICT: null, + STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: null, + TEXT_PLAIN_CONTENT_TYPE_HEADER: null, + UNSTABLE_REVALIDATE_RENAME_ERROR: null, + WEBPACK_LAYERS: null, + WEBPACK_RESOURCE_QUERIES: null, + WEB_SOCKET_MAX_RECONNECTIONS: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + ACTION_SUFFIX: function() { + return ACTION_SUFFIX; + }, + APP_DIR_ALIAS: function() { + return APP_DIR_ALIAS; + }, + CACHE_ONE_YEAR: function() { + return CACHE_ONE_YEAR; + }, + DOT_NEXT_ALIAS: function() { + return DOT_NEXT_ALIAS; + }, + ESLINT_DEFAULT_DIRS: function() { + return ESLINT_DEFAULT_DIRS; + }, + GSP_NO_RETURNED_VALUE: function() { + return GSP_NO_RETURNED_VALUE; + }, + GSSP_COMPONENT_MEMBER_ERROR: function() { + return GSSP_COMPONENT_MEMBER_ERROR; + }, + GSSP_NO_RETURNED_VALUE: function() { + return GSSP_NO_RETURNED_VALUE; + }, + HTML_CONTENT_TYPE_HEADER: function() { + return HTML_CONTENT_TYPE_HEADER; + }, + INFINITE_CACHE: function() { + return INFINITE_CACHE; + }, + INSTRUMENTATION_HOOK_FILENAME: function() { + return INSTRUMENTATION_HOOK_FILENAME; + }, + JSON_CONTENT_TYPE_HEADER: function() { + return JSON_CONTENT_TYPE_HEADER; + }, + MATCHED_PATH_HEADER: function() { + return MATCHED_PATH_HEADER; + }, + MIDDLEWARE_FILENAME: function() { + return MIDDLEWARE_FILENAME; + }, + MIDDLEWARE_LOCATION_REGEXP: function() { + return MIDDLEWARE_LOCATION_REGEXP; + }, + NEXT_BODY_SUFFIX: function() { + return NEXT_BODY_SUFFIX; + }, + NEXT_CACHE_IMPLICIT_TAG_ID: function() { + return NEXT_CACHE_IMPLICIT_TAG_ID; + }, + NEXT_CACHE_REVALIDATED_TAGS_HEADER: function() { + return NEXT_CACHE_REVALIDATED_TAGS_HEADER; + }, + NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: function() { + return NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER; + }, + NEXT_CACHE_SOFT_TAG_MAX_LENGTH: function() { + return NEXT_CACHE_SOFT_TAG_MAX_LENGTH; + }, + NEXT_CACHE_TAGS_HEADER: function() { + return NEXT_CACHE_TAGS_HEADER; + }, + NEXT_CACHE_TAG_MAX_ITEMS: function() { + return NEXT_CACHE_TAG_MAX_ITEMS; + }, + NEXT_CACHE_TAG_MAX_LENGTH: function() { + return NEXT_CACHE_TAG_MAX_LENGTH; + }, + NEXT_DATA_SUFFIX: function() { + return NEXT_DATA_SUFFIX; + }, + NEXT_INTERCEPTION_MARKER_PREFIX: function() { + return NEXT_INTERCEPTION_MARKER_PREFIX; + }, + NEXT_META_SUFFIX: function() { + return NEXT_META_SUFFIX; + }, + NEXT_QUERY_PARAM_PREFIX: function() { + return NEXT_QUERY_PARAM_PREFIX; + }, + NEXT_RESUME_HEADER: function() { + return NEXT_RESUME_HEADER; + }, + NON_STANDARD_NODE_ENV: function() { + return NON_STANDARD_NODE_ENV; + }, + PAGES_DIR_ALIAS: function() { + return PAGES_DIR_ALIAS; + }, + PRERENDER_REVALIDATE_HEADER: function() { + return PRERENDER_REVALIDATE_HEADER; + }, + PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: function() { + return PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER; + }, + PROXY_FILENAME: function() { + return PROXY_FILENAME; + }, + PROXY_LOCATION_REGEXP: function() { + return PROXY_LOCATION_REGEXP; + }, + PUBLIC_DIR_MIDDLEWARE_CONFLICT: function() { + return PUBLIC_DIR_MIDDLEWARE_CONFLICT; + }, + ROOT_DIR_ALIAS: function() { + return ROOT_DIR_ALIAS; + }, + RSC_ACTION_CLIENT_WRAPPER_ALIAS: function() { + return RSC_ACTION_CLIENT_WRAPPER_ALIAS; + }, + RSC_ACTION_ENCRYPTION_ALIAS: function() { + return RSC_ACTION_ENCRYPTION_ALIAS; + }, + RSC_ACTION_PROXY_ALIAS: function() { + return RSC_ACTION_PROXY_ALIAS; + }, + RSC_ACTION_VALIDATE_ALIAS: function() { + return RSC_ACTION_VALIDATE_ALIAS; + }, + RSC_CACHE_WRAPPER_ALIAS: function() { + return RSC_CACHE_WRAPPER_ALIAS; + }, + RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS: function() { + return RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS; + }, + RSC_MOD_REF_PROXY_ALIAS: function() { + return RSC_MOD_REF_PROXY_ALIAS; + }, + RSC_PREFETCH_SUFFIX: function() { + return RSC_PREFETCH_SUFFIX; + }, + RSC_SEGMENTS_DIR_SUFFIX: function() { + return RSC_SEGMENTS_DIR_SUFFIX; + }, + RSC_SEGMENT_SUFFIX: function() { + return RSC_SEGMENT_SUFFIX; + }, + RSC_SUFFIX: function() { + return RSC_SUFFIX; + }, + SERVER_PROPS_EXPORT_ERROR: function() { + return SERVER_PROPS_EXPORT_ERROR; + }, + SERVER_PROPS_GET_INIT_PROPS_CONFLICT: function() { + return SERVER_PROPS_GET_INIT_PROPS_CONFLICT; + }, + SERVER_PROPS_SSG_CONFLICT: function() { + return SERVER_PROPS_SSG_CONFLICT; + }, + SERVER_RUNTIME: function() { + return SERVER_RUNTIME; + }, + SSG_FALLBACK_EXPORT_ERROR: function() { + return SSG_FALLBACK_EXPORT_ERROR; + }, + SSG_GET_INITIAL_PROPS_CONFLICT: function() { + return SSG_GET_INITIAL_PROPS_CONFLICT; + }, + STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: function() { + return STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR; + }, + TEXT_PLAIN_CONTENT_TYPE_HEADER: function() { + return TEXT_PLAIN_CONTENT_TYPE_HEADER; + }, + UNSTABLE_REVALIDATE_RENAME_ERROR: function() { + return UNSTABLE_REVALIDATE_RENAME_ERROR; + }, + WEBPACK_LAYERS: function() { + return WEBPACK_LAYERS; + }, + WEBPACK_RESOURCE_QUERIES: function() { + return WEBPACK_RESOURCE_QUERIES; + }, + WEB_SOCKET_MAX_RECONNECTIONS: function() { + return WEB_SOCKET_MAX_RECONNECTIONS; + } +}); +const TEXT_PLAIN_CONTENT_TYPE_HEADER = 'text/plain'; +const HTML_CONTENT_TYPE_HEADER = 'text/html; charset=utf-8'; +const JSON_CONTENT_TYPE_HEADER = 'application/json; charset=utf-8'; +const NEXT_QUERY_PARAM_PREFIX = 'nxtP'; +const NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI'; +const MATCHED_PATH_HEADER = 'x-matched-path'; +const PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate'; +const PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = 'x-prerender-revalidate-if-generated'; +const RSC_PREFETCH_SUFFIX = '.prefetch.rsc'; +const RSC_SEGMENTS_DIR_SUFFIX = '.segments'; +const RSC_SEGMENT_SUFFIX = '.segment.rsc'; +const RSC_SUFFIX = '.rsc'; +const ACTION_SUFFIX = '.action'; +const NEXT_DATA_SUFFIX = '.json'; +const NEXT_META_SUFFIX = '.meta'; +const NEXT_BODY_SUFFIX = '.body'; +const NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags'; +const NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags'; +const NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = 'x-next-revalidate-tag-token'; +const NEXT_RESUME_HEADER = 'next-resume'; +const NEXT_CACHE_TAG_MAX_ITEMS = 128; +const NEXT_CACHE_TAG_MAX_LENGTH = 256; +const NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024; +const NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_'; +const CACHE_ONE_YEAR = 31536000; +const INFINITE_CACHE = 0xfffffffe; +const MIDDLEWARE_FILENAME = 'middleware'; +const MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`; +const PROXY_FILENAME = 'proxy'; +const PROXY_LOCATION_REGEXP = `(?:src/)?${PROXY_FILENAME}`; +const INSTRUMENTATION_HOOK_FILENAME = 'instrumentation'; +const PAGES_DIR_ALIAS = 'private-next-pages'; +const DOT_NEXT_ALIAS = 'private-dot-next'; +const ROOT_DIR_ALIAS = 'private-next-root-dir'; +const APP_DIR_ALIAS = 'private-next-app-dir'; +const RSC_MOD_REF_PROXY_ALIAS = 'private-next-rsc-mod-ref-proxy'; +const RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate'; +const RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference'; +const RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper'; +const RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS = 'private-next-rsc-track-dynamic-import'; +const RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption'; +const RSC_ACTION_CLIENT_WRAPPER_ALIAS = 'private-next-rsc-action-client-wrapper'; +const PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`; +const SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`; +const SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`; +const SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`; +const STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`; +const SERVER_PROPS_EXPORT_ERROR = `pages with \`getServerSideProps\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`; +const GSP_NO_RETURNED_VALUE = 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?'; +const GSSP_NO_RETURNED_VALUE = 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?'; +const UNSTABLE_REVALIDATE_RENAME_ERROR = 'The `unstable_revalidate` property is available for general use.\n' + 'Please use `revalidate` instead.'; +const GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`; +const NON_STANDARD_NODE_ENV = `You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`; +const SSG_FALLBACK_EXPORT_ERROR = `Pages with \`fallback\` enabled in \`getStaticPaths\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`; +const ESLINT_DEFAULT_DIRS = [ + 'app', + 'pages', + 'components', + 'lib', + 'src' +]; +const SERVER_RUNTIME = { + edge: 'edge', + experimentalEdge: 'experimental-edge', + nodejs: 'nodejs' +}; +const WEB_SOCKET_MAX_RECONNECTIONS = 12; +/** + * The names of the webpack layers. These layers are the primitives for the + * webpack chunks. + */ const WEBPACK_LAYERS_NAMES = { + /** + * The layer for the shared code between the client and server bundles. + */ shared: 'shared', + /** + * The layer for server-only runtime and picking up `react-server` export conditions. + * Including app router RSC pages and app router custom routes and metadata routes. + */ reactServerComponents: 'rsc', + /** + * Server Side Rendering layer for app (ssr). + */ serverSideRendering: 'ssr', + /** + * The browser client bundle layer for actions. + */ actionBrowser: 'action-browser', + /** + * The Node.js bundle layer for the API routes. + */ apiNode: 'api-node', + /** + * The Edge Lite bundle layer for the API routes. + */ apiEdge: 'api-edge', + /** + * The layer for the middleware code. + */ middleware: 'middleware', + /** + * The layer for the instrumentation hooks. + */ instrument: 'instrument', + /** + * The layer for assets on the edge. + */ edgeAsset: 'edge-asset', + /** + * The browser client bundle layer for App directory. + */ appPagesBrowser: 'app-pages-browser', + /** + * The browser client bundle layer for Pages directory. + */ pagesDirBrowser: 'pages-dir-browser', + /** + * The Edge Lite bundle layer for Pages directory. + */ pagesDirEdge: 'pages-dir-edge', + /** + * The Node.js bundle layer for Pages directory. + */ pagesDirNode: 'pages-dir-node' +}; +const WEBPACK_LAYERS = { + ...WEBPACK_LAYERS_NAMES, + GROUP: { + builtinReact: [ + WEBPACK_LAYERS_NAMES.reactServerComponents, + WEBPACK_LAYERS_NAMES.actionBrowser + ], + serverOnly: [ + WEBPACK_LAYERS_NAMES.reactServerComponents, + WEBPACK_LAYERS_NAMES.actionBrowser, + WEBPACK_LAYERS_NAMES.instrument, + WEBPACK_LAYERS_NAMES.middleware + ], + neutralTarget: [ + // pages api + WEBPACK_LAYERS_NAMES.apiNode, + WEBPACK_LAYERS_NAMES.apiEdge + ], + clientOnly: [ + WEBPACK_LAYERS_NAMES.serverSideRendering, + WEBPACK_LAYERS_NAMES.appPagesBrowser + ], + bundled: [ + WEBPACK_LAYERS_NAMES.reactServerComponents, + WEBPACK_LAYERS_NAMES.actionBrowser, + WEBPACK_LAYERS_NAMES.serverSideRendering, + WEBPACK_LAYERS_NAMES.appPagesBrowser, + WEBPACK_LAYERS_NAMES.shared, + WEBPACK_LAYERS_NAMES.instrument, + WEBPACK_LAYERS_NAMES.middleware + ], + appPages: [ + // app router pages and layouts + WEBPACK_LAYERS_NAMES.reactServerComponents, + WEBPACK_LAYERS_NAMES.serverSideRendering, + WEBPACK_LAYERS_NAMES.appPagesBrowser, + WEBPACK_LAYERS_NAMES.actionBrowser + ] + } +}; +const WEBPACK_RESOURCE_QUERIES = { + edgeSSREntry: '__next_edge_ssr_entry__', + metadata: '__next_metadata__', + metadataRoute: '__next_metadata_route__', + metadataImageMeta: '__next_metadata_image_meta__' +}; //# sourceMappingURL=constants.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/utils.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + fromNodeOutgoingHttpHeaders: null, + normalizeNextQueryParam: null, + splitCookiesString: null, + toNodeOutgoingHttpHeaders: null, + validateURL: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + fromNodeOutgoingHttpHeaders: function() { + return fromNodeOutgoingHttpHeaders; + }, + normalizeNextQueryParam: function() { + return normalizeNextQueryParam; + }, + splitCookiesString: function() { + return splitCookiesString; + }, + toNodeOutgoingHttpHeaders: function() { + return toNodeOutgoingHttpHeaders; + }, + validateURL: function() { + return validateURL; + } +}); +const _constants = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/constants.js [app-route] (ecmascript)"); +function fromNodeOutgoingHttpHeaders(nodeHeaders) { + const headers = new Headers(); + for (let [key, value] of Object.entries(nodeHeaders)){ + const values = Array.isArray(value) ? value : [ + value + ]; + for (let v of values){ + if (typeof v === 'undefined') continue; + if (typeof v === 'number') { + v = v.toString(); + } + headers.append(key, v); + } + } + return headers; +} +function splitCookiesString(cookiesString) { + var cookiesStrings = []; + var pos = 0; + var start; + var ch; + var lastComma; + var nextStart; + var cookiesSeparatorFound; + function skipWhitespace() { + while(pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))){ + pos += 1; + } + return pos < cookiesString.length; + } + function notSpecialChar() { + ch = cookiesString.charAt(pos); + return ch !== '=' && ch !== ';' && ch !== ','; + } + while(pos < cookiesString.length){ + start = pos; + cookiesSeparatorFound = false; + while(skipWhitespace()){ + ch = cookiesString.charAt(pos); + if (ch === ',') { + // ',' is a cookie separator if we have later first '=', not ';' or ',' + lastComma = pos; + pos += 1; + skipWhitespace(); + nextStart = pos; + while(pos < cookiesString.length && notSpecialChar()){ + pos += 1; + } + // currently special character + if (pos < cookiesString.length && cookiesString.charAt(pos) === '=') { + // we found cookies separator + cookiesSeparatorFound = true; + // pos is inside the next cookie, so back up and return it. + pos = nextStart; + cookiesStrings.push(cookiesString.substring(start, lastComma)); + start = pos; + } else { + // in param ',' or param separator ';', + // we continue from that comma + pos = lastComma + 1; + } + } else { + pos += 1; + } + } + if (!cookiesSeparatorFound || pos >= cookiesString.length) { + cookiesStrings.push(cookiesString.substring(start, cookiesString.length)); + } + } + return cookiesStrings; +} +function toNodeOutgoingHttpHeaders(headers) { + const nodeHeaders = {}; + const cookies = []; + if (headers) { + for (const [key, value] of headers.entries()){ + if (key.toLowerCase() === 'set-cookie') { + // We may have gotten a comma joined string of cookies, or multiple + // set-cookie headers. We need to merge them into one header array + // to represent all the cookies. + cookies.push(...splitCookiesString(value)); + nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies; + } else { + nodeHeaders[key] = value; + } + } + } + return nodeHeaders; +} +function validateURL(url) { + try { + return String(new URL(String(url))); + } catch (error) { + throw Object.defineProperty(new Error(`URL is malformed "${String(url)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, { + cause: error + }), "__NEXT_ERROR_CODE", { + value: "E61", + enumerable: false, + configurable: true + }); + } +} +function normalizeNextQueryParam(key) { + const prefixes = [ + _constants.NEXT_QUERY_PARAM_PREFIX, + _constants.NEXT_INTERCEPTION_MARKER_PREFIX + ]; + for (const prefix of prefixes){ + if (key !== prefix && key.startsWith(prefix)) { + return key.substring(prefix.length); + } + } + return null; +} //# sourceMappingURL=utils.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/error.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + PageSignatureError: null, + RemovedPageError: null, + RemovedUAError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + PageSignatureError: function() { + return PageSignatureError; + }, + RemovedPageError: function() { + return RemovedPageError; + }, + RemovedUAError: function() { + return RemovedUAError; + } +}); +class PageSignatureError extends Error { + constructor({ page }){ + super(`The middleware "${page}" accepts an async API directly with the form: + + export function middleware(request, event) { + return NextResponse.redirect('/new-location') + } + + Read more: https://nextjs.org/docs/messages/middleware-new-signature + `); + } +} +class RemovedPageError extends Error { + constructor(){ + super(`The request.page has been deprecated in favour of \`URLPattern\`. + Read more: https://nextjs.org/docs/messages/middleware-request-page + `); + } +} +class RemovedUAError extends Error { + constructor(){ + super(`The request.ua has been removed in favour of \`userAgent\` function. + Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent + `); + } +} //# sourceMappingURL=error.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/cookies.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + RequestCookies: null, + ResponseCookies: null, + stringifyCookie: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + RequestCookies: function() { + return _cookies.RequestCookies; + }, + ResponseCookies: function() { + return _cookies.ResponseCookies; + }, + stringifyCookie: function() { + return _cookies.stringifyCookie; + } +}); +const _cookies = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js [app-route] (ecmascript)"); //# sourceMappingURL=cookies.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/request.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + INTERNALS: null, + NextRequest: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + INTERNALS: function() { + return INTERNALS; + }, + NextRequest: function() { + return NextRequest; + } +}); +const _nexturl = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/next-url.js [app-route] (ecmascript)"); +const _utils = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/utils.js [app-route] (ecmascript)"); +const _error = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/error.js [app-route] (ecmascript)"); +const _cookies = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/cookies.js [app-route] (ecmascript)"); +const INTERNALS = Symbol('internal request'); +class NextRequest extends Request { + constructor(input, init = {}){ + const url = typeof input !== 'string' && 'url' in input ? input.url : String(input); + (0, _utils.validateURL)(url); + // node Request instance requires duplex option when a body + // is present or it errors, we don't handle this for + // Request being passed in since it would have already + // errored if this wasn't configured + if ("TURBOPACK compile-time truthy", 1) { + if (init.body && init.duplex !== 'half') { + init.duplex = 'half'; + } + } + if (input instanceof Request) super(input, init); + else super(url, init); + const nextUrl = new _nexturl.NextURL(url, { + headers: (0, _utils.toNodeOutgoingHttpHeaders)(this.headers), + nextConfig: init.nextConfig + }); + this[INTERNALS] = { + cookies: new _cookies.RequestCookies(this.headers), + nextUrl, + url: ("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : nextUrl.toString() + }; + } + [Symbol.for('edge-runtime.inspect.custom')]() { + return { + cookies: this.cookies, + nextUrl: this.nextUrl, + url: this.url, + // rest of props come from Request + bodyUsed: this.bodyUsed, + cache: this.cache, + credentials: this.credentials, + destination: this.destination, + headers: Object.fromEntries(this.headers), + integrity: this.integrity, + keepalive: this.keepalive, + method: this.method, + mode: this.mode, + redirect: this.redirect, + referrer: this.referrer, + referrerPolicy: this.referrerPolicy, + signal: this.signal + }; + } + get cookies() { + return this[INTERNALS].cookies; + } + get nextUrl() { + return this[INTERNALS].nextUrl; + } + /** + * @deprecated + * `page` has been deprecated in favour of `URLPattern`. + * Read more: https://nextjs.org/docs/messages/middleware-request-page + */ get page() { + throw new _error.RemovedPageError(); + } + /** + * @deprecated + * `ua` has been removed in favour of \`userAgent\` function. + * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent + */ get ua() { + throw new _error.RemovedUAError(); + } + get url() { + return this[INTERNALS].url; + } +} //# sourceMappingURL=request.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ReflectAdapter", { + enumerable: true, + get: function() { + return ReflectAdapter; + } +}); +class ReflectAdapter { + static get(target, prop, receiver) { + const value = Reflect.get(target, prop, receiver); + if (typeof value === 'function') { + return value.bind(target); + } + return value; + } + static set(target, prop, value, receiver) { + return Reflect.set(target, prop, value, receiver); + } + static has(target, prop) { + return Reflect.has(target, prop); + } + static deleteProperty(target, prop) { + return Reflect.deleteProperty(target, prop); + } +} //# sourceMappingURL=reflect.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/response.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "NextResponse", { + enumerable: true, + get: function() { + return NextResponse; + } +}); +const _cookies = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/cookies.js [app-route] (ecmascript)"); +const _nexturl = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/next-url.js [app-route] (ecmascript)"); +const _utils = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/utils.js [app-route] (ecmascript)"); +const _reflect = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js [app-route] (ecmascript)"); +const _cookies1 = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/cookies.js [app-route] (ecmascript)"); +const INTERNALS = Symbol('internal response'); +const REDIRECTS = new Set([ + 301, + 302, + 303, + 307, + 308 +]); +function handleMiddlewareField(init, headers) { + var _init_request; + if (init == null ? void 0 : (_init_request = init.request) == null ? void 0 : _init_request.headers) { + if (!(init.request.headers instanceof Headers)) { + throw Object.defineProperty(new Error('request.headers must be an instance of Headers'), "__NEXT_ERROR_CODE", { + value: "E119", + enumerable: false, + configurable: true + }); + } + const keys = []; + for (const [key, value] of init.request.headers){ + headers.set('x-middleware-request-' + key, value); + keys.push(key); + } + headers.set('x-middleware-override-headers', keys.join(',')); + } +} +class NextResponse extends Response { + constructor(body, init = {}){ + super(body, init); + const headers = this.headers; + const cookies = new _cookies1.ResponseCookies(headers); + const cookiesProxy = new Proxy(cookies, { + get (target, prop, receiver) { + switch(prop){ + case 'delete': + case 'set': + { + return (...args)=>{ + const result = Reflect.apply(target[prop], target, args); + const newHeaders = new Headers(headers); + if (result instanceof _cookies1.ResponseCookies) { + headers.set('x-middleware-set-cookie', result.getAll().map((cookie)=>(0, _cookies.stringifyCookie)(cookie)).join(',')); + } + handleMiddlewareField(init, newHeaders); + return result; + }; + } + default: + return _reflect.ReflectAdapter.get(target, prop, receiver); + } + } + }); + this[INTERNALS] = { + cookies: cookiesProxy, + url: init.url ? new _nexturl.NextURL(init.url, { + headers: (0, _utils.toNodeOutgoingHttpHeaders)(headers), + nextConfig: init.nextConfig + }) : undefined + }; + } + [Symbol.for('edge-runtime.inspect.custom')]() { + return { + cookies: this.cookies, + url: this.url, + // rest of props come from Response + body: this.body, + bodyUsed: this.bodyUsed, + headers: Object.fromEntries(this.headers), + ok: this.ok, + redirected: this.redirected, + status: this.status, + statusText: this.statusText, + type: this.type + }; + } + get cookies() { + return this[INTERNALS].cookies; + } + static json(body, init) { + const response = Response.json(body, init); + return new NextResponse(response.body, response); + } + static redirect(url, init) { + const status = typeof init === 'number' ? init : (init == null ? void 0 : init.status) ?? 307; + if (!REDIRECTS.has(status)) { + throw Object.defineProperty(new RangeError('Failed to execute "redirect" on "response": Invalid status code'), "__NEXT_ERROR_CODE", { + value: "E529", + enumerable: false, + configurable: true + }); + } + const initObj = typeof init === 'object' ? init : {}; + const headers = new Headers(initObj == null ? void 0 : initObj.headers); + headers.set('Location', (0, _utils.validateURL)(url)); + return new NextResponse(null, { + ...initObj, + headers, + status + }); + } + static rewrite(destination, init) { + const headers = new Headers(init == null ? void 0 : init.headers); + headers.set('x-middleware-rewrite', (0, _utils.validateURL)(destination)); + handleMiddlewareField(init, headers); + return new NextResponse(null, { + ...init, + headers + }); + } + static next(init) { + const headers = new Headers(init == null ? void 0 : init.headers); + headers.set('x-middleware-next', '1'); + handleMiddlewareField(init, headers); + return new NextResponse(null, { + ...init, + headers + }); + } +} //# sourceMappingURL=response.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/image-response.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +/** + * @deprecated ImageResponse moved from "next/server" to "next/og" since Next.js 14, please import from "next/og" instead. + * Migration with codemods: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#next-og-import + */ Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ImageResponse", { + enumerable: true, + get: function() { + return ImageResponse; + } +}); +function ImageResponse() { + throw Object.defineProperty(new Error('ImageResponse moved from "next/server" to "next/og" since Next.js 14, please import from "next/og" instead'), "__NEXT_ERROR_CODE", { + value: "E183", + enumerable: false, + configurable: true + }); +} //# sourceMappingURL=image-response.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/ua-parser-js/ua-parser.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { + +(()=>{ + var i = { + 226: function(i, e) { + (function(o, a) { + "use strict"; + var r = "1.0.35", t = "", n = "?", s = "function", b = "undefined", w = "object", l = "string", d = "major", c = "model", u = "name", p = "type", m = "vendor", f = "version", h = "architecture", v = "console", g = "mobile", k = "tablet", x = "smarttv", _ = "wearable", y = "embedded", q = 350; + var T = "Amazon", S = "Apple", z = "ASUS", N = "BlackBerry", A = "Browser", C = "Chrome", E = "Edge", O = "Firefox", U = "Google", j = "Huawei", P = "LG", R = "Microsoft", M = "Motorola", B = "Opera", V = "Samsung", D = "Sharp", I = "Sony", W = "Viera", F = "Xiaomi", G = "Zebra", H = "Facebook", L = "Chromium OS", Z = "Mac OS"; + var extend = function(i, e) { + var o = {}; + for(var a in i){ + if (e[a] && e[a].length % 2 === 0) { + o[a] = e[a].concat(i[a]); + } else { + o[a] = i[a]; + } + } + return o; + }, enumerize = function(i) { + var e = {}; + for(var o = 0; o < i.length; o++){ + e[i[o].toUpperCase()] = i[o]; + } + return e; + }, has = function(i, e) { + return typeof i === l ? lowerize(e).indexOf(lowerize(i)) !== -1 : false; + }, lowerize = function(i) { + return i.toLowerCase(); + }, majorize = function(i) { + return typeof i === l ? i.replace(/[^\d\.]/g, t).split(".")[0] : a; + }, trim = function(i, e) { + if (typeof i === l) { + i = i.replace(/^\s\s*/, t); + return typeof e === b ? i : i.substring(0, q); + } + }; + var rgxMapper = function(i, e) { + var o = 0, r, t, n, b, l, d; + while(o < e.length && !l){ + var c = e[o], u = e[o + 1]; + r = t = 0; + while(r < c.length && !l){ + if (!c[r]) { + break; + } + l = c[r++].exec(i); + if (!!l) { + for(n = 0; n < u.length; n++){ + d = l[++t]; + b = u[n]; + if (typeof b === w && b.length > 0) { + if (b.length === 2) { + if (typeof b[1] == s) { + this[b[0]] = b[1].call(this, d); + } else { + this[b[0]] = b[1]; + } + } else if (b.length === 3) { + if (typeof b[1] === s && !(b[1].exec && b[1].test)) { + this[b[0]] = d ? b[1].call(this, d, b[2]) : a; + } else { + this[b[0]] = d ? d.replace(b[1], b[2]) : a; + } + } else if (b.length === 4) { + this[b[0]] = d ? b[3].call(this, d.replace(b[1], b[2])) : a; + } + } else { + this[b] = d ? d : a; + } + } + } + } + o += 2; + } + }, strMapper = function(i, e) { + for(var o in e){ + if (typeof e[o] === w && e[o].length > 0) { + for(var r = 0; r < e[o].length; r++){ + if (has(e[o][r], i)) { + return o === n ? a : o; + } + } + } else if (has(e[o], i)) { + return o === n ? a : o; + } + } + return i; + }; + var $ = { + "1.0": "/8", + 1.2: "/1", + 1.3: "/3", + "2.0": "/412", + "2.0.2": "/416", + "2.0.3": "/417", + "2.0.4": "/419", + "?": "/" + }, X = { + ME: "4.90", + "NT 3.11": "NT3.51", + "NT 4.0": "NT4.0", + 2e3: "NT 5.0", + XP: [ + "NT 5.1", + "NT 5.2" + ], + Vista: "NT 6.0", + 7: "NT 6.1", + 8: "NT 6.2", + 8.1: "NT 6.3", + 10: [ + "NT 6.4", + "NT 10.0" + ], + RT: "ARM" + }; + var K = { + browser: [ + [ + /\b(?:crmo|crios)\/([\w\.]+)/i + ], + [ + f, + [ + u, + "Chrome" + ] + ], + [ + /edg(?:e|ios|a)?\/([\w\.]+)/i + ], + [ + f, + [ + u, + "Edge" + ] + ], + [ + /(opera mini)\/([-\w\.]+)/i, + /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i, + /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i + ], + [ + u, + f + ], + [ + /opios[\/ ]+([\w\.]+)/i + ], + [ + f, + [ + u, + B + " Mini" + ] + ], + [ + /\bopr\/([\w\.]+)/i + ], + [ + f, + [ + u, + B + ] + ], + [ + /(kindle)\/([\w\.]+)/i, + /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i, + /(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i, + /(ba?idubrowser)[\/ ]?([\w\.]+)/i, + /(?:ms|\()(ie) ([\w\.]+)/i, + /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i, + /(heytap|ovi)browser\/([\d\.]+)/i, + /(weibo)__([\d\.]+)/i + ], + [ + u, + f + ], + [ + /(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i + ], + [ + f, + [ + u, + "UC" + A + ] + ], + [ + /microm.+\bqbcore\/([\w\.]+)/i, + /\bqbcore\/([\w\.]+).+microm/i + ], + [ + f, + [ + u, + "WeChat(Win) Desktop" + ] + ], + [ + /micromessenger\/([\w\.]+)/i + ], + [ + f, + [ + u, + "WeChat" + ] + ], + [ + /konqueror\/([\w\.]+)/i + ], + [ + f, + [ + u, + "Konqueror" + ] + ], + [ + /trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i + ], + [ + f, + [ + u, + "IE" + ] + ], + [ + /ya(?:search)?browser\/([\w\.]+)/i + ], + [ + f, + [ + u, + "Yandex" + ] + ], + [ + /(avast|avg)\/([\w\.]+)/i + ], + [ + [ + u, + /(.+)/, + "$1 Secure " + A + ], + f + ], + [ + /\bfocus\/([\w\.]+)/i + ], + [ + f, + [ + u, + O + " Focus" + ] + ], + [ + /\bopt\/([\w\.]+)/i + ], + [ + f, + [ + u, + B + " Touch" + ] + ], + [ + /coc_coc\w+\/([\w\.]+)/i + ], + [ + f, + [ + u, + "Coc Coc" + ] + ], + [ + /dolfin\/([\w\.]+)/i + ], + [ + f, + [ + u, + "Dolphin" + ] + ], + [ + /coast\/([\w\.]+)/i + ], + [ + f, + [ + u, + B + " Coast" + ] + ], + [ + /miuibrowser\/([\w\.]+)/i + ], + [ + f, + [ + u, + "MIUI " + A + ] + ], + [ + /fxios\/([-\w\.]+)/i + ], + [ + f, + [ + u, + O + ] + ], + [ + /\bqihu|(qi?ho?o?|360)browser/i + ], + [ + [ + u, + "360 " + A + ] + ], + [ + /(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i + ], + [ + [ + u, + /(.+)/, + "$1 " + A + ], + f + ], + [ + /(comodo_dragon)\/([\w\.]+)/i + ], + [ + [ + u, + /_/g, + " " + ], + f + ], + [ + /(electron)\/([\w\.]+) safari/i, + /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, + /m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i + ], + [ + u, + f + ], + [ + /(metasr)[\/ ]?([\w\.]+)/i, + /(lbbrowser)/i, + /\[(linkedin)app\]/i + ], + [ + u + ], + [ + /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i + ], + [ + [ + u, + H + ], + f + ], + [ + /(kakao(?:talk|story))[\/ ]([\w\.]+)/i, + /(naver)\(.*?(\d+\.[\w\.]+).*\)/i, + /safari (line)\/([\w\.]+)/i, + /\b(line)\/([\w\.]+)\/iab/i, + /(chromium|instagram)[\/ ]([-\w\.]+)/i + ], + [ + u, + f + ], + [ + /\bgsa\/([\w\.]+) .*safari\//i + ], + [ + f, + [ + u, + "GSA" + ] + ], + [ + /musical_ly(?:.+app_?version\/|_)([\w\.]+)/i + ], + [ + f, + [ + u, + "TikTok" + ] + ], + [ + /headlesschrome(?:\/([\w\.]+)| )/i + ], + [ + f, + [ + u, + C + " Headless" + ] + ], + [ + / wv\).+(chrome)\/([\w\.]+)/i + ], + [ + [ + u, + C + " WebView" + ], + f + ], + [ + /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i + ], + [ + f, + [ + u, + "Android " + A + ] + ], + [ + /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i + ], + [ + u, + f + ], + [ + /version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i + ], + [ + f, + [ + u, + "Mobile Safari" + ] + ], + [ + /version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i + ], + [ + f, + u + ], + [ + /webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i + ], + [ + u, + [ + f, + strMapper, + $ + ] + ], + [ + /(webkit|khtml)\/([\w\.]+)/i + ], + [ + u, + f + ], + [ + /(navigator|netscape\d?)\/([-\w\.]+)/i + ], + [ + [ + u, + "Netscape" + ], + f + ], + [ + /mobile vr; rv:([\w\.]+)\).+firefox/i + ], + [ + f, + [ + u, + O + " Reality" + ] + ], + [ + /ekiohf.+(flow)\/([\w\.]+)/i, + /(swiftfox)/i, + /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i, + /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i, + /(firefox)\/([\w\.]+)/i, + /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, + /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i, + /(links) \(([\w\.]+)/i, + /panasonic;(viera)/i + ], + [ + u, + f + ], + [ + /(cobalt)\/([\w\.]+)/i + ], + [ + u, + [ + f, + /master.|lts./, + "" + ] + ] + ], + cpu: [ + [ + /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i + ], + [ + [ + h, + "amd64" + ] + ], + [ + /(ia32(?=;))/i + ], + [ + [ + h, + lowerize + ] + ], + [ + /((?:i[346]|x)86)[;\)]/i + ], + [ + [ + h, + "ia32" + ] + ], + [ + /\b(aarch64|arm(v?8e?l?|_?64))\b/i + ], + [ + [ + h, + "arm64" + ] + ], + [ + /\b(arm(?:v[67])?ht?n?[fl]p?)\b/i + ], + [ + [ + h, + "armhf" + ] + ], + [ + /windows (ce|mobile); ppc;/i + ], + [ + [ + h, + "arm" + ] + ], + [ + /((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i + ], + [ + [ + h, + /ower/, + t, + lowerize + ] + ], + [ + /(sun4\w)[;\)]/i + ], + [ + [ + h, + "sparc" + ] + ], + [ + /((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i + ], + [ + [ + h, + lowerize + ] + ] + ], + device: [ + [ + /\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i + ], + [ + c, + [ + m, + V + ], + [ + p, + k + ] + ], + [ + /\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i, + /samsung[- ]([-\w]+)/i, + /sec-(sgh\w+)/i + ], + [ + c, + [ + m, + V + ], + [ + p, + g + ] + ], + [ + /(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i + ], + [ + c, + [ + m, + S + ], + [ + p, + g + ] + ], + [ + /\((ipad);[-\w\),; ]+apple/i, + /applecoremedia\/[\w\.]+ \((ipad)/i, + /\b(ipad)\d\d?,\d\d?[;\]].+ios/i + ], + [ + c, + [ + m, + S + ], + [ + p, + k + ] + ], + [ + /(macintosh);/i + ], + [ + c, + [ + m, + S + ] + ], + [ + /\b(sh-?[altvz]?\d\d[a-ekm]?)/i + ], + [ + c, + [ + m, + D + ], + [ + p, + g + ] + ], + [ + /\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i + ], + [ + c, + [ + m, + j + ], + [ + p, + k + ] + ], + [ + /(?:huawei|honor)([-\w ]+)[;\)]/i, + /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i + ], + [ + c, + [ + m, + j + ], + [ + p, + g + ] + ], + [ + /\b(poco[\w ]+)(?: bui|\))/i, + /\b; (\w+) build\/hm\1/i, + /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, + /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, + /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i + ], + [ + [ + c, + /_/g, + " " + ], + [ + m, + F + ], + [ + p, + g + ] + ], + [ + /\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i + ], + [ + [ + c, + /_/g, + " " + ], + [ + m, + F + ], + [ + p, + k + ] + ], + [ + /; (\w+) bui.+ oppo/i, + /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i + ], + [ + c, + [ + m, + "OPPO" + ], + [ + p, + g + ] + ], + [ + /vivo (\w+)(?: bui|\))/i, + /\b(v[12]\d{3}\w?[at])(?: bui|;)/i + ], + [ + c, + [ + m, + "Vivo" + ], + [ + p, + g + ] + ], + [ + /\b(rmx[12]\d{3})(?: bui|;|\))/i + ], + [ + c, + [ + m, + "Realme" + ], + [ + p, + g + ] + ], + [ + /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i, + /\bmot(?:orola)?[- ](\w*)/i, + /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i + ], + [ + c, + [ + m, + M + ], + [ + p, + g + ] + ], + [ + /\b(mz60\d|xoom[2 ]{0,2}) build\//i + ], + [ + c, + [ + m, + M + ], + [ + p, + k + ] + ], + [ + /((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i + ], + [ + c, + [ + m, + P + ], + [ + p, + k + ] + ], + [ + /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i, + /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i, + /\blg-?([\d\w]+) bui/i + ], + [ + c, + [ + m, + P + ], + [ + p, + g + ] + ], + [ + /(ideatab[-\w ]+)/i, + /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i + ], + [ + c, + [ + m, + "Lenovo" + ], + [ + p, + k + ] + ], + [ + /(?:maemo|nokia).*(n900|lumia \d+)/i, + /nokia[-_ ]?([-\w\.]*)/i + ], + [ + [ + c, + /_/g, + " " + ], + [ + m, + "Nokia" + ], + [ + p, + g + ] + ], + [ + /(pixel c)\b/i + ], + [ + c, + [ + m, + U + ], + [ + p, + k + ] + ], + [ + /droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i + ], + [ + c, + [ + m, + U + ], + [ + p, + g + ] + ], + [ + /droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i + ], + [ + c, + [ + m, + I + ], + [ + p, + g + ] + ], + [ + /sony tablet [ps]/i, + /\b(?:sony)?sgp\w+(?: bui|\))/i + ], + [ + [ + c, + "Xperia Tablet" + ], + [ + m, + I + ], + [ + p, + k + ] + ], + [ + / (kb2005|in20[12]5|be20[12][59])\b/i, + /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i + ], + [ + c, + [ + m, + "OnePlus" + ], + [ + p, + g + ] + ], + [ + /(alexa)webm/i, + /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i, + /(kf[a-z]+)( bui|\)).+silk\//i + ], + [ + c, + [ + m, + T + ], + [ + p, + k + ] + ], + [ + /((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i + ], + [ + [ + c, + /(.+)/g, + "Fire Phone $1" + ], + [ + m, + T + ], + [ + p, + g + ] + ], + [ + /(playbook);[-\w\),; ]+(rim)/i + ], + [ + c, + m, + [ + p, + k + ] + ], + [ + /\b((?:bb[a-f]|st[hv])100-\d)/i, + /\(bb10; (\w+)/i + ], + [ + c, + [ + m, + N + ], + [ + p, + g + ] + ], + [ + /(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i + ], + [ + c, + [ + m, + z + ], + [ + p, + k + ] + ], + [ + / (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i + ], + [ + c, + [ + m, + z + ], + [ + p, + g + ] + ], + [ + /(nexus 9)/i + ], + [ + c, + [ + m, + "HTC" + ], + [ + p, + k + ] + ], + [ + /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i, + /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i, + /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i + ], + [ + m, + [ + c, + /_/g, + " " + ], + [ + p, + g + ] + ], + [ + /droid.+; ([ab][1-7]-?[0178a]\d\d?)/i + ], + [ + c, + [ + m, + "Acer" + ], + [ + p, + k + ] + ], + [ + /droid.+; (m[1-5] note) bui/i, + /\bmz-([-\w]{2,})/i + ], + [ + c, + [ + m, + "Meizu" + ], + [ + p, + g + ] + ], + [ + /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i, + /(hp) ([\w ]+\w)/i, + /(asus)-?(\w+)/i, + /(microsoft); (lumia[\w ]+)/i, + /(lenovo)[-_ ]?([-\w]+)/i, + /(jolla)/i, + /(oppo) ?([\w ]+) bui/i + ], + [ + m, + c, + [ + p, + g + ] + ], + [ + /(kobo)\s(ereader|touch)/i, + /(archos) (gamepad2?)/i, + /(hp).+(touchpad(?!.+tablet)|tablet)/i, + /(kindle)\/([\w\.]+)/i, + /(nook)[\w ]+build\/(\w+)/i, + /(dell) (strea[kpr\d ]*[\dko])/i, + /(le[- ]+pan)[- ]+(\w{1,9}) bui/i, + /(trinity)[- ]*(t\d{3}) bui/i, + /(gigaset)[- ]+(q\w{1,9}) bui/i, + /(vodafone) ([\w ]+)(?:\)| bui)/i + ], + [ + m, + c, + [ + p, + k + ] + ], + [ + /(surface duo)/i + ], + [ + c, + [ + m, + R + ], + [ + p, + k + ] + ], + [ + /droid [\d\.]+; (fp\du?)(?: b|\))/i + ], + [ + c, + [ + m, + "Fairphone" + ], + [ + p, + g + ] + ], + [ + /(u304aa)/i + ], + [ + c, + [ + m, + "AT&T" + ], + [ + p, + g + ] + ], + [ + /\bsie-(\w*)/i + ], + [ + c, + [ + m, + "Siemens" + ], + [ + p, + g + ] + ], + [ + /\b(rct\w+) b/i + ], + [ + c, + [ + m, + "RCA" + ], + [ + p, + k + ] + ], + [ + /\b(venue[\d ]{2,7}) b/i + ], + [ + c, + [ + m, + "Dell" + ], + [ + p, + k + ] + ], + [ + /\b(q(?:mv|ta)\w+) b/i + ], + [ + c, + [ + m, + "Verizon" + ], + [ + p, + k + ] + ], + [ + /\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i + ], + [ + c, + [ + m, + "Barnes & Noble" + ], + [ + p, + k + ] + ], + [ + /\b(tm\d{3}\w+) b/i + ], + [ + c, + [ + m, + "NuVision" + ], + [ + p, + k + ] + ], + [ + /\b(k88) b/i + ], + [ + c, + [ + m, + "ZTE" + ], + [ + p, + k + ] + ], + [ + /\b(nx\d{3}j) b/i + ], + [ + c, + [ + m, + "ZTE" + ], + [ + p, + g + ] + ], + [ + /\b(gen\d{3}) b.+49h/i + ], + [ + c, + [ + m, + "Swiss" + ], + [ + p, + g + ] + ], + [ + /\b(zur\d{3}) b/i + ], + [ + c, + [ + m, + "Swiss" + ], + [ + p, + k + ] + ], + [ + /\b((zeki)?tb.*\b) b/i + ], + [ + c, + [ + m, + "Zeki" + ], + [ + p, + k + ] + ], + [ + /\b([yr]\d{2}) b/i, + /\b(dragon[- ]+touch |dt)(\w{5}) b/i + ], + [ + [ + m, + "Dragon Touch" + ], + c, + [ + p, + k + ] + ], + [ + /\b(ns-?\w{0,9}) b/i + ], + [ + c, + [ + m, + "Insignia" + ], + [ + p, + k + ] + ], + [ + /\b((nxa|next)-?\w{0,9}) b/i + ], + [ + c, + [ + m, + "NextBook" + ], + [ + p, + k + ] + ], + [ + /\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i + ], + [ + [ + m, + "Voice" + ], + c, + [ + p, + g + ] + ], + [ + /\b(lvtel\-)?(v1[12]) b/i + ], + [ + [ + m, + "LvTel" + ], + c, + [ + p, + g + ] + ], + [ + /\b(ph-1) /i + ], + [ + c, + [ + m, + "Essential" + ], + [ + p, + g + ] + ], + [ + /\b(v(100md|700na|7011|917g).*\b) b/i + ], + [ + c, + [ + m, + "Envizen" + ], + [ + p, + k + ] + ], + [ + /\b(trio[-\w\. ]+) b/i + ], + [ + c, + [ + m, + "MachSpeed" + ], + [ + p, + k + ] + ], + [ + /\btu_(1491) b/i + ], + [ + c, + [ + m, + "Rotor" + ], + [ + p, + k + ] + ], + [ + /(shield[\w ]+) b/i + ], + [ + c, + [ + m, + "Nvidia" + ], + [ + p, + k + ] + ], + [ + /(sprint) (\w+)/i + ], + [ + m, + c, + [ + p, + g + ] + ], + [ + /(kin\.[onetw]{3})/i + ], + [ + [ + c, + /\./g, + " " + ], + [ + m, + R + ], + [ + p, + g + ] + ], + [ + /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i + ], + [ + c, + [ + m, + G + ], + [ + p, + k + ] + ], + [ + /droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i + ], + [ + c, + [ + m, + G + ], + [ + p, + g + ] + ], + [ + /smart-tv.+(samsung)/i + ], + [ + m, + [ + p, + x + ] + ], + [ + /hbbtv.+maple;(\d+)/i + ], + [ + [ + c, + /^/, + "SmartTV" + ], + [ + m, + V + ], + [ + p, + x + ] + ], + [ + /(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i + ], + [ + [ + m, + P + ], + [ + p, + x + ] + ], + [ + /(apple) ?tv/i + ], + [ + m, + [ + c, + S + " TV" + ], + [ + p, + x + ] + ], + [ + /crkey/i + ], + [ + [ + c, + C + "cast" + ], + [ + m, + U + ], + [ + p, + x + ] + ], + [ + /droid.+aft(\w)( bui|\))/i + ], + [ + c, + [ + m, + T + ], + [ + p, + x + ] + ], + [ + /\(dtv[\);].+(aquos)/i, + /(aquos-tv[\w ]+)\)/i + ], + [ + c, + [ + m, + D + ], + [ + p, + x + ] + ], + [ + /(bravia[\w ]+)( bui|\))/i + ], + [ + c, + [ + m, + I + ], + [ + p, + x + ] + ], + [ + /(mitv-\w{5}) bui/i + ], + [ + c, + [ + m, + F + ], + [ + p, + x + ] + ], + [ + /Hbbtv.*(technisat) (.*);/i + ], + [ + m, + c, + [ + p, + x + ] + ], + [ + /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, + /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i + ], + [ + [ + m, + trim + ], + [ + c, + trim + ], + [ + p, + x + ] + ], + [ + /\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i + ], + [ + [ + p, + x + ] + ], + [ + /(ouya)/i, + /(nintendo) ([wids3utch]+)/i + ], + [ + m, + c, + [ + p, + v + ] + ], + [ + /droid.+; (shield) bui/i + ], + [ + c, + [ + m, + "Nvidia" + ], + [ + p, + v + ] + ], + [ + /(playstation [345portablevi]+)/i + ], + [ + c, + [ + m, + I + ], + [ + p, + v + ] + ], + [ + /\b(xbox(?: one)?(?!; xbox))[\); ]/i + ], + [ + c, + [ + m, + R + ], + [ + p, + v + ] + ], + [ + /((pebble))app/i + ], + [ + m, + c, + [ + p, + _ + ] + ], + [ + /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i + ], + [ + c, + [ + m, + S + ], + [ + p, + _ + ] + ], + [ + /droid.+; (glass) \d/i + ], + [ + c, + [ + m, + U + ], + [ + p, + _ + ] + ], + [ + /droid.+; (wt63?0{2,3})\)/i + ], + [ + c, + [ + m, + G + ], + [ + p, + _ + ] + ], + [ + /(quest( 2| pro)?)/i + ], + [ + c, + [ + m, + H + ], + [ + p, + _ + ] + ], + [ + /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i + ], + [ + m, + [ + p, + y + ] + ], + [ + /(aeobc)\b/i + ], + [ + c, + [ + m, + T + ], + [ + p, + y + ] + ], + [ + /droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i + ], + [ + c, + [ + p, + g + ] + ], + [ + /droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i + ], + [ + c, + [ + p, + k + ] + ], + [ + /\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i + ], + [ + [ + p, + k + ] + ], + [ + /(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i + ], + [ + [ + p, + g + ] + ], + [ + /(android[-\w\. ]{0,9});.+buil/i + ], + [ + c, + [ + m, + "Generic" + ] + ] + ], + engine: [ + [ + /windows.+ edge\/([\w\.]+)/i + ], + [ + f, + [ + u, + E + "HTML" + ] + ], + [ + /webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i + ], + [ + f, + [ + u, + "Blink" + ] + ], + [ + /(presto)\/([\w\.]+)/i, + /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, + /ekioh(flow)\/([\w\.]+)/i, + /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i, + /(icab)[\/ ]([23]\.[\d\.]+)/i, + /\b(libweb)/i + ], + [ + u, + f + ], + [ + /rv\:([\w\.]{1,9})\b.+(gecko)/i + ], + [ + f, + u + ] + ], + os: [ + [ + /microsoft (windows) (vista|xp)/i + ], + [ + u, + f + ], + [ + /(windows) nt 6\.2; (arm)/i, + /(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i, + /(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i + ], + [ + u, + [ + f, + strMapper, + X + ] + ], + [ + /(win(?=3|9|n)|win 9x )([nt\d\.]+)/i + ], + [ + [ + u, + "Windows" + ], + [ + f, + strMapper, + X + ] + ], + [ + /ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i, + /ios;fbsv\/([\d\.]+)/i, + /cfnetwork\/.+darwin/i + ], + [ + [ + f, + /_/g, + "." + ], + [ + u, + "iOS" + ] + ], + [ + /(mac os x) ?([\w\. ]*)/i, + /(macintosh|mac_powerpc\b)(?!.+haiku)/i + ], + [ + [ + u, + Z + ], + [ + f, + /_/g, + "." + ] + ], + [ + /droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i + ], + [ + f, + u + ], + [ + /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i, + /(blackberry)\w*\/([\w\.]*)/i, + /(tizen|kaios)[\/ ]([\w\.]+)/i, + /\((series40);/i + ], + [ + u, + f + ], + [ + /\(bb(10);/i + ], + [ + f, + [ + u, + N + ] + ], + [ + /(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i + ], + [ + f, + [ + u, + "Symbian" + ] + ], + [ + /mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i + ], + [ + f, + [ + u, + O + " OS" + ] + ], + [ + /web0s;.+rt(tv)/i, + /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i + ], + [ + f, + [ + u, + "webOS" + ] + ], + [ + /watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i + ], + [ + f, + [ + u, + "watchOS" + ] + ], + [ + /crkey\/([\d\.]+)/i + ], + [ + f, + [ + u, + C + "cast" + ] + ], + [ + /(cros) [\w]+(?:\)| ([\w\.]+)\b)/i + ], + [ + [ + u, + L + ], + f + ], + [ + /panasonic;(viera)/i, + /(netrange)mmh/i, + /(nettv)\/(\d+\.[\w\.]+)/i, + /(nintendo|playstation) ([wids345portablevuch]+)/i, + /(xbox); +xbox ([^\);]+)/i, + /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i, + /(mint)[\/\(\) ]?(\w*)/i, + /(mageia|vectorlinux)[; ]/i, + /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i, + /(hurd|linux) ?([\w\.]*)/i, + /(gnu) ?([\w\.]*)/i, + /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, + /(haiku) (\w+)/i + ], + [ + u, + f + ], + [ + /(sunos) ?([\w\.\d]*)/i + ], + [ + [ + u, + "Solaris" + ], + f + ], + [ + /((?:open)?solaris)[-\/ ]?([\w\.]*)/i, + /(aix) ((\d)(?=\.|\)| )[\w\.])*/i, + /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, + /(unix) ?([\w\.]*)/i + ], + [ + u, + f + ] + ] + }; + var UAParser = function(i, e) { + if (typeof i === w) { + e = i; + i = a; + } + if (!(this instanceof UAParser)) { + return new UAParser(i, e).getResult(); + } + var r = typeof o !== b && o.navigator ? o.navigator : a; + var n = i || (r && r.userAgent ? r.userAgent : t); + var v = r && r.userAgentData ? r.userAgentData : a; + var x = e ? extend(K, e) : K; + var _ = r && r.userAgent == n; + this.getBrowser = function() { + var i = {}; + i[u] = a; + i[f] = a; + rgxMapper.call(i, n, x.browser); + i[d] = majorize(i[f]); + if (_ && r && r.brave && typeof r.brave.isBrave == s) { + i[u] = "Brave"; + } + return i; + }; + this.getCPU = function() { + var i = {}; + i[h] = a; + rgxMapper.call(i, n, x.cpu); + return i; + }; + this.getDevice = function() { + var i = {}; + i[m] = a; + i[c] = a; + i[p] = a; + rgxMapper.call(i, n, x.device); + if (_ && !i[p] && v && v.mobile) { + i[p] = g; + } + if (_ && i[c] == "Macintosh" && r && typeof r.standalone !== b && r.maxTouchPoints && r.maxTouchPoints > 2) { + i[c] = "iPad"; + i[p] = k; + } + return i; + }; + this.getEngine = function() { + var i = {}; + i[u] = a; + i[f] = a; + rgxMapper.call(i, n, x.engine); + return i; + }; + this.getOS = function() { + var i = {}; + i[u] = a; + i[f] = a; + rgxMapper.call(i, n, x.os); + if (_ && !i[u] && v && v.platform != "Unknown") { + i[u] = v.platform.replace(/chrome os/i, L).replace(/macos/i, Z); + } + return i; + }; + this.getResult = function() { + return { + ua: this.getUA(), + browser: this.getBrowser(), + engine: this.getEngine(), + os: this.getOS(), + device: this.getDevice(), + cpu: this.getCPU() + }; + }; + this.getUA = function() { + return n; + }; + this.setUA = function(i) { + n = typeof i === l && i.length > q ? trim(i, q) : i; + return this; + }; + this.setUA(n); + return this; + }; + UAParser.VERSION = r; + UAParser.BROWSER = enumerize([ + u, + f, + d + ]); + UAParser.CPU = enumerize([ + h + ]); + UAParser.DEVICE = enumerize([ + c, + m, + p, + v, + g, + x, + k, + _, + y + ]); + UAParser.ENGINE = UAParser.OS = enumerize([ + u, + f + ]); + if (typeof e !== b) { + if ("object" !== b && i.exports) { + e = i.exports = UAParser; + } + e.UAParser = UAParser; + } else { + if (typeof define === s && define.amd) { + ((r)=>r !== undefined && __turbopack_context__.v(r))(function() { + return UAParser; + }(__turbopack_context__.r, exports, module)); + } else if (typeof o !== b) { + o.UAParser = UAParser; + } + } + var Q = typeof o !== b && (o.jQuery || o.Zepto); + if (Q && !Q.ua) { + var Y = new UAParser; + Q.ua = Y.getResult(); + Q.ua.get = function() { + return Y.getUA(); + }; + Q.ua.set = function(i) { + Y.setUA(i); + var e = Y.getResult(); + for(var o in e){ + Q.ua[o] = e[o]; + } + }; + } + })(("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : this); + } + }; + var e = {}; + function __nccwpck_require__(o) { + var a = e[o]; + if (a !== undefined) { + return a.exports; + } + var r = e[o] = { + exports: {} + }; + var t = true; + try { + i[o].call(r.exports, r, r.exports, __nccwpck_require__); + t = false; + } finally{ + if (t) delete e[o]; + } + return r.exports; + } + if (typeof __nccwpck_require__ !== "undefined") __nccwpck_require__.ab = ("TURBOPACK compile-time value", "/ROOT/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/ua-parser-js") + "/"; + var o = __nccwpck_require__(226); + module.exports = o; +})(); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/user-agent.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + isBot: null, + userAgent: null, + userAgentFromString: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + isBot: function() { + return isBot; + }, + userAgent: function() { + return userAgent; + }, + userAgentFromString: function() { + return userAgentFromString; + } +}); +const _uaparserjs = /*#__PURE__*/ _interop_require_default(__turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/ua-parser-js/ua-parser.js [app-route] (ecmascript)")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function isBot(input) { + return /Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i.test(input); +} +function userAgentFromString(input) { + return { + ...(0, _uaparserjs.default)(input), + isBot: input === undefined ? false : isBot(input) + }; +} +function userAgent({ headers }) { + return userAgentFromString(headers.get('user-agent') || undefined); +} //# sourceMappingURL=user-agent.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/url-pattern.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "URLPattern", { + enumerable: true, + get: function() { + return GlobalURLPattern; + } +}); +const GlobalURLPattern = typeof URLPattern === 'undefined' ? undefined : URLPattern; //# sourceMappingURL=url-pattern.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/after/after.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "after", { + enumerable: true, + get: function() { + return after; + } +}); +const _workasyncstorageexternal = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)"); +function after(task) { + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + if (!workStore) { + // TODO(after): the linked docs page talks about *dynamic* APIs, which after soon won't be anymore + throw Object.defineProperty(new Error('`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context'), "__NEXT_ERROR_CODE", { + value: "E468", + enumerable: false, + configurable: true + }); + } + const { afterContext } = workStore; + return afterContext.after(task); +} //# sourceMappingURL=after.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/after/index.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && __export(__turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/after/after.js [app-route] (ecmascript)")); +_export_star(__turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/after/after.js [app-route] (ecmascript)"), exports); +function _export_star(from, to) { + Object.keys(from).forEach(function(k) { + if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) { + Object.defineProperty(to, k, { + enumerable: true, + get: function() { + return from[k]; + } + }); + } + }); + return from; +} //# sourceMappingURL=index.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/hooks-server-context.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + DynamicServerError: null, + isDynamicServerError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + DynamicServerError: function() { + return DynamicServerError; + }, + isDynamicServerError: function() { + return isDynamicServerError; + } +}); +const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'; +class DynamicServerError extends Error { + constructor(description){ + super(`Dynamic server usage: ${description}`), this.description = description, this.digest = DYNAMIC_ERROR_CODE; + } +} +function isDynamicServerError(err) { + if (typeof err !== 'object' || err === null || !('digest' in err) || typeof err.digest !== 'string') { + return false; + } + return err.digest === DYNAMIC_ERROR_CODE; +} +if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { + value: true + }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} //# sourceMappingURL=hooks-server-context.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/static-generation-bailout.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + StaticGenBailoutError: null, + isStaticGenBailoutError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + StaticGenBailoutError: function() { + return StaticGenBailoutError; + }, + isStaticGenBailoutError: function() { + return isStaticGenBailoutError; + } +}); +const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'; +class StaticGenBailoutError extends Error { + constructor(...args){ + super(...args), this.code = NEXT_STATIC_GEN_BAILOUT; + } +} +function isStaticGenBailoutError(error) { + if (typeof error !== 'object' || error === null || !('code' in error)) { + return false; + } + return error.code === NEXT_STATIC_GEN_BAILOUT; +} +if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { + value: true + }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} //# sourceMappingURL=static-generation-bailout.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/dynamic-rendering-utils.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + isHangingPromiseRejectionError: null, + makeDevtoolsIOAwarePromise: null, + makeHangingPromise: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + isHangingPromiseRejectionError: function() { + return isHangingPromiseRejectionError; + }, + makeDevtoolsIOAwarePromise: function() { + return makeDevtoolsIOAwarePromise; + }, + makeHangingPromise: function() { + return makeHangingPromise; + } +}); +function isHangingPromiseRejectionError(err) { + if (typeof err !== 'object' || err === null || !('digest' in err)) { + return false; + } + return err.digest === HANGING_PROMISE_REJECTION; +} +const HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION'; +class HangingPromiseRejectionError extends Error { + constructor(route, expression){ + super(`During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${route}".`), this.route = route, this.expression = expression, this.digest = HANGING_PROMISE_REJECTION; + } +} +const abortListenersBySignal = new WeakMap(); +function makeHangingPromise(signal, route, expression) { + if (signal.aborted) { + return Promise.reject(new HangingPromiseRejectionError(route, expression)); + } else { + const hangingPromise = new Promise((_, reject)=>{ + const boundRejection = reject.bind(null, new HangingPromiseRejectionError(route, expression)); + let currentListeners = abortListenersBySignal.get(signal); + if (currentListeners) { + currentListeners.push(boundRejection); + } else { + const listeners = [ + boundRejection + ]; + abortListenersBySignal.set(signal, listeners); + signal.addEventListener('abort', ()=>{ + for(let i = 0; i < listeners.length; i++){ + listeners[i](); + } + }, { + once: true + }); + } + }); + // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so + // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct + // your own promise out of it you'll need to ensure you handle the error when it rejects. + hangingPromise.catch(ignoreReject); + return hangingPromise; + } +} +function ignoreReject() {} +function makeDevtoolsIOAwarePromise(underlying, requestStore, stage) { + if (requestStore.stagedRendering) { + // We resolve each stage in a timeout, so React DevTools will pick this up as IO. + return requestStore.stagedRendering.delayUntilStage(stage, undefined, underlying); + } + // in React DevTools if we resolve in a setTimeout we will observe + // the promise resolution as something that can suspend a boundary or root. + return new Promise((resolve)=>{ + // Must use setTimeout to be considered IO React DevTools. setImmediate will not work. + setTimeout(()=>{ + resolve(underlying); + }, 0); + }); +} //# sourceMappingURL=dynamic-rendering-utils.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-constants.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + METADATA_BOUNDARY_NAME: null, + OUTLET_BOUNDARY_NAME: null, + ROOT_LAYOUT_BOUNDARY_NAME: null, + VIEWPORT_BOUNDARY_NAME: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + METADATA_BOUNDARY_NAME: function() { + return METADATA_BOUNDARY_NAME; + }, + OUTLET_BOUNDARY_NAME: function() { + return OUTLET_BOUNDARY_NAME; + }, + ROOT_LAYOUT_BOUNDARY_NAME: function() { + return ROOT_LAYOUT_BOUNDARY_NAME; + }, + VIEWPORT_BOUNDARY_NAME: function() { + return VIEWPORT_BOUNDARY_NAME; + } +}); +const METADATA_BOUNDARY_NAME = '__next_metadata_boundary__'; +const VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__'; +const OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__'; +const ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__'; //# sourceMappingURL=boundary-constants.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/scheduler.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + atLeastOneTask: null, + scheduleImmediate: null, + scheduleOnNextTick: null, + waitAtLeastOneReactRenderTask: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + atLeastOneTask: function() { + return atLeastOneTask; + }, + scheduleImmediate: function() { + return scheduleImmediate; + }, + scheduleOnNextTick: function() { + return scheduleOnNextTick; + }, + waitAtLeastOneReactRenderTask: function() { + return waitAtLeastOneReactRenderTask; + } +}); +const scheduleOnNextTick = (cb)=>{ + // We use Promise.resolve().then() here so that the operation is scheduled at + // the end of the promise job queue, we then add it to the next process tick + // to ensure it's evaluated afterwards. + // + // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255 + // + Promise.resolve().then(()=>{ + if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable + ; + else { + process.nextTick(cb); + } + }); +}; +const scheduleImmediate = (cb)=>{ + if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable + ; + else { + setImmediate(cb); + } +}; +function atLeastOneTask() { + return new Promise((resolve)=>scheduleImmediate(resolve)); +} +function waitAtLeastOneReactRenderTask() { + if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable + ; + else { + return new Promise((r)=>setImmediate(r)); + } +} //# sourceMappingURL=scheduler.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +// This has to be a shared module which is shared between client component error boundary and dynamic component +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + BailoutToCSRError: null, + isBailoutToCSRError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + BailoutToCSRError: function() { + return BailoutToCSRError; + }, + isBailoutToCSRError: function() { + return isBailoutToCSRError; + } +}); +const BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING'; +class BailoutToCSRError extends Error { + constructor(reason){ + super(`Bail out to client-side rendering: ${reason}`), this.reason = reason, this.digest = BAILOUT_TO_CSR; + } +} +function isBailoutToCSRError(err) { + if (typeof err !== 'object' || err === null || !('digest' in err)) { + return false; + } + return err.digest === BAILOUT_TO_CSR; +} //# sourceMappingURL=bailout-to-csr.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/invariant-error.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "InvariantError", { + enumerable: true, + get: function() { + return InvariantError; + } +}); +class InvariantError extends Error { + constructor(message, options){ + super(`Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`, options); + this.name = 'InvariantError'; + } +} //# sourceMappingURL=invariant-error.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/promise-with-resolvers.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createPromiseWithResolvers", { + enumerable: true, + get: function() { + return createPromiseWithResolvers; + } +}); +function createPromiseWithResolvers() { + // Shim of Stage 4 Promise.withResolvers proposal + let resolve; + let reject; + const promise = new Promise((res, rej)=>{ + resolve = res; + reject = rej; + }); + return { + resolve: resolve, + reject: reject, + promise + }; +} //# sourceMappingURL=promise-with-resolvers.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/staged-rendering.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + RenderStage: null, + StagedRenderingController: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + RenderStage: function() { + return RenderStage; + }, + StagedRenderingController: function() { + return StagedRenderingController; + } +}); +const _invarianterror = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/invariant-error.js [app-route] (ecmascript)"); +const _promisewithresolvers = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/promise-with-resolvers.js [app-route] (ecmascript)"); +var RenderStage = /*#__PURE__*/ function(RenderStage) { + RenderStage[RenderStage["Static"] = 1] = "Static"; + RenderStage[RenderStage["Runtime"] = 2] = "Runtime"; + RenderStage[RenderStage["Dynamic"] = 3] = "Dynamic"; + return RenderStage; +}({}); +class StagedRenderingController { + constructor(abortSignal = null){ + this.abortSignal = abortSignal; + this.currentStage = 1; + this.runtimeStagePromise = (0, _promisewithresolvers.createPromiseWithResolvers)(); + this.dynamicStagePromise = (0, _promisewithresolvers.createPromiseWithResolvers)(); + if (abortSignal) { + abortSignal.addEventListener('abort', ()=>{ + const { reason } = abortSignal; + if (this.currentStage < 2) { + this.runtimeStagePromise.promise.catch(ignoreReject) // avoid unhandled rejections + ; + this.runtimeStagePromise.reject(reason); + } + if (this.currentStage < 3) { + this.dynamicStagePromise.promise.catch(ignoreReject) // avoid unhandled rejections + ; + this.dynamicStagePromise.reject(reason); + } + }, { + once: true + }); + } + } + advanceStage(stage) { + // If we're already at the target stage or beyond, do nothing. + // (this can happen e.g. if sync IO advanced us to the dynamic stage) + if (this.currentStage >= stage) { + return; + } + this.currentStage = stage; + // Note that we might be going directly from Static to Dynamic, + // so we need to resolve the runtime stage as well. + if (stage >= 2) { + this.runtimeStagePromise.resolve(); + } + if (stage >= 3) { + this.dynamicStagePromise.resolve(); + } + } + getStagePromise(stage) { + switch(stage){ + case 2: + { + return this.runtimeStagePromise.promise; + } + case 3: + { + return this.dynamicStagePromise.promise; + } + default: + { + stage; + throw Object.defineProperty(new _invarianterror.InvariantError(`Invalid render stage: ${stage}`), "__NEXT_ERROR_CODE", { + value: "E881", + enumerable: false, + configurable: true + }); + } + } + } + waitForStage(stage) { + return this.getStagePromise(stage); + } + delayUntilStage(stage, displayName, resolvedValue) { + const ioTriggerPromise = this.getStagePromise(stage); + const promise = makeDevtoolsIOPromiseFromIOTrigger(ioTriggerPromise, displayName, resolvedValue); + // Analogously to `makeHangingPromise`, we might reject this promise if the signal is invoked. + // (e.g. in the case where we don't want want the render to proceed to the dynamic stage and abort it). + // We shouldn't consider this an unhandled rejection, so we attach a noop catch handler here to suppress this warning. + if (this.abortSignal) { + promise.catch(ignoreReject); + } + return promise; + } +} +function ignoreReject() {} +// TODO(restart-on-cache-miss): the layering of `delayUntilStage`, +// `makeDevtoolsIOPromiseFromIOTrigger` and and `makeDevtoolsIOAwarePromise` +// is confusing, we should clean it up. +function makeDevtoolsIOPromiseFromIOTrigger(ioTrigger, displayName, resolvedValue) { + // If we create a `new Promise` and give it a displayName + // (with no userspace code above us in the stack) + // React Devtools will use it as the IO cause when determining "suspended by". + // In particular, it should shadow any inner IO that resolved/rejected the promise + // (in case of staged rendering, this will be the `setTimeout` that triggers the relevant stage) + const promise = new Promise((resolve, reject)=>{ + ioTrigger.then(resolve.bind(null, resolvedValue), reject); + }); + if (displayName !== undefined) { + // @ts-expect-error + promise.displayName = displayName; + } + return promise; +} //# sourceMappingURL=staged-rendering.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/dynamic-rendering.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +/** + * The functions provided by this module are used to communicate certain properties + * about the currently running code so that Next.js can make decisions on how to handle + * the current execution in different rendering modes such as pre-rendering, resuming, and SSR. + * + * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering. + * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts + * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of + * Dynamic indications. + * + * The first is simply an intention to be dynamic. unstable_noStore is an example of this where + * the currently executing code simply declares that the current scope is dynamic but if you use it + * inside unstable_cache it can still be cached. This type of indication can be removed if we ever + * make the default dynamic to begin with because the only way you would ever be static is inside + * a cache scope which this indication does not affect. + * + * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic + * because it means that it is inappropriate to cache this at all. using a dynamic data source inside + * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should + * read that data outside the cache and pass it in as an argument to the cached function. + */ Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + Postpone: null, + PreludeState: null, + abortAndThrowOnSynchronousRequestDataAccess: null, + abortOnSynchronousPlatformIOAccess: null, + accessedDynamicData: null, + annotateDynamicAccess: null, + consumeDynamicAccess: null, + createDynamicTrackingState: null, + createDynamicValidationState: null, + createHangingInputAbortSignal: null, + createRenderInBrowserAbortSignal: null, + delayUntilRuntimeStage: null, + formatDynamicAPIAccesses: null, + getFirstDynamicReason: null, + isDynamicPostpone: null, + isPrerenderInterruptedError: null, + logDisallowedDynamicError: null, + markCurrentScopeAsDynamic: null, + postponeWithTracking: null, + throwIfDisallowedDynamic: null, + throwToInterruptStaticGeneration: null, + trackAllowedDynamicAccess: null, + trackDynamicDataInDynamicRender: null, + trackSynchronousPlatformIOAccessInDev: null, + useDynamicRouteParams: null, + useDynamicSearchParams: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + Postpone: function() { + return Postpone; + }, + PreludeState: function() { + return PreludeState; + }, + abortAndThrowOnSynchronousRequestDataAccess: function() { + return abortAndThrowOnSynchronousRequestDataAccess; + }, + abortOnSynchronousPlatformIOAccess: function() { + return abortOnSynchronousPlatformIOAccess; + }, + accessedDynamicData: function() { + return accessedDynamicData; + }, + annotateDynamicAccess: function() { + return annotateDynamicAccess; + }, + consumeDynamicAccess: function() { + return consumeDynamicAccess; + }, + createDynamicTrackingState: function() { + return createDynamicTrackingState; + }, + createDynamicValidationState: function() { + return createDynamicValidationState; + }, + createHangingInputAbortSignal: function() { + return createHangingInputAbortSignal; + }, + createRenderInBrowserAbortSignal: function() { + return createRenderInBrowserAbortSignal; + }, + delayUntilRuntimeStage: function() { + return delayUntilRuntimeStage; + }, + formatDynamicAPIAccesses: function() { + return formatDynamicAPIAccesses; + }, + getFirstDynamicReason: function() { + return getFirstDynamicReason; + }, + isDynamicPostpone: function() { + return isDynamicPostpone; + }, + isPrerenderInterruptedError: function() { + return isPrerenderInterruptedError; + }, + logDisallowedDynamicError: function() { + return logDisallowedDynamicError; + }, + markCurrentScopeAsDynamic: function() { + return markCurrentScopeAsDynamic; + }, + postponeWithTracking: function() { + return postponeWithTracking; + }, + throwIfDisallowedDynamic: function() { + return throwIfDisallowedDynamic; + }, + throwToInterruptStaticGeneration: function() { + return throwToInterruptStaticGeneration; + }, + trackAllowedDynamicAccess: function() { + return trackAllowedDynamicAccess; + }, + trackDynamicDataInDynamicRender: function() { + return trackDynamicDataInDynamicRender; + }, + trackSynchronousPlatformIOAccessInDev: function() { + return trackSynchronousPlatformIOAccessInDev; + }, + useDynamicRouteParams: function() { + return useDynamicRouteParams; + }, + useDynamicSearchParams: function() { + return useDynamicSearchParams; + } +}); +const _react = /*#__PURE__*/ _interop_require_default(__turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js [app-route] (ecmascript)")); +const _hooksservercontext = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/hooks-server-context.js [app-route] (ecmascript)"); +const _staticgenerationbailout = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/static-generation-bailout.js [app-route] (ecmascript)"); +const _workunitasyncstorageexternal = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)"); +const _workasyncstorageexternal = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)"); +const _dynamicrenderingutils = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/dynamic-rendering-utils.js [app-route] (ecmascript)"); +const _boundaryconstants = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-constants.js [app-route] (ecmascript)"); +const _scheduler = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/scheduler.js [app-route] (ecmascript)"); +const _bailouttocsr = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js [app-route] (ecmascript)"); +const _invarianterror = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/invariant-error.js [app-route] (ecmascript)"); +const _stagedrendering = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/staged-rendering.js [app-route] (ecmascript)"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const hasPostpone = typeof _react.default.unstable_postpone === 'function'; +function createDynamicTrackingState(isDebugDynamicAccesses) { + return { + isDebugDynamicAccesses, + dynamicAccesses: [], + syncDynamicErrorWithStack: null + }; +} +function createDynamicValidationState() { + return { + hasSuspenseAboveBody: false, + hasDynamicMetadata: false, + hasDynamicViewport: false, + hasAllowedDynamic: false, + dynamicErrors: [] + }; +} +function getFirstDynamicReason(trackingState) { + var _trackingState_dynamicAccesses_; + return (_trackingState_dynamicAccesses_ = trackingState.dynamicAccesses[0]) == null ? void 0 : _trackingState_dynamicAccesses_.expression; +} +function markCurrentScopeAsDynamic(store, workUnitStore, expression) { + if (workUnitStore) { + switch(workUnitStore.type){ + case 'cache': + case 'unstable-cache': + // Inside cache scopes, marking a scope as dynamic has no effect, + // because the outer cache scope creates a cache boundary. This is + // subtly different from reading a dynamic data source, which is + // forbidden inside a cache scope. + return; + case 'private-cache': + // A private cache scope is already dynamic by definition. + return; + case 'prerender-legacy': + case 'prerender-ppr': + case 'request': + break; + default: + workUnitStore; + } + } + // If we're forcing dynamic rendering or we're forcing static rendering, we + // don't need to do anything here because the entire page is already dynamic + // or it's static and it should not throw or postpone here. + if (store.forceDynamic || store.forceStatic) return; + if (store.dynamicShouldError) { + throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${store.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), "__NEXT_ERROR_CODE", { + value: "E553", + enumerable: false, + configurable: true + }); + } + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender-ppr': + return postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking); + case 'prerender-legacy': + workUnitStore.revalidate = 0; + // We aren't prerendering, but we are generating a static page. We need + // to bail out of static generation. + const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), "__NEXT_ERROR_CODE", { + value: "E550", + enumerable: false, + configurable: true + }); + store.dynamicUsageDescription = expression; + store.dynamicUsageStack = err.stack; + throw err; + case 'request': + if ("TURBOPACK compile-time truthy", 1) { + workUnitStore.usedDynamic = true; + } + break; + default: + workUnitStore; + } + } +} +function throwToInterruptStaticGeneration(expression, store, prerenderStore) { + // We aren't prerendering but we are generating a static page. We need to bail out of static generation + const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), "__NEXT_ERROR_CODE", { + value: "E558", + enumerable: false, + configurable: true + }); + prerenderStore.revalidate = 0; + store.dynamicUsageDescription = expression; + store.dynamicUsageStack = err.stack; + throw err; +} +function trackDynamicDataInDynamicRender(workUnitStore) { + switch(workUnitStore.type){ + case 'cache': + case 'unstable-cache': + // Inside cache scopes, marking a scope as dynamic has no effect, + // because the outer cache scope creates a cache boundary. This is + // subtly different from reading a dynamic data source, which is + // forbidden inside a cache scope. + return; + case 'private-cache': + // A private cache scope is already dynamic by definition. + return; + case 'prerender': + case 'prerender-runtime': + case 'prerender-legacy': + case 'prerender-ppr': + case 'prerender-client': + break; + case 'request': + if ("TURBOPACK compile-time truthy", 1) { + workUnitStore.usedDynamic = true; + } + break; + default: + workUnitStore; + } +} +function abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore) { + const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`; + const error = createPrerenderInterruptedError(reason); + prerenderStore.controller.abort(error); + const dynamicTracking = prerenderStore.dynamicTracking; + if (dynamicTracking) { + dynamicTracking.dynamicAccesses.push({ + // When we aren't debugging, we don't need to create another error for the + // stack trace. + stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined, + expression + }); + } +} +function abortOnSynchronousPlatformIOAccess(route, expression, errorWithStack, prerenderStore) { + const dynamicTracking = prerenderStore.dynamicTracking; + abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore); + // It is important that we set this tracking value after aborting. Aborts are executed + // synchronously except for the case where you abort during render itself. By setting this + // value late we can use it to determine if any of the aborted tasks are the task that + // called the sync IO expression in the first place. + if (dynamicTracking) { + if (dynamicTracking.syncDynamicErrorWithStack === null) { + dynamicTracking.syncDynamicErrorWithStack = errorWithStack; + } + } +} +function trackSynchronousPlatformIOAccessInDev(requestStore) { + // We don't actually have a controller to abort but we do the semantic equivalent by + // advancing the request store out of the prerender stage + if (requestStore.stagedRendering) { + // TODO: error for sync IO in the runtime stage + // (which is not currently covered by the validation render in `spawnDynamicValidationInDev`) + requestStore.stagedRendering.advanceStage(_stagedrendering.RenderStage.Dynamic); + } +} +function abortAndThrowOnSynchronousRequestDataAccess(route, expression, errorWithStack, prerenderStore) { + const prerenderSignal = prerenderStore.controller.signal; + if (prerenderSignal.aborted === false) { + // TODO it would be better to move this aborted check into the callsite so we can avoid making + // the error object when it isn't relevant to the aborting of the prerender however + // since we need the throw semantics regardless of whether we abort it is easier to land + // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer + // to ideal implementation + abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore); + // It is important that we set this tracking value after aborting. Aborts are executed + // synchronously except for the case where you abort during render itself. By setting this + // value late we can use it to determine if any of the aborted tasks are the task that + // called the sync IO expression in the first place. + const dynamicTracking = prerenderStore.dynamicTracking; + if (dynamicTracking) { + if (dynamicTracking.syncDynamicErrorWithStack === null) { + dynamicTracking.syncDynamicErrorWithStack = errorWithStack; + } + } + } + throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`); +} +function Postpone({ reason, route }) { + const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + const dynamicTracking = prerenderStore && prerenderStore.type === 'prerender-ppr' ? prerenderStore.dynamicTracking : null; + postponeWithTracking(route, reason, dynamicTracking); +} +function postponeWithTracking(route, expression, dynamicTracking) { + assertPostpone(); + if (dynamicTracking) { + dynamicTracking.dynamicAccesses.push({ + // When we aren't debugging, we don't need to create another error for the + // stack trace. + stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined, + expression + }); + } + _react.default.unstable_postpone(createPostponeReason(route, expression)); +} +function createPostponeReason(route, expression) { + return `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` + `React throws this special object to indicate where. It should not be caught by ` + `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`; +} +function isDynamicPostpone(err) { + if (typeof err === 'object' && err !== null && typeof err.message === 'string') { + return isDynamicPostponeReason(err.message); + } + return false; +} +function isDynamicPostponeReason(reason) { + return reason.includes('needs to bail out of prerendering at this point because it used') && reason.includes('Learn more: https://nextjs.org/docs/messages/ppr-caught-error'); +} +if (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) { + throw Object.defineProperty(new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'), "__NEXT_ERROR_CODE", { + value: "E296", + enumerable: false, + configurable: true + }); +} +const NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED'; +function createPrerenderInterruptedError(message) { + const error = Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + error.digest = NEXT_PRERENDER_INTERRUPTED; + return error; +} +function isPrerenderInterruptedError(error) { + return typeof error === 'object' && error !== null && error.digest === NEXT_PRERENDER_INTERRUPTED && 'name' in error && 'message' in error && error instanceof Error; +} +function accessedDynamicData(dynamicAccesses) { + return dynamicAccesses.length > 0; +} +function consumeDynamicAccess(serverDynamic, clientDynamic) { + // We mutate because we only call this once we are no longer writing + // to the dynamicTrackingState and it's more efficient than creating a new + // array. + serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses); + return serverDynamic.dynamicAccesses; +} +function formatDynamicAPIAccesses(dynamicAccesses) { + return dynamicAccesses.filter((access)=>typeof access.stack === 'string' && access.stack.length > 0).map(({ expression, stack })=>{ + stack = stack.split('\n') // Remove the "Error: " prefix from the first line of the stack trace as + // well as the first 4 lines of the stack trace which is the distance + // from the user code and the `new Error().stack` call. + .slice(4).filter((line)=>{ + // Exclude Next.js internals from the stack trace. + if (line.includes('node_modules/next/')) { + return false; + } + // Exclude anonymous functions from the stack trace. + if (line.includes(' ()')) { + return false; + } + // Exclude Node.js internals from the stack trace. + if (line.includes(' (node:')) { + return false; + } + return true; + }).join('\n'); + return `Dynamic API Usage Debug - ${expression}:\n${stack}`; + }); +} +function assertPostpone() { + if (!hasPostpone) { + throw Object.defineProperty(new Error(`Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`), "__NEXT_ERROR_CODE", { + value: "E224", + enumerable: false, + configurable: true + }); + } +} +function createRenderInBrowserAbortSignal() { + const controller = new AbortController(); + controller.abort(Object.defineProperty(new _bailouttocsr.BailoutToCSRError('Render in Browser'), "__NEXT_ERROR_CODE", { + value: "E721", + enumerable: false, + configurable: true + })); + return controller.signal; +} +function createHangingInputAbortSignal(workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-runtime': + const controller = new AbortController(); + if (workUnitStore.cacheSignal) { + // If we have a cacheSignal it means we're in a prospective render. If + // the input we're waiting on is coming from another cache, we do want + // to wait for it so that we can resolve this cache entry too. + workUnitStore.cacheSignal.inputReady().then(()=>{ + controller.abort(); + }); + } else { + // Otherwise we're in the final render and we should already have all + // our caches filled. + // If the prerender uses stages, we have wait until the runtime stage, + // at which point all runtime inputs will be resolved. + // (otherwise, a runtime prerender might consider `cookies()` hanging + // even though they'd resolve in the next task.) + // + // We might still be waiting on some microtasks so we + // wait one tick before giving up. When we give up, we still want to + // render the content of this cache as deeply as we can so that we can + // suspend as deeply as possible in the tree or not at all if we don't + // end up waiting for the input. + const runtimeStagePromise = (0, _workunitasyncstorageexternal.getRuntimeStagePromise)(workUnitStore); + if (runtimeStagePromise) { + runtimeStagePromise.then(()=>(0, _scheduler.scheduleOnNextTick)(()=>controller.abort())); + } else { + (0, _scheduler.scheduleOnNextTick)(()=>controller.abort()); + } + } + return controller.signal; + case 'prerender-client': + case 'prerender-ppr': + case 'prerender-legacy': + case 'request': + case 'cache': + case 'private-cache': + case 'unstable-cache': + return undefined; + default: + workUnitStore; + } +} +function annotateDynamicAccess(expression, prerenderStore) { + const dynamicTracking = prerenderStore.dynamicTracking; + if (dynamicTracking) { + dynamicTracking.dynamicAccesses.push({ + stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined, + expression + }); + } +} +function useDynamicRouteParams(expression) { + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workStore && workUnitStore) { + switch(workUnitStore.type){ + case 'prerender-client': + case 'prerender': + { + const fallbackParams = workUnitStore.fallbackRouteParams; + if (fallbackParams && fallbackParams.size > 0) { + // We are in a prerender with cacheComponents semantics. We are going to + // hang here and never resolve. This will cause the currently + // rendering component to effectively be a dynamic hole. + _react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, expression)); + } + break; + } + case 'prerender-ppr': + { + const fallbackParams = workUnitStore.fallbackRouteParams; + if (fallbackParams && fallbackParams.size > 0) { + return postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking); + } + break; + } + case 'prerender-runtime': + throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E771", + enumerable: false, + configurable: true + }); + case 'cache': + case 'private-cache': + throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E745", + enumerable: false, + configurable: true + }); + case 'prerender-legacy': + case 'request': + case 'unstable-cache': + break; + default: + workUnitStore; + } + } +} +function useDynamicSearchParams(expression) { + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (!workStore) { + // We assume pages router context and just return + return; + } + if (!workUnitStore) { + (0, _workunitasyncstorageexternal.throwForMissingRequestStore)(expression); + } + switch(workUnitStore.type){ + case 'prerender-client': + { + _react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, expression)); + break; + } + case 'prerender-legacy': + case 'prerender-ppr': + { + if (workStore.forceStatic) { + return; + } + throw Object.defineProperty(new _bailouttocsr.BailoutToCSRError(expression), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + case 'prerender': + case 'prerender-runtime': + throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E795", + enumerable: false, + configurable: true + }); + case 'cache': + case 'unstable-cache': + case 'private-cache': + throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E745", + enumerable: false, + configurable: true + }); + case 'request': + return; + default: + workUnitStore; + } +} +const hasSuspenseRegex = /\n\s+at Suspense \(\)/; +// Common implicit body tags that React will treat as body when placed directly in html +const bodyAndImplicitTags = 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6'; +// Detects when RootLayoutBoundary (our framework marker component) appears +// after Suspense in the component stack, indicating the root layout is wrapped +// within a Suspense boundary. Ensures no body/html/implicit-body components are in between. +// +// Example matches: +// at Suspense () +// at __next_root_layout_boundary__ () +// +// Or with other components in between (but not body/html/implicit-body): +// at Suspense () +// at SomeComponent () +// at __next_root_layout_boundary__ () +const hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(`\\n\\s+at Suspense \\(\\)(?:(?!\\n\\s+at (?:${bodyAndImplicitTags}) \\(\\))[\\s\\S])*?\\n\\s+at ${_boundaryconstants.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`); +const hasMetadataRegex = new RegExp(`\\n\\s+at ${_boundaryconstants.METADATA_BOUNDARY_NAME}[\\n\\s]`); +const hasViewportRegex = new RegExp(`\\n\\s+at ${_boundaryconstants.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`); +const hasOutletRegex = new RegExp(`\\n\\s+at ${_boundaryconstants.OUTLET_BOUNDARY_NAME}[\\n\\s]`); +function trackAllowedDynamicAccess(workStore, componentStack, dynamicValidation, clientDynamic) { + if (hasOutletRegex.test(componentStack)) { + // We don't need to track that this is dynamic. It is only so when something else is also dynamic. + return; + } else if (hasMetadataRegex.test(componentStack)) { + dynamicValidation.hasDynamicMetadata = true; + return; + } else if (hasViewportRegex.test(componentStack)) { + dynamicValidation.hasDynamicViewport = true; + return; + } else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) { + // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule. + // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense + // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering. + dynamicValidation.hasAllowedDynamic = true; + dynamicValidation.hasSuspenseAboveBody = true; + return; + } else if (hasSuspenseRegex.test(componentStack)) { + // this error had a Suspense boundary above it so we don't need to report it as a source + // of disallowed + dynamicValidation.hasAllowedDynamic = true; + return; + } else if (clientDynamic.syncDynamicErrorWithStack) { + // This task was the task that called the sync error. + dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack); + return; + } else { + const message = `Route "${workStore.route}": Uncached data was accessed outside of ` + '. This delays the entire page from rendering, resulting in a ' + 'slow user experience. Learn more: ' + 'https://nextjs.org/docs/messages/blocking-route'; + const error = createErrorWithComponentOrOwnerStack(message, componentStack); + dynamicValidation.dynamicErrors.push(error); + return; + } +} +/** + * In dev mode, we prefer using the owner stack, otherwise the provided + * component stack is used. + */ function createErrorWithComponentOrOwnerStack(message, componentStack) { + const ownerStack = ("TURBOPACK compile-time value", "development") !== 'production' && _react.default.captureOwnerStack ? _react.default.captureOwnerStack() : null; + const error = Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + error.stack = error.name + ': ' + message + (ownerStack ?? componentStack); + return error; +} +var PreludeState = /*#__PURE__*/ function(PreludeState) { + PreludeState[PreludeState["Full"] = 0] = "Full"; + PreludeState[PreludeState["Empty"] = 1] = "Empty"; + PreludeState[PreludeState["Errored"] = 2] = "Errored"; + return PreludeState; +}({}); +function logDisallowedDynamicError(workStore, error) { + console.error(error); + if (!workStore.dev) { + if (workStore.hasReadableErrorStacks) { + console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${workStore.route}" in your browser to investigate the error.`); + } else { + console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following: + - Start the app in development mode by running \`next dev\`, then open "${workStore.route}" in your browser to investigate the error. + - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`); + } + } +} +function throwIfDisallowedDynamic(workStore, prelude, dynamicValidation, serverDynamic) { + if (serverDynamic.syncDynamicErrorWithStack) { + logDisallowedDynamicError(workStore, serverDynamic.syncDynamicErrorWithStack); + throw new _staticgenerationbailout.StaticGenBailoutError(); + } + if (prelude !== 0) { + if (dynamicValidation.hasSuspenseAboveBody) { + // This route has opted into allowing fully dynamic rendering + // by including a Suspense boundary above the body. In this case + // a lack of a shell is not considered disallowed so we simply return + return; + } + // We didn't have any sync bailouts but there may be user code which + // blocked the root. We would have captured these during the prerender + // and can log them here and then terminate the build/validating render + const dynamicErrors = dynamicValidation.dynamicErrors; + if (dynamicErrors.length > 0) { + for(let i = 0; i < dynamicErrors.length; i++){ + logDisallowedDynamicError(workStore, dynamicErrors[i]); + } + throw new _staticgenerationbailout.StaticGenBailoutError(); + } + // If we got this far then the only other thing that could be blocking + // the root is dynamic Viewport. If this is dynamic then + // you need to opt into that by adding a Suspense boundary above the body + // to indicate your are ok with fully dynamic rendering. + if (dynamicValidation.hasDynamicViewport) { + console.error(`Route "${workStore.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`); + throw new _staticgenerationbailout.StaticGenBailoutError(); + } + if (prelude === 1) { + // If we ever get this far then we messed up the tracking of invalid dynamic. + // We still adhere to the constraint that you must produce a shell but invite the + // user to report this as a bug in Next.js. + console.error(`Route "${workStore.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`); + throw new _staticgenerationbailout.StaticGenBailoutError(); + } + } else { + if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.hasDynamicMetadata) { + console.error(`Route "${workStore.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`); + throw new _staticgenerationbailout.StaticGenBailoutError(); + } + } +} +function delayUntilRuntimeStage(prerenderStore, result) { + if (prerenderStore.runtimeStagePromise) { + return prerenderStore.runtimeStagePromise.then(()=>result); + } + return result; +} //# sourceMappingURL=dynamic-rendering.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/utils.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + isRequestAPICallableInsideAfter: null, + throwForSearchParamsAccessInUseCache: null, + throwWithStaticGenerationBailoutErrorWithDynamicError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + isRequestAPICallableInsideAfter: function() { + return isRequestAPICallableInsideAfter; + }, + throwForSearchParamsAccessInUseCache: function() { + return throwForSearchParamsAccessInUseCache; + }, + throwWithStaticGenerationBailoutErrorWithDynamicError: function() { + return throwWithStaticGenerationBailoutErrorWithDynamicError; + } +}); +const _staticgenerationbailout = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/static-generation-bailout.js [app-route] (ecmascript)"); +const _aftertaskasyncstorageexternal = __turbopack_context__.r("[externals]/next/dist/server/app-render/after-task-async-storage.external.js [external] (next/dist/server/app-render/after-task-async-storage.external.js, cjs)"); +function throwWithStaticGenerationBailoutErrorWithDynamicError(route, expression) { + throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${route} with \`dynamic = "error"\` couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), "__NEXT_ERROR_CODE", { + value: "E543", + enumerable: false, + configurable: true + }); +} +function throwForSearchParamsAccessInUseCache(workStore, constructorOpt) { + const error = Object.defineProperty(new Error(`Route ${workStore.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), "__NEXT_ERROR_CODE", { + value: "E842", + enumerable: false, + configurable: true + }); + Error.captureStackTrace(error, constructorOpt); + workStore.invalidDynamicUsageError ??= error; + throw error; +} +function isRequestAPICallableInsideAfter() { + const afterTaskStore = _aftertaskasyncstorageexternal.afterTaskAsyncStorage.getStore(); + return (afterTaskStore == null ? void 0 : afterTaskStore.rootTaskSpawnPhase) === 'action'; +} //# sourceMappingURL=utils.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/connection.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "connection", { + enumerable: true, + get: function() { + return connection; + } +}); +const _workasyncstorageexternal = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)"); +const _workunitasyncstorageexternal = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)"); +const _dynamicrendering = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/dynamic-rendering.js [app-route] (ecmascript)"); +const _staticgenerationbailout = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/static-generation-bailout.js [app-route] (ecmascript)"); +const _dynamicrenderingutils = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/dynamic-rendering-utils.js [app-route] (ecmascript)"); +const _utils = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/utils.js [app-route] (ecmascript)"); +const _stagedrendering = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/staged-rendering.js [app-route] (ecmascript)"); +function connection() { + const callingExpression = 'connection'; + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workStore) { + if (workUnitStore && workUnitStore.phase === 'after' && !(0, _utils.isRequestAPICallableInsideAfter)()) { + throw Object.defineProperty(new Error(`Route ${workStore.route} used \`connection()\` inside \`after()\`. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but \`after()\` executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`), "__NEXT_ERROR_CODE", { + value: "E827", + enumerable: false, + configurable: true + }); + } + if (workStore.forceStatic) { + // When using forceStatic, we override all other logic and always just + // return a resolving promise without tracking. + return Promise.resolve(undefined); + } + if (workStore.dynamicShouldError) { + throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${workStore.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`connection()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), "__NEXT_ERROR_CODE", { + value: "E847", + enumerable: false, + configurable: true + }); + } + if (workUnitStore) { + switch(workUnitStore.type){ + case 'cache': + { + const error = Object.defineProperty(new Error(`Route ${workStore.route} used \`connection()\` inside "use cache". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual request, but caches must be able to be produced before a request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), "__NEXT_ERROR_CODE", { + value: "E841", + enumerable: false, + configurable: true + }); + Error.captureStackTrace(error, connection); + workStore.invalidDynamicUsageError ??= error; + throw error; + } + case 'private-cache': + { + // It might not be intuitive to throw for private caches as well, but + // we don't consider runtime prefetches as "actual requests" (in the + // navigation sense), despite allowing them to read cookies. + const error = Object.defineProperty(new Error(`Route ${workStore.route} used \`connection()\` inside "use cache: private". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual navigation request, but caches must be able to be produced before a navigation request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), "__NEXT_ERROR_CODE", { + value: "E837", + enumerable: false, + configurable: true + }); + Error.captureStackTrace(error, connection); + workStore.invalidDynamicUsageError ??= error; + throw error; + } + case 'unstable-cache': + throw Object.defineProperty(new Error(`Route ${workStore.route} used \`connection()\` inside a function cached with \`unstable_cache()\`. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`), "__NEXT_ERROR_CODE", { + value: "E840", + enumerable: false, + configurable: true + }); + case 'prerender': + case 'prerender-client': + case 'prerender-runtime': + // We return a promise that never resolves to allow the prerender to + // stall at this point. + return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`connection()`'); + case 'prerender-ppr': + // We use React's postpone API to interrupt rendering here to create a + // dynamic hole + return (0, _dynamicrendering.postponeWithTracking)(workStore.route, 'connection', workUnitStore.dynamicTracking); + case 'prerender-legacy': + // We throw an error here to interrupt prerendering to mark the route + // as dynamic + return (0, _dynamicrendering.throwToInterruptStaticGeneration)('connection', workStore, workUnitStore); + case 'request': + (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); + if ("TURBOPACK compile-time truthy", 1) { + // Semantically we only need the dev tracking when running in `next dev` + // but since you would never use next dev with production NODE_ENV we use this + // as a proxy so we can statically exclude this code from production builds. + if (workUnitStore.asyncApiPromises) { + return workUnitStore.asyncApiPromises.connection; + } + return (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(undefined, workUnitStore, _stagedrendering.RenderStage.Dynamic); + } else //TURBOPACK unreachable + ; + default: + workUnitStore; + } + } + } + // If we end up here, there was no work store or work unit store present. + (0, _workunitasyncstorageexternal.throwForMissingRequestStore)(callingExpression); +} //# sourceMappingURL=connection.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/server.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { + +const serverExports = { + NextRequest: __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/request.js [app-route] (ecmascript)").NextRequest, + NextResponse: __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/response.js [app-route] (ecmascript)").NextResponse, + ImageResponse: __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/image-response.js [app-route] (ecmascript)").ImageResponse, + userAgentFromString: __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/user-agent.js [app-route] (ecmascript)").userAgentFromString, + userAgent: __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/user-agent.js [app-route] (ecmascript)").userAgent, + URLPattern: __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/url-pattern.js [app-route] (ecmascript)").URLPattern, + after: __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/after/index.js [app-route] (ecmascript)").after, + connection: __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/connection.js [app-route] (ecmascript)").connection +}; +// https://nodejs.org/api/esm.html#commonjs-namespaces +// When importing CommonJS modules, the module.exports object is provided as the default export +module.exports = serverExports; +// make import { xxx } from 'next/server' work +exports.NextRequest = serverExports.NextRequest; +exports.NextResponse = serverExports.NextResponse; +exports.ImageResponse = serverExports.ImageResponse; +exports.userAgentFromString = serverExports.userAgentFromString; +exports.userAgent = serverExports.userAgent; +exports.URLPattern = serverExports.URLPattern; +exports.after = serverExports.after; +exports.connection = serverExports.connection; +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + MutableRequestCookiesAdapter: null, + ReadonlyRequestCookiesError: null, + RequestCookiesAdapter: null, + appendMutableCookies: null, + areCookiesMutableInCurrentPhase: null, + createCookiesWithMutableAccessCheck: null, + getModifiedCookieValues: null, + responseCookiesToRequestCookies: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + MutableRequestCookiesAdapter: function() { + return MutableRequestCookiesAdapter; + }, + ReadonlyRequestCookiesError: function() { + return ReadonlyRequestCookiesError; + }, + RequestCookiesAdapter: function() { + return RequestCookiesAdapter; + }, + appendMutableCookies: function() { + return appendMutableCookies; + }, + areCookiesMutableInCurrentPhase: function() { + return areCookiesMutableInCurrentPhase; + }, + createCookiesWithMutableAccessCheck: function() { + return createCookiesWithMutableAccessCheck; + }, + getModifiedCookieValues: function() { + return getModifiedCookieValues; + }, + responseCookiesToRequestCookies: function() { + return responseCookiesToRequestCookies; + } +}); +const _cookies = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/cookies.js [app-route] (ecmascript)"); +const _reflect = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js [app-route] (ecmascript)"); +const _workasyncstorageexternal = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)"); +class ReadonlyRequestCookiesError extends Error { + constructor(){ + super('Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options'); + } + static callable() { + throw new ReadonlyRequestCookiesError(); + } +} +class RequestCookiesAdapter { + static seal(cookies) { + return new Proxy(cookies, { + get (target, prop, receiver) { + switch(prop){ + case 'clear': + case 'delete': + case 'set': + return ReadonlyRequestCookiesError.callable; + default: + return _reflect.ReflectAdapter.get(target, prop, receiver); + } + } + }); + } +} +const SYMBOL_MODIFY_COOKIE_VALUES = Symbol.for('next.mutated.cookies'); +function getModifiedCookieValues(cookies) { + const modified = cookies[SYMBOL_MODIFY_COOKIE_VALUES]; + if (!modified || !Array.isArray(modified) || modified.length === 0) { + return []; + } + return modified; +} +function appendMutableCookies(headers, mutableCookies) { + const modifiedCookieValues = getModifiedCookieValues(mutableCookies); + if (modifiedCookieValues.length === 0) { + return false; + } + // Return a new response that extends the response with + // the modified cookies as fallbacks. `res` cookies + // will still take precedence. + const resCookies = new _cookies.ResponseCookies(headers); + const returnedCookies = resCookies.getAll(); + // Set the modified cookies as fallbacks. + for (const cookie of modifiedCookieValues){ + resCookies.set(cookie); + } + // Set the original cookies as the final values. + for (const cookie of returnedCookies){ + resCookies.set(cookie); + } + return true; +} +class MutableRequestCookiesAdapter { + static wrap(cookies, onUpdateCookies) { + const responseCookies = new _cookies.ResponseCookies(new Headers()); + for (const cookie of cookies.getAll()){ + responseCookies.set(cookie); + } + let modifiedValues = []; + const modifiedCookies = new Set(); + const updateResponseCookies = ()=>{ + // TODO-APP: change method of getting workStore + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + if (workStore) { + workStore.pathWasRevalidated = true; + } + const allCookies = responseCookies.getAll(); + modifiedValues = allCookies.filter((c)=>modifiedCookies.has(c.name)); + if (onUpdateCookies) { + const serializedCookies = []; + for (const cookie of modifiedValues){ + const tempCookies = new _cookies.ResponseCookies(new Headers()); + tempCookies.set(cookie); + serializedCookies.push(tempCookies.toString()); + } + onUpdateCookies(serializedCookies); + } + }; + const wrappedCookies = new Proxy(responseCookies, { + get (target, prop, receiver) { + switch(prop){ + // A special symbol to get the modified cookie values + case SYMBOL_MODIFY_COOKIE_VALUES: + return modifiedValues; + // TODO: Throw error if trying to set a cookie after the response + // headers have been set. + case 'delete': + return function(...args) { + modifiedCookies.add(typeof args[0] === 'string' ? args[0] : args[0].name); + try { + target.delete(...args); + return wrappedCookies; + } finally{ + updateResponseCookies(); + } + }; + case 'set': + return function(...args) { + modifiedCookies.add(typeof args[0] === 'string' ? args[0] : args[0].name); + try { + target.set(...args); + return wrappedCookies; + } finally{ + updateResponseCookies(); + } + }; + default: + return _reflect.ReflectAdapter.get(target, prop, receiver); + } + } + }); + return wrappedCookies; + } +} +function createCookiesWithMutableAccessCheck(requestStore) { + const wrappedCookies = new Proxy(requestStore.mutableCookies, { + get (target, prop, receiver) { + switch(prop){ + case 'delete': + return function(...args) { + ensureCookiesAreStillMutable(requestStore, 'cookies().delete'); + target.delete(...args); + return wrappedCookies; + }; + case 'set': + return function(...args) { + ensureCookiesAreStillMutable(requestStore, 'cookies().set'); + target.set(...args); + return wrappedCookies; + }; + default: + return _reflect.ReflectAdapter.get(target, prop, receiver); + } + } + }); + return wrappedCookies; +} +function areCookiesMutableInCurrentPhase(requestStore) { + return requestStore.phase === 'action'; +} +/** Ensure that cookies() starts throwing on mutation + * if we changed phases and can no longer mutate. + * + * This can happen when going: + * 'render' -> 'after' + * 'action' -> 'render' + * */ function ensureCookiesAreStillMutable(requestStore, _callingExpression) { + if (!areCookiesMutableInCurrentPhase(requestStore)) { + // TODO: maybe we can give a more precise error message based on callingExpression? + throw new ReadonlyRequestCookiesError(); + } +} +function responseCookiesToRequestCookies(responseCookies) { + const requestCookies = new _cookies.RequestCookies(new Headers()); + for (const cookie of responseCookies.getAll()){ + requestCookies.set(cookie); + } + return requestCookies; +} //# sourceMappingURL=request-cookies.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createDedupedByCallsiteServerErrorLoggerDev", { + enumerable: true, + get: function() { + return createDedupedByCallsiteServerErrorLoggerDev; + } +}); +const _react = /*#__PURE__*/ _interop_require_wildcard(__turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js [app-route] (ecmascript)")); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +const errorRef = { + current: null +}; +// React.cache is currently only available in canary/experimental React channels. +const cache = typeof _react.cache === 'function' ? _react.cache : (fn)=>fn; +// When Cache Components is enabled, we record these as errors so that they +// are captured by the dev overlay as it's more critical to fix these +// when enabled. +const logErrorOrWarn = ("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : console.warn; +// We don't want to dedupe across requests. +// The developer might've just attempted to fix the warning so we should warn again if it still happens. +const flushCurrentErrorIfNew = cache((key)=>{ + try { + logErrorOrWarn(errorRef.current); + } finally{ + errorRef.current = null; + } +}); +function createDedupedByCallsiteServerErrorLoggerDev(getMessage) { + return function logDedupedError(...args) { + const message = getMessage(...args); + if ("TURBOPACK compile-time truthy", 1) { + var _stack; + const callStackFrames = (_stack = new Error().stack) == null ? void 0 : _stack.split('\n'); + if (callStackFrames === undefined || callStackFrames.length < 4) { + logErrorOrWarn(message); + } else { + // Error: + // logDedupedError + // asyncApiBeingAccessedSynchronously + // + // TODO: This breaks if sourcemaps with ignore lists are enabled. + const key = callStackFrames[4]; + errorRef.current = message; + flushCurrentErrorIfNew(key); + } + } else //TURBOPACK unreachable + ; + }; +} //# sourceMappingURL=create-deduped-by-callsite-server-error-logger.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/cookies.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "cookies", { + enumerable: true, + get: function() { + return cookies; + } +}); +const _requestcookies = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js [app-route] (ecmascript)"); +const _cookies = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/cookies.js [app-route] (ecmascript)"); +const _workasyncstorageexternal = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)"); +const _workunitasyncstorageexternal = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)"); +const _dynamicrendering = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/dynamic-rendering.js [app-route] (ecmascript)"); +const _staticgenerationbailout = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/static-generation-bailout.js [app-route] (ecmascript)"); +const _dynamicrenderingutils = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/dynamic-rendering-utils.js [app-route] (ecmascript)"); +const _creatededupedbycallsiteservererrorlogger = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js [app-route] (ecmascript)"); +const _utils = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/utils.js [app-route] (ecmascript)"); +const _invarianterror = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/invariant-error.js [app-route] (ecmascript)"); +const _stagedrendering = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/staged-rendering.js [app-route] (ecmascript)"); +function cookies() { + const callingExpression = 'cookies'; + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workStore) { + if (workUnitStore && workUnitStore.phase === 'after' && !(0, _utils.isRequestAPICallableInsideAfter)()) { + throw Object.defineProperty(new Error(`Route ${workStore.route} used \`cookies()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`), "__NEXT_ERROR_CODE", { + value: "E843", + enumerable: false, + configurable: true + }); + } + if (workStore.forceStatic) { + // When using forceStatic we override all other logic and always just return an empty + // cookies object without tracking + const underlyingCookies = createEmptyCookies(); + return makeUntrackedCookies(underlyingCookies); + } + if (workStore.dynamicShouldError) { + throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${workStore.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), "__NEXT_ERROR_CODE", { + value: "E849", + enumerable: false, + configurable: true + }); + } + if (workUnitStore) { + switch(workUnitStore.type){ + case 'cache': + const error = Object.defineProperty(new Error(`Route ${workStore.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), "__NEXT_ERROR_CODE", { + value: "E831", + enumerable: false, + configurable: true + }); + Error.captureStackTrace(error, cookies); + workStore.invalidDynamicUsageError ??= error; + throw error; + case 'unstable-cache': + throw Object.defineProperty(new Error(`Route ${workStore.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`), "__NEXT_ERROR_CODE", { + value: "E846", + enumerable: false, + configurable: true + }); + case 'prerender': + return makeHangingCookies(workStore, workUnitStore); + case 'prerender-client': + const exportName = '`cookies`'; + throw Object.defineProperty(new _invarianterror.InvariantError(`${exportName} must not be used within a Client Component. Next.js should be preventing ${exportName} from being included in Client Components statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E832", + enumerable: false, + configurable: true + }); + case 'prerender-ppr': + // We need track dynamic access here eagerly to keep continuity with + // how cookies has worked in PPR without cacheComponents. + return (0, _dynamicrendering.postponeWithTracking)(workStore.route, callingExpression, workUnitStore.dynamicTracking); + case 'prerender-legacy': + // We track dynamic access here so we don't need to wrap the cookies + // in individual property access tracking. + return (0, _dynamicrendering.throwToInterruptStaticGeneration)(callingExpression, workStore, workUnitStore); + case 'prerender-runtime': + return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, makeUntrackedCookies(workUnitStore.cookies)); + case 'private-cache': + // Private caches are delayed until the runtime stage in use-cache-wrapper, + // so we don't need an additional delay here. + return makeUntrackedCookies(workUnitStore.cookies); + case 'request': + (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); + let underlyingCookies; + if ((0, _requestcookies.areCookiesMutableInCurrentPhase)(workUnitStore)) { + // We can't conditionally return different types here based on the context. + // To avoid confusion, we always return the readonly type here. + underlyingCookies = workUnitStore.userspaceMutableCookies; + } else { + underlyingCookies = workUnitStore.cookies; + } + if ("TURBOPACK compile-time truthy", 1) { + // Semantically we only need the dev tracking when running in `next dev` + // but since you would never use next dev with production NODE_ENV we use this + // as a proxy so we can statically exclude this code from production builds. + return makeUntrackedCookiesWithDevWarnings(workUnitStore, underlyingCookies, workStore == null ? void 0 : workStore.route); + } else //TURBOPACK unreachable + ; + default: + workUnitStore; + } + } + } + // If we end up here, there was no work store or work unit store present. + (0, _workunitasyncstorageexternal.throwForMissingRequestStore)(callingExpression); +} +function createEmptyCookies() { + return _requestcookies.RequestCookiesAdapter.seal(new _cookies.RequestCookies(new Headers({}))); +} +const CachedCookies = new WeakMap(); +function makeHangingCookies(workStore, prerenderStore) { + const cachedPromise = CachedCookies.get(prerenderStore); + if (cachedPromise) { + return cachedPromise; + } + const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`cookies()`'); + CachedCookies.set(prerenderStore, promise); + return promise; +} +function makeUntrackedCookies(underlyingCookies) { + const cachedCookies = CachedCookies.get(underlyingCookies); + if (cachedCookies) { + return cachedCookies; + } + const promise = Promise.resolve(underlyingCookies); + CachedCookies.set(underlyingCookies, promise); + return promise; +} +function makeUntrackedCookiesWithDevWarnings(requestStore, underlyingCookies, route) { + if (requestStore.asyncApiPromises) { + let promise; + if (underlyingCookies === requestStore.mutableCookies) { + promise = requestStore.asyncApiPromises.mutableCookies; + } else if (underlyingCookies === requestStore.cookies) { + promise = requestStore.asyncApiPromises.cookies; + } else { + throw Object.defineProperty(new _invarianterror.InvariantError('Received an underlying cookies object that does not match either `cookies` or `mutableCookies`'), "__NEXT_ERROR_CODE", { + value: "E890", + enumerable: false, + configurable: true + }); + } + return instrumentCookiesPromiseWithDevWarnings(promise, route); + } + const cachedCookies = CachedCookies.get(underlyingCookies); + if (cachedCookies) { + return cachedCookies; + } + const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingCookies, requestStore, _stagedrendering.RenderStage.Runtime); + const proxiedPromise = instrumentCookiesPromiseWithDevWarnings(promise, route); + CachedCookies.set(underlyingCookies, proxiedPromise); + return proxiedPromise; +} +const warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createCookiesAccessError); +function instrumentCookiesPromiseWithDevWarnings(promise, route) { + Object.defineProperties(promise, { + [Symbol.iterator]: replaceableWarningDescriptorForSymbolIterator(promise, route), + size: replaceableWarningDescriptor(promise, 'size', route), + get: replaceableWarningDescriptor(promise, 'get', route), + getAll: replaceableWarningDescriptor(promise, 'getAll', route), + has: replaceableWarningDescriptor(promise, 'has', route), + set: replaceableWarningDescriptor(promise, 'set', route), + delete: replaceableWarningDescriptor(promise, 'delete', route), + clear: replaceableWarningDescriptor(promise, 'clear', route), + toString: replaceableWarningDescriptor(promise, 'toString', route) + }); + return promise; +} +function replaceableWarningDescriptor(target, prop, route) { + return { + enumerable: false, + get () { + warnForSyncAccess(route, `\`cookies().${prop}\``); + return undefined; + }, + set (value) { + Object.defineProperty(target, prop, { + value, + writable: true, + configurable: true + }); + }, + configurable: true + }; +} +function replaceableWarningDescriptorForSymbolIterator(target, route) { + return { + enumerable: false, + get () { + warnForSyncAccess(route, '`...cookies()` or similar iteration'); + return undefined; + }, + set (value) { + Object.defineProperty(target, Symbol.iterator, { + value, + writable: true, + enumerable: true, + configurable: true + }); + }, + configurable: true + }; +} +function createCookiesAccessError(route, expression) { + const prefix = route ? `Route "${route}" ` : 'This route '; + return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", { + value: "E830", + enumerable: false, + configurable: true + }); +} //# sourceMappingURL=cookies.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/adapters/headers.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + HeadersAdapter: null, + ReadonlyHeadersError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + HeadersAdapter: function() { + return HeadersAdapter; + }, + ReadonlyHeadersError: function() { + return ReadonlyHeadersError; + } +}); +const _reflect = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js [app-route] (ecmascript)"); +class ReadonlyHeadersError extends Error { + constructor(){ + super('Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers'); + } + static callable() { + throw new ReadonlyHeadersError(); + } +} +class HeadersAdapter extends Headers { + constructor(headers){ + // We've already overridden the methods that would be called, so we're just + // calling the super constructor to ensure that the instanceof check works. + super(); + this.headers = new Proxy(headers, { + get (target, prop, receiver) { + // Because this is just an object, we expect that all "get" operations + // are for properties. If it's a "get" for a symbol, we'll just return + // the symbol. + if (typeof prop === 'symbol') { + return _reflect.ReflectAdapter.get(target, prop, receiver); + } + const lowercased = prop.toLowerCase(); + // Let's find the original casing of the key. This assumes that there is + // no mixed case keys (e.g. "Content-Type" and "content-type") in the + // headers object. + const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased); + // If the original casing doesn't exist, return undefined. + if (typeof original === 'undefined') return; + // If the original casing exists, return the value. + return _reflect.ReflectAdapter.get(target, original, receiver); + }, + set (target, prop, value, receiver) { + if (typeof prop === 'symbol') { + return _reflect.ReflectAdapter.set(target, prop, value, receiver); + } + const lowercased = prop.toLowerCase(); + // Let's find the original casing of the key. This assumes that there is + // no mixed case keys (e.g. "Content-Type" and "content-type") in the + // headers object. + const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased); + // If the original casing doesn't exist, use the prop as the key. + return _reflect.ReflectAdapter.set(target, original ?? prop, value, receiver); + }, + has (target, prop) { + if (typeof prop === 'symbol') return _reflect.ReflectAdapter.has(target, prop); + const lowercased = prop.toLowerCase(); + // Let's find the original casing of the key. This assumes that there is + // no mixed case keys (e.g. "Content-Type" and "content-type") in the + // headers object. + const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased); + // If the original casing doesn't exist, return false. + if (typeof original === 'undefined') return false; + // If the original casing exists, return true. + return _reflect.ReflectAdapter.has(target, original); + }, + deleteProperty (target, prop) { + if (typeof prop === 'symbol') return _reflect.ReflectAdapter.deleteProperty(target, prop); + const lowercased = prop.toLowerCase(); + // Let's find the original casing of the key. This assumes that there is + // no mixed case keys (e.g. "Content-Type" and "content-type") in the + // headers object. + const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased); + // If the original casing doesn't exist, return true. + if (typeof original === 'undefined') return true; + // If the original casing exists, delete the property. + return _reflect.ReflectAdapter.deleteProperty(target, original); + } + }); + } + /** + * Seals a Headers instance to prevent modification by throwing an error when + * any mutating method is called. + */ static seal(headers) { + return new Proxy(headers, { + get (target, prop, receiver) { + switch(prop){ + case 'append': + case 'delete': + case 'set': + return ReadonlyHeadersError.callable; + default: + return _reflect.ReflectAdapter.get(target, prop, receiver); + } + } + }); + } + /** + * Merges a header value into a string. This stores multiple values as an + * array, so we need to merge them into a string. + * + * @param value a header value + * @returns a merged header value (a string) + */ merge(value) { + if (Array.isArray(value)) return value.join(', '); + return value; + } + /** + * Creates a Headers instance from a plain object or a Headers instance. + * + * @param headers a plain object or a Headers instance + * @returns a headers instance + */ static from(headers) { + if (headers instanceof Headers) return headers; + return new HeadersAdapter(headers); + } + append(name, value) { + const existing = this.headers[name]; + if (typeof existing === 'string') { + this.headers[name] = [ + existing, + value + ]; + } else if (Array.isArray(existing)) { + existing.push(value); + } else { + this.headers[name] = value; + } + } + delete(name) { + delete this.headers[name]; + } + get(name) { + const value = this.headers[name]; + if (typeof value !== 'undefined') return this.merge(value); + return null; + } + has(name) { + return typeof this.headers[name] !== 'undefined'; + } + set(name, value) { + this.headers[name] = value; + } + forEach(callbackfn, thisArg) { + for (const [name, value] of this.entries()){ + callbackfn.call(thisArg, value, name, this); + } + } + *entries() { + for (const key of Object.keys(this.headers)){ + const name = key.toLowerCase(); + // We assert here that this is a string because we got it from the + // Object.keys() call above. + const value = this.get(name); + yield [ + name, + value + ]; + } + } + *keys() { + for (const key of Object.keys(this.headers)){ + const name = key.toLowerCase(); + yield name; + } + } + *values() { + for (const key of Object.keys(this.headers)){ + // We assert here that this is a string because we got it from the + // Object.keys() call above. + const value = this.get(key); + yield value; + } + } + [Symbol.iterator]() { + return this.entries(); + } +} //# sourceMappingURL=headers.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/headers.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "headers", { + enumerable: true, + get: function() { + return headers; + } +}); +const _headers = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/adapters/headers.js [app-route] (ecmascript)"); +const _workasyncstorageexternal = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)"); +const _workunitasyncstorageexternal = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)"); +const _dynamicrendering = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/dynamic-rendering.js [app-route] (ecmascript)"); +const _staticgenerationbailout = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/static-generation-bailout.js [app-route] (ecmascript)"); +const _dynamicrenderingutils = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/dynamic-rendering-utils.js [app-route] (ecmascript)"); +const _creatededupedbycallsiteservererrorlogger = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js [app-route] (ecmascript)"); +const _utils = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/utils.js [app-route] (ecmascript)"); +const _invarianterror = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/invariant-error.js [app-route] (ecmascript)"); +const _stagedrendering = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/staged-rendering.js [app-route] (ecmascript)"); +function headers() { + const callingExpression = 'headers'; + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workStore) { + if (workUnitStore && workUnitStore.phase === 'after' && !(0, _utils.isRequestAPICallableInsideAfter)()) { + throw Object.defineProperty(new Error(`Route ${workStore.route} used \`headers()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`), "__NEXT_ERROR_CODE", { + value: "E839", + enumerable: false, + configurable: true + }); + } + if (workStore.forceStatic) { + // When using forceStatic we override all other logic and always just return an empty + // headers object without tracking + const underlyingHeaders = _headers.HeadersAdapter.seal(new Headers({})); + return makeUntrackedHeaders(underlyingHeaders); + } + if (workUnitStore) { + switch(workUnitStore.type){ + case 'cache': + { + const error = Object.defineProperty(new Error(`Route ${workStore.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), "__NEXT_ERROR_CODE", { + value: "E833", + enumerable: false, + configurable: true + }); + Error.captureStackTrace(error, headers); + workStore.invalidDynamicUsageError ??= error; + throw error; + } + case 'unstable-cache': + throw Object.defineProperty(new Error(`Route ${workStore.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`), "__NEXT_ERROR_CODE", { + value: "E838", + enumerable: false, + configurable: true + }); + case 'prerender': + case 'prerender-client': + case 'private-cache': + case 'prerender-runtime': + case 'prerender-ppr': + case 'prerender-legacy': + case 'request': + break; + default: + workUnitStore; + } + } + if (workStore.dynamicShouldError) { + throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${workStore.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), "__NEXT_ERROR_CODE", { + value: "E828", + enumerable: false, + configurable: true + }); + } + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + return makeHangingHeaders(workStore, workUnitStore); + case 'prerender-client': + const exportName = '`headers`'; + throw Object.defineProperty(new _invarianterror.InvariantError(`${exportName} must not be used within a client component. Next.js should be preventing ${exportName} from being included in client components statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E693", + enumerable: false, + configurable: true + }); + case 'prerender-ppr': + // PPR Prerender (no cacheComponents) + // We are prerendering with PPR. We need track dynamic access here eagerly + // to keep continuity with how headers has worked in PPR without cacheComponents. + // TODO consider switching the semantic to throw on property access instead + return (0, _dynamicrendering.postponeWithTracking)(workStore.route, callingExpression, workUnitStore.dynamicTracking); + case 'prerender-legacy': + // Legacy Prerender + // We are in a legacy static generation mode while prerendering + // We track dynamic access here so we don't need to wrap the headers in + // individual property access tracking. + return (0, _dynamicrendering.throwToInterruptStaticGeneration)(callingExpression, workStore, workUnitStore); + case 'prerender-runtime': + return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, makeUntrackedHeaders(workUnitStore.headers)); + case 'private-cache': + // Private caches are delayed until the runtime stage in use-cache-wrapper, + // so we don't need an additional delay here. + return makeUntrackedHeaders(workUnitStore.headers); + case 'request': + (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); + if ("TURBOPACK compile-time truthy", 1) { + // Semantically we only need the dev tracking when running in `next dev` + // but since you would never use next dev with production NODE_ENV we use this + // as a proxy so we can statically exclude this code from production builds. + return makeUntrackedHeadersWithDevWarnings(workUnitStore.headers, workStore == null ? void 0 : workStore.route, workUnitStore); + } else //TURBOPACK unreachable + ; + //TURBOPACK unreachable + ; + default: + workUnitStore; + } + } + } + // If we end up here, there was no work store or work unit store present. + (0, _workunitasyncstorageexternal.throwForMissingRequestStore)(callingExpression); +} +const CachedHeaders = new WeakMap(); +function makeHangingHeaders(workStore, prerenderStore) { + const cachedHeaders = CachedHeaders.get(prerenderStore); + if (cachedHeaders) { + return cachedHeaders; + } + const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`headers()`'); + CachedHeaders.set(prerenderStore, promise); + return promise; +} +function makeUntrackedHeaders(underlyingHeaders) { + const cachedHeaders = CachedHeaders.get(underlyingHeaders); + if (cachedHeaders) { + return cachedHeaders; + } + const promise = Promise.resolve(underlyingHeaders); + CachedHeaders.set(underlyingHeaders, promise); + return promise; +} +function makeUntrackedHeadersWithDevWarnings(underlyingHeaders, route, requestStore) { + if (requestStore.asyncApiPromises) { + const promise = requestStore.asyncApiPromises.headers; + return instrumentHeadersPromiseWithDevWarnings(promise, route); + } + const cachedHeaders = CachedHeaders.get(underlyingHeaders); + if (cachedHeaders) { + return cachedHeaders; + } + const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingHeaders, requestStore, _stagedrendering.RenderStage.Runtime); + const proxiedPromise = instrumentHeadersPromiseWithDevWarnings(promise, route); + CachedHeaders.set(underlyingHeaders, proxiedPromise); + return proxiedPromise; +} +const warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createHeadersAccessError); +function instrumentHeadersPromiseWithDevWarnings(promise, route) { + Object.defineProperties(promise, { + [Symbol.iterator]: replaceableWarningDescriptorForSymbolIterator(promise, route), + append: replaceableWarningDescriptor(promise, 'append', route), + delete: replaceableWarningDescriptor(promise, 'delete', route), + get: replaceableWarningDescriptor(promise, 'get', route), + has: replaceableWarningDescriptor(promise, 'has', route), + set: replaceableWarningDescriptor(promise, 'set', route), + getSetCookie: replaceableWarningDescriptor(promise, 'getSetCookie', route), + forEach: replaceableWarningDescriptor(promise, 'forEach', route), + keys: replaceableWarningDescriptor(promise, 'keys', route), + values: replaceableWarningDescriptor(promise, 'values', route), + entries: replaceableWarningDescriptor(promise, 'entries', route) + }); + return promise; +} +function replaceableWarningDescriptor(target, prop, route) { + return { + enumerable: false, + get () { + warnForSyncAccess(route, `\`headers().${prop}\``); + return undefined; + }, + set (value) { + Object.defineProperty(target, prop, { + value, + writable: true, + configurable: true + }); + }, + configurable: true + }; +} +function replaceableWarningDescriptorForSymbolIterator(target, route) { + return { + enumerable: false, + get () { + warnForSyncAccess(route, '`...headers()` or similar iteration'); + return undefined; + }, + set (value) { + Object.defineProperty(target, Symbol.iterator, { + value, + writable: true, + enumerable: true, + configurable: true + }); + }, + configurable: true + }; +} +function createHeadersAccessError(route, expression) { + const prefix = route ? `Route "${route}" ` : 'This route '; + return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", { + value: "E836", + enumerable: false, + configurable: true + }); +} //# sourceMappingURL=headers.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/draft-mode.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "draftMode", { + enumerable: true, + get: function() { + return draftMode; + } +}); +const _workunitasyncstorageexternal = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)"); +const _workasyncstorageexternal = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)"); +const _dynamicrendering = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/dynamic-rendering.js [app-route] (ecmascript)"); +const _creatededupedbycallsiteservererrorlogger = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js [app-route] (ecmascript)"); +const _staticgenerationbailout = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/static-generation-bailout.js [app-route] (ecmascript)"); +const _hooksservercontext = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/hooks-server-context.js [app-route] (ecmascript)"); +const _invarianterror = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/invariant-error.js [app-route] (ecmascript)"); +const _reflect = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js [app-route] (ecmascript)"); +function draftMode() { + const callingExpression = 'draftMode'; + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (!workStore || !workUnitStore) { + (0, _workunitasyncstorageexternal.throwForMissingRequestStore)(callingExpression); + } + switch(workUnitStore.type){ + case 'prerender-runtime': + // TODO(runtime-ppr): does it make sense to delay this? normally it's always microtasky + return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, createOrGetCachedDraftMode(workUnitStore.draftMode, workStore)); + case 'request': + return createOrGetCachedDraftMode(workUnitStore.draftMode, workStore); + case 'cache': + case 'private-cache': + case 'unstable-cache': + // Inside of `"use cache"` or `unstable_cache`, draft mode is available if + // the outmost work unit store is a request store (or a runtime prerender), + // and if draft mode is enabled. + const draftModeProvider = (0, _workunitasyncstorageexternal.getDraftModeProviderForCacheScope)(workStore, workUnitStore); + if (draftModeProvider) { + return createOrGetCachedDraftMode(draftModeProvider, workStore); + } + // Otherwise, we fall through to providing an empty draft mode. + // eslint-disable-next-line no-fallthrough + case 'prerender': + case 'prerender-client': + case 'prerender-ppr': + case 'prerender-legacy': + // Return empty draft mode + return createOrGetCachedDraftMode(null, workStore); + default: + return workUnitStore; + } +} +function createOrGetCachedDraftMode(draftModeProvider, workStore) { + const cacheKey = draftModeProvider ?? NullDraftMode; + const cachedDraftMode = CachedDraftModes.get(cacheKey); + if (cachedDraftMode) { + return cachedDraftMode; + } + if (("TURBOPACK compile-time value", "development") === 'development' && !(workStore == null ? void 0 : workStore.isPrefetchRequest)) { + const route = workStore == null ? void 0 : workStore.route; + return createDraftModeWithDevWarnings(draftModeProvider, route); + } else { + return Promise.resolve(new DraftMode(draftModeProvider)); + } +} +const NullDraftMode = {}; +const CachedDraftModes = new WeakMap(); +function createDraftModeWithDevWarnings(underlyingProvider, route) { + const instance = new DraftMode(underlyingProvider); + const promise = Promise.resolve(instance); + const proxiedPromise = new Proxy(promise, { + get (target, prop, receiver) { + switch(prop){ + case 'isEnabled': + warnForSyncAccess(route, `\`draftMode().${prop}\``); + break; + case 'enable': + case 'disable': + { + warnForSyncAccess(route, `\`draftMode().${prop}()\``); + break; + } + default: + { + // We only warn for well-defined properties of the draftMode object. + } + } + return _reflect.ReflectAdapter.get(target, prop, receiver); + } + }); + return proxiedPromise; +} +class DraftMode { + constructor(provider){ + this._provider = provider; + } + get isEnabled() { + if (this._provider !== null) { + return this._provider.isEnabled; + } + return false; + } + enable() { + // We have a store we want to track dynamic data access to ensure we + // don't statically generate routes that manipulate draft mode. + trackDynamicDraftMode('draftMode().enable()', this.enable); + if (this._provider !== null) { + this._provider.enable(); + } + } + disable() { + trackDynamicDraftMode('draftMode().disable()', this.disable); + if (this._provider !== null) { + this._provider.disable(); + } + } +} +const warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createDraftModeAccessError); +function createDraftModeAccessError(route, expression) { + const prefix = route ? `Route "${route}" ` : 'This route '; + return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", { + value: "E835", + enumerable: false, + configurable: true + }); +} +function trackDynamicDraftMode(expression, constructorOpt) { + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workStore) { + // We have a store we want to track dynamic data access to ensure we + // don't statically generate routes that manipulate draft mode. + if ((workUnitStore == null ? void 0 : workUnitStore.phase) === 'after') { + throw Object.defineProperty(new Error(`Route ${workStore.route} used "${expression}" inside \`after()\`. The enabled status of \`draftMode()\` can be read inside \`after()\` but you cannot enable or disable \`draftMode()\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`), "__NEXT_ERROR_CODE", { + value: "E845", + enumerable: false, + configurable: true + }); + } + if (workStore.dynamicShouldError) { + throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${workStore.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), "__NEXT_ERROR_CODE", { + value: "E553", + enumerable: false, + configurable: true + }); + } + if (workUnitStore) { + switch(workUnitStore.type){ + case 'cache': + case 'private-cache': + { + const error = Object.defineProperty(new Error(`Route ${workStore.route} used "${expression}" inside "use cache". The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), "__NEXT_ERROR_CODE", { + value: "E829", + enumerable: false, + configurable: true + }); + Error.captureStackTrace(error, constructorOpt); + workStore.invalidDynamicUsageError ??= error; + throw error; + } + case 'unstable-cache': + throw Object.defineProperty(new Error(`Route ${workStore.route} used "${expression}" inside a function cached with \`unstable_cache()\`. The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`), "__NEXT_ERROR_CODE", { + value: "E844", + enumerable: false, + configurable: true + }); + case 'prerender': + case 'prerender-runtime': + { + const error = Object.defineProperty(new Error(`Route ${workStore.route} used ${expression} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`), "__NEXT_ERROR_CODE", { + value: "E126", + enumerable: false, + configurable: true + }); + return (0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(workStore.route, expression, error, workUnitStore); + } + case 'prerender-client': + const exportName = '`draftMode`'; + throw Object.defineProperty(new _invarianterror.InvariantError(`${exportName} must not be used within a Client Component. Next.js should be preventing ${exportName} from being included in Client Components statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E832", + enumerable: false, + configurable: true + }); + case 'prerender-ppr': + return (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, workUnitStore.dynamicTracking); + case 'prerender-legacy': + workUnitStore.revalidate = 0; + const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${workStore.route} couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), "__NEXT_ERROR_CODE", { + value: "E558", + enumerable: false, + configurable: true + }); + workStore.dynamicUsageDescription = expression; + workStore.dynamicUsageStack = err.stack; + throw err; + case 'request': + (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); + break; + default: + workUnitStore; + } + } + } +} //# sourceMappingURL=draft-mode.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/headers.js [app-route] (ecmascript)", ((__turbopack_context__, module, exports) => { + +module.exports.cookies = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/cookies.js [app-route] (ecmascript)").cookies; +module.exports.headers = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/headers.js [app-route] (ecmascript)").headers; +module.exports.draftMode = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/draft-mode.js [app-route] (ecmascript)").draftMode; +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/build/templates/app-route.js { INNER_APP_ROUTE => \"[project]/Documents/go-new/chinese-family-tree/app/api/trees/[treeId]/collaborators/route.ts [app-route] (ecmascript)\" } [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "handler", + ()=>handler, + "patchFetch", + ()=>patchFetch, + "routeModule", + ()=>routeModule, + "serverHooks", + ()=>serverHooks, + "workAsyncStorage", + ()=>workAsyncStorage, + "workUnitAsyncStorage", + ()=>workUnitAsyncStorage +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$route$2d$modules$2f$app$2d$route$2f$module$2e$compiled$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/route-modules/app-route/module.compiled.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$route$2d$kind$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/route-kind.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$patch$2d$fetch$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/patch-fetch.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2d$meta$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/request-meta.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$tracer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/trace/tracer.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$encryption$2d$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/encryption-utils.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$action$2d$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/action-utils.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$app$2d$paths$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$base$2d$http$2f$node$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/base-http/node.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$next$2d$request$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/spec-extension/adapters/next-request.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/trace/constants.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$instrumentation$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/instrumentation/utils.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$send$2d$response$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/send-response.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/utils.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$cache$2d$control$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/cache-control.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/constants.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$shared$2f$lib$2f$no$2d$fallback$2d$error$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$shared$2f$lib$2f$no$2d$fallback$2d$error$2e$external$2e$js$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/next/dist/shared/lib/no-fallback-error.external.js [external] (next/dist/shared/lib/no-fallback-error.external.js, cjs)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__$3c$locals$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/response-cache/index.js [app-route] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/response-cache/types.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$app$2f$api$2f$trees$2f5b$treeId$5d2f$collaborators$2f$route$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/app/api/trees/[treeId]/collaborators/route.ts [app-route] (ecmascript)"); +; +; +; +; +; +; +; +; +; +; +; +; +; +; +; +; +; +; +; +// We inject the nextConfigOutput here so that we can use them in the route +// module. +const nextConfigOutput = ""; +const routeModule = new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$route$2d$modules$2f$app$2d$route$2f$module$2e$compiled$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["AppRouteRouteModule"]({ + definition: { + kind: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$route$2d$kind$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RouteKind"].APP_ROUTE, + page: "/api/trees/[treeId]/collaborators/route", + pathname: "/api/trees/[treeId]/collaborators", + filename: "route", + bundlePath: "" + }, + distDir: ("TURBOPACK compile-time value", ".next/dev") || '', + relativeProjectDir: ("TURBOPACK compile-time value", "") || '', + resolvedPagePath: "[project]/Documents/go-new/chinese-family-tree/app/api/trees/[treeId]/collaborators/route.ts", + nextConfigOutput, + userland: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$app$2f$api$2f$trees$2f5b$treeId$5d2f$collaborators$2f$route$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ +}); +// Pull out the exports that we need to expose from the module. This should +// be eliminated when we've moved the other routes to the new format. These +// are used to hook into the route. +const { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule; +function patchFetch() { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$patch$2d$fetch$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["patchFetch"])({ + workAsyncStorage, + workUnitAsyncStorage + }); +} +; +async function handler(req, res, ctx) { + if (routeModule.isDev) { + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2d$meta$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["addRequestMeta"])(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint()); + } + let srcPage = "/api/trees/[treeId]/collaborators/route"; + // turbopack doesn't normalize `/index` in the page name + // so we need to to process dynamic routes properly + // TODO: fix turbopack providing differing value from webpack + if ("TURBOPACK compile-time truthy", 1) { + srcPage = srcPage.replace(/\/index$/, '') || '/'; + } else if (srcPage === '/index') { + // we always normalize /index specifically + srcPage = '/'; + } + const multiZoneDraftMode = ("TURBOPACK compile-time value", false); + const prepareResult = await routeModule.prepare(req, res, { + srcPage, + multiZoneDraftMode + }); + if (!prepareResult) { + res.statusCode = 400; + res.end('Bad Request'); + ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve()); + return null; + } + const { buildId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest } = prepareResult; + const normalizedSrcPage = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$app$2d$paths$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["normalizeAppPath"])(srcPage); + let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]); + const render404 = async ()=>{ + // TODO: should route-module itself handle rendering the 404 + if (routerServerContext == null ? void 0 : routerServerContext.render404) { + await routerServerContext.render404(req, res, parsedUrl, false); + } else { + res.end('This page could not be found'); + } + return null; + }; + if (isIsr && !isDraftMode) { + const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]); + const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]; + if (prerenderInfo) { + if (prerenderInfo.fallback === false && !isPrerendered) { + if (nextConfig.experimental.adapterPath) { + return await render404(); + } + throw new __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$shared$2f$lib$2f$no$2d$fallback$2d$error$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$shared$2f$lib$2f$no$2d$fallback$2d$error$2e$external$2e$js$2c$__cjs$29$__["NoFallbackError"](); + } + } + } + let cacheKey = null; + if (isIsr && !routeModule.isDev && !isDraftMode) { + cacheKey = resolvedPathname; + // ensure /index and / is normalized to one key + cacheKey = cacheKey === '/index' ? '/' : cacheKey; + } + const supportsDynamicResponse = routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports + // dynamic HTML. + !isIsr; + // This is a revalidation request if the request is for a static + // page and it is not being resumed from a postponed render and + // it is not a dynamic RSC request then it is a revalidation + // request. + const isStaticGeneration = isIsr && !supportsDynamicResponse; + // Before rendering (which initializes component tree modules), we have to + // set the reference manifests to our global store so Server Action's + // encryption util can access to them at the top level of the page module. + if (serverActionsManifest && clientReferenceManifest) { + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$encryption$2d$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["setReferenceManifestsSingleton"])({ + page: srcPage, + clientReferenceManifest, + serverActionsManifest, + serverModuleMap: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$action$2d$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["createServerModuleMap"])({ + serverActionsManifest + }) + }); + } + const method = req.method || 'GET'; + const tracer = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$tracer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getTracer"])(); + const activeSpan = tracer.getActiveScopeSpan(); + const context = { + params, + prerenderManifest, + renderOpts: { + experimental: { + authInterrupts: Boolean(nextConfig.experimental.authInterrupts) + }, + cacheComponents: Boolean(nextConfig.cacheComponents), + supportsDynamicResponse, + incrementalCache: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2d$meta$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getRequestMeta"])(req, 'incrementalCache'), + cacheLifeProfiles: nextConfig.cacheLife, + waitUntil: ctx.waitUntil, + onClose: (cb)=>{ + res.on('close', cb); + }, + onAfterTaskError: undefined, + onInstrumentationRequestError: (error, _request, errorContext)=>routeModule.onRequestError(req, error, errorContext, routerServerContext) + }, + sharedContext: { + buildId + } + }; + const nodeNextReq = new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$base$2d$http$2f$node$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NodeNextRequest"](req); + const nodeNextRes = new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$base$2d$http$2f$node$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NodeNextResponse"](res); + const nextReq = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$next$2d$request$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextRequestAdapter"].fromNodeNextRequest(nodeNextReq, (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$next$2d$request$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["signalFromNodeResponse"])(res)); + try { + const invokeRouteModule = async (span)=>{ + return routeModule.handle(nextReq, context).finally(()=>{ + if (!span) return; + span.setAttributes({ + 'http.status_code': res.statusCode, + 'next.rsc': false + }); + const rootSpanAttributes = tracer.getRootSpanAttributes(); + // We were unable to get attributes, probably OTEL is not enabled + if (!rootSpanAttributes) { + return; + } + if (rootSpanAttributes.get('next.span_type') !== __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["BaseServerSpan"].handleRequest) { + console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`); + return; + } + const route = rootSpanAttributes.get('next.route'); + if (route) { + const name = `${method} ${route}`; + span.setAttributes({ + 'next.route': route, + 'http.route': route, + 'next.span_name': name + }); + span.updateName(name); + } else { + span.updateName(`${method} ${srcPage}`); + } + }); + }; + const isMinimalMode = Boolean(("TURBOPACK compile-time value", false) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2d$meta$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getRequestMeta"])(req, 'minimalMode')); + const handleResponse = async (currentSpan)=>{ + var _cacheEntry_value; + const responseGenerator = async ({ previousCacheEntry })=>{ + try { + if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) { + res.statusCode = 404; + // on-demand revalidate always sets this header + res.setHeader('x-nextjs-cache', 'REVALIDATED'); + res.end('This page could not be found'); + return null; + } + const response = await invokeRouteModule(currentSpan); + req.fetchMetrics = context.renderOpts.fetchMetrics; + let pendingWaitUntil = context.renderOpts.pendingWaitUntil; + // Attempt using provided waitUntil if available + // if it's not we fallback to sendResponse's handling + if (pendingWaitUntil) { + if (ctx.waitUntil) { + ctx.waitUntil(pendingWaitUntil); + pendingWaitUntil = undefined; + } + } + const cacheTags = context.renderOpts.collectedTags; + // If the request is for a static response, we can cache it so long + // as it's not edge. + if (isIsr) { + const blob = await response.blob(); + // Copy the headers from the response. + const headers = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["toNodeOutgoingHttpHeaders"])(response.headers); + if (cacheTags) { + headers[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NEXT_CACHE_TAGS_HEADER"]] = cacheTags; + } + if (!headers['content-type'] && blob.type) { + headers['content-type'] = blob.type; + } + const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["INFINITE_CACHE"] ? false : context.renderOpts.collectedRevalidate; + const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["INFINITE_CACHE"] ? undefined : context.renderOpts.collectedExpire; + // Create the cache entry for the response. + const cacheEntry = { + value: { + kind: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["CachedRouteKind"].APP_ROUTE, + status: response.status, + body: Buffer.from(await blob.arrayBuffer()), + headers + }, + cacheControl: { + revalidate, + expire + } + }; + return cacheEntry; + } else { + // send response without caching if not ISR + await (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$send$2d$response$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["sendResponse"])(nodeNextReq, nodeNextRes, response, context.renderOpts.pendingWaitUntil); + return null; + } + } catch (err) { + // if this is a background revalidate we need to report + // the request error here as it won't be bubbled + if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) { + await routeModule.onRequestError(req, err, { + routerKind: 'App Router', + routePath: srcPage, + routeType: 'route', + revalidateReason: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$instrumentation$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getRevalidateReason"])({ + isStaticGeneration, + isOnDemandRevalidate + }) + }, routerServerContext); + } + throw err; + } + }; + const cacheEntry = await routeModule.handleResponse({ + req, + nextConfig, + cacheKey, + routeKind: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$route$2d$kind$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["RouteKind"].APP_ROUTE, + isFallback: false, + prerenderManifest, + isRoutePPREnabled: false, + isOnDemandRevalidate, + revalidateOnlyGenerated, + responseGenerator, + waitUntil: ctx.waitUntil, + isMinimalMode + }); + // we don't create a cacheEntry for ISR + if (!isIsr) { + return null; + } + if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$response$2d$cache$2f$types$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["CachedRouteKind"].APP_ROUTE) { + var _cacheEntry_value1; + throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), "__NEXT_ERROR_CODE", { + value: "E701", + enumerable: false, + configurable: true + }); + } + if (!isMinimalMode) { + res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT'); + } + // Draft mode should never be cached + if (isDraftMode) { + res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate'); + } + const headers = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["fromNodeOutgoingHttpHeaders"])(cacheEntry.value.headers); + if (!(isMinimalMode && isIsr)) { + headers.delete(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NEXT_CACHE_TAGS_HEADER"]); + } + // If cache control is already set on the response we don't + // override it to allow users to customize it via next.config + if (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) { + headers.set('Cache-Control', (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$cache$2d$control$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getCacheControlHeader"])(cacheEntry.cacheControl)); + } + await (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$send$2d$response$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["sendResponse"])(nodeNextReq, nodeNextRes, new Response(cacheEntry.value.body, { + headers, + status: cacheEntry.value.status || 200 + })); + return null; + }; + // TODO: activeSpan code path is for when wrapped by + // next-server can be removed when this is no longer used + if (activeSpan) { + await handleResponse(activeSpan); + } else { + await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$constants$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["BaseServerSpan"].handleRequest, { + spanName: `${method} ${srcPage}`, + kind: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$trace$2f$tracer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["SpanKind"].SERVER, + attributes: { + 'http.method': method, + 'http.target': req.url + } + }, handleResponse)); + } + } catch (err) { + if (!(err instanceof __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$shared$2f$lib$2f$no$2d$fallback$2d$error$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$shared$2f$lib$2f$no$2d$fallback$2d$error$2e$external$2e$js$2c$__cjs$29$__["NoFallbackError"])) { + await routeModule.onRequestError(req, err, { + routerKind: 'App Router', + routePath: normalizedSrcPage, + routeType: 'route', + revalidateReason: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$instrumentation$2f$utils$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getRevalidateReason"])({ + isStaticGeneration, + isOnDemandRevalidate + }) + }); + } + // rethrow so that we can handle serving error page + // If this is during static generation, throw the error again. + if (isIsr) throw err; + // Otherwise, send a 500 response. + await (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$send$2d$response$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["sendResponse"])(nodeNextReq, nodeNextRes, new Response(null, { + status: 500 + })); + return null; + } +} //# sourceMappingURL=app-route.js.map +}), +]; + +//# sourceMappingURL=4e98a_next_a9e0b3e8._.js.map \ No newline at end of file diff --git a/.next/dev/server/chunks/4e98a_next_a9e0b3e8._.js.map b/.next/dev/server/chunks/4e98a_next_a9e0b3e8._.js.map new file mode 100644 index 00000000..3f21c4a7 --- /dev/null +++ b/.next/dev/server/chunks/4e98a_next_a9e0b3e8._.js.map @@ -0,0 +1,127 @@ +{ + "version": 3, + "sources": [], + "sections": [ + {"offset": {"line": 3, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/route-modules/app-route/module.compiled.js"],"sourcesContent":["if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-route/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-route-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-route-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-route-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-route-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-route-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-route.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-route-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-route.runtime.prod.js')\n }\n }\n }\n}\n"],"names":["process","env","NEXT_RUNTIME","module","exports","require","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK"],"mappings":"AAAA,IAAIA,QAAQC,GAAG,CAACC,YAAY,KAAK,QAAQ;;KAElC;IACL,IAAIF,QAAQC,GAAG,CAACK,yBAAyB,EAAE;;SAcpC;QACL,IAAIN,QAAQC,GAAG,CAACM,QAAQ,KAAK,WAAe;YAC1C,IAAIP,QAAQC,GAAG,CAACO,SAAS,eAAE;gBACzBL,OAAOC,OAAO,GAAGC,QAAQ;YAC3B,OAAO;;QAGT,OAAO;;IAOT;AACF","ignoreList":[0]}}, + {"offset": {"line": 22, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/route-kind.ts"],"sourcesContent":["export const enum RouteKind {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */\n PAGES = 'PAGES',\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */\n PAGES_API = 'PAGES_API',\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */\n APP_PAGE = 'APP_PAGE',\n /**\n * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n * filename of `route.{j,t}s{,x}`.\n */\n APP_ROUTE = 'APP_ROUTE',\n\n /**\n * `IMAGE` represents all the images that are generated by `next/image`.\n */\n IMAGE = 'IMAGE',\n}\n"],"names":["RouteKind"],"mappings":";;;;AAAO,IAAWA,YAAAA,WAAAA,GAAAA,SAAAA,SAAAA;IAChB;;GAEC,GAAA,SAAA,CAAA,QAAA,GAAA;IAED;;GAEC,GAAA,SAAA,CAAA,YAAA,GAAA;IAED;;;GAGC,GAAA,SAAA,CAAA,WAAA,GAAA;IAED;;;GAGC,GAAA,SAAA,CAAA,YAAA,GAAA;IAGD;;GAEC,GAAA,SAAA,CAAA,QAAA,GAAA;WAtBeA;MAwBjB","ignoreList":[0]}}, + {"offset": {"line": 50, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/lib/trace/constants.ts"],"sourcesContent":["/**\n * Contains predefined constants for the trace span name in next/server.\n *\n * Currently, next/server/tracer is internal implementation only for tracking\n * next.js's implementation only with known span names defined here.\n **/\n\n// eslint typescript has a bug with TS enums\n\nenum BaseServerSpan {\n handleRequest = 'BaseServer.handleRequest',\n run = 'BaseServer.run',\n pipe = 'BaseServer.pipe',\n getStaticHTML = 'BaseServer.getStaticHTML',\n render = 'BaseServer.render',\n renderToResponseWithComponents = 'BaseServer.renderToResponseWithComponents',\n renderToResponse = 'BaseServer.renderToResponse',\n renderToHTML = 'BaseServer.renderToHTML',\n renderError = 'BaseServer.renderError',\n renderErrorToResponse = 'BaseServer.renderErrorToResponse',\n renderErrorToHTML = 'BaseServer.renderErrorToHTML',\n render404 = 'BaseServer.render404',\n}\n\nenum LoadComponentsSpan {\n loadDefaultErrorComponents = 'LoadComponents.loadDefaultErrorComponents',\n loadComponents = 'LoadComponents.loadComponents',\n}\n\nenum NextServerSpan {\n getRequestHandler = 'NextServer.getRequestHandler',\n getRequestHandlerWithMetadata = 'NextServer.getRequestHandlerWithMetadata',\n getServer = 'NextServer.getServer',\n getServerRequestHandler = 'NextServer.getServerRequestHandler',\n createServer = 'createServer.createServer',\n}\n\nenum NextNodeServerSpan {\n compression = 'NextNodeServer.compression',\n getBuildId = 'NextNodeServer.getBuildId',\n createComponentTree = 'NextNodeServer.createComponentTree',\n clientComponentLoading = 'NextNodeServer.clientComponentLoading',\n getLayoutOrPageModule = 'NextNodeServer.getLayoutOrPageModule',\n generateStaticRoutes = 'NextNodeServer.generateStaticRoutes',\n generateFsStaticRoutes = 'NextNodeServer.generateFsStaticRoutes',\n generatePublicRoutes = 'NextNodeServer.generatePublicRoutes',\n generateImageRoutes = 'NextNodeServer.generateImageRoutes.route',\n sendRenderResult = 'NextNodeServer.sendRenderResult',\n proxyRequest = 'NextNodeServer.proxyRequest',\n runApi = 'NextNodeServer.runApi',\n render = 'NextNodeServer.render',\n renderHTML = 'NextNodeServer.renderHTML',\n imageOptimizer = 'NextNodeServer.imageOptimizer',\n getPagePath = 'NextNodeServer.getPagePath',\n getRoutesManifest = 'NextNodeServer.getRoutesManifest',\n findPageComponents = 'NextNodeServer.findPageComponents',\n getFontManifest = 'NextNodeServer.getFontManifest',\n getServerComponentManifest = 'NextNodeServer.getServerComponentManifest',\n getRequestHandler = 'NextNodeServer.getRequestHandler',\n renderToHTML = 'NextNodeServer.renderToHTML',\n renderError = 'NextNodeServer.renderError',\n renderErrorToHTML = 'NextNodeServer.renderErrorToHTML',\n render404 = 'NextNodeServer.render404',\n startResponse = 'NextNodeServer.startResponse',\n\n // nested inner span, does not require parent scope name\n route = 'route',\n onProxyReq = 'onProxyReq',\n apiResolver = 'apiResolver',\n internalFetch = 'internalFetch',\n}\n\nenum StartServerSpan {\n startServer = 'startServer.startServer',\n}\n\nenum RenderSpan {\n getServerSideProps = 'Render.getServerSideProps',\n getStaticProps = 'Render.getStaticProps',\n renderToString = 'Render.renderToString',\n renderDocument = 'Render.renderDocument',\n createBodyResult = 'Render.createBodyResult',\n}\n\nenum AppRenderSpan {\n renderToString = 'AppRender.renderToString',\n renderToReadableStream = 'AppRender.renderToReadableStream',\n getBodyResult = 'AppRender.getBodyResult',\n fetch = 'AppRender.fetch',\n}\n\nenum RouterSpan {\n executeRoute = 'Router.executeRoute',\n}\n\nenum NodeSpan {\n runHandler = 'Node.runHandler',\n}\n\nenum AppRouteRouteHandlersSpan {\n runHandler = 'AppRouteRouteHandlers.runHandler',\n}\n\nenum ResolveMetadataSpan {\n generateMetadata = 'ResolveMetadata.generateMetadata',\n generateViewport = 'ResolveMetadata.generateViewport',\n}\n\nenum MiddlewareSpan {\n execute = 'Middleware.execute',\n}\n\ntype SpanTypes =\n | `${BaseServerSpan}`\n | `${LoadComponentsSpan}`\n | `${NextServerSpan}`\n | `${StartServerSpan}`\n | `${NextNodeServerSpan}`\n | `${RenderSpan}`\n | `${RouterSpan}`\n | `${AppRenderSpan}`\n | `${NodeSpan}`\n | `${AppRouteRouteHandlersSpan}`\n | `${ResolveMetadataSpan}`\n | `${MiddlewareSpan}`\n\n// This list is used to filter out spans that are not relevant to the user\nexport const NextVanillaSpanAllowlist = new Set([\n MiddlewareSpan.execute,\n BaseServerSpan.handleRequest,\n RenderSpan.getServerSideProps,\n RenderSpan.getStaticProps,\n AppRenderSpan.fetch,\n AppRenderSpan.getBodyResult,\n RenderSpan.renderDocument,\n NodeSpan.runHandler,\n AppRouteRouteHandlersSpan.runHandler,\n ResolveMetadataSpan.generateMetadata,\n ResolveMetadataSpan.generateViewport,\n NextNodeServerSpan.createComponentTree,\n NextNodeServerSpan.findPageComponents,\n NextNodeServerSpan.getLayoutOrPageModule,\n NextNodeServerSpan.startResponse,\n NextNodeServerSpan.clientComponentLoading,\n])\n\n// These Spans are allowed to be always logged\n// when the otel log prefix env is set\nexport const LogSpanAllowList = new Set([\n NextNodeServerSpan.findPageComponents,\n NextNodeServerSpan.createComponentTree,\n NextNodeServerSpan.clientComponentLoading,\n])\n\nexport {\n BaseServerSpan,\n LoadComponentsSpan,\n NextServerSpan,\n NextNodeServerSpan,\n StartServerSpan,\n RenderSpan,\n RouterSpan,\n AppRenderSpan,\n NodeSpan,\n AppRouteRouteHandlersSpan,\n ResolveMetadataSpan,\n MiddlewareSpan,\n}\n\nexport type { SpanTypes }\n"],"names":["BaseServerSpan","LoadComponentsSpan","NextServerSpan","NextNodeServerSpan","StartServerSpan","RenderSpan","AppRenderSpan","RouterSpan","NodeSpan","AppRouteRouteHandlersSpan","ResolveMetadataSpan","MiddlewareSpan","NextVanillaSpanAllowlist","Set","LogSpanAllowList"],"mappings":"AAAA;;;;;EAKE,GAEF,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE5C,IAAKA,iBAAAA,WAAAA,GAAAA,SAAAA,cAAAA;;;;;;;;;;;;;WAAAA;EAAAA,kBAAAA,CAAAA;AAeL,IAAKC,qBAAAA,WAAAA,GAAAA,SAAAA,kBAAAA;;;WAAAA;EAAAA,sBAAAA,CAAAA;AAKL,IAAKC,iBAAAA,WAAAA,GAAAA,SAAAA,cAAAA;;;;;;WAAAA;EAAAA,kBAAAA,CAAAA;AAQL,IAAKC,qBAAAA,WAAAA,GAAAA,SAAAA,kBAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4BH,wDAAwD;;;;;WA5BrDA;EAAAA,sBAAAA,CAAAA;AAmCL,IAAKC,kBAAAA,WAAAA,GAAAA,SAAAA,eAAAA;;WAAAA;EAAAA,mBAAAA,CAAAA;AAIL,IAAKC,aAAAA,WAAAA,GAAAA,SAAAA,UAAAA;;;;;;WAAAA;EAAAA,cAAAA,CAAAA;AAQL,IAAKC,gBAAAA,WAAAA,GAAAA,SAAAA,aAAAA;;;;;WAAAA;EAAAA,iBAAAA,CAAAA;AAOL,IAAKC,aAAAA,WAAAA,GAAAA,SAAAA,UAAAA;;WAAAA;EAAAA,cAAAA,CAAAA;AAIL,IAAKC,WAAAA,WAAAA,GAAAA,SAAAA,QAAAA;;WAAAA;EAAAA,YAAAA,CAAAA;AAIL,IAAKC,4BAAAA,WAAAA,GAAAA,SAAAA,yBAAAA;;WAAAA;EAAAA,6BAAAA,CAAAA;AAIL,IAAKC,sBAAAA,WAAAA,GAAAA,SAAAA,mBAAAA;;;WAAAA;EAAAA,uBAAAA,CAAAA;AAKL,IAAKC,iBAAAA,WAAAA,GAAAA,SAAAA,cAAAA;;WAAAA;EAAAA,kBAAAA,CAAAA;AAmBE,MAAMC,2BAA2B,IAAIC,IAAI;;;;;;;;;;;;;;;;;CAiB/C,EAAC;AAIK,MAAMC,mBAAmB,IAAID,IAAI;;;;CAIvC,EAAC","ignoreList":[0]}}, + {"offset": {"line": 217, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/is-thenable.ts"],"sourcesContent":["/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */\nexport function isThenable(\n promise: Promise | T\n): promise is Promise {\n return (\n promise !== null &&\n typeof promise === 'object' &&\n 'then' in promise &&\n typeof promise.then === 'function'\n )\n}\n"],"names":["isThenable","promise","then"],"mappings":"AAAA;;;;;CAKC,GACD;;;;AAAO,SAASA,WACdC,OAAuB;IAEvB,OACEA,YAAY,QACZ,OAAOA,YAAY,YACnB,UAAUA,WACV,OAAOA,QAAQC,IAAI,KAAK;AAE5B","ignoreList":[0]}}, + {"offset": {"line": 232, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/dist/compiled/%40opentelemetry/api/index.js"],"sourcesContent":["(()=>{\"use strict\";var e={491:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ContextAPI=void 0;const n=r(223);const a=r(172);const o=r(930);const i=\"context\";const c=new n.NoopContextManager;class ContextAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new ContextAPI}return this._instance}setGlobalContextManager(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}active(){return this._getContextManager().active()}with(e,t,r,...n){return this._getContextManager().with(e,t,r,...n)}bind(e,t){return this._getContextManager().bind(e,t)}_getContextManager(){return(0,a.getGlobal)(i)||c}disable(){this._getContextManager().disable();(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.ContextAPI=ContextAPI},930:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagAPI=void 0;const n=r(56);const a=r(912);const o=r(957);const i=r(172);const c=\"diag\";class DiagAPI{constructor(){function _logProxy(e){return function(...t){const r=(0,i.getGlobal)(\"diag\");if(!r)return;return r[e](...t)}}const e=this;const setLogger=(t,r={logLevel:o.DiagLogLevel.INFO})=>{var n,c,s;if(t===e){const t=new Error(\"Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation\");e.error((n=t.stack)!==null&&n!==void 0?n:t.message);return false}if(typeof r===\"number\"){r={logLevel:r}}const u=(0,i.getGlobal)(\"diag\");const l=(0,a.createLogLevelDiagLogger)((c=r.logLevel)!==null&&c!==void 0?c:o.DiagLogLevel.INFO,t);if(u&&!r.suppressOverrideMessage){const e=(s=(new Error).stack)!==null&&s!==void 0?s:\"\";u.warn(`Current logger will be overwritten from ${e}`);l.warn(`Current logger will overwrite one already registered from ${e}`)}return(0,i.registerGlobal)(\"diag\",l,e,true)};e.setLogger=setLogger;e.disable=()=>{(0,i.unregisterGlobal)(c,e)};e.createComponentLogger=e=>new n.DiagComponentLogger(e);e.verbose=_logProxy(\"verbose\");e.debug=_logProxy(\"debug\");e.info=_logProxy(\"info\");e.warn=_logProxy(\"warn\");e.error=_logProxy(\"error\")}static instance(){if(!this._instance){this._instance=new DiagAPI}return this._instance}}t.DiagAPI=DiagAPI},653:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.MetricsAPI=void 0;const n=r(660);const a=r(172);const o=r(930);const i=\"metrics\";class MetricsAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new MetricsAPI}return this._instance}setGlobalMeterProvider(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}getMeterProvider(){return(0,a.getGlobal)(i)||n.NOOP_METER_PROVIDER}getMeter(e,t,r){return this.getMeterProvider().getMeter(e,t,r)}disable(){(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.MetricsAPI=MetricsAPI},181:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.PropagationAPI=void 0;const n=r(172);const a=r(874);const o=r(194);const i=r(277);const c=r(369);const s=r(930);const u=\"propagation\";const l=new a.NoopTextMapPropagator;class PropagationAPI{constructor(){this.createBaggage=c.createBaggage;this.getBaggage=i.getBaggage;this.getActiveBaggage=i.getActiveBaggage;this.setBaggage=i.setBaggage;this.deleteBaggage=i.deleteBaggage}static getInstance(){if(!this._instance){this._instance=new PropagationAPI}return this._instance}setGlobalPropagator(e){return(0,n.registerGlobal)(u,e,s.DiagAPI.instance())}inject(e,t,r=o.defaultTextMapSetter){return this._getGlobalPropagator().inject(e,t,r)}extract(e,t,r=o.defaultTextMapGetter){return this._getGlobalPropagator().extract(e,t,r)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,n.unregisterGlobal)(u,s.DiagAPI.instance())}_getGlobalPropagator(){return(0,n.getGlobal)(u)||l}}t.PropagationAPI=PropagationAPI},997:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceAPI=void 0;const n=r(172);const a=r(846);const o=r(139);const i=r(607);const c=r(930);const s=\"trace\";class TraceAPI{constructor(){this._proxyTracerProvider=new a.ProxyTracerProvider;this.wrapSpanContext=o.wrapSpanContext;this.isSpanContextValid=o.isSpanContextValid;this.deleteSpan=i.deleteSpan;this.getSpan=i.getSpan;this.getActiveSpan=i.getActiveSpan;this.getSpanContext=i.getSpanContext;this.setSpan=i.setSpan;this.setSpanContext=i.setSpanContext}static getInstance(){if(!this._instance){this._instance=new TraceAPI}return this._instance}setGlobalTracerProvider(e){const t=(0,n.registerGlobal)(s,this._proxyTracerProvider,c.DiagAPI.instance());if(t){this._proxyTracerProvider.setDelegate(e)}return t}getTracerProvider(){return(0,n.getGlobal)(s)||this._proxyTracerProvider}getTracer(e,t){return this.getTracerProvider().getTracer(e,t)}disable(){(0,n.unregisterGlobal)(s,c.DiagAPI.instance());this._proxyTracerProvider=new a.ProxyTracerProvider}}t.TraceAPI=TraceAPI},277:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.deleteBaggage=t.setBaggage=t.getActiveBaggage=t.getBaggage=void 0;const n=r(491);const a=r(780);const o=(0,a.createContextKey)(\"OpenTelemetry Baggage Key\");function getBaggage(e){return e.getValue(o)||undefined}t.getBaggage=getBaggage;function getActiveBaggage(){return getBaggage(n.ContextAPI.getInstance().active())}t.getActiveBaggage=getActiveBaggage;function setBaggage(e,t){return e.setValue(o,t)}t.setBaggage=setBaggage;function deleteBaggage(e){return e.deleteValue(o)}t.deleteBaggage=deleteBaggage},993:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.BaggageImpl=void 0;class BaggageImpl{constructor(e){this._entries=e?new Map(e):new Map}getEntry(e){const t=this._entries.get(e);if(!t){return undefined}return Object.assign({},t)}getAllEntries(){return Array.from(this._entries.entries()).map((([e,t])=>[e,t]))}setEntry(e,t){const r=new BaggageImpl(this._entries);r._entries.set(e,t);return r}removeEntry(e){const t=new BaggageImpl(this._entries);t._entries.delete(e);return t}removeEntries(...e){const t=new BaggageImpl(this._entries);for(const r of e){t._entries.delete(r)}return t}clear(){return new BaggageImpl}}t.BaggageImpl=BaggageImpl},830:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataSymbol=void 0;t.baggageEntryMetadataSymbol=Symbol(\"BaggageEntryMetadata\")},369:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataFromString=t.createBaggage=void 0;const n=r(930);const a=r(993);const o=r(830);const i=n.DiagAPI.instance();function createBaggage(e={}){return new a.BaggageImpl(new Map(Object.entries(e)))}t.createBaggage=createBaggage;function baggageEntryMetadataFromString(e){if(typeof e!==\"string\"){i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`);e=\"\"}return{__TYPE__:o.baggageEntryMetadataSymbol,toString(){return e}}}t.baggageEntryMetadataFromString=baggageEntryMetadataFromString},67:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.context=void 0;const n=r(491);t.context=n.ContextAPI.getInstance()},223:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopContextManager=void 0;const n=r(780);class NoopContextManager{active(){return n.ROOT_CONTEXT}with(e,t,r,...n){return t.call(r,...n)}bind(e,t){return t}enable(){return this}disable(){return this}}t.NoopContextManager=NoopContextManager},780:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ROOT_CONTEXT=t.createContextKey=void 0;function createContextKey(e){return Symbol.for(e)}t.createContextKey=createContextKey;class BaseContext{constructor(e){const t=this;t._currentContext=e?new Map(e):new Map;t.getValue=e=>t._currentContext.get(e);t.setValue=(e,r)=>{const n=new BaseContext(t._currentContext);n._currentContext.set(e,r);return n};t.deleteValue=e=>{const r=new BaseContext(t._currentContext);r._currentContext.delete(e);return r}}}t.ROOT_CONTEXT=new BaseContext},506:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.diag=void 0;const n=r(930);t.diag=n.DiagAPI.instance()},56:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagComponentLogger=void 0;const n=r(172);class DiagComponentLogger{constructor(e){this._namespace=e.namespace||\"DiagComponentLogger\"}debug(...e){return logProxy(\"debug\",this._namespace,e)}error(...e){return logProxy(\"error\",this._namespace,e)}info(...e){return logProxy(\"info\",this._namespace,e)}warn(...e){return logProxy(\"warn\",this._namespace,e)}verbose(...e){return logProxy(\"verbose\",this._namespace,e)}}t.DiagComponentLogger=DiagComponentLogger;function logProxy(e,t,r){const a=(0,n.getGlobal)(\"diag\");if(!a){return}r.unshift(t);return a[e](...r)}},972:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagConsoleLogger=void 0;const r=[{n:\"error\",c:\"error\"},{n:\"warn\",c:\"warn\"},{n:\"info\",c:\"info\"},{n:\"debug\",c:\"debug\"},{n:\"verbose\",c:\"trace\"}];class DiagConsoleLogger{constructor(){function _consoleFunc(e){return function(...t){if(console){let r=console[e];if(typeof r!==\"function\"){r=console.log}if(typeof r===\"function\"){return r.apply(console,t)}}}}for(let e=0;e{Object.defineProperty(t,\"__esModule\",{value:true});t.createLogLevelDiagLogger=void 0;const n=r(957);function createLogLevelDiagLogger(e,t){if(en.DiagLogLevel.ALL){e=n.DiagLogLevel.ALL}t=t||{};function _filterFunc(r,n){const a=t[r];if(typeof a===\"function\"&&e>=n){return a.bind(t)}return function(){}}return{error:_filterFunc(\"error\",n.DiagLogLevel.ERROR),warn:_filterFunc(\"warn\",n.DiagLogLevel.WARN),info:_filterFunc(\"info\",n.DiagLogLevel.INFO),debug:_filterFunc(\"debug\",n.DiagLogLevel.DEBUG),verbose:_filterFunc(\"verbose\",n.DiagLogLevel.VERBOSE)}}t.createLogLevelDiagLogger=createLogLevelDiagLogger},957:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagLogLevel=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"ERROR\"]=30]=\"ERROR\";e[e[\"WARN\"]=50]=\"WARN\";e[e[\"INFO\"]=60]=\"INFO\";e[e[\"DEBUG\"]=70]=\"DEBUG\";e[e[\"VERBOSE\"]=80]=\"VERBOSE\";e[e[\"ALL\"]=9999]=\"ALL\"})(r=t.DiagLogLevel||(t.DiagLogLevel={}))},172:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.unregisterGlobal=t.getGlobal=t.registerGlobal=void 0;const n=r(200);const a=r(521);const o=r(130);const i=a.VERSION.split(\".\")[0];const c=Symbol.for(`opentelemetry.js.api.${i}`);const s=n._globalThis;function registerGlobal(e,t,r,n=false){var o;const i=s[c]=(o=s[c])!==null&&o!==void 0?o:{version:a.VERSION};if(!n&&i[e]){const t=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);r.error(t.stack||t.message);return false}if(i.version!==a.VERSION){const t=new Error(`@opentelemetry/api: Registration of version v${i.version} for ${e} does not match previously registered API v${a.VERSION}`);r.error(t.stack||t.message);return false}i[e]=t;r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`);return true}t.registerGlobal=registerGlobal;function getGlobal(e){var t,r;const n=(t=s[c])===null||t===void 0?void 0:t.version;if(!n||!(0,o.isCompatible)(n)){return}return(r=s[c])===null||r===void 0?void 0:r[e]}t.getGlobal=getGlobal;function unregisterGlobal(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);const r=s[c];if(r){delete r[e]}}t.unregisterGlobal=unregisterGlobal},130:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.isCompatible=t._makeCompatibilityCheck=void 0;const n=r(521);const a=/^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;function _makeCompatibilityCheck(e){const t=new Set([e]);const r=new Set;const n=e.match(a);if(!n){return()=>false}const o={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(o.prerelease!=null){return function isExactmatch(t){return t===e}}function _reject(e){r.add(e);return false}function _accept(e){t.add(e);return true}return function isCompatible(e){if(t.has(e)){return true}if(r.has(e)){return false}const n=e.match(a);if(!n){return _reject(e)}const i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(i.prerelease!=null){return _reject(e)}if(o.major!==i.major){return _reject(e)}if(o.major===0){if(o.minor===i.minor&&o.patch<=i.patch){return _accept(e)}return _reject(e)}if(o.minor<=i.minor){return _accept(e)}return _reject(e)}}t._makeCompatibilityCheck=_makeCompatibilityCheck;t.isCompatible=_makeCompatibilityCheck(n.VERSION)},886:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.metrics=void 0;const n=r(653);t.metrics=n.MetricsAPI.getInstance()},901:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ValueType=void 0;var r;(function(e){e[e[\"INT\"]=0]=\"INT\";e[e[\"DOUBLE\"]=1]=\"DOUBLE\"})(r=t.ValueType||(t.ValueType={}))},102:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createNoopMeter=t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=t.NOOP_OBSERVABLE_GAUGE_METRIC=t.NOOP_OBSERVABLE_COUNTER_METRIC=t.NOOP_UP_DOWN_COUNTER_METRIC=t.NOOP_HISTOGRAM_METRIC=t.NOOP_COUNTER_METRIC=t.NOOP_METER=t.NoopObservableUpDownCounterMetric=t.NoopObservableGaugeMetric=t.NoopObservableCounterMetric=t.NoopObservableMetric=t.NoopHistogramMetric=t.NoopUpDownCounterMetric=t.NoopCounterMetric=t.NoopMetric=t.NoopMeter=void 0;class NoopMeter{constructor(){}createHistogram(e,r){return t.NOOP_HISTOGRAM_METRIC}createCounter(e,r){return t.NOOP_COUNTER_METRIC}createUpDownCounter(e,r){return t.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(e,r){return t.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(e,r){return t.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(e,r){return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(e,t){}removeBatchObservableCallback(e){}}t.NoopMeter=NoopMeter;class NoopMetric{}t.NoopMetric=NoopMetric;class NoopCounterMetric extends NoopMetric{add(e,t){}}t.NoopCounterMetric=NoopCounterMetric;class NoopUpDownCounterMetric extends NoopMetric{add(e,t){}}t.NoopUpDownCounterMetric=NoopUpDownCounterMetric;class NoopHistogramMetric extends NoopMetric{record(e,t){}}t.NoopHistogramMetric=NoopHistogramMetric;class NoopObservableMetric{addCallback(e){}removeCallback(e){}}t.NoopObservableMetric=NoopObservableMetric;class NoopObservableCounterMetric extends NoopObservableMetric{}t.NoopObservableCounterMetric=NoopObservableCounterMetric;class NoopObservableGaugeMetric extends NoopObservableMetric{}t.NoopObservableGaugeMetric=NoopObservableGaugeMetric;class NoopObservableUpDownCounterMetric extends NoopObservableMetric{}t.NoopObservableUpDownCounterMetric=NoopObservableUpDownCounterMetric;t.NOOP_METER=new NoopMeter;t.NOOP_COUNTER_METRIC=new NoopCounterMetric;t.NOOP_HISTOGRAM_METRIC=new NoopHistogramMetric;t.NOOP_UP_DOWN_COUNTER_METRIC=new NoopUpDownCounterMetric;t.NOOP_OBSERVABLE_COUNTER_METRIC=new NoopObservableCounterMetric;t.NOOP_OBSERVABLE_GAUGE_METRIC=new NoopObservableGaugeMetric;t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new NoopObservableUpDownCounterMetric;function createNoopMeter(){return t.NOOP_METER}t.createNoopMeter=createNoopMeter},660:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NOOP_METER_PROVIDER=t.NoopMeterProvider=void 0;const n=r(102);class NoopMeterProvider{getMeter(e,t,r){return n.NOOP_METER}}t.NoopMeterProvider=NoopMeterProvider;t.NOOP_METER_PROVIDER=new NoopMeterProvider},200:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(46),t)},651:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t._globalThis=void 0;t._globalThis=typeof globalThis===\"object\"?globalThis:global},46:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(651),t)},939:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.propagation=void 0;const n=r(181);t.propagation=n.PropagationAPI.getInstance()},874:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTextMapPropagator=void 0;class NoopTextMapPropagator{inject(e,t){}extract(e,t){return e}fields(){return[]}}t.NoopTextMapPropagator=NoopTextMapPropagator},194:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.defaultTextMapSetter=t.defaultTextMapGetter=void 0;t.defaultTextMapGetter={get(e,t){if(e==null){return undefined}return e[t]},keys(e){if(e==null){return[]}return Object.keys(e)}};t.defaultTextMapSetter={set(e,t,r){if(e==null){return}e[t]=r}}},845:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.trace=void 0;const n=r(997);t.trace=n.TraceAPI.getInstance()},403:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NonRecordingSpan=void 0;const n=r(476);class NonRecordingSpan{constructor(e=n.INVALID_SPAN_CONTEXT){this._spanContext=e}spanContext(){return this._spanContext}setAttribute(e,t){return this}setAttributes(e){return this}addEvent(e,t){return this}setStatus(e){return this}updateName(e){return this}end(e){}isRecording(){return false}recordException(e,t){}}t.NonRecordingSpan=NonRecordingSpan},614:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracer=void 0;const n=r(491);const a=r(607);const o=r(403);const i=r(139);const c=n.ContextAPI.getInstance();class NoopTracer{startSpan(e,t,r=c.active()){const n=Boolean(t===null||t===void 0?void 0:t.root);if(n){return new o.NonRecordingSpan}const s=r&&(0,a.getSpanContext)(r);if(isSpanContext(s)&&(0,i.isSpanContextValid)(s)){return new o.NonRecordingSpan(s)}else{return new o.NonRecordingSpan}}startActiveSpan(e,t,r,n){let o;let i;let s;if(arguments.length<2){return}else if(arguments.length===2){s=t}else if(arguments.length===3){o=t;s=r}else{o=t;i=r;s=n}const u=i!==null&&i!==void 0?i:c.active();const l=this.startSpan(e,o,u);const g=(0,a.setSpan)(u,l);return c.with(g,s,undefined,l)}}t.NoopTracer=NoopTracer;function isSpanContext(e){return typeof e===\"object\"&&typeof e[\"spanId\"]===\"string\"&&typeof e[\"traceId\"]===\"string\"&&typeof e[\"traceFlags\"]===\"number\"}},124:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracerProvider=void 0;const n=r(614);class NoopTracerProvider{getTracer(e,t,r){return new n.NoopTracer}}t.NoopTracerProvider=NoopTracerProvider},125:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracer=void 0;const n=r(614);const a=new n.NoopTracer;class ProxyTracer{constructor(e,t,r,n){this._provider=e;this.name=t;this.version=r;this.options=n}startSpan(e,t,r){return this._getTracer().startSpan(e,t,r)}startActiveSpan(e,t,r,n){const a=this._getTracer();return Reflect.apply(a.startActiveSpan,a,arguments)}_getTracer(){if(this._delegate){return this._delegate}const e=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!e){return a}this._delegate=e;return this._delegate}}t.ProxyTracer=ProxyTracer},846:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracerProvider=void 0;const n=r(125);const a=r(124);const o=new a.NoopTracerProvider;class ProxyTracerProvider{getTracer(e,t,r){var a;return(a=this.getDelegateTracer(e,t,r))!==null&&a!==void 0?a:new n.ProxyTracer(this,e,t,r)}getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:o}setDelegate(e){this._delegate=e}getDelegateTracer(e,t,r){var n;return(n=this._delegate)===null||n===void 0?void 0:n.getTracer(e,t,r)}}t.ProxyTracerProvider=ProxyTracerProvider},996:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SamplingDecision=void 0;var r;(function(e){e[e[\"NOT_RECORD\"]=0]=\"NOT_RECORD\";e[e[\"RECORD\"]=1]=\"RECORD\";e[e[\"RECORD_AND_SAMPLED\"]=2]=\"RECORD_AND_SAMPLED\"})(r=t.SamplingDecision||(t.SamplingDecision={}))},607:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.getSpanContext=t.setSpanContext=t.deleteSpan=t.setSpan=t.getActiveSpan=t.getSpan=void 0;const n=r(780);const a=r(403);const o=r(491);const i=(0,n.createContextKey)(\"OpenTelemetry Context Key SPAN\");function getSpan(e){return e.getValue(i)||undefined}t.getSpan=getSpan;function getActiveSpan(){return getSpan(o.ContextAPI.getInstance().active())}t.getActiveSpan=getActiveSpan;function setSpan(e,t){return e.setValue(i,t)}t.setSpan=setSpan;function deleteSpan(e){return e.deleteValue(i)}t.deleteSpan=deleteSpan;function setSpanContext(e,t){return setSpan(e,new a.NonRecordingSpan(t))}t.setSpanContext=setSpanContext;function getSpanContext(e){var t;return(t=getSpan(e))===null||t===void 0?void 0:t.spanContext()}t.getSpanContext=getSpanContext},325:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceStateImpl=void 0;const n=r(564);const a=32;const o=512;const i=\",\";const c=\"=\";class TraceStateImpl{constructor(e){this._internalState=new Map;if(e)this._parse(e)}set(e,t){const r=this._clone();if(r._internalState.has(e)){r._internalState.delete(e)}r._internalState.set(e,t);return r}unset(e){const t=this._clone();t._internalState.delete(e);return t}get(e){return this._internalState.get(e)}serialize(){return this._keys().reduce(((e,t)=>{e.push(t+c+this.get(t));return e}),[]).join(i)}_parse(e){if(e.length>o)return;this._internalState=e.split(i).reverse().reduce(((e,t)=>{const r=t.trim();const a=r.indexOf(c);if(a!==-1){const o=r.slice(0,a);const i=r.slice(a+1,t.length);if((0,n.validateKey)(o)&&(0,n.validateValue)(i)){e.set(o,i)}else{}}return e}),new Map);if(this._internalState.size>a){this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,a))}}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){const e=new TraceStateImpl;e._internalState=new Map(this._internalState);return e}}t.TraceStateImpl=TraceStateImpl},564:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.validateValue=t.validateKey=void 0;const r=\"[_0-9a-z-*/]\";const n=`[a-z]${r}{0,255}`;const a=`[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`;const o=new RegExp(`^(?:${n}|${a})$`);const i=/^[ -~]{0,255}[!-~]$/;const c=/,|=/;function validateKey(e){return o.test(e)}t.validateKey=validateKey;function validateValue(e){return i.test(e)&&!c.test(e)}t.validateValue=validateValue},98:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createTraceState=void 0;const n=r(325);function createTraceState(e){return new n.TraceStateImpl(e)}t.createTraceState=createTraceState},476:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.INVALID_SPAN_CONTEXT=t.INVALID_TRACEID=t.INVALID_SPANID=void 0;const n=r(475);t.INVALID_SPANID=\"0000000000000000\";t.INVALID_TRACEID=\"00000000000000000000000000000000\";t.INVALID_SPAN_CONTEXT={traceId:t.INVALID_TRACEID,spanId:t.INVALID_SPANID,traceFlags:n.TraceFlags.NONE}},357:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanKind=void 0;var r;(function(e){e[e[\"INTERNAL\"]=0]=\"INTERNAL\";e[e[\"SERVER\"]=1]=\"SERVER\";e[e[\"CLIENT\"]=2]=\"CLIENT\";e[e[\"PRODUCER\"]=3]=\"PRODUCER\";e[e[\"CONSUMER\"]=4]=\"CONSUMER\"})(r=t.SpanKind||(t.SpanKind={}))},139:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.wrapSpanContext=t.isSpanContextValid=t.isValidSpanId=t.isValidTraceId=void 0;const n=r(476);const a=r(403);const o=/^([0-9a-f]{32})$/i;const i=/^[0-9a-f]{16}$/i;function isValidTraceId(e){return o.test(e)&&e!==n.INVALID_TRACEID}t.isValidTraceId=isValidTraceId;function isValidSpanId(e){return i.test(e)&&e!==n.INVALID_SPANID}t.isValidSpanId=isValidSpanId;function isSpanContextValid(e){return isValidTraceId(e.traceId)&&isValidSpanId(e.spanId)}t.isSpanContextValid=isSpanContextValid;function wrapSpanContext(e){return new a.NonRecordingSpan(e)}t.wrapSpanContext=wrapSpanContext},847:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanStatusCode=void 0;var r;(function(e){e[e[\"UNSET\"]=0]=\"UNSET\";e[e[\"OK\"]=1]=\"OK\";e[e[\"ERROR\"]=2]=\"ERROR\"})(r=t.SpanStatusCode||(t.SpanStatusCode={}))},475:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceFlags=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"SAMPLED\"]=1]=\"SAMPLED\"})(r=t.TraceFlags||(t.TraceFlags={}))},521:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.VERSION=void 0;t.VERSION=\"1.6.0\"}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var a=t[r]={exports:{}};var o=true;try{e[r].call(a.exports,a,a.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return a.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r={};(()=>{var e=r;Object.defineProperty(e,\"__esModule\",{value:true});e.trace=e.propagation=e.metrics=e.diag=e.context=e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=e.isValidSpanId=e.isValidTraceId=e.isSpanContextValid=e.createTraceState=e.TraceFlags=e.SpanStatusCode=e.SpanKind=e.SamplingDecision=e.ProxyTracerProvider=e.ProxyTracer=e.defaultTextMapSetter=e.defaultTextMapGetter=e.ValueType=e.createNoopMeter=e.DiagLogLevel=e.DiagConsoleLogger=e.ROOT_CONTEXT=e.createContextKey=e.baggageEntryMetadataFromString=void 0;var t=__nccwpck_require__(369);Object.defineProperty(e,\"baggageEntryMetadataFromString\",{enumerable:true,get:function(){return t.baggageEntryMetadataFromString}});var n=__nccwpck_require__(780);Object.defineProperty(e,\"createContextKey\",{enumerable:true,get:function(){return n.createContextKey}});Object.defineProperty(e,\"ROOT_CONTEXT\",{enumerable:true,get:function(){return n.ROOT_CONTEXT}});var a=__nccwpck_require__(972);Object.defineProperty(e,\"DiagConsoleLogger\",{enumerable:true,get:function(){return a.DiagConsoleLogger}});var o=__nccwpck_require__(957);Object.defineProperty(e,\"DiagLogLevel\",{enumerable:true,get:function(){return o.DiagLogLevel}});var i=__nccwpck_require__(102);Object.defineProperty(e,\"createNoopMeter\",{enumerable:true,get:function(){return i.createNoopMeter}});var c=__nccwpck_require__(901);Object.defineProperty(e,\"ValueType\",{enumerable:true,get:function(){return c.ValueType}});var s=__nccwpck_require__(194);Object.defineProperty(e,\"defaultTextMapGetter\",{enumerable:true,get:function(){return s.defaultTextMapGetter}});Object.defineProperty(e,\"defaultTextMapSetter\",{enumerable:true,get:function(){return s.defaultTextMapSetter}});var u=__nccwpck_require__(125);Object.defineProperty(e,\"ProxyTracer\",{enumerable:true,get:function(){return u.ProxyTracer}});var l=__nccwpck_require__(846);Object.defineProperty(e,\"ProxyTracerProvider\",{enumerable:true,get:function(){return l.ProxyTracerProvider}});var g=__nccwpck_require__(996);Object.defineProperty(e,\"SamplingDecision\",{enumerable:true,get:function(){return g.SamplingDecision}});var p=__nccwpck_require__(357);Object.defineProperty(e,\"SpanKind\",{enumerable:true,get:function(){return p.SpanKind}});var d=__nccwpck_require__(847);Object.defineProperty(e,\"SpanStatusCode\",{enumerable:true,get:function(){return d.SpanStatusCode}});var _=__nccwpck_require__(475);Object.defineProperty(e,\"TraceFlags\",{enumerable:true,get:function(){return _.TraceFlags}});var f=__nccwpck_require__(98);Object.defineProperty(e,\"createTraceState\",{enumerable:true,get:function(){return f.createTraceState}});var b=__nccwpck_require__(139);Object.defineProperty(e,\"isSpanContextValid\",{enumerable:true,get:function(){return b.isSpanContextValid}});Object.defineProperty(e,\"isValidTraceId\",{enumerable:true,get:function(){return b.isValidTraceId}});Object.defineProperty(e,\"isValidSpanId\",{enumerable:true,get:function(){return b.isValidSpanId}});var v=__nccwpck_require__(476);Object.defineProperty(e,\"INVALID_SPANID\",{enumerable:true,get:function(){return v.INVALID_SPANID}});Object.defineProperty(e,\"INVALID_TRACEID\",{enumerable:true,get:function(){return v.INVALID_TRACEID}});Object.defineProperty(e,\"INVALID_SPAN_CONTEXT\",{enumerable:true,get:function(){return v.INVALID_SPAN_CONTEXT}});const O=__nccwpck_require__(67);Object.defineProperty(e,\"context\",{enumerable:true,get:function(){return O.context}});const P=__nccwpck_require__(506);Object.defineProperty(e,\"diag\",{enumerable:true,get:function(){return P.diag}});const N=__nccwpck_require__(886);Object.defineProperty(e,\"metrics\",{enumerable:true,get:function(){return N.metrics}});const S=__nccwpck_require__(939);Object.defineProperty(e,\"propagation\",{enumerable:true,get:function(){return S.propagation}});const C=__nccwpck_require__(845);Object.defineProperty(e,\"trace\",{enumerable:true,get:function(){return C.trace}});e[\"default\"]={context:O.context,diag:P.diag,metrics:N.metrics,propagation:S.propagation,trace:C.trace}})();module.exports=r})();"],"names":[],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 1718, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/lib/trace/tracer.ts"],"sourcesContent":["import type { FetchEventResult } from '../../web/types'\nimport type { TextMapSetter } from '@opentelemetry/api'\nimport type { SpanTypes } from './constants'\nimport { LogSpanAllowList, NextVanillaSpanAllowlist } from './constants'\n\nimport type {\n ContextAPI,\n Span,\n SpanOptions,\n Tracer,\n AttributeValue,\n TextMapGetter,\n} from 'next/dist/compiled/@opentelemetry/api'\nimport { isThenable } from '../../../shared/lib/is-thenable'\n\nconst NEXT_OTEL_PERFORMANCE_PREFIX = process.env.NEXT_OTEL_PERFORMANCE_PREFIX\n\nlet api: typeof import('next/dist/compiled/@opentelemetry/api')\n\n// we want to allow users to use their own version of @opentelemetry/api if they\n// want to, so we try to require it first, and if it fails we fall back to the\n// version that is bundled with Next.js\n// this is because @opentelemetry/api has to be synced with the version of\n// @opentelemetry/tracing that is used, and we don't want to force users to use\n// the version that is bundled with Next.js.\n// the API is ~stable, so this should be fine\nif (process.env.NEXT_RUNTIME === 'edge') {\n api = require('@opentelemetry/api') as typeof import('@opentelemetry/api')\n} else {\n try {\n api = require('@opentelemetry/api') as typeof import('@opentelemetry/api')\n } catch (err) {\n api =\n require('next/dist/compiled/@opentelemetry/api') as typeof import('next/dist/compiled/@opentelemetry/api')\n }\n}\n\nconst { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } =\n api\n\nexport class BubbledError extends Error {\n constructor(\n public readonly bubble?: boolean,\n public readonly result?: FetchEventResult\n ) {\n super()\n }\n}\n\nexport function isBubbledError(error: unknown): error is BubbledError {\n if (typeof error !== 'object' || error === null) return false\n return error instanceof BubbledError\n}\n\nconst closeSpanWithError = (span: Span, error?: Error) => {\n if (isBubbledError(error) && error.bubble) {\n span.setAttribute('next.bubble', true)\n } else {\n if (error) {\n span.recordException(error)\n span.setAttribute('error.type', error.name)\n }\n span.setStatus({ code: SpanStatusCode.ERROR, message: error?.message })\n }\n span.end()\n}\n\ntype TracerSpanOptions = Omit & {\n parentSpan?: Span\n spanName?: string\n attributes?: Partial>\n hideSpan?: boolean\n}\n\ninterface NextTracer {\n getContext(): ContextAPI\n\n /**\n * Instruments a function by automatically creating a span activated on its\n * scope.\n *\n * The span will automatically be finished when one of these conditions is\n * met:\n *\n * * The function returns a promise, in which case the span will finish when\n * the promise is resolved or rejected.\n * * The function takes a callback as its second parameter, in which case the\n * span will finish when that callback is called.\n * * The function doesn't accept a callback and doesn't return a promise, in\n * which case the span will finish at the end of the function execution.\n *\n */\n trace(\n type: SpanTypes,\n fn: (span?: Span, done?: (error?: Error) => any) => Promise\n ): Promise\n trace(\n type: SpanTypes,\n fn: (span?: Span, done?: (error?: Error) => any) => T\n ): T\n trace(\n type: SpanTypes,\n options: TracerSpanOptions,\n fn: (span?: Span, done?: (error?: Error) => any) => Promise\n ): Promise\n trace(\n type: SpanTypes,\n options: TracerSpanOptions,\n fn: (span?: Span, done?: (error?: Error) => any) => T\n ): T\n\n /**\n * Wrap a function to automatically create a span activated on its\n * scope when it's called.\n *\n * The span will automatically be finished when one of these conditions is\n * met:\n *\n * * The function returns a promise, in which case the span will finish when\n * the promise is resolved or rejected.\n * * The function takes a callback as its last parameter, in which case the\n * span will finish when that callback is called.\n * * The function doesn't accept a callback and doesn't return a promise, in\n * which case the span will finish at the end of the function execution.\n */\n wrap) => any>(type: SpanTypes, fn: T): T\n wrap) => any>(\n type: SpanTypes,\n options: TracerSpanOptions,\n fn: T\n ): T\n wrap) => any>(\n type: SpanTypes,\n options: (...args: any[]) => TracerSpanOptions,\n fn: T\n ): T\n\n /**\n * Starts and returns a new Span representing a logical unit of work.\n *\n * This method do NOT modify the current Context by default. In result, any inner span will not\n * automatically set its parent context to the span created by this method unless manually activate\n * context via `tracer.getContext().with`. `trace`, or `wrap` is generally recommended as it gracefully\n * handles context activation. (ref: https://github.com/open-telemetry/opentelemetry-js/issues/1923)\n */\n startSpan(type: SpanTypes): Span\n startSpan(type: SpanTypes, options: TracerSpanOptions): Span\n\n /**\n * Returns currently activated span if current context is in the scope of the span.\n * Returns undefined otherwise.\n */\n getActiveScopeSpan(): Span | undefined\n\n /**\n * Returns trace propagation data for the currently active context. The format is equal to data provided\n * through the OpenTelemetry propagator API.\n */\n getTracePropagationData(): ClientTraceDataEntry[]\n}\n\ntype NextAttributeNames =\n | 'next.route'\n | 'next.page'\n | 'next.rsc'\n | 'next.segment'\n | 'next.span_name'\n | 'next.span_type'\n | 'next.clientComponentLoadCount'\ntype OTELAttributeNames = `http.${string}` | `net.${string}`\ntype AttributeNames = NextAttributeNames | OTELAttributeNames\n\n/** we use this map to propagate attributes from nested spans to the top span */\nconst rootSpanAttributesStore = new Map<\n number,\n Map\n>()\nconst rootSpanIdKey = api.createContextKey('next.rootSpanId')\nlet lastSpanId = 0\nconst getSpanId = () => lastSpanId++\n\nexport interface ClientTraceDataEntry {\n key: string\n value: string\n}\n\nconst clientTraceDataSetter: TextMapSetter = {\n set(carrier, key, value) {\n carrier.push({\n key,\n value,\n })\n },\n}\n\nclass NextTracerImpl implements NextTracer {\n /**\n * Returns an instance to the trace with configured name.\n * Since wrap / trace can be defined in any place prior to actual trace subscriber initialization,\n * This should be lazily evaluated.\n */\n private getTracerInstance(): Tracer {\n return trace.getTracer('next.js', '0.0.1')\n }\n\n public getContext(): ContextAPI {\n return context\n }\n\n public getTracePropagationData(): ClientTraceDataEntry[] {\n const activeContext = context.active()\n const entries: ClientTraceDataEntry[] = []\n propagation.inject(activeContext, entries, clientTraceDataSetter)\n return entries\n }\n\n public getActiveScopeSpan(): Span | undefined {\n return trace.getSpan(context?.active())\n }\n\n public withPropagatedContext(\n carrier: C,\n fn: () => T,\n getter?: TextMapGetter\n ): T {\n const activeContext = context.active()\n if (trace.getSpanContext(activeContext)) {\n // Active span is already set, too late to propagate.\n return fn()\n }\n const remoteContext = propagation.extract(activeContext, carrier, getter)\n return context.with(remoteContext, fn)\n }\n\n // Trace, wrap implementation is inspired by datadog trace implementation\n // (https://datadoghq.dev/dd-trace-js/interfaces/tracer.html#trace).\n public trace(\n type: SpanTypes,\n fn: (span?: Span, done?: (error?: Error) => any) => Promise\n ): Promise\n public trace(\n type: SpanTypes,\n fn: (span?: Span, done?: (error?: Error) => any) => T\n ): T\n public trace(\n type: SpanTypes,\n options: TracerSpanOptions,\n fn: (span?: Span, done?: (error?: Error) => any) => Promise\n ): Promise\n public trace(\n type: SpanTypes,\n options: TracerSpanOptions,\n fn: (span?: Span, done?: (error?: Error) => any) => T\n ): T\n public trace(...args: Array) {\n const [type, fnOrOptions, fnOrEmpty] = args\n\n // coerce options form overload\n const {\n fn,\n options,\n }: {\n fn: (span?: Span, done?: (error?: Error) => any) => T | Promise\n options: TracerSpanOptions\n } =\n typeof fnOrOptions === 'function'\n ? {\n fn: fnOrOptions,\n options: {},\n }\n : {\n fn: fnOrEmpty,\n options: { ...fnOrOptions },\n }\n\n const spanName = options.spanName ?? type\n\n if (\n (!NextVanillaSpanAllowlist.has(type) &&\n process.env.NEXT_OTEL_VERBOSE !== '1') ||\n options.hideSpan\n ) {\n return fn()\n }\n\n // Trying to get active scoped span to assign parent. If option specifies parent span manually, will try to use it.\n let spanContext = this.getSpanContext(\n options?.parentSpan ?? this.getActiveScopeSpan()\n )\n\n if (!spanContext) {\n spanContext = context?.active() ?? ROOT_CONTEXT\n }\n // Check if there's already a root span in the store for this trace\n // We are intentionally not checking whether there is an active context\n // from outside of nextjs to ensure that we can provide the same level\n // of telemetry when using a custom server\n const existingRootSpanId = spanContext.getValue(rootSpanIdKey)\n const isRootSpan =\n typeof existingRootSpanId !== 'number' ||\n !rootSpanAttributesStore.has(existingRootSpanId)\n\n const spanId = getSpanId()\n\n options.attributes = {\n 'next.span_name': spanName,\n 'next.span_type': type,\n ...options.attributes,\n }\n\n return context.with(spanContext.setValue(rootSpanIdKey, spanId), () =>\n this.getTracerInstance().startActiveSpan(\n spanName,\n options,\n (span: Span) => {\n let startTime: number | undefined\n if (\n NEXT_OTEL_PERFORMANCE_PREFIX &&\n type &&\n LogSpanAllowList.has(type)\n ) {\n startTime =\n 'performance' in globalThis && 'measure' in performance\n ? globalThis.performance.now()\n : undefined\n }\n\n let cleanedUp = false\n const onCleanup = () => {\n if (cleanedUp) return\n cleanedUp = true\n rootSpanAttributesStore.delete(spanId)\n if (startTime) {\n performance.measure(\n `${NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(\n type.split('.').pop() || ''\n ).replace(\n /[A-Z]/g,\n (match: string) => '-' + match.toLowerCase()\n )}`,\n {\n start: startTime,\n end: performance.now(),\n }\n )\n }\n }\n\n if (isRootSpan) {\n rootSpanAttributesStore.set(\n spanId,\n new Map(\n Object.entries(options.attributes ?? {}) as [\n AttributeNames,\n AttributeValue | undefined,\n ][]\n )\n )\n }\n if (fn.length > 1) {\n try {\n return fn(span, (err) => closeSpanWithError(span, err))\n } catch (err: any) {\n closeSpanWithError(span, err)\n throw err\n } finally {\n onCleanup()\n }\n }\n\n try {\n const result = fn(span)\n if (isThenable(result)) {\n // If there's error make sure it throws\n return result\n .then((res) => {\n span.end()\n // Need to pass down the promise result,\n // it could be react stream response with error { error, stream }\n return res\n })\n .catch((err) => {\n closeSpanWithError(span, err)\n throw err\n })\n .finally(onCleanup)\n } else {\n span.end()\n onCleanup()\n }\n\n return result\n } catch (err: any) {\n closeSpanWithError(span, err)\n onCleanup()\n throw err\n }\n }\n )\n )\n }\n\n public wrap) => any>(type: SpanTypes, fn: T): T\n public wrap) => any>(\n type: SpanTypes,\n options: TracerSpanOptions,\n fn: T\n ): T\n public wrap) => any>(\n type: SpanTypes,\n options: (...args: any[]) => TracerSpanOptions,\n fn: T\n ): T\n public wrap(...args: Array) {\n const tracer = this\n const [name, options, fn] =\n args.length === 3 ? args : [args[0], {}, args[1]]\n\n if (\n !NextVanillaSpanAllowlist.has(name) &&\n process.env.NEXT_OTEL_VERBOSE !== '1'\n ) {\n return fn\n }\n\n return function (this: any) {\n let optionsObj = options\n if (typeof optionsObj === 'function' && typeof fn === 'function') {\n optionsObj = optionsObj.apply(this, arguments)\n }\n\n const lastArgId = arguments.length - 1\n const cb = arguments[lastArgId]\n\n if (typeof cb === 'function') {\n const scopeBoundCb = tracer.getContext().bind(context.active(), cb)\n return tracer.trace(name, optionsObj, (_span, done) => {\n arguments[lastArgId] = function (err: any) {\n done?.(err)\n return scopeBoundCb.apply(this, arguments)\n }\n\n return fn.apply(this, arguments)\n })\n } else {\n return tracer.trace(name, optionsObj, () => fn.apply(this, arguments))\n }\n }\n }\n\n public startSpan(type: SpanTypes): Span\n public startSpan(type: SpanTypes, options: TracerSpanOptions): Span\n public startSpan(...args: Array): Span {\n const [type, options]: [string, TracerSpanOptions | undefined] = args as any\n\n const spanContext = this.getSpanContext(\n options?.parentSpan ?? this.getActiveScopeSpan()\n )\n return this.getTracerInstance().startSpan(type, options, spanContext)\n }\n\n private getSpanContext(parentSpan?: Span) {\n const spanContext = parentSpan\n ? trace.setSpan(context.active(), parentSpan)\n : undefined\n\n return spanContext\n }\n\n public getRootSpanAttributes() {\n const spanId = context.active().getValue(rootSpanIdKey) as number\n return rootSpanAttributesStore.get(spanId)\n }\n\n public setRootSpanAttribute(key: AttributeNames, value: AttributeValue) {\n const spanId = context.active().getValue(rootSpanIdKey) as number\n const attributes = rootSpanAttributesStore.get(spanId)\n if (attributes && !attributes.has(key)) {\n attributes.set(key, value)\n }\n }\n}\n\nconst getTracer = (() => {\n const tracer = new NextTracerImpl()\n\n return () => tracer\n})()\n\nexport { getTracer, SpanStatusCode, SpanKind }\nexport type { NextTracer, Span, SpanOptions, ContextAPI, TracerSpanOptions }\n"],"names":["LogSpanAllowList","NextVanillaSpanAllowlist","isThenable","NEXT_OTEL_PERFORMANCE_PREFIX","process","env","api","NEXT_RUNTIME","require","err","context","propagation","trace","SpanStatusCode","SpanKind","ROOT_CONTEXT","BubbledError","Error","constructor","bubble","result","isBubbledError","error","closeSpanWithError","span","setAttribute","recordException","name","setStatus","code","ERROR","message","end","rootSpanAttributesStore","Map","rootSpanIdKey","createContextKey","lastSpanId","getSpanId","clientTraceDataSetter","set","carrier","key","value","push","NextTracerImpl","getTracerInstance","getTracer","getContext","getTracePropagationData","activeContext","active","entries","inject","getActiveScopeSpan","getSpan","withPropagatedContext","fn","getter","getSpanContext","remoteContext","extract","with","args","type","fnOrOptions","fnOrEmpty","options","spanName","has","NEXT_OTEL_VERBOSE","hideSpan","spanContext","parentSpan","existingRootSpanId","getValue","isRootSpan","spanId","attributes","setValue","startActiveSpan","startTime","globalThis","performance","now","undefined","cleanedUp","onCleanup","delete","measure","split","pop","replace","match","toLowerCase","start","Object","length","then","res","catch","finally","wrap","tracer","optionsObj","apply","arguments","lastArgId","cb","scopeBoundCb","bind","_span","done","startSpan","setSpan","getRootSpanAttributes","get","setRootSpanAttribute"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 1968, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/lib/constants.ts"],"sourcesContent":["import type { ServerRuntime } from '../types'\n\nexport const TEXT_PLAIN_CONTENT_TYPE_HEADER = 'text/plain'\nexport const HTML_CONTENT_TYPE_HEADER = 'text/html; charset=utf-8'\nexport const JSON_CONTENT_TYPE_HEADER = 'application/json; charset=utf-8'\nexport const NEXT_QUERY_PARAM_PREFIX = 'nxtP'\nexport const NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI'\n\nexport const MATCHED_PATH_HEADER = 'x-matched-path'\nexport const PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate'\nexport const PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER =\n 'x-prerender-revalidate-if-generated'\n\nexport const RSC_PREFETCH_SUFFIX = '.prefetch.rsc'\nexport const RSC_SEGMENTS_DIR_SUFFIX = '.segments'\nexport const RSC_SEGMENT_SUFFIX = '.segment.rsc'\nexport const RSC_SUFFIX = '.rsc'\nexport const ACTION_SUFFIX = '.action'\nexport const NEXT_DATA_SUFFIX = '.json'\nexport const NEXT_META_SUFFIX = '.meta'\nexport const NEXT_BODY_SUFFIX = '.body'\n\nexport const NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags'\nexport const NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags'\nexport const NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER =\n 'x-next-revalidate-tag-token'\n\nexport const NEXT_RESUME_HEADER = 'next-resume'\n\n// if these change make sure we update the related\n// documentation as well\nexport const NEXT_CACHE_TAG_MAX_ITEMS = 128\nexport const NEXT_CACHE_TAG_MAX_LENGTH = 256\nexport const NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024\nexport const NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_'\n\n// in seconds\nexport const CACHE_ONE_YEAR = 31536000\n\n// in seconds, represents revalidate=false. I.e. never revaliate.\n// We use this value since it can be represented as a V8 SMI for optimal performance.\n// It can also be serialized as JSON if it ever leaks accidentally as an actual value.\nexport const INFINITE_CACHE = 0xfffffffe\n\n// Patterns to detect middleware files\nexport const MIDDLEWARE_FILENAME = 'middleware'\nexport const MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`\n\n// Patterns to detect proxy files (replacement for middleware)\nexport const PROXY_FILENAME = 'proxy'\nexport const PROXY_LOCATION_REGEXP = `(?:src/)?${PROXY_FILENAME}`\n\n// Pattern to detect instrumentation hooks file\nexport const INSTRUMENTATION_HOOK_FILENAME = 'instrumentation'\n\n// Because on Windows absolute paths in the generated code can break because of numbers, eg 1 in the path,\n// we have to use a private alias\nexport const PAGES_DIR_ALIAS = 'private-next-pages'\nexport const DOT_NEXT_ALIAS = 'private-dot-next'\nexport const ROOT_DIR_ALIAS = 'private-next-root-dir'\nexport const APP_DIR_ALIAS = 'private-next-app-dir'\nexport const RSC_MOD_REF_PROXY_ALIAS = 'private-next-rsc-mod-ref-proxy'\nexport const RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate'\nexport const RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference'\nexport const RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper'\nexport const RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS =\n 'private-next-rsc-track-dynamic-import'\nexport const RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption'\nexport const RSC_ACTION_CLIENT_WRAPPER_ALIAS =\n 'private-next-rsc-action-client-wrapper'\n\nexport const PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`\n\nexport const SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`\n\nexport const SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`\n\nexport const SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`\n\nexport const STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`\n\nexport const SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`\n\nexport const GSP_NO_RETURNED_VALUE =\n 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?'\nexport const GSSP_NO_RETURNED_VALUE =\n 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?'\n\nexport const UNSTABLE_REVALIDATE_RENAME_ERROR =\n 'The `unstable_revalidate` property is available for general use.\\n' +\n 'Please use `revalidate` instead.'\n\nexport const GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`\n\nexport const NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`\n\nexport const SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`\n\nexport const ESLINT_DEFAULT_DIRS = ['app', 'pages', 'components', 'lib', 'src']\n\nexport const SERVER_RUNTIME: Record = {\n edge: 'edge',\n experimentalEdge: 'experimental-edge',\n nodejs: 'nodejs',\n}\n\nexport const WEB_SOCKET_MAX_RECONNECTIONS = 12\n\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */\nconst WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */\n shared: 'shared',\n /**\n * The layer for server-only runtime and picking up `react-server` export conditions.\n * Including app router RSC pages and app router custom routes and metadata routes.\n */\n reactServerComponents: 'rsc',\n /**\n * Server Side Rendering layer for app (ssr).\n */\n serverSideRendering: 'ssr',\n /**\n * The browser client bundle layer for actions.\n */\n actionBrowser: 'action-browser',\n /**\n * The Node.js bundle layer for the API routes.\n */\n apiNode: 'api-node',\n /**\n * The Edge Lite bundle layer for the API routes.\n */\n apiEdge: 'api-edge',\n /**\n * The layer for the middleware code.\n */\n middleware: 'middleware',\n /**\n * The layer for the instrumentation hooks.\n */\n instrument: 'instrument',\n /**\n * The layer for assets on the edge.\n */\n edgeAsset: 'edge-asset',\n /**\n * The browser client bundle layer for App directory.\n */\n appPagesBrowser: 'app-pages-browser',\n /**\n * The browser client bundle layer for Pages directory.\n */\n pagesDirBrowser: 'pages-dir-browser',\n /**\n * The Edge Lite bundle layer for Pages directory.\n */\n pagesDirEdge: 'pages-dir-edge',\n /**\n * The Node.js bundle layer for Pages directory.\n */\n pagesDirNode: 'pages-dir-node',\n} as const\n\nexport type WebpackLayerName =\n (typeof WEBPACK_LAYERS_NAMES)[keyof typeof WEBPACK_LAYERS_NAMES]\n\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n builtinReact: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n ],\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware,\n ],\n neutralTarget: [\n // pages api\n WEBPACK_LAYERS_NAMES.apiNode,\n WEBPACK_LAYERS_NAMES.apiEdge,\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n ],\n bundled: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware,\n ],\n appPages: [\n // app router pages and layouts\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n ],\n },\n}\n\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: '__next_edge_ssr_entry__',\n metadata: '__next_metadata__',\n metadataRoute: '__next_metadata_route__',\n metadataImageMeta: '__next_metadata_image_meta__',\n}\n\nexport { WEBPACK_LAYERS, WEBPACK_RESOURCE_QUERIES }\n"],"names":["TEXT_PLAIN_CONTENT_TYPE_HEADER","HTML_CONTENT_TYPE_HEADER","JSON_CONTENT_TYPE_HEADER","NEXT_QUERY_PARAM_PREFIX","NEXT_INTERCEPTION_MARKER_PREFIX","MATCHED_PATH_HEADER","PRERENDER_REVALIDATE_HEADER","PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER","RSC_PREFETCH_SUFFIX","RSC_SEGMENTS_DIR_SUFFIX","RSC_SEGMENT_SUFFIX","RSC_SUFFIX","ACTION_SUFFIX","NEXT_DATA_SUFFIX","NEXT_META_SUFFIX","NEXT_BODY_SUFFIX","NEXT_CACHE_TAGS_HEADER","NEXT_CACHE_REVALIDATED_TAGS_HEADER","NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER","NEXT_RESUME_HEADER","NEXT_CACHE_TAG_MAX_ITEMS","NEXT_CACHE_TAG_MAX_LENGTH","NEXT_CACHE_SOFT_TAG_MAX_LENGTH","NEXT_CACHE_IMPLICIT_TAG_ID","CACHE_ONE_YEAR","INFINITE_CACHE","MIDDLEWARE_FILENAME","MIDDLEWARE_LOCATION_REGEXP","PROXY_FILENAME","PROXY_LOCATION_REGEXP","INSTRUMENTATION_HOOK_FILENAME","PAGES_DIR_ALIAS","DOT_NEXT_ALIAS","ROOT_DIR_ALIAS","APP_DIR_ALIAS","RSC_MOD_REF_PROXY_ALIAS","RSC_ACTION_VALIDATE_ALIAS","RSC_ACTION_PROXY_ALIAS","RSC_CACHE_WRAPPER_ALIAS","RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS","RSC_ACTION_ENCRYPTION_ALIAS","RSC_ACTION_CLIENT_WRAPPER_ALIAS","PUBLIC_DIR_MIDDLEWARE_CONFLICT","SSG_GET_INITIAL_PROPS_CONFLICT","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR","SERVER_PROPS_EXPORT_ERROR","GSP_NO_RETURNED_VALUE","GSSP_NO_RETURNED_VALUE","UNSTABLE_REVALIDATE_RENAME_ERROR","GSSP_COMPONENT_MEMBER_ERROR","NON_STANDARD_NODE_ENV","SSG_FALLBACK_EXPORT_ERROR","ESLINT_DEFAULT_DIRS","SERVER_RUNTIME","edge","experimentalEdge","nodejs","WEB_SOCKET_MAX_RECONNECTIONS","WEBPACK_LAYERS_NAMES","shared","reactServerComponents","serverSideRendering","actionBrowser","apiNode","apiEdge","middleware","instrument","edgeAsset","appPagesBrowser","pagesDirBrowser","pagesDirEdge","pagesDirNode","WEBPACK_LAYERS","GROUP","builtinReact","serverOnly","neutralTarget","clientOnly","bundled","appPages","WEBPACK_RESOURCE_QUERIES","edgeSSREntry","metadata","metadataRoute","metadataImageMeta"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,MAAMA,iCAAiC,aAAY;AACnD,MAAMC,2BAA2B,2BAA0B;AAC3D,MAAMC,2BAA2B,kCAAiC;AAClE,MAAMC,0BAA0B,OAAM;AACtC,MAAMC,kCAAkC,OAAM;AAE9C,MAAMC,sBAAsB,iBAAgB;AAC5C,MAAMC,8BAA8B,yBAAwB;AAC5D,MAAMC,6CACX,sCAAqC;AAEhC,MAAMC,sBAAsB,gBAAe;AAC3C,MAAMC,0BAA0B,YAAW;AAC3C,MAAMC,qBAAqB,eAAc;AACzC,MAAMC,aAAa,OAAM;AACzB,MAAMC,gBAAgB,UAAS;AAC/B,MAAMC,mBAAmB,QAAO;AAChC,MAAMC,mBAAmB,QAAO;AAChC,MAAMC,mBAAmB,QAAO;AAEhC,MAAMC,yBAAyB,oBAAmB;AAClD,MAAMC,qCAAqC,0BAAyB;AACpE,MAAMC,yCACX,8BAA6B;AAExB,MAAMC,qBAAqB,cAAa;AAIxC,MAAMC,2BAA2B,IAAG;AACpC,MAAMC,4BAA4B,IAAG;AACrC,MAAMC,iCAAiC,KAAI;AAC3C,MAAMC,6BAA6B,QAAO;AAG1C,MAAMC,iBAAiB,SAAQ;AAK/B,MAAMC,iBAAiB,WAAU;AAGjC,MAAMC,sBAAsB,aAAY;AACxC,MAAMC,6BAA6B,CAAC,SAAS,EAAED,qBAAqB,CAAA;AAGpE,MAAME,iBAAiB,QAAO;AAC9B,MAAMC,wBAAwB,CAAC,SAAS,EAAED,gBAAgB,CAAA;AAG1D,MAAME,gCAAgC,kBAAiB;AAIvD,MAAMC,kBAAkB,qBAAoB;AAC5C,MAAMC,iBAAiB,mBAAkB;AACzC,MAAMC,iBAAiB,wBAAuB;AAC9C,MAAMC,gBAAgB,uBAAsB;AAC5C,MAAMC,0BAA0B,iCAAgC;AAChE,MAAMC,4BAA4B,mCAAkC;AACpE,MAAMC,yBAAyB,oCAAmC;AAClE,MAAMC,0BAA0B,iCAAgC;AAChE,MAAMC,mCACX,wCAAuC;AAClC,MAAMC,8BAA8B,qCAAoC;AACxE,MAAMC,kCACX,yCAAwC;AAEnC,MAAMC,iCAAiC,CAAC,6KAA6K,CAAC,CAAA;AAEtN,MAAMC,iCAAiC,CAAC,mGAAmG,CAAC,CAAA;AAE5I,MAAMC,uCAAuC,CAAC,uFAAuF,CAAC,CAAA;AAEtI,MAAMC,4BAA4B,CAAC,sHAAsH,CAAC,CAAA;AAE1J,MAAMC,6CAA6C,CAAC,uGAAuG,CAAC,CAAA;AAE5J,MAAMC,4BAA4B,CAAC,uHAAuH,CAAC,CAAA;AAE3J,MAAMC,wBACX,6FAA4F;AACvF,MAAMC,yBACX,iGAAgG;AAE3F,MAAMC,mCACX,uEACA,mCAAkC;AAE7B,MAAMC,8BAA8B,CAAC,wJAAwJ,CAAC,CAAA;AAE9L,MAAMC,wBAAwB,CAAC,iNAAiN,CAAC,CAAA;AAEjP,MAAMC,4BAA4B,CAAC,wJAAwJ,CAAC,CAAA;AAE5L,MAAMC,sBAAsB;IAAC;IAAO;IAAS;IAAc;IAAO;CAAM,CAAA;AAExE,MAAMC,iBAAgD;IAC3DC,MAAM;IACNC,kBAAkB;IAClBC,QAAQ;AACV,EAAC;AAEM,MAAMC,+BAA+B,GAAE;AAE9C;;;CAGC,GACD,MAAMC,uBAAuB;IAC3B;;GAEC,GACDC,QAAQ;IACR;;;GAGC,GACDC,uBAAuB;IACvB;;GAEC,GACDC,qBAAqB;IACrB;;GAEC,GACDC,eAAe;IACf;;GAEC,GACDC,SAAS;IACT;;GAEC,GACDC,SAAS;IACT;;GAEC,GACDC,YAAY;IACZ;;GAEC,GACDC,YAAY;IACZ;;GAEC,GACDC,WAAW;IACX;;GAEC,GACDC,iBAAiB;IACjB;;GAEC,GACDC,iBAAiB;IACjB;;GAEC,GACDC,cAAc;IACd;;GAEC,GACDC,cAAc;AAChB;AAKA,MAAMC,iBAAiB;IACrB,GAAGd,oBAAoB;IACvBe,OAAO;QACLC,cAAc;YACZhB,qBAAqBE,qBAAqB;YAC1CF,qBAAqBI,aAAa;SACnC;QACDa,YAAY;YACVjB,qBAAqBE,qBAAqB;YAC1CF,qBAAqBI,aAAa;YAClCJ,qBAAqBQ,UAAU;YAC/BR,qBAAqBO,UAAU;SAChC;QACDW,eAAe;YACb,YAAY;YACZlB,qBAAqBK,OAAO;YAC5BL,qBAAqBM,OAAO;SAC7B;QACDa,YAAY;YACVnB,qBAAqBG,mBAAmB;YACxCH,qBAAqBU,eAAe;SACrC;QACDU,SAAS;YACPpB,qBAAqBE,qBAAqB;YAC1CF,qBAAqBI,aAAa;YAClCJ,qBAAqBG,mBAAmB;YACxCH,qBAAqBU,eAAe;YACpCV,qBAAqBC,MAAM;YAC3BD,qBAAqBQ,UAAU;YAC/BR,qBAAqBO,UAAU;SAChC;QACDc,UAAU;YACR,+BAA+B;YAC/BrB,qBAAqBE,qBAAqB;YAC1CF,qBAAqBG,mBAAmB;YACxCH,qBAAqBU,eAAe;YACpCV,qBAAqBI,aAAa;SACnC;IACH;AACF;AAEA,MAAMkB,2BAA2B;IAC/BC,cAAc;IACdC,UAAU;IACVC,eAAe;IACfC,mBAAmB;AACrB","ignoreList":[0]}}, + {"offset": {"line": 2252, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/route-modules/app-page/module.compiled.js"],"sourcesContent":["if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n"],"names":["process","env","NEXT_RUNTIME","module","exports","require","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK"],"mappings":"AAAA,IAAIA,QAAQC,GAAG,CAACC,YAAY,KAAK,QAAQ;;KAElC;IACL,IAAIF,QAAQC,GAAG,CAACK,yBAAyB,EAAE;;SAcpC;QACL,IAAIN,QAAQC,GAAG,CAACM,QAAQ,KAAK,WAAe;YAC1C,IAAIP,QAAQC,GAAG,CAACO,SAAS,eAAE;gBACzBL,OAAOC,OAAO,GAAGC,QAAQ;YAC3B,OAAO;;QAGT,OAAO;;IAOT;AACF","ignoreList":[0]}}, + {"offset": {"line": 2271, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/route-modules/app-page/vendored/rsc/react.ts"],"sourcesContent":["module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-rsc']!.React\n"],"names":["module","exports","require","vendored","React"],"mappings":"AAAAA,OAAOC,OAAO,GACZC,QAAQ,8OACRC,QAAQ,CAAC,YAAY,CAAEC,KAAK","ignoreList":[0]}}, + {"offset": {"line": 2276, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/client/components/hooks-server-context.ts"],"sourcesContent":["const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'\n\nexport class DynamicServerError extends Error {\n digest: typeof DYNAMIC_ERROR_CODE = DYNAMIC_ERROR_CODE\n\n constructor(public readonly description: string) {\n super(`Dynamic server usage: ${description}`)\n }\n}\n\nexport function isDynamicServerError(err: unknown): err is DynamicServerError {\n if (\n typeof err !== 'object' ||\n err === null ||\n !('digest' in err) ||\n typeof err.digest !== 'string'\n ) {\n return false\n }\n\n return err.digest === DYNAMIC_ERROR_CODE\n}\n"],"names":["DYNAMIC_ERROR_CODE","DynamicServerError","Error","constructor","description","digest","isDynamicServerError","err"],"mappings":";;;;;;AAAA,MAAMA,qBAAqB;AAEpB,MAAMC,2BAA2BC;IAGtCC,YAA4BC,WAAmB,CAAE;QAC/C,KAAK,CAAC,CAAC,sBAAsB,EAAEA,aAAa,GAAA,IAAA,CADlBA,WAAAA,GAAAA,aAAAA,IAAAA,CAF5BC,MAAAA,GAAoCL;IAIpC;AACF;AAEO,SAASM,qBAAqBC,GAAY;IAC/C,IACE,OAAOA,QAAQ,YACfA,QAAQ,QACR,CAAE,CAAA,YAAYA,GAAE,KAChB,OAAOA,IAAIF,MAAM,KAAK,UACtB;QACA,OAAO;IACT;IAEA,OAAOE,IAAIF,MAAM,KAAKL;AACxB","ignoreList":[0]}}, + {"offset": {"line": 2298, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/client/components/static-generation-bailout.ts"],"sourcesContent":["const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'\n\nexport class StaticGenBailoutError extends Error {\n public readonly code = NEXT_STATIC_GEN_BAILOUT\n}\n\nexport function isStaticGenBailoutError(\n error: unknown\n): error is StaticGenBailoutError {\n if (typeof error !== 'object' || error === null || !('code' in error)) {\n return false\n }\n\n return error.code === NEXT_STATIC_GEN_BAILOUT\n}\n"],"names":["NEXT_STATIC_GEN_BAILOUT","StaticGenBailoutError","Error","code","isStaticGenBailoutError","error"],"mappings":";;;;;;AAAA,MAAMA,0BAA0B;AAEzB,MAAMC,8BAA8BC;;QAApC,KAAA,IAAA,OAAA,IAAA,CACWC,IAAAA,GAAOH;;AACzB;AAEO,SAASI,wBACdC,KAAc;IAEd,IAAI,OAAOA,UAAU,YAAYA,UAAU,QAAQ,CAAE,CAAA,UAAUA,KAAI,GAAI;QACrE,OAAO;IACT;IAEA,OAAOA,MAAMF,IAAI,KAAKH;AACxB","ignoreList":[0]}}, + {"offset": {"line": 2320, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/dynamic-rendering-utils.ts"],"sourcesContent":["import type { NonStaticRenderStage } from './app-render/staged-rendering'\nimport type { RequestStore } from './app-render/work-unit-async-storage.external'\n\nexport function isHangingPromiseRejectionError(\n err: unknown\n): err is HangingPromiseRejectionError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === HANGING_PROMISE_REJECTION\n}\n\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION'\n\nclass HangingPromiseRejectionError extends Error {\n public readonly digest = HANGING_PROMISE_REJECTION\n\n constructor(\n public readonly route: string,\n public readonly expression: string\n ) {\n super(\n `During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route \"${route}\".`\n )\n }\n}\n\ntype AbortListeners = Array<(err: unknown) => void>\nconst abortListenersBySignal = new WeakMap()\n\n/**\n * This function constructs a promise that will never resolve. This is primarily\n * useful for cacheComponents where we use promise resolution timing to determine which\n * parts of a render can be included in a prerender.\n *\n * @internal\n */\nexport function makeHangingPromise(\n signal: AbortSignal,\n route: string,\n expression: string\n): Promise {\n if (signal.aborted) {\n return Promise.reject(new HangingPromiseRejectionError(route, expression))\n } else {\n const hangingPromise = new Promise((_, reject) => {\n const boundRejection = reject.bind(\n null,\n new HangingPromiseRejectionError(route, expression)\n )\n let currentListeners = abortListenersBySignal.get(signal)\n if (currentListeners) {\n currentListeners.push(boundRejection)\n } else {\n const listeners = [boundRejection]\n abortListenersBySignal.set(signal, listeners)\n signal.addEventListener(\n 'abort',\n () => {\n for (let i = 0; i < listeners.length; i++) {\n listeners[i]()\n }\n },\n { once: true }\n )\n }\n })\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject)\n return hangingPromise\n }\n}\n\nfunction ignoreReject() {}\n\nexport function makeDevtoolsIOAwarePromise(\n underlying: T,\n requestStore: RequestStore,\n stage: NonStaticRenderStage\n): Promise {\n if (requestStore.stagedRendering) {\n // We resolve each stage in a timeout, so React DevTools will pick this up as IO.\n return requestStore.stagedRendering.delayUntilStage(\n stage,\n undefined,\n underlying\n )\n }\n // in React DevTools if we resolve in a setTimeout we will observe\n // the promise resolution as something that can suspend a boundary or root.\n return new Promise((resolve) => {\n // Must use setTimeout to be considered IO React DevTools. setImmediate will not work.\n setTimeout(() => {\n resolve(underlying)\n }, 0)\n })\n}\n"],"names":["isHangingPromiseRejectionError","err","digest","HANGING_PROMISE_REJECTION","HangingPromiseRejectionError","Error","constructor","route","expression","abortListenersBySignal","WeakMap","makeHangingPromise","signal","aborted","Promise","reject","hangingPromise","_","boundRejection","bind","currentListeners","get","push","listeners","set","addEventListener","i","length","once","catch","ignoreReject","makeDevtoolsIOAwarePromise","underlying","requestStore","stage","stagedRendering","delayUntilStage","undefined","resolve","setTimeout"],"mappings":";;;;;;;;AAGO,SAASA,+BACdC,GAAY;IAEZ,IAAI,OAAOA,QAAQ,YAAYA,QAAQ,QAAQ,CAAE,CAAA,YAAYA,GAAE,GAAI;QACjE,OAAO;IACT;IAEA,OAAOA,IAAIC,MAAM,KAAKC;AACxB;AAEA,MAAMA,4BAA4B;AAElC,MAAMC,qCAAqCC;IAGzCC,YACkBC,KAAa,EACbC,UAAkB,CAClC;QACA,KAAK,CACH,CAAC,qBAAqB,EAAEA,WAAW,qGAAqG,EAAEA,WAAW,8KAA8K,EAAED,MAAM,EAAE,CAAC,GAAA,IAAA,CAJhUA,KAAAA,GAAAA,OAAAA,IAAAA,CACAC,UAAAA,GAAAA,YAAAA,IAAAA,CAJFN,MAAAA,GAASC;IASzB;AACF;AAGA,MAAMM,yBAAyB,IAAIC;AAS5B,SAASC,mBACdC,MAAmB,EACnBL,KAAa,EACbC,UAAkB;IAElB,IAAII,OAAOC,OAAO,EAAE;QAClB,OAAOC,QAAQC,MAAM,CAAC,IAAIX,6BAA6BG,OAAOC;IAChE,OAAO;QACL,MAAMQ,iBAAiB,IAAIF,QAAW,CAACG,GAAGF;YACxC,MAAMG,iBAAiBH,OAAOI,IAAI,CAChC,MACA,IAAIf,6BAA6BG,OAAOC;YAE1C,IAAIY,mBAAmBX,uBAAuBY,GAAG,CAACT;YAClD,IAAIQ,kBAAkB;gBACpBA,iBAAiBE,IAAI,CAACJ;YACxB,OAAO;gBACL,MAAMK,YAAY;oBAACL;iBAAe;gBAClCT,uBAAuBe,GAAG,CAACZ,QAAQW;gBACnCX,OAAOa,gBAAgB,CACrB,SACA;oBACE,IAAK,IAAIC,IAAI,GAAGA,IAAIH,UAAUI,MAAM,EAAED,IAAK;wBACzCH,SAAS,CAACG,EAAE;oBACd;gBACF,GACA;oBAAEE,MAAM;gBAAK;YAEjB;QACF;QACA,2GAA2G;QAC3G,6GAA6G;QAC7G,yFAAyF;QACzFZ,eAAea,KAAK,CAACC;QACrB,OAAOd;IACT;AACF;AAEA,SAASc,gBAAgB;AAElB,SAASC,2BACdC,UAAa,EACbC,YAA0B,EAC1BC,KAA2B;IAE3B,IAAID,aAAaE,eAAe,EAAE;QAChC,iFAAiF;QACjF,OAAOF,aAAaE,eAAe,CAACC,eAAe,CACjDF,OACAG,WACAL;IAEJ;IACA,kEAAkE;IAClE,2EAA2E;IAC3E,OAAO,IAAIlB,QAAW,CAACwB;QACrB,sFAAsF;QACtFC,WAAW;YACTD,QAAQN;QACV,GAAG;IACL;AACF","ignoreList":[0]}}, + {"offset": {"line": 2390, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/lib/framework/boundary-constants.tsx"],"sourcesContent":["export const METADATA_BOUNDARY_NAME = '__next_metadata_boundary__'\nexport const VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__'\nexport const OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__'\nexport const ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__'\n"],"names":["METADATA_BOUNDARY_NAME","VIEWPORT_BOUNDARY_NAME","OUTLET_BOUNDARY_NAME","ROOT_LAYOUT_BOUNDARY_NAME"],"mappings":";;;;;;;;;;AAAO,MAAMA,yBAAyB,6BAA4B;AAC3D,MAAMC,yBAAyB,6BAA4B;AAC3D,MAAMC,uBAAuB,2BAA0B;AACvD,MAAMC,4BAA4B,gCAA+B","ignoreList":[0]}}, + {"offset": {"line": 2408, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/lib/scheduler.ts"],"sourcesContent":["export type ScheduledFn = () => T | PromiseLike\nexport type SchedulerFn = (cb: ScheduledFn) => void\n\n/**\n * Schedules a function to be called on the next tick after the other promises\n * have been resolved.\n *\n * @param cb the function to schedule\n */\nexport const scheduleOnNextTick = (cb: ScheduledFn) => {\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(() => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n process.nextTick(cb)\n }\n })\n}\n\n/**\n * Schedules a function to be called using `setImmediate` or `setTimeout` if\n * `setImmediate` is not available (like in the Edge runtime).\n *\n * @param cb the function to schedule\n */\nexport const scheduleImmediate = (cb: ScheduledFn): void => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n setImmediate(cb)\n }\n}\n\n/**\n * returns a promise than resolves in a future task. There is no guarantee that the task it resolves in\n * will be the next task but if you await it you can at least be sure that the current task is over and\n * most usefully that the entire microtask queue of the current task has been emptied.\n */\nexport function atLeastOneTask() {\n return new Promise((resolve) => scheduleImmediate(resolve))\n}\n\n/**\n * This utility function is extracted to make it easier to find places where we are doing\n * specific timing tricks to try to schedule work after React has rendered. This is especially\n * important at the moment because Next.js uses the edge builds of React which use setTimeout to\n * schedule work when you might expect that something like setImmediate would do the trick.\n *\n * Long term we should switch to the node versions of React rendering when possible and then\n * update this to use setImmediate rather than setTimeout\n */\nexport function waitAtLeastOneReactRenderTask(): Promise {\n if (process.env.NEXT_RUNTIME === 'edge') {\n return new Promise((r) => setTimeout(r, 0))\n } else {\n return new Promise((r) => setImmediate(r))\n }\n}\n"],"names":["scheduleOnNextTick","cb","Promise","resolve","then","process","env","NEXT_RUNTIME","setTimeout","nextTick","scheduleImmediate","setImmediate","atLeastOneTask","waitAtLeastOneReactRenderTask","r"],"mappings":"AAGA;;;;;CAKC,GACD;;;;;;;;;;AAAO,MAAMA,qBAAqB,CAACC;IACjC,6EAA6E;IAC7E,4EAA4E;IAC5E,uCAAuC;IACvC,EAAE;IACF,kLAAkL;IAClL,EAAE;IACFC,QAAQC,OAAO,GAAGC,IAAI,CAAC;QACrB,IAAIC,QAAQC,GAAG,CAACC,YAAY,KAAK,QAAQ;;aAElC;YACLF,QAAQI,QAAQ,CAACR;QACnB;IACF;AACF,EAAC;AAQM,MAAMS,oBAAoB,CAACT;IAChC,IAAII,QAAQC,GAAG,CAACC,YAAY,KAAK,QAAQ;;SAElC;QACLI,aAAaV;IACf;AACF,EAAC;AAOM,SAASW;IACd,OAAO,IAAIV,QAAc,CAACC,UAAYO,kBAAkBP;AAC1D;AAWO,SAASU;IACd,IAAIR,QAAQC,GAAG,CAACC,YAAY,KAAK,QAAQ;;SAElC;QACL,OAAO,IAAIL,QAAQ,CAACY,IAAMH,aAAaG;IACzC;AACF","ignoreList":[0]}}, + {"offset": {"line": 2459, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/lazy-dynamic/bailout-to-csr.ts"],"sourcesContent":["// This has to be a shared module which is shared between client component error boundary and dynamic component\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING'\n\n/** An error that should be thrown when we want to bail out to client-side rendering. */\nexport class BailoutToCSRError extends Error {\n public readonly digest = BAILOUT_TO_CSR\n\n constructor(public readonly reason: string) {\n super(`Bail out to client-side rendering: ${reason}`)\n }\n}\n\n/** Checks if a passed argument is an error that is thrown if we want to bail out to client-side rendering. */\nexport function isBailoutToCSRError(err: unknown): err is BailoutToCSRError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === BAILOUT_TO_CSR\n}\n"],"names":["BAILOUT_TO_CSR","BailoutToCSRError","Error","constructor","reason","digest","isBailoutToCSRError","err"],"mappings":"AAAA,+GAA+G;;;;;;;AAC/G,MAAMA,iBAAiB;AAGhB,MAAMC,0BAA0BC;IAGrCC,YAA4BC,MAAc,CAAE;QAC1C,KAAK,CAAC,CAAC,mCAAmC,EAAEA,QAAQ,GAAA,IAAA,CAD1BA,MAAAA,GAAAA,QAAAA,IAAAA,CAFZC,MAAAA,GAASL;IAIzB;AACF;AAGO,SAASM,oBAAoBC,GAAY;IAC9C,IAAI,OAAOA,QAAQ,YAAYA,QAAQ,QAAQ,CAAE,CAAA,YAAYA,GAAE,GAAI;QACjE,OAAO;IACT;IAEA,OAAOA,IAAIF,MAAM,KAAKL;AACxB","ignoreList":[0]}}, + {"offset": {"line": 2482, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/invariant-error.ts"],"sourcesContent":["export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n"],"names":["InvariantError","Error","constructor","message","options","endsWith","name"],"mappings":";;;;AAAO,MAAMA,uBAAuBC;IAClCC,YAAYC,OAAe,EAAEC,OAAsB,CAAE;QACnD,KAAK,CACH,CAAC,WAAW,EAAED,QAAQE,QAAQ,CAAC,OAAOF,UAAUA,UAAU,IAAI,0BAA0B,CAAC,EACzFC;QAEF,IAAI,CAACE,IAAI,GAAG;IACd;AACF","ignoreList":[0]}}, + {"offset": {"line": 2496, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/promise-with-resolvers.ts"],"sourcesContent":["export function createPromiseWithResolvers(): PromiseWithResolvers {\n // Shim of Stage 4 Promise.withResolvers proposal\n let resolve: (value: T | PromiseLike) => void\n let reject: (reason: any) => void\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return { resolve: resolve!, reject: reject!, promise }\n}\n"],"names":["createPromiseWithResolvers","resolve","reject","promise","Promise","res","rej"],"mappings":";;;;AAAO,SAASA;IACd,iDAAiD;IACjD,IAAIC;IACJ,IAAIC;IACJ,MAAMC,UAAU,IAAIC,QAAW,CAACC,KAAKC;QACnCL,UAAUI;QACVH,SAASI;IACX;IACA,OAAO;QAAEL,SAASA;QAAUC,QAAQA;QAASC;IAAQ;AACvD","ignoreList":[0]}}, + {"offset": {"line": 2518, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/app-render/staged-rendering.ts"],"sourcesContent":["import { InvariantError } from '../../shared/lib/invariant-error'\nimport { createPromiseWithResolvers } from '../../shared/lib/promise-with-resolvers'\n\nexport enum RenderStage {\n Static = 1,\n Runtime = 2,\n Dynamic = 3,\n}\n\nexport type NonStaticRenderStage = RenderStage.Runtime | RenderStage.Dynamic\n\nexport class StagedRenderingController {\n currentStage: RenderStage = RenderStage.Static\n\n private runtimeStagePromise = createPromiseWithResolvers()\n private dynamicStagePromise = createPromiseWithResolvers()\n\n constructor(private abortSignal: AbortSignal | null = null) {\n if (abortSignal) {\n abortSignal.addEventListener(\n 'abort',\n () => {\n const { reason } = abortSignal\n if (this.currentStage < RenderStage.Runtime) {\n this.runtimeStagePromise.promise.catch(ignoreReject) // avoid unhandled rejections\n this.runtimeStagePromise.reject(reason)\n }\n if (this.currentStage < RenderStage.Dynamic) {\n this.dynamicStagePromise.promise.catch(ignoreReject) // avoid unhandled rejections\n this.dynamicStagePromise.reject(reason)\n }\n },\n { once: true }\n )\n }\n }\n\n advanceStage(stage: NonStaticRenderStage) {\n // If we're already at the target stage or beyond, do nothing.\n // (this can happen e.g. if sync IO advanced us to the dynamic stage)\n if (this.currentStage >= stage) {\n return\n }\n this.currentStage = stage\n // Note that we might be going directly from Static to Dynamic,\n // so we need to resolve the runtime stage as well.\n if (stage >= RenderStage.Runtime) {\n this.runtimeStagePromise.resolve()\n }\n if (stage >= RenderStage.Dynamic) {\n this.dynamicStagePromise.resolve()\n }\n }\n\n private getStagePromise(stage: NonStaticRenderStage): Promise {\n switch (stage) {\n case RenderStage.Runtime: {\n return this.runtimeStagePromise.promise\n }\n case RenderStage.Dynamic: {\n return this.dynamicStagePromise.promise\n }\n default: {\n stage satisfies never\n throw new InvariantError(`Invalid render stage: ${stage}`)\n }\n }\n }\n\n waitForStage(stage: NonStaticRenderStage) {\n return this.getStagePromise(stage)\n }\n\n delayUntilStage(\n stage: NonStaticRenderStage,\n displayName: string | undefined,\n resolvedValue: T\n ) {\n const ioTriggerPromise = this.getStagePromise(stage)\n\n const promise = makeDevtoolsIOPromiseFromIOTrigger(\n ioTriggerPromise,\n displayName,\n resolvedValue\n )\n\n // Analogously to `makeHangingPromise`, we might reject this promise if the signal is invoked.\n // (e.g. in the case where we don't want want the render to proceed to the dynamic stage and abort it).\n // We shouldn't consider this an unhandled rejection, so we attach a noop catch handler here to suppress this warning.\n if (this.abortSignal) {\n promise.catch(ignoreReject)\n }\n return promise\n }\n}\n\nfunction ignoreReject() {}\n\n// TODO(restart-on-cache-miss): the layering of `delayUntilStage`,\n// `makeDevtoolsIOPromiseFromIOTrigger` and and `makeDevtoolsIOAwarePromise`\n// is confusing, we should clean it up.\nfunction makeDevtoolsIOPromiseFromIOTrigger(\n ioTrigger: Promise,\n displayName: string | undefined,\n resolvedValue: T\n): Promise {\n // If we create a `new Promise` and give it a displayName\n // (with no userspace code above us in the stack)\n // React Devtools will use it as the IO cause when determining \"suspended by\".\n // In particular, it should shadow any inner IO that resolved/rejected the promise\n // (in case of staged rendering, this will be the `setTimeout` that triggers the relevant stage)\n const promise = new Promise((resolve, reject) => {\n ioTrigger.then(resolve.bind(null, resolvedValue), reject)\n })\n if (displayName !== undefined) {\n // @ts-expect-error\n promise.displayName = displayName\n }\n return promise\n}\n"],"names":["InvariantError","createPromiseWithResolvers","RenderStage","StagedRenderingController","constructor","abortSignal","currentStage","runtimeStagePromise","dynamicStagePromise","addEventListener","reason","promise","catch","ignoreReject","reject","once","advanceStage","stage","resolve","getStagePromise","waitForStage","delayUntilStage","displayName","resolvedValue","ioTriggerPromise","makeDevtoolsIOPromiseFromIOTrigger","ioTrigger","Promise","then","bind","undefined"],"mappings":";;;;;;AAAA,SAASA,cAAc,QAAQ,mCAAkC;AACjE,SAASC,0BAA0B,QAAQ,0CAAyC;;;AAE7E,IAAKC,cAAAA,WAAAA,GAAAA,SAAAA,WAAAA;;;;WAAAA;MAIX;AAIM,MAAMC;IAMXC,YAAoBC,cAAkC,IAAI,CAAE;aAAxCA,WAAAA,GAAAA;aALpBC,YAAAA,GAAAA;aAEQC,mBAAAA,OAAsBN,0YAAAA;aACtBO,mBAAAA,OAAsBP,0YAAAA;QAG5B,IAAII,aAAa;YACfA,YAAYI,gBAAgB,CAC1B,SACA;gBACE,MAAM,EAAEC,MAAM,EAAE,GAAGL;gBACnB,IAAI,IAAI,CAACC,YAAY,GAAA,GAAwB;oBAC3C,IAAI,CAACC,mBAAmB,CAACI,OAAO,CAACC,KAAK,CAACC,cAAc,6BAA6B;;oBAClF,IAAI,CAACN,mBAAmB,CAACO,MAAM,CAACJ;gBAClC;gBACA,IAAI,IAAI,CAACJ,YAAY,GAAA,GAAwB;oBAC3C,IAAI,CAACE,mBAAmB,CAACG,OAAO,CAACC,KAAK,CAACC,cAAc,6BAA6B;;oBAClF,IAAI,CAACL,mBAAmB,CAACM,MAAM,CAACJ;gBAClC;YACF,GACA;gBAAEK,MAAM;YAAK;QAEjB;IACF;IAEAC,aAAaC,KAA2B,EAAE;QACxC,8DAA8D;QAC9D,qEAAqE;QACrE,IAAI,IAAI,CAACX,YAAY,IAAIW,OAAO;YAC9B;QACF;QACA,IAAI,CAACX,YAAY,GAAGW;QACpB,+DAA+D;QAC/D,mDAAmD;QACnD,IAAIA,SAAAA,GAA8B;YAChC,IAAI,CAACV,mBAAmB,CAACW,OAAO;QAClC;QACA,IAAID,SAAAA,GAA8B;YAChC,IAAI,CAACT,mBAAmB,CAACU,OAAO;QAClC;IACF;IAEQC,gBAAgBF,KAA2B,EAAiB;QAClE,OAAQA;YACN,KAAA;gBAA0B;oBACxB,OAAO,IAAI,CAACV,mBAAmB,CAACI,OAAO;gBACzC;YACA,KAAA;gBAA0B;oBACxB,OAAO,IAAI,CAACH,mBAAmB,CAACG,OAAO;gBACzC;YACA;gBAAS;oBACPM;oBACA,MAAM,OAAA,cAAoD,CAApD,IAAIjB,oXAAAA,CAAe,CAAC,sBAAsB,EAAEiB,OAAO,GAAnD,qBAAA;+BAAA;oCAAA;sCAAA;oBAAmD;gBAC3D;QACF;IACF;IAEAG,aAAaH,KAA2B,EAAE;QACxC,OAAO,IAAI,CAACE,eAAe,CAACF;IAC9B;IAEAI,gBACEJ,KAA2B,EAC3BK,WAA+B,EAC/BC,aAAgB,EAChB;QACA,MAAMC,mBAAmB,IAAI,CAACL,eAAe,CAACF;QAE9C,MAAMN,UAAUc,mCACdD,kBACAF,aACAC;QAGF,8FAA8F;QAC9F,uGAAuG;QACvG,sHAAsH;QACtH,IAAI,IAAI,CAAClB,WAAW,EAAE;YACpBM,QAAQC,KAAK,CAACC;QAChB;QACA,OAAOF;IACT;AACF;AAEA,SAASE,gBAAgB;AAEzB,kEAAkE;AAClE,4EAA4E;AAC5E,uCAAuC;AACvC,SAASY,mCACPC,SAAuB,EACvBJ,WAA+B,EAC/BC,aAAgB;IAEhB,yDAAyD;IACzD,iDAAiD;IACjD,8EAA8E;IAC9E,kFAAkF;IAClF,gGAAgG;IAChG,MAAMZ,UAAU,IAAIgB,QAAW,CAACT,SAASJ;QACvCY,UAAUE,IAAI,CAACV,QAAQW,IAAI,CAAC,MAAMN,gBAAgBT;IACpD;IACA,IAAIQ,gBAAgBQ,WAAW;QAC7B,mBAAmB;QACnBnB,QAAQW,WAAW,GAAGA;IACxB;IACA,OAAOX;AACT","ignoreList":[0]}}, + {"offset": {"line": 2633, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/app-render/dynamic-rendering.ts"],"sourcesContent":["/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\n */\n\nimport type { WorkStore } from '../app-render/work-async-storage.external'\nimport type {\n WorkUnitStore,\n RequestStore,\n PrerenderStoreLegacy,\n PrerenderStoreModern,\n PrerenderStoreModernRuntime,\n} from '../app-render/work-unit-async-storage.external'\n\n// Once postpone is in stable we should switch to importing the postpone export directly\nimport React from 'react'\n\nimport { DynamicServerError } from '../../client/components/hooks-server-context'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n getRuntimeStagePromise,\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n} from './work-unit-async-storage.external'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport { makeHangingPromise } from '../dynamic-rendering-utils'\nimport {\n METADATA_BOUNDARY_NAME,\n VIEWPORT_BOUNDARY_NAME,\n OUTLET_BOUNDARY_NAME,\n ROOT_LAYOUT_BOUNDARY_NAME,\n} from '../../lib/framework/boundary-constants'\nimport { scheduleOnNextTick } from '../../lib/scheduler'\nimport { BailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { RenderStage } from './staged-rendering'\n\nconst hasPostpone = typeof React.unstable_postpone === 'function'\n\nexport type DynamicAccess = {\n /**\n * If debugging, this will contain the stack trace of where the dynamic access\n * occurred. This is used to provide more information to the user about why\n * their page is being rendered dynamically.\n */\n stack?: string\n\n /**\n * The expression that was accessed dynamically.\n */\n expression: string\n}\n\n// Stores dynamic reasons used during an RSC render.\nexport type DynamicTrackingState = {\n /**\n * When true, stack information will also be tracked during dynamic access.\n */\n readonly isDebugDynamicAccesses: boolean | undefined\n\n /**\n * The dynamic accesses that occurred during the render.\n */\n readonly dynamicAccesses: Array\n\n syncDynamicErrorWithStack: null | Error\n}\n\n// Stores dynamic reasons used during an SSR render.\nexport type DynamicValidationState = {\n hasSuspenseAboveBody: boolean\n hasDynamicMetadata: boolean\n hasDynamicViewport: boolean\n hasAllowedDynamic: boolean\n dynamicErrors: Array\n}\n\nexport function createDynamicTrackingState(\n isDebugDynamicAccesses: boolean | undefined\n): DynamicTrackingState {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicErrorWithStack: null,\n }\n}\n\nexport function createDynamicValidationState(): DynamicValidationState {\n return {\n hasSuspenseAboveBody: false,\n hasDynamicMetadata: false,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: [],\n }\n}\n\nexport function getFirstDynamicReason(\n trackingState: DynamicTrackingState\n): undefined | string {\n return trackingState.dynamicAccesses[0]?.expression\n}\n\n/**\n * This function communicates that the current scope should be treated as dynamic.\n *\n * In most cases this function is a no-op but if called during\n * a PPR prerender it will postpone the current sub-tree and calling\n * it during a normal prerender will cause the entire prerender to abort\n */\nexport function markCurrentScopeAsDynamic(\n store: WorkStore,\n workUnitStore: undefined | Exclude,\n expression: string\n): void {\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'request':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return\n\n if (store.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-ppr':\n return postponeWithTracking(\n store.route,\n expression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n workUnitStore.revalidate = 0\n\n // We aren't prerendering, but we are generating a static page. We need\n // to bail out of static generation.\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n case 'request':\n if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\n/**\n * This function is meant to be used when prerendering without cacheComponents or PPR.\n * When called during a build it will cause Next.js to consider the route as dynamic.\n *\n * @internal\n */\nexport function throwToInterruptStaticGeneration(\n expression: string,\n store: WorkStore,\n prerenderStore: PrerenderStoreLegacy\n): never {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n\n prerenderStore.revalidate = 0\n\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n}\n\n/**\n * This function should be used to track whether something dynamic happened even when\n * we are in a dynamic render. This is useful for Dev where all renders are dynamic but\n * we still track whether dynamic APIs were accessed for helpful messaging\n *\n * @internal\n */\nexport function trackDynamicDataInDynamicRender(workUnitStore: WorkUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'prerender-client':\n break\n case 'request':\n if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n default:\n workUnitStore satisfies never\n }\n}\n\nfunction abortOnSynchronousDynamicDataAccess(\n route: string,\n expression: string,\n prerenderStore: PrerenderStoreModern\n): void {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n\n const error = createPrerenderInterruptedError(reason)\n\n prerenderStore.controller.abort(error)\n\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nexport function abortOnSynchronousPlatformIOAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): void {\n const dynamicTracking = prerenderStore.dynamicTracking\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\n}\n\nexport function trackSynchronousPlatformIOAccessInDev(\n requestStore: RequestStore\n): void {\n // We don't actually have a controller to abort but we do the semantic equivalent by\n // advancing the request store out of the prerender stage\n if (requestStore.stagedRendering) {\n // TODO: error for sync IO in the runtime stage\n // (which is not currently covered by the validation render in `spawnDynamicValidationInDev`)\n requestStore.stagedRendering.advanceStage(RenderStage.Dynamic)\n }\n}\n\n/**\n * use this function when prerendering with cacheComponents. If we are doing a\n * prospective prerender we don't actually abort because we want to discover\n * all caches for the shell. If this is the actual prerender we do abort.\n *\n * This function accepts a prerenderStore but the caller should ensure we're\n * actually running in cacheComponents mode.\n *\n * @internal\n */\nexport function abortAndThrowOnSynchronousRequestDataAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): never {\n const prerenderSignal = prerenderStore.controller.signal\n if (prerenderSignal.aborted === false) {\n // TODO it would be better to move this aborted check into the callsite so we can avoid making\n // the error object when it isn't relevant to the aborting of the prerender however\n // since we need the throw semantics regardless of whether we abort it is easier to land\n // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer\n // to ideal implementation\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\n }\n throw createPrerenderInterruptedError(\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n )\n}\n\n/**\n * This component will call `React.postpone` that throws the postponed error.\n */\ntype PostponeProps = {\n reason: string\n route: string\n}\nexport function Postpone({ reason, route }: PostponeProps): never {\n const prerenderStore = workUnitAsyncStorage.getStore()\n const dynamicTracking =\n prerenderStore && prerenderStore.type === 'prerender-ppr'\n ? prerenderStore.dynamicTracking\n : null\n postponeWithTracking(route, reason, dynamicTracking)\n}\n\nexport function postponeWithTracking(\n route: string,\n expression: string,\n dynamicTracking: null | DynamicTrackingState\n): never {\n assertPostpone()\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n\n React.unstable_postpone(createPostponeReason(route, expression))\n}\n\nfunction createPostponeReason(route: string, expression: string) {\n return (\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` +\n `React throws this special object to indicate where. It should not be caught by ` +\n `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`\n )\n}\n\nexport function isDynamicPostpone(err: unknown) {\n if (\n typeof err === 'object' &&\n err !== null &&\n typeof (err as any).message === 'string'\n ) {\n return isDynamicPostponeReason((err as any).message)\n }\n return false\n}\n\nfunction isDynamicPostponeReason(reason: string) {\n return (\n reason.includes(\n 'needs to bail out of prerendering at this point because it used'\n ) &&\n reason.includes(\n 'Learn more: https://nextjs.org/docs/messages/ppr-caught-error'\n )\n )\n}\n\nif (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {\n throw new Error(\n 'Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'\n )\n}\n\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED'\n\nfunction createPrerenderInterruptedError(message: string): Error {\n const error = new Error(message)\n ;(error as any).digest = NEXT_PRERENDER_INTERRUPTED\n return error\n}\n\ntype DigestError = Error & {\n digest: string\n}\n\nexport function isPrerenderInterruptedError(\n error: unknown\n): error is DigestError {\n return (\n typeof error === 'object' &&\n error !== null &&\n (error as any).digest === NEXT_PRERENDER_INTERRUPTED &&\n 'name' in error &&\n 'message' in error &&\n error instanceof Error\n )\n}\n\nexport function accessedDynamicData(\n dynamicAccesses: Array\n): boolean {\n return dynamicAccesses.length > 0\n}\n\nexport function consumeDynamicAccess(\n serverDynamic: DynamicTrackingState,\n clientDynamic: DynamicTrackingState\n): DynamicTrackingState['dynamicAccesses'] {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses)\n return serverDynamic.dynamicAccesses\n}\n\nexport function formatDynamicAPIAccesses(\n dynamicAccesses: Array\n): string[] {\n return dynamicAccesses\n .filter(\n (access): access is Required =>\n typeof access.stack === 'string' && access.stack.length > 0\n )\n .map(({ expression, stack }) => {\n stack = stack\n .split('\\n')\n // Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4)\n .filter((line) => {\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false\n }\n\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' ()')) {\n return false\n }\n\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false\n }\n\n return true\n })\n .join('\\n')\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`\n })\n}\n\nfunction assertPostpone() {\n if (!hasPostpone) {\n throw new Error(\n `Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`\n )\n }\n}\n\n/**\n * This is a bit of a hack to allow us to abort a render using a Postpone instance instead of an Error which changes React's\n * abort semantics slightly.\n */\nexport function createRenderInBrowserAbortSignal(): AbortSignal {\n const controller = new AbortController()\n controller.abort(new BailoutToCSRError('Render in Browser'))\n return controller.signal\n}\n\n/**\n * In a prerender, we may end up with hanging Promises as inputs due them\n * stalling on connection() or because they're loading dynamic data. In that\n * case we need to abort the encoding of arguments since they'll never complete.\n */\nexport function createHangingInputAbortSignal(\n workUnitStore: WorkUnitStore\n): AbortSignal | undefined {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-runtime':\n const controller = new AbortController()\n\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If\n // the input we're waiting on is coming from another cache, we do want\n // to wait for it so that we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(() => {\n controller.abort()\n })\n } else {\n // Otherwise we're in the final render and we should already have all\n // our caches filled.\n // If the prerender uses stages, we have wait until the runtime stage,\n // at which point all runtime inputs will be resolved.\n // (otherwise, a runtime prerender might consider `cookies()` hanging\n // even though they'd resolve in the next task.)\n //\n // We might still be waiting on some microtasks so we\n // wait one tick before giving up. When we give up, we still want to\n // render the content of this cache as deeply as we can so that we can\n // suspend as deeply as possible in the tree or not at all if we don't\n // end up waiting for the input.\n const runtimeStagePromise = getRuntimeStagePromise(workUnitStore)\n if (runtimeStagePromise) {\n runtimeStagePromise.then(() =>\n scheduleOnNextTick(() => controller.abort())\n )\n } else {\n scheduleOnNextTick(() => controller.abort())\n }\n }\n\n return controller.signal\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n return undefined\n default:\n workUnitStore satisfies never\n }\n}\n\nexport function annotateDynamicAccess(\n expression: string,\n prerenderStore: PrerenderStoreModern\n) {\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nexport function useDynamicRouteParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workStore && workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-client':\n case 'prerender': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n\n if (fallbackParams && fallbackParams.size > 0) {\n // We are in a prerender with cacheComponents semantics. We are going to\n // hang here and never resolve. This will cause the currently\n // rendering component to effectively be a dynamic hole.\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n }\n break\n }\n case 'prerender-ppr': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n if (fallbackParams && fallbackParams.size > 0) {\n return postponeWithTracking(\n workStore.route,\n expression,\n workUnitStore.dynamicTracking\n )\n }\n break\n }\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'prerender-legacy':\n case 'request':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\nexport function useDynamicSearchParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (!workStore) {\n // We assume pages router context and just return\n return\n }\n\n if (!workUnitStore) {\n throwForMissingRequestStore(expression)\n }\n\n switch (workUnitStore.type) {\n case 'prerender-client': {\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n break\n }\n case 'prerender-legacy':\n case 'prerender-ppr': {\n if (workStore.forceStatic) {\n return\n }\n throw new BailoutToCSRError(expression)\n }\n case 'prerender':\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'unstable-cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'request':\n return\n default:\n workUnitStore satisfies never\n }\n}\n\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(\\)/\n\n// Common implicit body tags that React will treat as body when placed directly in html\nconst bodyAndImplicitTags =\n 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6'\n\n// Detects when RootLayoutBoundary (our framework marker component) appears\n// after Suspense in the component stack, indicating the root layout is wrapped\n// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.\n//\n// Example matches:\n// at Suspense ()\n// at __next_root_layout_boundary__ ()\n//\n// Or with other components in between (but not body/html/implicit-body):\n// at Suspense ()\n// at SomeComponent ()\n// at __next_root_layout_boundary__ ()\nconst hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(\n `\\\\n\\\\s+at Suspense \\\\(\\\\)(?:(?!\\\\n\\\\s+at (?:${bodyAndImplicitTags}) \\\\(\\\\))[\\\\s\\\\S])*?\\\\n\\\\s+at ${ROOT_LAYOUT_BOUNDARY_NAME} \\\\([^\\\\n]*\\\\)`\n)\n\nconst hasMetadataRegex = new RegExp(\n `\\\\n\\\\s+at ${METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasViewportRegex = new RegExp(\n `\\\\n\\\\s+at ${VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`)\n\nexport function trackAllowedDynamicAccess(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true\n return\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message =\n `Route \"${workStore.route}\": Uncached data was accessed outside of ` +\n '. This delays the entire page from rendering, resulting in a ' +\n 'slow user experience. Learn more: ' +\n 'https://nextjs.org/docs/messages/blocking-route'\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n */\nfunction createErrorWithComponentOrOwnerStack(\n message: string,\n componentStack: string\n) {\n const ownerStack =\n process.env.NODE_ENV !== 'production' && React.captureOwnerStack\n ? React.captureOwnerStack()\n : null\n\n const error = new Error(message)\n error.stack = error.name + ': ' + message + (ownerStack ?? componentStack)\n return error\n}\n\nexport enum PreludeState {\n Full = 0,\n Empty = 1,\n Errored = 2,\n}\n\nexport function logDisallowedDynamicError(\n workStore: WorkStore,\n error: Error\n): void {\n console.error(error)\n\n if (!workStore.dev) {\n if (workStore.hasReadableErrorStacks) {\n console.error(\n `To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.`\n )\n } else {\n console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:\n - Start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.\n - Rerun the production build with \\`next build --debug-prerender\\` to generate better stack traces.`)\n }\n }\n}\n\nexport function throwIfDisallowedDynamic(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState,\n serverDynamic: DynamicTrackingState\n): void {\n if (serverDynamic.syncDynamicErrorWithStack) {\n logDisallowedDynamicError(\n workStore,\n serverDynamic.syncDynamicErrorWithStack\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude !== PreludeState.Full) {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return\n }\n\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n for (let i = 0; i < dynamicErrors.length; i++) {\n logDisallowedDynamicError(workStore, dynamicErrors[i])\n }\n\n throw new StaticGenBailoutError()\n }\n\n // If we got this far then the only other thing that could be blocking\n // the root is dynamic Viewport. If this is dynamic then\n // you need to opt into that by adding a Suspense boundary above the body\n // to indicate your are ok with fully dynamic rendering.\n if (dynamicValidation.hasDynamicViewport) {\n console.error(\n `Route \"${workStore.route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude === PreludeState.Empty) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n console.error(\n `Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`\n )\n throw new StaticGenBailoutError()\n }\n } else {\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.hasDynamicMetadata\n ) {\n console.error(\n `Route \"${workStore.route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n )\n throw new StaticGenBailoutError()\n }\n }\n}\n\nexport function delayUntilRuntimeStage(\n prerenderStore: PrerenderStoreModernRuntime,\n result: Promise\n): Promise {\n if (prerenderStore.runtimeStagePromise) {\n return prerenderStore.runtimeStagePromise.then(() => result)\n }\n return result\n}\n"],"names":["React","DynamicServerError","StaticGenBailoutError","getRuntimeStagePromise","throwForMissingRequestStore","workUnitAsyncStorage","workAsyncStorage","makeHangingPromise","METADATA_BOUNDARY_NAME","VIEWPORT_BOUNDARY_NAME","OUTLET_BOUNDARY_NAME","ROOT_LAYOUT_BOUNDARY_NAME","scheduleOnNextTick","BailoutToCSRError","InvariantError","RenderStage","hasPostpone","unstable_postpone","createDynamicTrackingState","isDebugDynamicAccesses","dynamicAccesses","syncDynamicErrorWithStack","createDynamicValidationState","hasSuspenseAboveBody","hasDynamicMetadata","hasDynamicViewport","hasAllowedDynamic","dynamicErrors","getFirstDynamicReason","trackingState","expression","markCurrentScopeAsDynamic","store","workUnitStore","type","forceDynamic","forceStatic","dynamicShouldError","route","postponeWithTracking","dynamicTracking","revalidate","err","dynamicUsageDescription","dynamicUsageStack","stack","process","env","NODE_ENV","usedDynamic","throwToInterruptStaticGeneration","prerenderStore","trackDynamicDataInDynamicRender","abortOnSynchronousDynamicDataAccess","reason","error","createPrerenderInterruptedError","controller","abort","push","Error","undefined","abortOnSynchronousPlatformIOAccess","errorWithStack","trackSynchronousPlatformIOAccessInDev","requestStore","stagedRendering","advanceStage","Dynamic","abortAndThrowOnSynchronousRequestDataAccess","prerenderSignal","signal","aborted","Postpone","getStore","assertPostpone","createPostponeReason","isDynamicPostpone","message","isDynamicPostponeReason","includes","NEXT_PRERENDER_INTERRUPTED","digest","isPrerenderInterruptedError","accessedDynamicData","length","consumeDynamicAccess","serverDynamic","clientDynamic","formatDynamicAPIAccesses","filter","access","map","split","slice","line","join","createRenderInBrowserAbortSignal","AbortController","createHangingInputAbortSignal","cacheSignal","inputReady","then","runtimeStagePromise","annotateDynamicAccess","useDynamicRouteParams","workStore","fallbackParams","fallbackRouteParams","size","use","renderSignal","useDynamicSearchParams","hasSuspenseRegex","bodyAndImplicitTags","hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex","RegExp","hasMetadataRegex","hasViewportRegex","hasOutletRegex","trackAllowedDynamicAccess","componentStack","dynamicValidation","test","createErrorWithComponentOrOwnerStack","ownerStack","captureOwnerStack","name","PreludeState","logDisallowedDynamicError","console","dev","hasReadableErrorStacks","throwIfDisallowedDynamic","prelude","i","delayUntilRuntimeStage","result"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 3293, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/lib/clone-response.ts"],"sourcesContent":["const noop = () => {}\n\nlet registry: FinalizationRegistry> | undefined\n\nif (globalThis.FinalizationRegistry) {\n registry = new FinalizationRegistry((weakRef: WeakRef) => {\n const stream = weakRef.deref()\n if (stream && !stream.locked) {\n stream.cancel('Response object has been garbage collected').then(noop)\n }\n })\n}\n\n/**\n * Clones a response by teeing the body so we can return two independent\n * ReadableStreams from it. This avoids the bug in the undici library around\n * response cloning.\n *\n * After cloning, the original response's body will be consumed and closed.\n *\n * @see https://github.com/vercel/next.js/pull/73274\n *\n * @param original - The original response to clone.\n * @returns A tuple containing two independent clones of the original response.\n */\nexport function cloneResponse(original: Response): [Response, Response] {\n // If the response has no body, then we can just return the original response\n // twice because it's immutable.\n if (!original.body) {\n return [original, original]\n }\n\n const [body1, body2] = original.body.tee()\n\n const cloned1 = new Response(body1, {\n status: original.status,\n statusText: original.statusText,\n headers: original.headers,\n })\n\n Object.defineProperty(cloned1, 'url', {\n value: original.url,\n // How the original response.url behaves\n configurable: true,\n enumerable: true,\n writable: false,\n })\n\n // The Fetch Standard allows users to skip consuming the response body by\n // relying on garbage collection to release connection resources.\n // https://github.com/nodejs/undici?tab=readme-ov-file#garbage-collection\n //\n // To cancel the stream you then need to cancel both resulting branches.\n // Teeing a stream will generally lock it for the duration, preventing other\n // readers from locking it.\n // https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/tee\n\n // cloned2 is stored in a react cache and cloned for subsequent requests.\n // It is the original request, and is is garbage collected by a\n // FinalizationRegistry in Undici, but since we're tee-ing the stream\n // ourselves, we need to cancel clone1's stream (the response returned from\n // our dedupe fetch) when clone1 is reclaimed, otherwise we leak memory.\n if (registry && cloned1.body) {\n registry.register(cloned1, new WeakRef(cloned1.body))\n }\n\n const cloned2 = new Response(body2, {\n status: original.status,\n statusText: original.statusText,\n headers: original.headers,\n })\n\n Object.defineProperty(cloned2, 'url', {\n value: original.url,\n // How the original response.url behaves\n configurable: true,\n enumerable: true,\n writable: false,\n })\n\n return [cloned1, cloned2]\n}\n"],"names":["noop","registry","globalThis","FinalizationRegistry","weakRef","stream","deref","locked","cancel","then","cloneResponse","original","body","body1","body2","tee","cloned1","Response","status","statusText","headers","Object","defineProperty","value","url","configurable","enumerable","writable","register","WeakRef","cloned2"],"mappings":";;;;AAAA,MAAMA,OAAO,KAAO;AAEpB,IAAIC;AAEJ,IAAIC,WAAWC,oBAAoB,EAAE;IACnCF,WAAW,IAAIE,qBAAqB,CAACC;QACnC,MAAMC,SAASD,QAAQE,KAAK;QAC5B,IAAID,UAAU,CAACA,OAAOE,MAAM,EAAE;YAC5BF,OAAOG,MAAM,CAAC,8CAA8CC,IAAI,CAACT;QACnE;IACF;AACF;AAcO,SAASU,cAAcC,QAAkB;IAC9C,6EAA6E;IAC7E,gCAAgC;IAChC,IAAI,CAACA,SAASC,IAAI,EAAE;QAClB,OAAO;YAACD;YAAUA;SAAS;IAC7B;IAEA,MAAM,CAACE,OAAOC,MAAM,GAAGH,SAASC,IAAI,CAACG,GAAG;IAExC,MAAMC,UAAU,IAAIC,SAASJ,OAAO;QAClCK,QAAQP,SAASO,MAAM;QACvBC,YAAYR,SAASQ,UAAU;QAC/BC,SAAST,SAASS,OAAO;IAC3B;IAEAC,OAAOC,cAAc,CAACN,SAAS,OAAO;QACpCO,OAAOZ,SAASa,GAAG;QACnB,wCAAwC;QACxCC,cAAc;QACdC,YAAY;QACZC,UAAU;IACZ;IAEA,yEAAyE;IACzE,iEAAiE;IACjE,yEAAyE;IACzE,EAAE;IACF,wEAAwE;IACxE,4EAA4E;IAC5E,2BAA2B;IAC3B,sEAAsE;IAEtE,yEAAyE;IACzE,+DAA+D;IAC/D,qEAAqE;IACrE,2EAA2E;IAC3E,wEAAwE;IACxE,IAAI1B,YAAYe,QAAQJ,IAAI,EAAE;QAC5BX,SAAS2B,QAAQ,CAACZ,SAAS,IAAIa,QAAQb,QAAQJ,IAAI;IACrD;IAEA,MAAMkB,UAAU,IAAIb,SAASH,OAAO;QAClCI,QAAQP,SAASO,MAAM;QACvBC,YAAYR,SAASQ,UAAU;QAC/BC,SAAST,SAASS,OAAO;IAC3B;IAEAC,OAAOC,cAAc,CAACQ,SAAS,OAAO;QACpCP,OAAOZ,SAASa,GAAG;QACnB,wCAAwC;QACxCC,cAAc;QACdC,YAAY;QACZC,UAAU;IACZ;IAEA,OAAO;QAACX;QAASc;KAAQ;AAC3B","ignoreList":[0]}}, + {"offset": {"line": 3366, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/lib/dedupe-fetch.ts"],"sourcesContent":["/**\n * Based on https://github.com/facebook/react/blob/d4e78c42a94be027b4dc7ed2659a5fddfbf9bd4e/packages/react/src/ReactFetch.js\n */\nimport * as React from 'react'\nimport { cloneResponse } from './clone-response'\nimport { InvariantError } from '../../shared/lib/invariant-error'\n\nconst simpleCacheKey = '[\"GET\",[],null,\"follow\",null,null,null,null]' // generateCacheKey(new Request('https://blank'));\n\n// Headers that should not affect deduplication\n// traceparent and tracestate are used for distributed tracing and should not affect cache keys\nconst headersToExcludeInCacheKey = new Set(['traceparent', 'tracestate'])\n\nfunction generateCacheKey(request: Request): string {\n // We pick the fields that goes into the key used to dedupe requests.\n // We don't include the `cache` field, because we end up using whatever\n // caching resulted from the first request.\n // Notably we currently don't consider non-standard (or future) options.\n // This might not be safe. TODO: warn for non-standard extensions differing.\n // IF YOU CHANGE THIS UPDATE THE simpleCacheKey ABOVE.\n\n const filteredHeaders = Array.from(request.headers.entries()).filter(\n ([key]) => !headersToExcludeInCacheKey.has(key.toLowerCase())\n )\n\n return JSON.stringify([\n request.method,\n filteredHeaders,\n request.mode,\n request.redirect,\n request.credentials,\n request.referrer,\n request.referrerPolicy,\n request.integrity,\n ])\n}\n\ntype CacheEntry = [\n key: string,\n promise: Promise,\n response: Response | null,\n]\n\nexport function createDedupeFetch(originalFetch: typeof fetch) {\n const getCacheEntries = React.cache(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- url is the cache key\n (url: string): CacheEntry[] => []\n )\n\n return function dedupeFetch(\n resource: URL | RequestInfo,\n options?: RequestInit\n ): Promise {\n if (options && options.signal) {\n // If we're passed a signal, then we assume that\n // someone else controls the lifetime of this object and opts out of\n // caching. It's effectively the opt-out mechanism.\n // Ideally we should be able to check this on the Request but\n // it always gets initialized with its own signal so we don't\n // know if it's supposed to override - unless we also override the\n // Request constructor.\n return originalFetch(resource, options)\n }\n // Normalize the Request\n let url: string\n let cacheKey: string\n if (typeof resource === 'string' && !options) {\n // Fast path.\n cacheKey = simpleCacheKey\n url = resource\n } else {\n // Normalize the request.\n // if resource is not a string or a URL (its an instance of Request)\n // then do not instantiate a new Request but instead\n // reuse the request as to not disturb the body in the event it's a ReadableStream.\n const request =\n typeof resource === 'string' || resource instanceof URL\n ? new Request(resource, options)\n : resource\n if (\n (request.method !== 'GET' && request.method !== 'HEAD') ||\n request.keepalive\n ) {\n // We currently don't dedupe requests that might have side-effects. Those\n // have to be explicitly cached. We assume that the request doesn't have a\n // body if it's GET or HEAD.\n // keepalive gets treated the same as if you passed a custom cache signal.\n return originalFetch(resource, options)\n }\n cacheKey = generateCacheKey(request)\n url = request.url\n }\n\n const cacheEntries = getCacheEntries(url)\n for (let i = 0, j = cacheEntries.length; i < j; i += 1) {\n const [key, promise] = cacheEntries[i]\n if (key === cacheKey) {\n return promise.then(() => {\n const response = cacheEntries[i][2]\n if (!response) throw new InvariantError('No cached response')\n\n // We're cloning the response using this utility because there exists\n // a bug in the undici library around response cloning. See the\n // following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = cloneResponse(response)\n cacheEntries[i][2] = cloned2\n return cloned1\n })\n }\n }\n\n // We pass the original arguments here in case normalizing the Request\n // doesn't include all the options in this environment.\n const promise = originalFetch(resource, options)\n const entry: CacheEntry = [cacheKey, promise, null]\n cacheEntries.push(entry)\n\n return promise.then((response) => {\n // We're cloning the response using this utility because there exists\n // a bug in the undici library around response cloning. See the\n // following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = cloneResponse(response)\n entry[2] = cloned2\n return cloned1\n })\n }\n}\n"],"names":["React","cloneResponse","InvariantError","simpleCacheKey","headersToExcludeInCacheKey","Set","generateCacheKey","request","filteredHeaders","Array","from","headers","entries","filter","key","has","toLowerCase","JSON","stringify","method","mode","redirect","credentials","referrer","referrerPolicy","integrity","createDedupeFetch","originalFetch","getCacheEntries","cache","url","dedupeFetch","resource","options","signal","cacheKey","URL","Request","keepalive","cacheEntries","i","j","length","promise","then","response","cloned1","cloned2","entry","push"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 3486, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/lib/detached-promise.ts"],"sourcesContent":["/**\n * A `Promise.withResolvers` implementation that exposes the `resolve` and\n * `reject` functions on a `Promise`.\n *\n * @see https://tc39.es/proposal-promise-with-resolvers/\n */\nexport class DetachedPromise {\n public readonly resolve: (value: T | PromiseLike) => void\n public readonly reject: (reason: any) => void\n public readonly promise: Promise\n\n constructor() {\n let resolve: (value: T | PromiseLike) => void\n let reject: (reason: any) => void\n\n // Create the promise and assign the resolvers to the object.\n this.promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n\n // We know that resolvers is defined because the Promise constructor runs\n // synchronously.\n this.resolve = resolve!\n this.reject = reject!\n }\n}\n"],"names":["DetachedPromise","constructor","resolve","reject","promise","Promise","res","rej"],"mappings":"AAAA;;;;;CAKC,GACD;;;;AAAO,MAAMA;IAKXC,aAAc;QACZ,IAAIC;QACJ,IAAIC;QAEJ,6DAA6D;QAC7D,IAAI,CAACC,OAAO,GAAG,IAAIC,QAAW,CAACC,KAAKC;YAClCL,UAAUI;YACVH,SAASI;QACX;QAEA,yEAAyE;QACzE,iBAAiB;QACjB,IAAI,CAACL,OAAO,GAAGA;QACf,IAAI,CAACC,MAAM,GAAGA;IAChB;AACF","ignoreList":[0]}}, + {"offset": {"line": 3514, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/lib/batcher.ts"],"sourcesContent":["import type { SchedulerFn } from './scheduler'\n\nimport { DetachedPromise } from './detached-promise'\n\ntype CacheKeyFn = (\n key: K\n) => PromiseLike | C\n\ntype BatcherOptions = {\n cacheKeyFn?: CacheKeyFn\n schedulerFn?: SchedulerFn\n}\n\ntype WorkFnContext = {\n resolve: (value: V | PromiseLike) => void\n key: K\n}\n\ntype WorkFn = (context: WorkFnContext) => Promise\n\n/**\n * A wrapper for a function that will only allow one call to the function to\n * execute at a time.\n */\nexport class Batcher {\n private readonly pending = new Map>()\n\n protected constructor(\n private readonly cacheKeyFn?: CacheKeyFn,\n /**\n * A function that will be called to schedule the wrapped function to be\n * executed. This defaults to a function that will execute the function\n * immediately.\n */\n private readonly schedulerFn: SchedulerFn = (fn) => fn()\n ) {}\n\n /**\n * Creates a new instance of PendingWrapper. If the key extends a string or\n * number, the key will be used as the cache key. If the key is an object, a\n * cache key function must be provided.\n */\n public static create(\n options?: BatcherOptions\n ): Batcher\n public static create(\n options: BatcherOptions &\n Required, 'cacheKeyFn'>>\n ): Batcher\n public static create(\n options?: BatcherOptions\n ): Batcher {\n return new Batcher(options?.cacheKeyFn, options?.schedulerFn)\n }\n\n /**\n * Wraps a function in a promise that will be resolved or rejected only once\n * for a given key. This will allow multiple calls to the function to be\n * made, but only one will be executed at a time. The result of the first\n * call will be returned to all callers.\n *\n * @param key the key to use for the cache\n * @param fn the function to wrap\n * @returns a promise that resolves to the result of the function\n */\n public async batch(key: K, fn: WorkFn): Promise {\n const cacheKey = (this.cacheKeyFn ? await this.cacheKeyFn(key) : key) as C\n if (cacheKey === null) {\n return fn({ resolve: (value) => Promise.resolve(value), key })\n }\n\n const pending = this.pending.get(cacheKey)\n if (pending) return pending\n\n const { promise, resolve, reject } = new DetachedPromise()\n this.pending.set(cacheKey, promise)\n\n this.schedulerFn(async () => {\n try {\n const result = await fn({ resolve, key })\n\n // Resolving a promise multiple times is a no-op, so we can safely\n // resolve all pending promises with the same result.\n resolve(result)\n } catch (err) {\n reject(err)\n } finally {\n this.pending.delete(cacheKey)\n }\n })\n\n return promise\n }\n}\n"],"names":["DetachedPromise","Batcher","cacheKeyFn","schedulerFn","fn","pending","Map","create","options","batch","key","cacheKey","resolve","value","Promise","get","promise","reject","set","result","err","delete"],"mappings":";;;;AAEA,SAASA,eAAe,QAAQ,qBAAoB;;AAsB7C,MAAMC;IAGX,YACmBC,UAA6B,EAC9C;;;;KAIC,GACgBC,cAAiC,CAACC,KAAOA,IAAI,CAC9D;aAPiBF,UAAAA,GAAAA;aAMAC,WAAAA,GAAAA;aATFE,OAAAA,GAAU,IAAIC;IAU5B;IAcH,OAAcC,OACZC,OAA8B,EACZ;QAClB,OAAO,IAAIP,QAAiBO,WAAAA,OAAAA,KAAAA,IAAAA,QAASN,UAAU,EAAEM,WAAAA,OAAAA,KAAAA,IAAAA,QAASL,WAAW;IACvE;IAEA;;;;;;;;;GASC,GACD,MAAaM,MAAMC,GAAM,EAAEN,EAAgB,EAAc;QACvD,MAAMO,WAAY,IAAI,CAACT,UAAU,GAAG,MAAM,IAAI,CAACA,UAAU,CAACQ,OAAOA;QACjE,IAAIC,aAAa,MAAM;YACrB,OAAOP,GAAG;gBAAEQ,SAAS,CAACC,QAAUC,QAAQF,OAAO,CAACC;gBAAQH;YAAI;QAC9D;QAEA,MAAML,UAAU,IAAI,CAACA,OAAO,CAACU,GAAG,CAACJ;QACjC,IAAIN,SAAS,OAAOA;QAEpB,MAAM,EAAEW,OAAO,EAAEJ,OAAO,EAAEK,MAAM,EAAE,GAAG,IAAIjB,4WAAAA;QACzC,IAAI,CAACK,OAAO,CAACa,GAAG,CAACP,UAAUK;QAE3B,IAAI,CAACb,WAAW,CAAC;YACf,IAAI;gBACF,MAAMgB,SAAS,MAAMf,GAAG;oBAAEQ;oBAASF;gBAAI;gBAEvC,kEAAkE;gBAClE,qDAAqD;gBACrDE,QAAQO;YACV,EAAE,OAAOC,KAAK;gBACZH,OAAOG;YACT,SAAU;gBACR,IAAI,CAACf,OAAO,CAACgB,MAAM,CAACV;YACtB;QACF;QAEA,OAAOK;IACT;AACF","ignoreList":[0]}}, + {"offset": {"line": 3576, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/response-cache/types.ts"],"sourcesContent":["import type { OutgoingHttpHeaders } from 'http'\nimport type RenderResult from '../render-result'\nimport type { CacheControl, Revalidate } from '../lib/cache-control'\nimport type { RouteKind } from '../route-kind'\n\nexport interface ResponseCacheBase {\n get(\n key: string | null,\n responseGenerator: ResponseGenerator,\n context: {\n isOnDemandRevalidate?: boolean\n isPrefetch?: boolean\n incrementalCache: IncrementalCache\n /**\n * This is a hint to the cache to help it determine what kind of route\n * this is so it knows where to look up the cache entry from. If not\n * provided it will test the filesystem to check.\n */\n routeKind: RouteKind\n\n /**\n * True if this is a fallback request.\n */\n isFallback?: boolean\n\n /**\n * True if the route is enabled for PPR.\n */\n isRoutePPREnabled?: boolean\n }\n ): Promise\n}\n\n// The server components HMR cache might store other data as well in the future,\n// at which point this should be refactored to a discriminated union type.\nexport interface ServerComponentsHmrCache {\n get(key: string): CachedFetchData | undefined\n set(key: string, data: CachedFetchData): void\n}\n\nexport type CachedFetchData = {\n headers: Record\n body: string\n url: string\n status?: number\n}\n\nexport const enum CachedRouteKind {\n APP_PAGE = 'APP_PAGE',\n APP_ROUTE = 'APP_ROUTE',\n PAGES = 'PAGES',\n FETCH = 'FETCH',\n REDIRECT = 'REDIRECT',\n IMAGE = 'IMAGE',\n}\n\nexport interface CachedFetchValue {\n kind: CachedRouteKind.FETCH\n data: CachedFetchData\n // tags are only present with file-system-cache\n // fetch cache stores tags outside of cache entry\n tags?: string[]\n revalidate: number\n}\n\nexport interface CachedRedirectValue {\n kind: CachedRouteKind.REDIRECT\n props: Object\n}\n\nexport interface CachedAppPageValue {\n kind: CachedRouteKind.APP_PAGE\n // this needs to be a RenderResult so since renderResponse\n // expects that type instead of a string\n html: RenderResult\n rscData: Buffer | undefined\n status: number | undefined\n postponed: string | undefined\n headers: OutgoingHttpHeaders | undefined\n segmentData: Map | undefined\n}\n\nexport interface CachedPageValue {\n kind: CachedRouteKind.PAGES\n // this needs to be a RenderResult so since renderResponse\n // expects that type instead of a string\n html: RenderResult\n pageData: Object\n status: number | undefined\n headers: OutgoingHttpHeaders | undefined\n}\n\nexport interface CachedRouteValue {\n kind: CachedRouteKind.APP_ROUTE\n // this needs to be a RenderResult so since renderResponse\n // expects that type instead of a string\n body: Buffer\n status: number\n headers: OutgoingHttpHeaders\n}\n\nexport interface CachedImageValue {\n kind: CachedRouteKind.IMAGE\n etag: string\n upstreamEtag: string\n buffer: Buffer\n extension: string\n isMiss?: boolean\n isStale?: boolean\n}\n\nexport interface IncrementalCachedAppPageValue {\n kind: CachedRouteKind.APP_PAGE\n // this needs to be a string since the cache expects to store\n // the string value\n html: string\n rscData: Buffer | undefined\n headers: OutgoingHttpHeaders | undefined\n postponed: string | undefined\n status: number | undefined\n segmentData: Map | undefined\n}\n\nexport interface IncrementalCachedPageValue {\n kind: CachedRouteKind.PAGES\n // this needs to be a string since the cache expects to store\n // the string value\n html: string\n pageData: Object\n headers: OutgoingHttpHeaders | undefined\n status: number | undefined\n}\n\nexport interface IncrementalResponseCacheEntry {\n cacheControl?: CacheControl\n /**\n * timestamp in milliseconds to revalidate after\n */\n revalidateAfter?: Revalidate\n /**\n * `-1` here dictates a blocking revalidate should be used\n */\n isStale?: boolean | -1\n isMiss?: boolean\n value: Exclude | null\n}\n\nexport interface IncrementalFetchCacheEntry {\n /**\n * `-1` here dictates a blocking revalidate should be used\n */\n isStale?: boolean | -1\n value: CachedFetchValue\n}\n\nexport type IncrementalCacheEntry =\n | IncrementalResponseCacheEntry\n | IncrementalFetchCacheEntry\n\nexport type IncrementalCacheValue =\n | CachedRedirectValue\n | IncrementalCachedPageValue\n | IncrementalCachedAppPageValue\n | CachedImageValue\n | CachedFetchValue\n | CachedRouteValue\n\nexport type ResponseCacheValue =\n | CachedRedirectValue\n | CachedPageValue\n | CachedAppPageValue\n | CachedImageValue\n | CachedRouteValue\n\nexport type ResponseCacheEntry = {\n cacheControl?: CacheControl\n value: ResponseCacheValue | null\n isStale?: boolean | -1\n isMiss?: boolean\n}\n\n/**\n * @param hasResolved whether the responseGenerator has resolved it's promise\n * @param previousCacheEntry the previous cache entry if it exists or the current\n */\nexport type ResponseGenerator = (state: {\n hasResolved: boolean\n previousCacheEntry?: IncrementalResponseCacheEntry | null\n isRevalidating?: boolean\n span?: any\n\n /**\n * When true, this indicates that the response generator is being called in a\n * context where the response must be generated statically.\n *\n * CRITICAL: This should only currently be used when revalidating due to a\n * dynamic RSC request.\n */\n forceStaticRender?: boolean\n}) => Promise\n\nexport const enum IncrementalCacheKind {\n APP_PAGE = 'APP_PAGE',\n APP_ROUTE = 'APP_ROUTE',\n PAGES = 'PAGES',\n FETCH = 'FETCH',\n IMAGE = 'IMAGE',\n}\n\nexport interface GetIncrementalFetchCacheContext {\n kind: IncrementalCacheKind.FETCH\n revalidate?: Revalidate\n fetchUrl?: string\n fetchIdx?: number\n tags?: string[]\n softTags?: string[]\n}\n\nexport interface GetIncrementalResponseCacheContext {\n kind: Exclude\n\n /**\n * True if the route is enabled for PPR.\n */\n isRoutePPREnabled?: boolean\n\n /**\n * True if this is a fallback request.\n */\n isFallback: boolean\n}\n\nexport interface SetIncrementalFetchCacheContext {\n fetchCache: true\n fetchUrl?: string\n fetchIdx?: number\n tags?: string[]\n isImplicitBuildTimeCache?: boolean\n}\n\nexport interface SetIncrementalResponseCacheContext {\n fetchCache?: false\n cacheControl?: CacheControl\n\n /**\n * True if the route is enabled for PPR.\n */\n isRoutePPREnabled?: boolean\n\n /**\n * True if this is a fallback request.\n */\n isFallback?: boolean\n}\n\nexport interface IncrementalResponseCache {\n get(\n cacheKey: string,\n ctx: GetIncrementalResponseCacheContext\n ): Promise\n set(\n key: string,\n data: Exclude | null,\n ctx: SetIncrementalResponseCacheContext\n ): Promise\n}\n\nexport interface IncrementalCache extends IncrementalResponseCache {\n get(\n cacheKey: string,\n ctx: GetIncrementalFetchCacheContext\n ): Promise\n get(\n cacheKey: string,\n ctx: GetIncrementalResponseCacheContext\n ): Promise\n set(\n key: string,\n data: CachedFetchValue | null,\n ctx: SetIncrementalFetchCacheContext\n ): Promise\n set(\n key: string,\n data: Exclude | null,\n ctx: SetIncrementalResponseCacheContext\n ): Promise\n revalidateTag(\n tags: string | string[],\n durations?: { expire?: number }\n ): Promise\n}\n"],"names":["CachedRouteKind","IncrementalCacheKind"],"mappings":";;;;;;AA+CO,IAAWA,kBAAAA,WAAAA,GAAAA,SAAAA,eAAAA;;;;;;;WAAAA;MAOjB;AAmJM,IAAWC,uBAAAA,WAAAA,GAAAA,SAAAA,oBAAAA;;;;;;WAAAA;MAMjB","ignoreList":[0]}}, + {"offset": {"line": 3603, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/stream-utils/encoded-tags.ts"],"sourcesContent":["export const ENCODED_TAGS = {\n // opening tags do not have the closing `>` since they can contain other attributes such as ``\n OPENING: {\n // \n HEAD: new Uint8Array([60, 47, 104, 101, 97, 100, 62]),\n // \n BODY: new Uint8Array([60, 47, 98, 111, 100, 121, 62]),\n // \n HTML: new Uint8Array([60, 47, 104, 116, 109, 108, 62]),\n // \n BODY_AND_HTML: new Uint8Array([\n 60, 47, 98, 111, 100, 121, 62, 60, 47, 104, 116, 109, 108, 62,\n ]),\n },\n META: {\n // Only the match the prefix cause the suffix can be different wether it's xml compatible or not \">\" or \"/>\"\n // a.length) return -1\n\n // start iterating through `a`\n for (let i = 0; i <= a.length - b.length; i++) {\n let completeMatch = true\n // from index `i`, iterate through `b` and check for mismatch\n for (let j = 0; j < b.length; j++) {\n // if the values do not match, then this isn't a complete match, exit `b` iteration early and iterate to next index of `a`.\n if (a[i + j] !== b[j]) {\n completeMatch = false\n break\n }\n }\n\n if (completeMatch) {\n return i\n }\n }\n\n return -1\n}\n\n/**\n * Check if two Uint8Arrays are strictly equivalent.\n */\nexport function isEquivalentUint8Arrays(a: Uint8Array, b: Uint8Array) {\n if (a.length !== b.length) return false\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false\n }\n\n return true\n}\n\n/**\n * Remove Uint8Array `b` from Uint8Array `a`.\n *\n * If `b` is not in `a`, `a` is returned unchanged.\n *\n * Otherwise, the function returns a new Uint8Array instance with size `a.length - b.length`\n */\nexport function removeFromUint8Array(a: Uint8Array, b: Uint8Array) {\n const tagIndex = indexOfUint8Array(a, b)\n if (tagIndex === 0) return a.subarray(b.length)\n if (tagIndex > -1) {\n const removed = new Uint8Array(a.length - b.length)\n removed.set(a.slice(0, tagIndex))\n removed.set(a.slice(tagIndex + b.length), tagIndex)\n return removed\n } else {\n return a\n }\n}\n"],"names":["indexOfUint8Array","a","b","length","i","completeMatch","j","isEquivalentUint8Arrays","removeFromUint8Array","tagIndex","subarray","removed","Uint8Array","set","slice"],"mappings":"AAAA;;CAEC,GACD;;;;;;;;AAAO,SAASA,kBAAkBC,CAAa,EAAEC,CAAa;IAC5D,IAAIA,EAAEC,MAAM,KAAK,GAAG,OAAO;IAC3B,IAAIF,EAAEE,MAAM,KAAK,KAAKD,EAAEC,MAAM,GAAGF,EAAEE,MAAM,EAAE,OAAO,CAAC;IAEnD,8BAA8B;IAC9B,IAAK,IAAIC,IAAI,GAAGA,KAAKH,EAAEE,MAAM,GAAGD,EAAEC,MAAM,EAAEC,IAAK;QAC7C,IAAIC,gBAAgB;QACpB,6DAA6D;QAC7D,IAAK,IAAIC,IAAI,GAAGA,IAAIJ,EAAEC,MAAM,EAAEG,IAAK;YACjC,2HAA2H;YAC3H,IAAIL,CAAC,CAACG,IAAIE,EAAE,KAAKJ,CAAC,CAACI,EAAE,EAAE;gBACrBD,gBAAgB;gBAChB;YACF;QACF;QAEA,IAAIA,eAAe;YACjB,OAAOD;QACT;IACF;IAEA,OAAO,CAAC;AACV;AAKO,SAASG,wBAAwBN,CAAa,EAAEC,CAAa;IAClE,IAAID,EAAEE,MAAM,KAAKD,EAAEC,MAAM,EAAE,OAAO;IAElC,IAAK,IAAIC,IAAI,GAAGA,IAAIH,EAAEE,MAAM,EAAEC,IAAK;QACjC,IAAIH,CAAC,CAACG,EAAE,KAAKF,CAAC,CAACE,EAAE,EAAE,OAAO;IAC5B;IAEA,OAAO;AACT;AASO,SAASI,qBAAqBP,CAAa,EAAEC,CAAa;IAC/D,MAAMO,WAAWT,kBAAkBC,GAAGC;IACtC,IAAIO,aAAa,GAAG,OAAOR,EAAES,QAAQ,CAACR,EAAEC,MAAM;IAC9C,IAAIM,WAAW,CAAC,GAAG;QACjB,MAAME,UAAU,IAAIC,WAAWX,EAAEE,MAAM,GAAGD,EAAEC,MAAM;QAClDQ,QAAQE,GAAG,CAACZ,EAAEa,KAAK,CAAC,GAAGL;QACvBE,QAAQE,GAAG,CAACZ,EAAEa,KAAK,CAACL,WAAWP,EAAEC,MAAM,GAAGM;QAC1C,OAAOE;IACT,OAAO;QACL,OAAOV;IACT;AACF","ignoreList":[0]}}, + {"offset": {"line": 3766, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/errors/constants.ts"],"sourcesContent":["export const MISSING_ROOT_TAGS_ERROR = 'NEXT_MISSING_ROOT_TAGS'\n"],"names":["MISSING_ROOT_TAGS_ERROR"],"mappings":";;;;AAAO,MAAMA,0BAA0B,yBAAwB","ignoreList":[0]}}, + {"offset": {"line": 3775, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/segment-cache/output-export-prefetch-encoding.ts"],"sourcesContent":["// In output: export mode, the build id is added to the start of the HTML\n// document, directly after the doctype declaration. During a prefetch, the\n// client performs a range request to get the build id, so it can check whether\n// the target page belongs to the same build.\n//\n// The first 64 bytes of the document are requested. The exact number isn't\n// too important; it must be larger than the build id + doctype + closing and\n// ending comment markers, but it doesn't need to match the end of the\n// comment exactly.\n//\n// Build ids are 21 bytes long in the default implementation, though this\n// can be overridden in the Next.js config. For the purposes of this check,\n// it's OK to only match the start of the id, so we'll truncate it if exceeds\n// a certain length.\n\nconst DOCTYPE_PREFIX = '' // 15 bytes\nconst MAX_BUILD_ID_LENGTH = 24\n\n// Request the first 64 bytes. The Range header is inclusive of the end value.\nexport const DOC_PREFETCH_RANGE_HEADER_VALUE = 'bytes=0-63'\n\nfunction escapeBuildId(buildId: string) {\n // If the build id is longer than the given limit, it's OK for our purposes\n // to only match the beginning.\n const truncated = buildId.slice(0, MAX_BUILD_ID_LENGTH)\n // Replace hyphens with underscores so it doesn't break the HTML comment.\n // (Unlikely, but if this did happen it would break the whole document.)\n return truncated.replace(/-/g, '_')\n}\n\nexport function insertBuildIdComment(originalHtml: string, buildId: string) {\n if (\n // Skip if the build id contains a closing comment marker.\n buildId.includes('-->') ||\n // React always inserts a doctype at the start of the document. Skip if it\n // isn't present. Shouldn't happen; suggests an issue elsewhere.\n !originalHtml.startsWith(DOCTYPE_PREFIX)\n ) {\n // Return the original HTML unchanged. This means the document will not\n // be prefetched.\n // TODO: The build id comment is currently only used during prefetches, but\n // if we eventually use this mechanism for regular navigations, we may need\n // to error during build if we fail to insert it for some reason.\n return originalHtml\n }\n // The comment must be inserted after the doctype.\n return originalHtml.replace(\n DOCTYPE_PREFIX,\n DOCTYPE_PREFIX + ''\n )\n}\n\nexport function doesExportedHtmlMatchBuildId(\n partialHtmlDocument: string,\n buildId: string\n) {\n // Check whether the document starts with the expected buildId.\n return partialHtmlDocument.startsWith(\n DOCTYPE_PREFIX + ''\n )\n}\n"],"names":["DOCTYPE_PREFIX","MAX_BUILD_ID_LENGTH","DOC_PREFETCH_RANGE_HEADER_VALUE","escapeBuildId","buildId","truncated","slice","replace","insertBuildIdComment","originalHtml","includes","startsWith","doesExportedHtmlMatchBuildId","partialHtmlDocument"],"mappings":"AAAA,yEAAyE;AACzE,2EAA2E;AAC3E,+EAA+E;AAC/E,6CAA6C;AAC7C,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,sEAAsE;AACtE,mBAAmB;AACnB,EAAE;AACF,yEAAyE;AACzE,2EAA2E;AAC3E,6EAA6E;AAC7E,oBAAoB;;;;;;;;;AAEpB,MAAMA,iBAAiB,kBAAkB,WAAW;;AACpD,MAAMC,sBAAsB;AAGrB,MAAMC,kCAAkC,aAAY;AAE3D,SAASC,cAAcC,OAAe;IACpC,2EAA2E;IAC3E,+BAA+B;IAC/B,MAAMC,YAAYD,QAAQE,KAAK,CAAC,GAAGL;IACnC,yEAAyE;IACzE,wEAAwE;IACxE,OAAOI,UAAUE,OAAO,CAAC,MAAM;AACjC;AAEO,SAASC,qBAAqBC,YAAoB,EAAEL,OAAe;IACxE,IAEEA,AADA,QACQM,QAAQ,CAAC,UACjB,+BAF0D,2CAEgB;IAC1E,gEAAgE;IAChE,CAACD,aAAaE,UAAU,CAACX,iBACzB;QACA,uEAAuE;QACvE,iBAAiB;QACjB,2EAA2E;QAC3E,2EAA2E;QAC3E,iEAAiE;QACjE,OAAOS;IACT;IACA,kDAAkD;IAClD,OAAOA,aAAaF,OAAO,CACzBP,gBACAA,iBAAiB,SAASG,cAAcC,WAAW;AAEvD;AAEO,SAASQ,6BACdC,mBAA2B,EAC3BT,OAAe;IAEf,+DAA+D;IAC/D,OAAOS,oBAAoBF,UAAU,CACnCX,iBAAiB,SAASG,cAAcC,WAAW;AAEvD","ignoreList":[0]}}, + {"offset": {"line": 3831, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/client/components/app-router-headers.ts"],"sourcesContent":["export const RSC_HEADER = 'rsc' as const\nexport const ACTION_HEADER = 'next-action' as const\n// TODO: Instead of sending the full router state, we only need to send the\n// segment path. Saves bytes. Then we could also use this field for segment\n// prefetches, which also need to specify a particular segment.\nexport const NEXT_ROUTER_STATE_TREE_HEADER = 'next-router-state-tree' as const\nexport const NEXT_ROUTER_PREFETCH_HEADER = 'next-router-prefetch' as const\n// This contains the path to the segment being prefetched.\n// TODO: If we change next-router-state-tree to be a segment path, we can use\n// that instead. Then next-router-prefetch and next-router-segment-prefetch can\n// be merged into a single enum.\nexport const NEXT_ROUTER_SEGMENT_PREFETCH_HEADER =\n 'next-router-segment-prefetch' as const\nexport const NEXT_HMR_REFRESH_HEADER = 'next-hmr-refresh' as const\nexport const NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__' as const\nexport const NEXT_URL = 'next-url' as const\nexport const RSC_CONTENT_TYPE_HEADER = 'text/x-component' as const\n\nexport const FLIGHT_HEADERS = [\n RSC_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER,\n] as const\n\nexport const NEXT_RSC_UNION_QUERY = '_rsc' as const\n\nexport const NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time' as const\nexport const NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed' as const\nexport const NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path' as const\nexport const NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query' as const\nexport const NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender' as const\nexport const NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found' as const\nexport const NEXT_REQUEST_ID_HEADER = 'x-nextjs-request-id' as const\nexport const NEXT_HTML_REQUEST_ID_HEADER = 'x-nextjs-html-request-id' as const\n"],"names":["RSC_HEADER","ACTION_HEADER","NEXT_ROUTER_STATE_TREE_HEADER","NEXT_ROUTER_PREFETCH_HEADER","NEXT_ROUTER_SEGMENT_PREFETCH_HEADER","NEXT_HMR_REFRESH_HEADER","NEXT_HMR_REFRESH_HASH_COOKIE","NEXT_URL","RSC_CONTENT_TYPE_HEADER","FLIGHT_HEADERS","NEXT_RSC_UNION_QUERY","NEXT_ROUTER_STALE_TIME_HEADER","NEXT_DID_POSTPONE_HEADER","NEXT_REWRITTEN_PATH_HEADER","NEXT_REWRITTEN_QUERY_HEADER","NEXT_IS_PRERENDER_HEADER","NEXT_ACTION_NOT_FOUND_HEADER","NEXT_REQUEST_ID_HEADER","NEXT_HTML_REQUEST_ID_HEADER"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAMA,aAAa,MAAc;AACjC,MAAMC,gBAAgB,cAAsB;AAI5C,MAAMC,gCAAgC,yBAAiC;AACvE,MAAMC,8BAA8B,uBAA+B;AAKnE,MAAMC,sCACX,+BAAuC;AAClC,MAAMC,0BAA0B,mBAA2B;AAC3D,MAAMC,+BAA+B,4BAAoC;AACzE,MAAMC,WAAW,WAAmB;AACpC,MAAMC,0BAA0B,mBAA2B;AAE3D,MAAMC,iBAAiB;IAC5BT;IACAE;IACAC;IACAE;IACAD;CACD,CAAS;AAEH,MAAMM,uBAAuB,OAAe;AAE5C,MAAMC,gCAAgC,sBAA8B;AACpE,MAAMC,2BAA2B,qBAA6B;AAC9D,MAAMC,6BAA6B,0BAAkC;AACrE,MAAMC,8BAA8B,2BAAmC;AACvE,MAAMC,2BAA2B,qBAA6B;AAC9D,MAAMC,+BAA+B,4BAAoC;AACzE,MAAMC,yBAAyB,sBAA8B;AAC7D,MAAMC,8BAA8B,2BAAmC","ignoreList":[0]}}, + {"offset": {"line": 3900, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/hash.ts"],"sourcesContent":["// http://www.cse.yorku.ca/~oz/hash.html\n// More specifically, 32-bit hash via djbxor\n// (ref: https://gist.github.com/eplawless/52813b1d8ad9af510d85?permalink_comment_id=3367765#gistcomment-3367765)\n// This is due to number type differences between rust for turbopack to js number types,\n// where rust does not have easy way to repreesnt js's 53-bit float number type for the matching\n// overflow behavior. This is more `correct` in terms of having canonical hash across different runtime / implementation\n// as can gaurantee determinstic output from 32bit hash.\nexport function djb2Hash(str: string) {\n let hash = 5381\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i)\n hash = ((hash << 5) + hash + char) & 0xffffffff\n }\n return hash >>> 0\n}\n\nexport function hexHash(str: string) {\n return djb2Hash(str).toString(36).slice(0, 5)\n}\n"],"names":["djb2Hash","str","hash","i","length","char","charCodeAt","hexHash","toString","slice"],"mappings":"AAAA,wCAAwC;AACxC,4CAA4C;AAC5C,iHAAiH;AACjH,wFAAwF;AACxF,gGAAgG;AAChG,wHAAwH;AACxH,wDAAwD;;;;;;;AACjD,SAASA,SAASC,GAAW;IAClC,IAAIC,OAAO;IACX,IAAK,IAAIC,IAAI,GAAGA,IAAIF,IAAIG,MAAM,EAAED,IAAK;QACnC,MAAME,OAAOJ,IAAIK,UAAU,CAACH;QAC5BD,OAASA,CAAAA,QAAQ,CAAA,IAAKA,OAAOG,OAAQ;IACvC;IACA,OAAOH,SAAS;AAClB;AAEO,SAASK,QAAQN,GAAW;IACjC,OAAOD,SAASC,KAAKO,QAAQ,CAAC,IAAIC,KAAK,CAAC,GAAG;AAC7C","ignoreList":[0]}}, + {"offset": {"line": 3928, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/cache-busting-search-param.ts"],"sourcesContent":["import { hexHash } from '../../hash'\n\nexport function computeCacheBustingSearchParam(\n prefetchHeader: '1' | '2' | '0' | undefined,\n segmentPrefetchHeader: string | string[] | undefined,\n stateTreeHeader: string | string[] | undefined,\n nextUrlHeader: string | string[] | undefined\n): string {\n if (\n (prefetchHeader === undefined || prefetchHeader === '0') &&\n segmentPrefetchHeader === undefined &&\n stateTreeHeader === undefined &&\n nextUrlHeader === undefined\n ) {\n return ''\n }\n return hexHash(\n [\n prefetchHeader || '0',\n segmentPrefetchHeader || '0',\n stateTreeHeader || '0',\n nextUrlHeader || '0',\n ].join(',')\n )\n}\n"],"names":["hexHash","computeCacheBustingSearchParam","prefetchHeader","segmentPrefetchHeader","stateTreeHeader","nextUrlHeader","undefined","join"],"mappings":";;;;AAAA,SAASA,OAAO,QAAQ,aAAY;;AAE7B,SAASC,+BACdC,cAA2C,EAC3CC,qBAAoD,EACpDC,eAA8C,EAC9CC,aAA4C;IAE5C,IACGH,CAAAA,mBAAmBI,aAAaJ,mBAAmB,GAAE,KACtDC,0BAA0BG,aAC1BF,oBAAoBE,aACpBD,kBAAkBC,WAClB;QACA,OAAO;IACT;IACA,WAAON,+VAAAA,EACL;QACEE,kBAAkB;QAClBC,yBAAyB;QACzBC,mBAAmB;QACnBC,iBAAiB;KAClB,CAACE,IAAI,CAAC;AAEX","ignoreList":[0]}}, + {"offset": {"line": 3949, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/stream-utils/node-web-streams-helper.ts"],"sourcesContent":["import type { ReactDOMServerReadableStream } from 'react-dom/server'\nimport { getTracer } from '../lib/trace/tracer'\nimport { AppRenderSpan } from '../lib/trace/constants'\nimport { DetachedPromise } from '../../lib/detached-promise'\nimport { scheduleImmediate, atLeastOneTask } from '../../lib/scheduler'\nimport { ENCODED_TAGS } from './encoded-tags'\nimport {\n indexOfUint8Array,\n isEquivalentUint8Arrays,\n removeFromUint8Array,\n} from './uint8array-helpers'\nimport { MISSING_ROOT_TAGS_ERROR } from '../../shared/lib/errors/constants'\nimport { insertBuildIdComment } from '../../shared/lib/segment-cache/output-export-prefetch-encoding'\nimport {\n RSC_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER,\n NEXT_RSC_UNION_QUERY,\n} from '../../client/components/app-router-headers'\nimport { computeCacheBustingSearchParam } from '../../shared/lib/router/utils/cache-busting-search-param'\n\nfunction voidCatch() {\n // this catcher is designed to be used with pipeTo where we expect the underlying\n // pipe implementation to forward errors but we don't want the pipeTo promise to reject\n // and be unhandled\n}\n\n// We can share the same encoder instance everywhere\n// Notably we cannot do the same for TextDecoder because it is stateful\n// when handling streaming data\nconst encoder = new TextEncoder()\n\nexport function chainStreams(\n ...streams: ReadableStream[]\n): ReadableStream {\n // If we have no streams, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n if (streams.length === 0) {\n return new ReadableStream({\n start(controller) {\n controller.close()\n },\n })\n }\n\n // If we only have 1 stream we fast path it by returning just this stream\n if (streams.length === 1) {\n return streams[0]\n }\n\n const { readable, writable } = new TransformStream()\n\n // We always initiate pipeTo immediately. We know we have at least 2 streams\n // so we need to avoid closing the writable when this one finishes.\n let promise = streams[0].pipeTo(writable, { preventClose: true })\n\n let i = 1\n for (; i < streams.length - 1; i++) {\n const nextStream = streams[i]\n promise = promise.then(() =>\n nextStream.pipeTo(writable, { preventClose: true })\n )\n }\n\n // We can omit the length check because we halted before the last stream and there\n // is at least two streams so the lastStream here will always be defined\n const lastStream = streams[i]\n promise = promise.then(() => lastStream.pipeTo(writable))\n\n // Catch any errors from the streams and ignore them, they will be handled\n // by whatever is consuming the readable stream.\n promise.catch(voidCatch)\n\n return readable\n}\n\nexport function streamFromString(str: string): ReadableStream {\n return new ReadableStream({\n start(controller) {\n controller.enqueue(encoder.encode(str))\n controller.close()\n },\n })\n}\n\nexport function streamFromBuffer(chunk: Buffer): ReadableStream {\n return new ReadableStream({\n start(controller) {\n controller.enqueue(chunk)\n controller.close()\n },\n })\n}\n\nexport async function streamToBuffer(\n stream: ReadableStream\n): Promise {\n const reader = stream.getReader()\n const chunks: Uint8Array[] = []\n\n while (true) {\n const { done, value } = await reader.read()\n if (done) {\n break\n }\n\n chunks.push(value)\n }\n\n return Buffer.concat(chunks)\n}\n\nexport async function streamToString(\n stream: ReadableStream,\n signal?: AbortSignal\n): Promise {\n const decoder = new TextDecoder('utf-8', { fatal: true })\n let string = ''\n\n for await (const chunk of stream) {\n if (signal?.aborted) {\n return string\n }\n\n string += decoder.decode(chunk, { stream: true })\n }\n\n string += decoder.decode()\n\n return string\n}\n\nexport type BufferedTransformOptions = {\n /**\n * Flush synchronously once the buffer reaches this many bytes.\n */\n readonly maxBufferByteLength?: number\n}\n\nexport function createBufferedTransformStream(\n options: BufferedTransformOptions = {}\n): TransformStream {\n const { maxBufferByteLength = Infinity } = options\n\n let bufferedChunks: Array = []\n let bufferByteLength: number = 0\n let pending: DetachedPromise | undefined\n\n const flush = (controller: TransformStreamDefaultController) => {\n try {\n if (bufferedChunks.length === 0) {\n return\n }\n\n const chunk = new Uint8Array(bufferByteLength)\n let copiedBytes = 0\n\n for (let i = 0; i < bufferedChunks.length; i++) {\n const bufferedChunk = bufferedChunks[i]\n chunk.set(bufferedChunk, copiedBytes)\n copiedBytes += bufferedChunk.byteLength\n }\n // We just wrote all the buffered chunks so we need to reset the bufferedChunks array\n // and our bufferByteLength to prepare for the next round of buffered chunks\n bufferedChunks.length = 0\n bufferByteLength = 0\n controller.enqueue(chunk)\n } catch {\n // If an error occurs while enqueuing, it can't be due to this\n // transformer. It's most likely caused by the controller having been\n // errored (for example, if the stream was cancelled).\n }\n }\n\n const scheduleFlush = (controller: TransformStreamDefaultController) => {\n if (pending) {\n return\n }\n\n const detached = new DetachedPromise()\n pending = detached\n\n scheduleImmediate(() => {\n try {\n flush(controller)\n } finally {\n pending = undefined\n detached.resolve()\n }\n })\n }\n\n return new TransformStream({\n transform(chunk, controller) {\n // Combine the previous buffer with the new chunk.\n bufferedChunks.push(chunk)\n bufferByteLength += chunk.byteLength\n\n if (bufferByteLength >= maxBufferByteLength) {\n flush(controller)\n } else {\n scheduleFlush(controller)\n }\n },\n flush() {\n return pending?.promise\n },\n })\n}\n\nfunction createPrefetchCommentStream(\n isBuildTimePrerendering: boolean,\n buildId: string\n): TransformStream {\n // Insert an extra comment at the beginning of the HTML document. This must\n // come after the DOCTYPE, which is inserted by React.\n //\n // The first chunk sent by React will contain the doctype. After that, we can\n // pass through the rest of the chunks as-is.\n let didTransformFirstChunk = false\n return new TransformStream({\n transform(chunk, controller) {\n if (isBuildTimePrerendering && !didTransformFirstChunk) {\n didTransformFirstChunk = true\n const decoder = new TextDecoder('utf-8', { fatal: true })\n const chunkStr = decoder.decode(chunk, {\n stream: true,\n })\n const updatedChunkStr = insertBuildIdComment(chunkStr, buildId)\n controller.enqueue(encoder.encode(updatedChunkStr))\n return\n }\n controller.enqueue(chunk)\n },\n })\n}\n\nexport function renderToInitialFizzStream({\n ReactDOMServer,\n element,\n streamOptions,\n}: {\n ReactDOMServer: {\n renderToReadableStream: typeof import('react-dom/server').renderToReadableStream\n }\n element: React.ReactElement\n streamOptions?: Parameters[1]\n}): Promise {\n return getTracer().trace(AppRenderSpan.renderToReadableStream, async () =>\n ReactDOMServer.renderToReadableStream(element, streamOptions)\n )\n}\n\nfunction createMetadataTransformStream(\n insert: () => Promise | string\n): TransformStream {\n let chunkIndex = -1\n let isMarkRemoved = false\n\n return new TransformStream({\n async transform(chunk, controller) {\n let iconMarkIndex = -1\n let closedHeadIndex = -1\n chunkIndex++\n\n if (isMarkRemoved) {\n controller.enqueue(chunk)\n return\n }\n let iconMarkLength = 0\n // Only search for the closed head tag once\n if (iconMarkIndex === -1) {\n iconMarkIndex = indexOfUint8Array(chunk, ENCODED_TAGS.META.ICON_MARK)\n if (iconMarkIndex === -1) {\n controller.enqueue(chunk)\n return\n } else {\n // When we found the `` or `>`, checking the next char to ensure we cover both cases.\n iconMarkLength = ENCODED_TAGS.META.ICON_MARK.length\n // Check if next char is /, this is for xml mode.\n if (chunk[iconMarkIndex + iconMarkLength] === 47) {\n iconMarkLength += 2\n } else {\n // The last char is `>`\n iconMarkLength++\n }\n }\n }\n\n // Check if icon mark is inside tag in the first chunk.\n if (chunkIndex === 0) {\n closedHeadIndex = indexOfUint8Array(chunk, ENCODED_TAGS.CLOSED.HEAD)\n if (iconMarkIndex !== -1) {\n // The mark icon is located in the 1st chunk before the head tag.\n // We do not need to insert the script tag in this case because it's in the head.\n // Just remove the icon mark from the chunk.\n if (iconMarkIndex < closedHeadIndex) {\n const replaced = new Uint8Array(chunk.length - iconMarkLength)\n\n // Remove the icon mark from the chunk.\n replaced.set(chunk.subarray(0, iconMarkIndex))\n replaced.set(\n chunk.subarray(iconMarkIndex + iconMarkLength),\n iconMarkIndex\n )\n chunk = replaced\n } else {\n // The icon mark is after the head tag, replace and insert the script tag at that position.\n const insertion = await insert()\n const encodedInsertion = encoder.encode(insertion)\n const insertionLength = encodedInsertion.length\n const replaced = new Uint8Array(\n chunk.length - iconMarkLength + insertionLength\n )\n replaced.set(chunk.subarray(0, iconMarkIndex))\n replaced.set(encodedInsertion, iconMarkIndex)\n replaced.set(\n chunk.subarray(iconMarkIndex + iconMarkLength),\n iconMarkIndex + insertionLength\n )\n chunk = replaced\n }\n isMarkRemoved = true\n }\n // If there's no icon mark located, it will be handled later when if present in the following chunks.\n } else {\n // When it's appeared in the following chunks, we'll need to\n // remove the mark and then insert the script tag at that position.\n const insertion = await insert()\n const encodedInsertion = encoder.encode(insertion)\n const insertionLength = encodedInsertion.length\n // Replace the icon mark with the hoist script or empty string.\n const replaced = new Uint8Array(\n chunk.length - iconMarkLength + insertionLength\n )\n // Set the first part of the chunk, before the icon mark.\n replaced.set(chunk.subarray(0, iconMarkIndex))\n // Set the insertion after the icon mark.\n replaced.set(encodedInsertion, iconMarkIndex)\n\n // Set the rest of the chunk after the icon mark.\n replaced.set(\n chunk.subarray(iconMarkIndex + iconMarkLength),\n iconMarkIndex + insertionLength\n )\n chunk = replaced\n isMarkRemoved = true\n }\n controller.enqueue(chunk)\n },\n })\n}\n\nfunction createHeadInsertionTransformStream(\n insert: () => Promise\n): TransformStream {\n let inserted = false\n\n // We need to track if this transform saw any bytes because if it didn't\n // we won't want to insert any server HTML at all\n let hasBytes = false\n\n return new TransformStream({\n async transform(chunk, controller) {\n hasBytes = true\n\n const insertion = await insert()\n if (inserted) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion)\n controller.enqueue(encodedInsertion)\n }\n controller.enqueue(chunk)\n } else {\n // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for.\n const index = indexOfUint8Array(chunk, ENCODED_TAGS.CLOSED.HEAD)\n // In fully static rendering or non PPR rendering cases:\n // `/head>` will always be found in the chunk in first chunk rendering.\n if (index !== -1) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion)\n // Get the total count of the bytes in the chunk and the insertion\n // e.g.\n // chunk = \n // insertion = \n // output = [ ] \n const insertedHeadContent = new Uint8Array(\n chunk.length + encodedInsertion.length\n )\n // Append the first part of the chunk, before the head tag\n insertedHeadContent.set(chunk.slice(0, index))\n // Append the server inserted content\n insertedHeadContent.set(encodedInsertion, index)\n // Append the rest of the chunk\n insertedHeadContent.set(\n chunk.slice(index),\n index + encodedInsertion.length\n )\n controller.enqueue(insertedHeadContent)\n } else {\n controller.enqueue(chunk)\n }\n inserted = true\n } else {\n // This will happens in PPR rendering during next start, when the page is partially rendered.\n // When the page resumes, the head tag will be found in the middle of the chunk.\n // Where we just need to append the insertion and chunk to the current stream.\n // e.g.\n // PPR-static: ... [ resume content ] \n // PPR-resume: [ insertion ] [ rest content ]\n if (insertion) {\n controller.enqueue(encoder.encode(insertion))\n }\n controller.enqueue(chunk)\n inserted = true\n }\n }\n },\n async flush(controller) {\n // Check before closing if there's anything remaining to insert.\n if (hasBytes) {\n const insertion = await insert()\n if (insertion) {\n controller.enqueue(encoder.encode(insertion))\n }\n }\n },\n })\n}\n\nfunction createClientResumeScriptInsertionTransformStream(): TransformStream<\n Uint8Array,\n Uint8Array\n> {\n const segmentPath = '/_full'\n const cacheBustingHeader = computeCacheBustingSearchParam(\n '1', // headers[NEXT_ROUTER_PREFETCH_HEADER]\n '/_full', // headers[NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]\n undefined, // headers[NEXT_ROUTER_STATE_TREE_HEADER]\n undefined // headers[NEXT_URL]\n )\n const searchStr = `${NEXT_RSC_UNION_QUERY}=${cacheBustingHeader}`\n const NEXT_CLIENT_RESUME_SCRIPT = ``\n\n let didAlreadyInsert = false\n return new TransformStream({\n transform(chunk, controller) {\n if (didAlreadyInsert) {\n // Already inserted the script into the head. Pass through.\n controller.enqueue(chunk)\n return\n }\n // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for.\n const headClosingTagIndex = indexOfUint8Array(\n chunk,\n ENCODED_TAGS.CLOSED.HEAD\n )\n\n if (headClosingTagIndex === -1) {\n // In fully static rendering or non PPR rendering cases:\n // `/head>` will always be found in the chunk in first chunk rendering.\n controller.enqueue(chunk)\n return\n }\n\n const encodedInsertion = encoder.encode(NEXT_CLIENT_RESUME_SCRIPT)\n // Get the total count of the bytes in the chunk and the insertion\n // e.g.\n // chunk = \n // insertion = \n // output = [ ] \n const insertedHeadContent = new Uint8Array(\n chunk.length + encodedInsertion.length\n )\n // Append the first part of the chunk, before the head tag\n insertedHeadContent.set(chunk.slice(0, headClosingTagIndex))\n // Append the server inserted content\n insertedHeadContent.set(encodedInsertion, headClosingTagIndex)\n // Append the rest of the chunk\n insertedHeadContent.set(\n chunk.slice(headClosingTagIndex),\n headClosingTagIndex + encodedInsertion.length\n )\n\n controller.enqueue(insertedHeadContent)\n didAlreadyInsert = true\n },\n })\n}\n\n// Suffix after main body content - scripts before ,\n// but wait for the major chunks to be enqueued.\nfunction createDeferredSuffixStream(\n suffix: string\n): TransformStream {\n let flushed = false\n let pending: DetachedPromise | undefined\n\n const flush = (controller: TransformStreamDefaultController) => {\n const detached = new DetachedPromise()\n pending = detached\n\n scheduleImmediate(() => {\n try {\n controller.enqueue(encoder.encode(suffix))\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally {\n pending = undefined\n detached.resolve()\n }\n })\n }\n\n return new TransformStream({\n transform(chunk, controller) {\n controller.enqueue(chunk)\n\n // If we've already flushed, we're done.\n if (flushed) return\n\n // Schedule the flush to happen.\n flushed = true\n flush(controller)\n },\n flush(controller) {\n if (pending) return pending.promise\n if (flushed) return\n\n // Flush now.\n controller.enqueue(encoder.encode(suffix))\n },\n })\n}\n\nfunction createFlightDataInjectionTransformStream(\n stream: ReadableStream,\n delayDataUntilFirstHtmlChunk: boolean\n): TransformStream {\n let htmlStreamFinished = false\n\n let pull: Promise | null = null\n let donePulling = false\n\n function startOrContinuePulling(\n controller: TransformStreamDefaultController\n ) {\n if (!pull) {\n pull = startPulling(controller)\n }\n return pull\n }\n\n async function startPulling(controller: TransformStreamDefaultController) {\n const reader = stream.getReader()\n\n if (delayDataUntilFirstHtmlChunk) {\n // NOTE: streaming flush\n // We are buffering here for the inlined data stream because the\n // \"shell\" stream might be chunkenized again by the underlying stream\n // implementation, e.g. with a specific high-water mark. To ensure it's\n // the safe timing to pipe the data stream, this extra tick is\n // necessary.\n\n // We don't start reading until we've left the current Task to ensure\n // that it's inserted after flushing the shell. Note that this implementation\n // might get stale if impl details of Fizz change in the future.\n await atLeastOneTask()\n }\n\n try {\n while (true) {\n const { done, value } = await reader.read()\n if (done) {\n donePulling = true\n return\n }\n\n // We want to prioritize HTML over RSC data.\n // The SSR render is based on the same RSC stream, so when we get a new RSC chunk,\n // we're likely to produce an HTML chunk as well, so give it a chance to flush first.\n if (!delayDataUntilFirstHtmlChunk && !htmlStreamFinished) {\n await atLeastOneTask()\n }\n controller.enqueue(value)\n }\n } catch (err) {\n controller.error(err)\n }\n }\n\n return new TransformStream({\n start(controller) {\n if (!delayDataUntilFirstHtmlChunk) {\n startOrContinuePulling(controller)\n }\n },\n transform(chunk, controller) {\n controller.enqueue(chunk)\n\n // Start the streaming if it hasn't already been started yet.\n if (delayDataUntilFirstHtmlChunk) {\n startOrContinuePulling(controller)\n }\n },\n flush(controller) {\n htmlStreamFinished = true\n if (donePulling) {\n return\n }\n return startOrContinuePulling(controller)\n },\n })\n}\n\nconst CLOSE_TAG = ''\n\n/**\n * This transform stream moves the suffix to the end of the stream, so results\n * like `` will be transformed to\n * ``.\n */\nfunction createMoveSuffixStream(): TransformStream {\n let foundSuffix = false\n\n return new TransformStream({\n transform(chunk, controller) {\n if (foundSuffix) {\n return controller.enqueue(chunk)\n }\n\n const index = indexOfUint8Array(chunk, ENCODED_TAGS.CLOSED.BODY_AND_HTML)\n if (index > -1) {\n foundSuffix = true\n\n // If the whole chunk is the suffix, then don't write anything, it will\n // be written in the flush.\n if (chunk.length === ENCODED_TAGS.CLOSED.BODY_AND_HTML.length) {\n return\n }\n\n // Write out the part before the suffix.\n const before = chunk.slice(0, index)\n controller.enqueue(before)\n\n // In the case where the suffix is in the middle of the chunk, we need\n // to split the chunk into two parts.\n if (chunk.length > ENCODED_TAGS.CLOSED.BODY_AND_HTML.length + index) {\n // Write out the part after the suffix.\n const after = chunk.slice(\n index + ENCODED_TAGS.CLOSED.BODY_AND_HTML.length\n )\n controller.enqueue(after)\n }\n } else {\n controller.enqueue(chunk)\n }\n },\n flush(controller) {\n // Even if we didn't find the suffix, the HTML is not valid if we don't\n // add it, so insert it at the end.\n controller.enqueue(ENCODED_TAGS.CLOSED.BODY_AND_HTML)\n },\n })\n}\n\nfunction createStripDocumentClosingTagsTransform(): TransformStream<\n Uint8Array,\n Uint8Array\n> {\n return new TransformStream({\n transform(chunk, controller) {\n // We rely on the assumption that chunks will never break across a code unit.\n // This is reasonable because we currently concat all of React's output from a single\n // flush into one chunk before streaming it forward which means the chunk will represent\n // a single coherent utf-8 string. This is not safe to use if we change our streaming to no\n // longer do this large buffered chunk\n if (\n isEquivalentUint8Arrays(chunk, ENCODED_TAGS.CLOSED.BODY_AND_HTML) ||\n isEquivalentUint8Arrays(chunk, ENCODED_TAGS.CLOSED.BODY) ||\n isEquivalentUint8Arrays(chunk, ENCODED_TAGS.CLOSED.HTML)\n ) {\n // the entire chunk is the closing tags; return without enqueueing anything.\n return\n }\n\n // We assume these tags will go at together at the end of the document and that\n // they won't appear anywhere else in the document. This is not really a safe assumption\n // but until we revamp our streaming infra this is a performant way to string the tags\n chunk = removeFromUint8Array(chunk, ENCODED_TAGS.CLOSED.BODY)\n chunk = removeFromUint8Array(chunk, ENCODED_TAGS.CLOSED.HTML)\n\n controller.enqueue(chunk)\n },\n })\n}\n\n/*\n * Checks if the root layout is missing the html or body tags\n * and if so, it will inject a script tag to throw an error in the browser, showing the user\n * the error message in the error overlay.\n */\nexport function createRootLayoutValidatorStream(): TransformStream<\n Uint8Array,\n Uint8Array\n> {\n let foundHtml = false\n let foundBody = false\n return new TransformStream({\n async transform(chunk, controller) {\n // Peek into the streamed chunk to see if the tags are present.\n if (\n !foundHtml &&\n indexOfUint8Array(chunk, ENCODED_TAGS.OPENING.HTML) > -1\n ) {\n foundHtml = true\n }\n\n if (\n !foundBody &&\n indexOfUint8Array(chunk, ENCODED_TAGS.OPENING.BODY) > -1\n ) {\n foundBody = true\n }\n\n controller.enqueue(chunk)\n },\n flush(controller) {\n const missingTags: ('html' | 'body')[] = []\n if (!foundHtml) missingTags.push('html')\n if (!foundBody) missingTags.push('body')\n\n if (!missingTags.length) return\n\n controller.enqueue(\n encoder.encode(\n `\n `<${c}>`)\n .join(\n missingTags.length > 1 ? ' and ' : ''\n )} tags in the root layout.\\nRead more at https://nextjs.org/docs/messages/missing-root-layout-tags\"\n data-next-error-digest=\"${MISSING_ROOT_TAGS_ERROR}\"\n data-next-error-stack=\"\"\n >\n `\n )\n )\n },\n })\n}\n\nfunction chainTransformers(\n readable: ReadableStream,\n transformers: ReadonlyArray | null>\n): ReadableStream {\n let stream = readable\n for (const transformer of transformers) {\n if (!transformer) continue\n\n stream = stream.pipeThrough(transformer)\n }\n return stream\n}\n\nexport type ContinueStreamOptions = {\n inlinedDataStream: ReadableStream | undefined\n isStaticGeneration: boolean\n isBuildTimePrerendering: boolean\n buildId: string\n getServerInsertedHTML: () => Promise\n getServerInsertedMetadata: () => Promise\n validateRootLayout?: boolean\n /**\n * Suffix to inject after the buffered data, but before the close tags.\n */\n suffix?: string | undefined\n}\n\nexport async function continueFizzStream(\n renderStream: ReactDOMServerReadableStream,\n {\n suffix,\n inlinedDataStream,\n isStaticGeneration,\n isBuildTimePrerendering,\n buildId,\n getServerInsertedHTML,\n getServerInsertedMetadata,\n validateRootLayout,\n }: ContinueStreamOptions\n): Promise> {\n // Suffix itself might contain close tags at the end, so we need to split it.\n const suffixUnclosed = suffix ? suffix.split(CLOSE_TAG, 1)[0] : null\n\n // If we're generating static HTML we need to wait for it to resolve before continuing.\n if (isStaticGeneration) {\n await renderStream.allReady\n }\n\n return chainTransformers(renderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n\n // Add build id comment to start of the HTML document (in export mode)\n createPrefetchCommentStream(isBuildTimePrerendering, buildId),\n\n // Transform metadata\n createMetadataTransformStream(getServerInsertedMetadata),\n\n // Insert suffix content\n suffixUnclosed != null && suffixUnclosed.length > 0\n ? createDeferredSuffixStream(suffixUnclosed)\n : null,\n\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n inlinedDataStream\n ? createFlightDataInjectionTransformStream(inlinedDataStream, true)\n : null,\n\n // Validate the root layout for missing html or body tags\n validateRootLayout ? createRootLayoutValidatorStream() : null,\n\n // Close tags should always be deferred to the end\n createMoveSuffixStream(),\n\n // Special head insertions\n // TODO-APP: Insert server side html to end of head in app layout rendering, to avoid\n // hydration errors. Remove this once it's ready to be handled by react itself.\n createHeadInsertionTransformStream(getServerInsertedHTML),\n ])\n}\n\ntype ContinueDynamicPrerenderOptions = {\n getServerInsertedHTML: () => Promise\n getServerInsertedMetadata: () => Promise\n}\n\nexport async function continueDynamicPrerender(\n prerenderStream: ReadableStream,\n {\n getServerInsertedHTML,\n getServerInsertedMetadata,\n }: ContinueDynamicPrerenderOptions\n) {\n return (\n prerenderStream\n // Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())\n .pipeThrough(createStripDocumentClosingTagsTransform())\n // Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))\n // Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))\n )\n}\n\ntype ContinueStaticPrerenderOptions = {\n inlinedDataStream: ReadableStream\n getServerInsertedHTML: () => Promise\n getServerInsertedMetadata: () => Promise\n isBuildTimePrerendering: boolean\n buildId: string\n}\n\nexport async function continueStaticPrerender(\n prerenderStream: ReadableStream,\n {\n inlinedDataStream,\n getServerInsertedHTML,\n getServerInsertedMetadata,\n isBuildTimePrerendering,\n buildId,\n }: ContinueStaticPrerenderOptions\n) {\n return (\n prerenderStream\n // Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())\n // Add build id comment to start of the HTML document (in export mode)\n .pipeThrough(\n createPrefetchCommentStream(isBuildTimePrerendering, buildId)\n )\n // Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))\n // Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(\n createFlightDataInjectionTransformStream(inlinedDataStream, true)\n )\n // Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream())\n )\n}\n\nexport async function continueStaticFallbackPrerender(\n prerenderStream: ReadableStream,\n {\n inlinedDataStream,\n getServerInsertedHTML,\n getServerInsertedMetadata,\n isBuildTimePrerendering,\n buildId,\n }: ContinueStaticPrerenderOptions\n) {\n // Same as `continueStaticPrerender`, but also inserts an additional script\n // to instruct the client to start fetching the hydration data as early\n // as possible.\n return (\n prerenderStream\n // Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())\n // Add build id comment to start of the HTML document (in export mode)\n .pipeThrough(\n createPrefetchCommentStream(isBuildTimePrerendering, buildId)\n )\n // Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))\n // Insert the client resume script into the head\n .pipeThrough(createClientResumeScriptInsertionTransformStream())\n // Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(\n createFlightDataInjectionTransformStream(inlinedDataStream, true)\n )\n // Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream())\n )\n}\n\ntype ContinueResumeOptions = {\n inlinedDataStream: ReadableStream\n getServerInsertedHTML: () => Promise\n getServerInsertedMetadata: () => Promise\n delayDataUntilFirstHtmlChunk: boolean\n}\n\nexport async function continueDynamicHTMLResume(\n renderStream: ReadableStream,\n {\n delayDataUntilFirstHtmlChunk,\n inlinedDataStream,\n getServerInsertedHTML,\n getServerInsertedMetadata,\n }: ContinueResumeOptions\n) {\n return (\n renderStream\n // Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())\n // Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))\n // Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(\n createFlightDataInjectionTransformStream(\n inlinedDataStream,\n delayDataUntilFirstHtmlChunk\n )\n )\n // Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream())\n )\n}\n\nexport function createDocumentClosingStream(): ReadableStream {\n return streamFromString(CLOSE_TAG)\n}\n"],"names":["getTracer","AppRenderSpan","DetachedPromise","scheduleImmediate","atLeastOneTask","ENCODED_TAGS","indexOfUint8Array","isEquivalentUint8Arrays","removeFromUint8Array","MISSING_ROOT_TAGS_ERROR","insertBuildIdComment","RSC_HEADER","NEXT_ROUTER_PREFETCH_HEADER","NEXT_ROUTER_SEGMENT_PREFETCH_HEADER","NEXT_RSC_UNION_QUERY","computeCacheBustingSearchParam","voidCatch","encoder","TextEncoder","chainStreams","streams","length","ReadableStream","start","controller","close","readable","writable","TransformStream","promise","pipeTo","preventClose","i","nextStream","then","lastStream","catch","streamFromString","str","enqueue","encode","streamFromBuffer","chunk","streamToBuffer","stream","reader","getReader","chunks","done","value","read","push","Buffer","concat","streamToString","signal","decoder","TextDecoder","fatal","string","aborted","decode","createBufferedTransformStream","options","maxBufferByteLength","Infinity","bufferedChunks","bufferByteLength","pending","flush","Uint8Array","copiedBytes","bufferedChunk","set","byteLength","scheduleFlush","detached","undefined","resolve","transform","createPrefetchCommentStream","isBuildTimePrerendering","buildId","didTransformFirstChunk","chunkStr","updatedChunkStr","renderToInitialFizzStream","ReactDOMServer","element","streamOptions","trace","renderToReadableStream","createMetadataTransformStream","insert","chunkIndex","isMarkRemoved","iconMarkIndex","closedHeadIndex","iconMarkLength","META","ICON_MARK","CLOSED","HEAD","replaced","subarray","insertion","encodedInsertion","insertionLength","createHeadInsertionTransformStream","inserted","hasBytes","index","insertedHeadContent","slice","createClientResumeScriptInsertionTransformStream","segmentPath","cacheBustingHeader","searchStr","NEXT_CLIENT_RESUME_SCRIPT","didAlreadyInsert","headClosingTagIndex","createDeferredSuffixStream","suffix","flushed","createFlightDataInjectionTransformStream","delayDataUntilFirstHtmlChunk","htmlStreamFinished","pull","donePulling","startOrContinuePulling","startPulling","err","error","CLOSE_TAG","createMoveSuffixStream","foundSuffix","BODY_AND_HTML","before","after","createStripDocumentClosingTagsTransform","BODY","HTML","createRootLayoutValidatorStream","foundHtml","foundBody","OPENING","missingTags","map","c","join","chainTransformers","transformers","transformer","pipeThrough","continueFizzStream","renderStream","inlinedDataStream","isStaticGeneration","getServerInsertedHTML","getServerInsertedMetadata","validateRootLayout","suffixUnclosed","split","allReady","continueDynamicPrerender","prerenderStream","continueStaticPrerender","continueStaticFallbackPrerender","continueDynamicHTMLResume","createDocumentClosingStream"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 4634, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/request-meta.ts"],"sourcesContent":["import type { IncomingMessage } from 'http'\nimport type { ParsedUrlQuery } from 'querystring'\nimport type { UrlWithParsedQuery } from 'url'\nimport type { BaseNextRequest } from './base-http'\nimport type { CloneableBody } from './body-streams'\nimport type { RouteMatch } from './route-matches/route-match'\nimport type { NEXT_RSC_UNION_QUERY } from '../client/components/app-router-headers'\nimport type {\n ResponseCacheEntry,\n ServerComponentsHmrCache,\n} from './response-cache'\nimport type { PagesDevOverlayBridgeType } from '../next-devtools/userspace/pages/pages-dev-overlay-setup'\nimport type { OpaqueFallbackRouteParams } from './request/fallback-params'\nimport type { IncrementalCache } from './lib/incremental-cache'\n\n// FIXME: (wyattjoh) this is a temporary solution to allow us to pass data between bundled modules\nexport const NEXT_REQUEST_META = Symbol.for('NextInternalRequestMeta')\n\nexport type NextIncomingMessage = (BaseNextRequest | IncomingMessage) & {\n [NEXT_REQUEST_META]?: RequestMeta\n}\n\n/**\n * The callback function to call when a response cache entry was generated or\n * looked up in the cache. When it returns true, the server assumes that the\n * handler has already responded to the request and will not do so itself.\n */\nexport type OnCacheEntryHandler = (\n /**\n * The response cache entry that was generated or looked up in the cache.\n */\n cacheEntry: ResponseCacheEntry,\n\n /**\n * The request metadata.\n */\n requestMeta: {\n /**\n * The URL that was used to make the request.\n */\n url: string | undefined\n }\n) => Promise | boolean | void\n\nexport interface RequestMeta {\n /**\n * The query that was used to make the request.\n */\n initQuery?: ParsedUrlQuery\n\n /**\n * The URL that was used to make the request.\n */\n initURL?: string\n\n /**\n * The protocol that was used to make the request.\n */\n initProtocol?: string\n\n /**\n * The body that was read from the request. This is used to allow the body to\n * be read multiple times.\n */\n clonableBody?: CloneableBody\n\n /**\n * True when the request matched a locale domain that was configured in the\n * next.config.js file.\n */\n isLocaleDomain?: boolean\n\n /**\n * True when the request had locale information stripped from the pathname\n * part of the URL.\n */\n didStripLocale?: boolean\n\n /**\n * If the request had it's URL rewritten, this is the URL it was rewritten to.\n */\n rewroteURL?: string\n\n /**\n * The cookies that were added by middleware and were added to the response.\n */\n middlewareCookie?: string[]\n\n /**\n * The match on the request for a given route.\n */\n match?: RouteMatch\n\n /**\n * The incremental cache to use for the request.\n */\n incrementalCache?: IncrementalCache\n\n /**\n * The server components HMR cache, only for dev.\n */\n serverComponentsHmrCache?: ServerComponentsHmrCache\n\n /**\n * Equals the segment path that was used for the prefetch RSC request.\n */\n segmentPrefetchRSCRequest?: string\n\n /**\n * True when the request is for the prefetch flight data.\n */\n isPrefetchRSCRequest?: true\n\n /**\n * True when the request is for the flight data.\n */\n isRSCRequest?: true\n\n /**\n * A search param set by the Next.js client when performing RSC requests.\n * Because some CDNs do not vary their cache entries on our custom headers,\n * this search param represents a hash of the header values. For any cached\n * RSC request, we should verify that the hash matches before responding.\n * Otherwise this can lead to cache poisoning.\n * TODO: Consider not using custom request headers at all, and instead encode\n * everything into the search param.\n */\n cacheBustingSearchParam?: string\n\n /**\n * True when the request is for the `/_next/data` route using the pages\n * router.\n */\n isNextDataReq?: true\n\n /**\n * Postponed state to use for resumption. If present it's assumed that the\n * request is for a page that has postponed (there are no guarantees that the\n * page actually has postponed though as it would incur an additional cache\n * lookup).\n */\n postponed?: string\n\n /**\n * If provided, this will be called when a response cache entry was generated\n * or looked up in the cache.\n *\n * @deprecated Use `onCacheEntryV2` instead.\n */\n onCacheEntry?: OnCacheEntryHandler\n\n /**\n * If provided, this will be called when a response cache entry was generated\n * or looked up in the cache.\n */\n onCacheEntryV2?: OnCacheEntryHandler\n\n /**\n * The previous revalidate before rendering 404 page for notFound: true\n */\n notFoundRevalidate?: number | false\n\n /**\n * In development, the original source page that returned a 404.\n */\n developmentNotFoundSourcePage?: string\n\n /**\n * The path we routed to and should be invoked\n */\n invokePath?: string\n\n /**\n * The specific page output we should be matching\n */\n invokeOutput?: string\n\n /**\n * The status we are invoking the request with from routing\n */\n invokeStatus?: number\n\n /**\n * The routing error we are invoking with\n */\n invokeError?: Error\n\n /**\n * The query parsed for the invocation\n */\n invokeQuery?: Record\n\n /**\n * Whether the request is a middleware invocation\n */\n middlewareInvoke?: boolean\n\n /**\n * Whether the request should render the fallback shell or not.\n */\n renderFallbackShell?: boolean\n\n /**\n * Whether the request is for the custom error page.\n */\n customErrorRender?: true\n\n /**\n * Whether to bubble up the NoFallbackError to the caller when a 404 is\n * returned.\n */\n bubbleNoFallback?: true\n\n /**\n * True when the request had locale information inferred from the default\n * locale.\n */\n localeInferredFromDefault?: true\n\n /**\n * The locale that was inferred or explicitly set for the request.\n */\n locale?: string\n\n /**\n * The default locale that was inferred or explicitly set for the request.\n */\n defaultLocale?: string\n\n /**\n * The relative project dir the server is running in from project root\n */\n relativeProjectDir?: string\n\n /**\n * The dist directory the server is currently using\n */\n distDir?: string\n\n /**\n * The query after resolving routes\n */\n query?: ParsedUrlQuery\n\n /**\n * The params after resolving routes\n */\n params?: ParsedUrlQuery\n\n /**\n * ErrorOverlay component to use in development for pages router\n */\n PagesErrorDebug?: PagesDevOverlayBridgeType\n\n /**\n * Whether server is in minimal mode (this will be replaced with more\n * specific flags in future)\n */\n minimalMode?: boolean\n\n /**\n * DEV only: The fallback params that should be used when validating prerenders during dev\n */\n devFallbackParams?: OpaqueFallbackRouteParams\n\n /**\n * DEV only: Request timings in process.hrtime.bigint()\n */\n devRequestTimingStart?: bigint\n devRequestTimingMiddlewareStart?: bigint\n devRequestTimingMiddlewareEnd?: bigint\n devRequestTimingInternalsEnd?: bigint\n}\n\n/**\n * Gets the request metadata. If no key is provided, the entire metadata object\n * is returned.\n *\n * @param req the request to get the metadata from\n * @param key the key to get from the metadata (optional)\n * @returns the value for the key or the entire metadata object\n */\nexport function getRequestMeta(\n req: NextIncomingMessage,\n key?: undefined\n): RequestMeta\nexport function getRequestMeta(\n req: NextIncomingMessage,\n key: K\n): RequestMeta[K]\nexport function getRequestMeta(\n req: NextIncomingMessage,\n key?: K\n): RequestMeta | RequestMeta[K] {\n const meta = req[NEXT_REQUEST_META] || {}\n return typeof key === 'string' ? meta[key] : meta\n}\n\n/**\n * Sets the request metadata.\n *\n * @param req the request to set the metadata on\n * @param meta the metadata to set\n * @returns the mutated request metadata\n */\nexport function setRequestMeta(req: NextIncomingMessage, meta: RequestMeta) {\n req[NEXT_REQUEST_META] = meta\n return meta\n}\n\n/**\n * Adds a value to the request metadata.\n *\n * @param request the request to mutate\n * @param key the key to set\n * @param value the value to set\n * @returns the mutated request metadata\n */\nexport function addRequestMeta(\n request: NextIncomingMessage,\n key: K,\n value: RequestMeta[K]\n) {\n const meta = getRequestMeta(request)\n meta[key] = value\n return setRequestMeta(request, meta)\n}\n\n/**\n * Removes a key from the request metadata.\n *\n * @param request the request to mutate\n * @param key the key to remove\n * @returns the mutated request metadata\n */\nexport function removeRequestMeta(\n request: NextIncomingMessage,\n key: K\n) {\n const meta = getRequestMeta(request)\n delete meta[key]\n return setRequestMeta(request, meta)\n}\n\ntype NextQueryMetadata = {\n /**\n * The `_rsc` query parameter used for cache busting to ensure that the RSC\n * requests do not get cached by the browser explicitly.\n */\n [NEXT_RSC_UNION_QUERY]?: string\n}\n\nexport type NextParsedUrlQuery = ParsedUrlQuery & NextQueryMetadata\n\nexport interface NextUrlWithParsedQuery extends UrlWithParsedQuery {\n query: NextParsedUrlQuery\n}\n"],"names":["NEXT_REQUEST_META","Symbol","for","getRequestMeta","req","key","meta","setRequestMeta","addRequestMeta","request","value","removeRequestMeta"],"mappings":"AAeA,kGAAkG;;;;;;;;;;;;;AAC3F,MAAMA,oBAAoBC,OAAOC,GAAG,CAAC,2BAA0B;AAkR/D,SAASC,eACdC,GAAwB,EACxBC,GAAO;IAEP,MAAMC,OAAOF,GAAG,CAACJ,kBAAkB,IAAI,CAAC;IACxC,OAAO,OAAOK,QAAQ,WAAWC,IAAI,CAACD,IAAI,GAAGC;AAC/C;AASO,SAASC,eAAeH,GAAwB,EAAEE,IAAiB;IACxEF,GAAG,CAACJ,kBAAkB,GAAGM;IACzB,OAAOA;AACT;AAUO,SAASE,eACdC,OAA4B,EAC5BJ,GAAM,EACNK,KAAqB;IAErB,MAAMJ,OAAOH,eAAeM;IAC5BH,IAAI,CAACD,IAAI,GAAGK;IACZ,OAAOH,eAAeE,SAASH;AACjC;AASO,SAASK,kBACdF,OAA4B,EAC5BJ,GAAM;IAEN,MAAMC,OAAOH,eAAeM;IAC5B,OAAOH,IAAI,CAACD,IAAI;IAChB,OAAOE,eAAeE,SAASH;AACjC","ignoreList":[0]}}, + {"offset": {"line": 4670, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/utils.ts"],"sourcesContent":["import type { OutgoingHttpHeaders } from 'http'\nimport {\n NEXT_INTERCEPTION_MARKER_PREFIX,\n NEXT_QUERY_PARAM_PREFIX,\n} from '../../lib/constants'\n\n/**\n * Converts a Node.js IncomingHttpHeaders object to a Headers object. Any\n * headers with multiple values will be joined with a comma and space. Any\n * headers that have an undefined value will be ignored and others will be\n * coerced to strings.\n *\n * @param nodeHeaders the headers object to convert\n * @returns the converted headers object\n */\nexport function fromNodeOutgoingHttpHeaders(\n nodeHeaders: OutgoingHttpHeaders\n): Headers {\n const headers = new Headers()\n for (let [key, value] of Object.entries(nodeHeaders)) {\n const values = Array.isArray(value) ? value : [value]\n for (let v of values) {\n if (typeof v === 'undefined') continue\n if (typeof v === 'number') {\n v = v.toString()\n }\n\n headers.append(key, v)\n }\n }\n return headers\n}\n\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n \n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/\nexport function splitCookiesString(cookiesString: string) {\n var cookiesStrings = []\n var pos = 0\n var start\n var ch\n var lastComma\n var nextStart\n var cookiesSeparatorFound\n\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1\n }\n return pos < cookiesString.length\n }\n\n function notSpecialChar() {\n ch = cookiesString.charAt(pos)\n\n return ch !== '=' && ch !== ';' && ch !== ','\n }\n\n while (pos < cookiesString.length) {\n start = pos\n cookiesSeparatorFound = false\n\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos)\n if (ch === ',') {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos\n pos += 1\n\n skipWhitespace()\n nextStart = pos\n\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1\n }\n\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === '=') {\n // we found cookies separator\n cookiesSeparatorFound = true\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart\n cookiesStrings.push(cookiesString.substring(start, lastComma))\n start = pos\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1\n }\n } else {\n pos += 1\n }\n }\n\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length))\n }\n }\n\n return cookiesStrings\n}\n\n/**\n * Converts a Headers object to a Node.js OutgoingHttpHeaders object. This is\n * required to support the set-cookie header, which may have multiple values.\n *\n * @param headers the headers object to convert\n * @returns the converted headers object\n */\nexport function toNodeOutgoingHttpHeaders(\n headers: Headers\n): OutgoingHttpHeaders {\n const nodeHeaders: OutgoingHttpHeaders = {}\n const cookies: string[] = []\n if (headers) {\n for (const [key, value] of headers.entries()) {\n if (key.toLowerCase() === 'set-cookie') {\n // We may have gotten a comma joined string of cookies, or multiple\n // set-cookie headers. We need to merge them into one header array\n // to represent all the cookies.\n cookies.push(...splitCookiesString(value))\n nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies\n } else {\n nodeHeaders[key] = value\n }\n }\n }\n return nodeHeaders\n}\n\n/**\n * Validate the correctness of a user-provided URL.\n */\nexport function validateURL(url: string | URL): string {\n try {\n return String(new URL(String(url)))\n } catch (error: any) {\n throw new Error(\n `URL is malformed \"${String(\n url\n )}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,\n { cause: error }\n )\n }\n}\n\n/**\n * Normalizes `nxtP` and `nxtI` query param values to remove the prefix.\n * This function does not mutate the input key.\n */\nexport function normalizeNextQueryParam(key: string): null | string {\n const prefixes = [NEXT_QUERY_PARAM_PREFIX, NEXT_INTERCEPTION_MARKER_PREFIX]\n for (const prefix of prefixes) {\n if (key !== prefix && key.startsWith(prefix)) {\n return key.substring(prefix.length)\n }\n }\n return null\n}\n"],"names":["NEXT_INTERCEPTION_MARKER_PREFIX","NEXT_QUERY_PARAM_PREFIX","fromNodeOutgoingHttpHeaders","nodeHeaders","headers","Headers","key","value","Object","entries","values","Array","isArray","v","toString","append","splitCookiesString","cookiesString","cookiesStrings","pos","start","ch","lastComma","nextStart","cookiesSeparatorFound","skipWhitespace","length","test","charAt","notSpecialChar","push","substring","toNodeOutgoingHttpHeaders","cookies","toLowerCase","validateURL","url","String","URL","error","Error","cause","normalizeNextQueryParam","prefixes","prefix","startsWith"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 4802, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/i18n/detect-domain-locale.ts"],"sourcesContent":["import type { DomainLocale } from '../../../server/config-shared'\n\nexport function detectDomainLocale(\n domainItems?: readonly DomainLocale[],\n hostname?: string,\n detectedLocale?: string\n) {\n if (!domainItems) return\n\n if (detectedLocale) {\n detectedLocale = detectedLocale.toLowerCase()\n }\n\n for (const item of domainItems) {\n // remove port if present\n const domainHostname = item.domain?.split(':', 1)[0].toLowerCase()\n if (\n hostname === domainHostname ||\n detectedLocale === item.defaultLocale.toLowerCase() ||\n item.locales?.some((locale) => locale.toLowerCase() === detectedLocale)\n ) {\n return item\n }\n }\n}\n"],"names":["detectDomainLocale","domainItems","hostname","detectedLocale","toLowerCase","item","domainHostname","domain","split","defaultLocale","locales","some","locale"],"mappings":";;;;AAEO,SAASA,mBACdC,WAAqC,EACrCC,QAAiB,EACjBC,cAAuB;IAEvB,IAAI,CAACF,aAAa;IAElB,IAAIE,gBAAgB;QAClBA,iBAAiBA,eAAeC,WAAW;IAC7C;IAEA,KAAK,MAAMC,QAAQJ,YAAa;QAC9B,yBAAyB;QACzB,MAAMK,iBAAiBD,KAAKE,MAAM,EAAEC,MAAM,KAAK,EAAE,CAAC,EAAE,CAACJ;QACrD,IACEF,aAAaI,kBACbH,mBAAmBE,KAAKI,aAAa,CAACL,WAAW,MACjDC,KAAKK,OAAO,EAAEC,KAAK,CAACC,SAAWA,OAAOR,WAAW,OAAOD,iBACxD;YACA,OAAOE;QACT;IACF;AACF","ignoreList":[0]}}, + {"offset": {"line": 4823, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/remove-trailing-slash.ts"],"sourcesContent":["/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */\nexport function removeTrailingSlash(route: string) {\n return route.replace(/\\/$/, '') || '/'\n}\n"],"names":["removeTrailingSlash","route","replace"],"mappings":"AAAA;;;;;;CAMC,GACD;;;;AAAO,SAASA,oBAAoBC,KAAa;IAC/C,OAAOA,MAAMC,OAAO,CAAC,OAAO,OAAO;AACrC","ignoreList":[0]}}, + {"offset": {"line": 4840, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/parse-path.ts"],"sourcesContent":["/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */\nexport function parsePath(path: string) {\n const hashIndex = path.indexOf('#')\n const queryIndex = path.indexOf('?')\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex)\n\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery\n ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined)\n : '',\n hash: hashIndex > -1 ? path.slice(hashIndex) : '',\n }\n }\n\n return { pathname: path, query: '', hash: '' }\n}\n"],"names":["parsePath","path","hashIndex","indexOf","queryIndex","hasQuery","pathname","substring","query","undefined","hash","slice"],"mappings":"AAAA;;;;CAIC,GACD;;;;AAAO,SAASA,UAAUC,IAAY;IACpC,MAAMC,YAAYD,KAAKE,OAAO,CAAC;IAC/B,MAAMC,aAAaH,KAAKE,OAAO,CAAC;IAChC,MAAME,WAAWD,aAAa,CAAC,KAAMF,CAAAA,YAAY,KAAKE,aAAaF,SAAQ;IAE3E,IAAIG,YAAYH,YAAY,CAAC,GAAG;QAC9B,OAAO;YACLI,UAAUL,KAAKM,SAAS,CAAC,GAAGF,WAAWD,aAAaF;YACpDM,OAAOH,WACHJ,KAAKM,SAAS,CAACH,YAAYF,YAAY,CAAC,IAAIA,YAAYO,aACxD;YACJC,MAAMR,YAAY,CAAC,IAAID,KAAKU,KAAK,CAACT,aAAa;QACjD;IACF;IAEA,OAAO;QAAEI,UAAUL;QAAMO,OAAO;QAAIE,MAAM;IAAG;AAC/C","ignoreList":[0]}}, + {"offset": {"line": 4869, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/add-path-prefix.ts"],"sourcesContent":["import { parsePath } from './parse-path'\n\n/**\n * Adds the provided prefix to the given path. It first ensures that the path\n * is indeed starting with a slash.\n */\nexport function addPathPrefix(path: string, prefix?: string) {\n if (!path.startsWith('/') || !prefix) {\n return path\n }\n\n const { pathname, query, hash } = parsePath(path)\n return `${prefix}${pathname}${query}${hash}`\n}\n"],"names":["parsePath","addPathPrefix","path","prefix","startsWith","pathname","query","hash"],"mappings":";;;;AAAA,SAASA,SAAS,QAAQ,eAAc;;AAMjC,SAASC,cAAcC,IAAY,EAAEC,MAAe;IACzD,IAAI,CAACD,KAAKE,UAAU,CAAC,QAAQ,CAACD,QAAQ;QACpC,OAAOD;IACT;IAEA,MAAM,EAAEG,QAAQ,EAAEC,KAAK,EAAEC,IAAI,EAAE,OAAGP,6XAAAA,EAAUE;IAC5C,OAAO,GAAGC,SAASE,WAAWC,QAAQC,MAAM;AAC9C","ignoreList":[0]}}, + {"offset": {"line": 4886, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/add-path-suffix.ts"],"sourcesContent":["import { parsePath } from './parse-path'\n\n/**\n * Similarly to `addPathPrefix`, this function adds a suffix at the end on the\n * provided path. It also works only for paths ensuring the argument starts\n * with a slash.\n */\nexport function addPathSuffix(path: string, suffix?: string) {\n if (!path.startsWith('/') || !suffix) {\n return path\n }\n\n const { pathname, query, hash } = parsePath(path)\n return `${pathname}${suffix}${query}${hash}`\n}\n"],"names":["parsePath","addPathSuffix","path","suffix","startsWith","pathname","query","hash"],"mappings":";;;;AAAA,SAASA,SAAS,QAAQ,eAAc;;AAOjC,SAASC,cAAcC,IAAY,EAAEC,MAAe;IACzD,IAAI,CAACD,KAAKE,UAAU,CAAC,QAAQ,CAACD,QAAQ;QACpC,OAAOD;IACT;IAEA,MAAM,EAAEG,QAAQ,EAAEC,KAAK,EAAEC,IAAI,EAAE,OAAGP,6XAAAA,EAAUE;IAC5C,OAAO,GAAGG,WAAWF,SAASG,QAAQC,MAAM;AAC9C","ignoreList":[0]}}, + {"offset": {"line": 4903, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/path-has-prefix.ts"],"sourcesContent":["import { parsePath } from './parse-path'\n\n/**\n * Checks if a given path starts with a given prefix. It ensures it matches\n * exactly without containing extra chars. e.g. prefix /docs should replace\n * for /docs, /docs/, /docs/a but not /docsss\n * @param path The path to check.\n * @param prefix The prefix to check against.\n */\nexport function pathHasPrefix(path: string, prefix: string) {\n if (typeof path !== 'string') {\n return false\n }\n\n const { pathname } = parsePath(path)\n return pathname === prefix || pathname.startsWith(prefix + '/')\n}\n"],"names":["parsePath","pathHasPrefix","path","prefix","pathname","startsWith"],"mappings":";;;;AAAA,SAASA,SAAS,QAAQ,eAAc;;AASjC,SAASC,cAAcC,IAAY,EAAEC,MAAc;IACxD,IAAI,OAAOD,SAAS,UAAU;QAC5B,OAAO;IACT;IAEA,MAAM,EAAEE,QAAQ,EAAE,OAAGJ,6XAAAA,EAAUE;IAC/B,OAAOE,aAAaD,UAAUC,SAASC,UAAU,CAACF,SAAS;AAC7D","ignoreList":[0]}}, + {"offset": {"line": 4920, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/add-locale.ts"],"sourcesContent":["import { addPathPrefix } from './add-path-prefix'\nimport { pathHasPrefix } from './path-has-prefix'\n\n/**\n * For a given path and a locale, if the locale is given, it will prefix the\n * locale. The path shouldn't be an API path. If a default locale is given the\n * prefix will be omitted if the locale is already the default locale.\n */\nexport function addLocale(\n path: string,\n locale?: string | false,\n defaultLocale?: string,\n ignorePrefix?: boolean\n) {\n // If no locale was given or the locale is the default locale, we don't need\n // to prefix the path.\n if (!locale || locale === defaultLocale) return path\n\n const lower = path.toLowerCase()\n\n // If the path is an API path or the path already has the locale prefix, we\n // don't need to prefix the path.\n if (!ignorePrefix) {\n if (pathHasPrefix(lower, '/api')) return path\n if (pathHasPrefix(lower, `/${locale.toLowerCase()}`)) return path\n }\n\n // Add the locale prefix to the path.\n return addPathPrefix(path, `/${locale}`)\n}\n"],"names":["addPathPrefix","pathHasPrefix","addLocale","path","locale","defaultLocale","ignorePrefix","lower","toLowerCase"],"mappings":";;;;AAAA,SAASA,aAAa,QAAQ,oBAAmB;AACjD,SAASC,aAAa,QAAQ,oBAAmB;;;AAO1C,SAASC,UACdC,IAAY,EACZC,MAAuB,EACvBC,aAAsB,EACtBC,YAAsB;IAEtB,4EAA4E;IAC5E,sBAAsB;IACtB,IAAI,CAACF,UAAUA,WAAWC,eAAe,OAAOF;IAEhD,MAAMI,QAAQJ,KAAKK,WAAW;IAE9B,2EAA2E;IAC3E,iCAAiC;IACjC,IAAI,CAACF,cAAc;QACjB,QAAIL,yYAAAA,EAAcM,OAAO,SAAS,OAAOJ;QACzC,QAAIF,yYAAAA,EAAcM,OAAO,CAAC,CAAC,EAAEH,OAAOI,WAAW,IAAI,GAAG,OAAOL;IAC/D;IAEA,qCAAqC;IACrC,WAAOH,yYAAAA,EAAcG,MAAM,CAAC,CAAC,EAAEC,QAAQ;AACzC","ignoreList":[0]}}, + {"offset": {"line": 4946, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/format-next-pathname-info.ts"],"sourcesContent":["import type { NextPathnameInfo } from './get-next-pathname-info'\nimport { removeTrailingSlash } from './remove-trailing-slash'\nimport { addPathPrefix } from './add-path-prefix'\nimport { addPathSuffix } from './add-path-suffix'\nimport { addLocale } from './add-locale'\n\ninterface ExtendedInfo extends NextPathnameInfo {\n defaultLocale?: string\n ignorePrefix?: boolean\n}\n\nexport function formatNextPathnameInfo(info: ExtendedInfo) {\n let pathname = addLocale(\n info.pathname,\n info.locale,\n info.buildId ? undefined : info.defaultLocale,\n info.ignorePrefix\n )\n\n if (info.buildId || !info.trailingSlash) {\n pathname = removeTrailingSlash(pathname)\n }\n\n if (info.buildId) {\n pathname = addPathSuffix(\n addPathPrefix(pathname, `/_next/data/${info.buildId}`),\n info.pathname === '/' ? 'index.json' : '.json'\n )\n }\n\n pathname = addPathPrefix(pathname, info.basePath)\n return !info.buildId && info.trailingSlash\n ? !pathname.endsWith('/')\n ? addPathSuffix(pathname, '/')\n : pathname\n : removeTrailingSlash(pathname)\n}\n"],"names":["removeTrailingSlash","addPathPrefix","addPathSuffix","addLocale","formatNextPathnameInfo","info","pathname","locale","buildId","undefined","defaultLocale","ignorePrefix","trailingSlash","basePath","endsWith"],"mappings":";;;;AACA,SAASA,mBAAmB,QAAQ,0BAAyB;AAC7D,SAASC,aAAa,QAAQ,oBAAmB;AACjD,SAASC,aAAa,QAAQ,oBAAmB;AACjD,SAASC,SAAS,QAAQ,eAAc;;;;;AAOjC,SAASC,uBAAuBC,IAAkB;IACvD,IAAIC,eAAWH,6XAAAA,EACbE,KAAKC,QAAQ,EACbD,KAAKE,MAAM,EACXF,KAAKG,OAAO,GAAGC,YAAYJ,KAAKK,aAAa,EAC7CL,KAAKM,YAAY;IAGnB,IAAIN,KAAKG,OAAO,IAAI,CAACH,KAAKO,aAAa,EAAE;QACvCN,eAAWN,qZAAAA,EAAoBM;IACjC;IAEA,IAAID,KAAKG,OAAO,EAAE;QAChBF,eAAWJ,yYAAAA,MACTD,yYAAAA,EAAcK,UAAU,CAAC,YAAY,EAAED,KAAKG,OAAO,EAAE,GACrDH,KAAKC,QAAQ,KAAK,MAAM,eAAe;IAE3C;IAEAA,eAAWL,yYAAAA,EAAcK,UAAUD,KAAKQ,QAAQ;IAChD,OAAO,CAACR,KAAKG,OAAO,IAAIH,KAAKO,aAAa,GACtC,CAACN,SAASQ,QAAQ,CAAC,WACjBZ,yYAAAA,EAAcI,UAAU,OACxBA,eACFN,qZAAAA,EAAoBM;AAC1B","ignoreList":[0]}}, + {"offset": {"line": 4973, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/get-hostname.ts"],"sourcesContent":["import type { OutgoingHttpHeaders } from 'http'\n\n/**\n * Takes an object with a hostname property (like a parsed URL) and some\n * headers that may contain Host and returns the preferred hostname.\n * @param parsed An object containing a hostname property.\n * @param headers A dictionary with headers containing a `host`.\n */\nexport function getHostname(\n parsed: { hostname?: string | null },\n headers?: OutgoingHttpHeaders\n): string | undefined {\n // Get the hostname from the headers if it exists, otherwise use the parsed\n // hostname.\n let hostname: string\n if (headers?.host && !Array.isArray(headers.host)) {\n hostname = headers.host.toString().split(':', 1)[0]\n } else if (parsed.hostname) {\n hostname = parsed.hostname\n } else return\n\n return hostname.toLowerCase()\n}\n"],"names":["getHostname","parsed","headers","hostname","host","Array","isArray","toString","split","toLowerCase"],"mappings":"AAEA;;;;;CAKC,GACD;;;;AAAO,SAASA,YACdC,MAAoC,EACpCC,OAA6B;IAE7B,2EAA2E;IAC3E,YAAY;IACZ,IAAIC;IACJ,IAAID,SAASE,QAAQ,CAACC,MAAMC,OAAO,CAACJ,QAAQE,IAAI,GAAG;QACjDD,WAAWD,QAAQE,IAAI,CAACG,QAAQ,GAAGC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE;IACrD,OAAO,IAAIP,OAAOE,QAAQ,EAAE;QAC1BA,WAAWF,OAAOE,QAAQ;IAC5B,OAAO;IAEP,OAAOA,SAASM,WAAW;AAC7B","ignoreList":[0]}}, + {"offset": {"line": 4997, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/i18n/normalize-locale-path.ts"],"sourcesContent":["export interface PathLocale {\n detectedLocale?: string\n pathname: string\n}\n\n/**\n * A cache of lowercased locales for each list of locales. This is stored as a\n * WeakMap so if the locales are garbage collected, the cache entry will be\n * removed as well.\n */\nconst cache = new WeakMap()\n\n/**\n * For a pathname that may include a locale from a list of locales, it\n * removes the locale from the pathname returning it alongside with the\n * detected locale.\n *\n * @param pathname A pathname that may include a locale.\n * @param locales A list of locales.\n * @returns The detected locale and pathname without locale\n */\nexport function normalizeLocalePath(\n pathname: string,\n locales?: readonly string[]\n): PathLocale {\n // If locales is undefined, return the pathname as is.\n if (!locales) return { pathname }\n\n // Get the cached lowercased locales or create a new cache entry.\n let lowercasedLocales = cache.get(locales)\n if (!lowercasedLocales) {\n lowercasedLocales = locales.map((locale) => locale.toLowerCase())\n cache.set(locales, lowercasedLocales)\n }\n\n let detectedLocale: string | undefined\n\n // The first segment will be empty, because it has a leading `/`. If\n // there is no further segment, there is no locale (or it's the default).\n const segments = pathname.split('/', 2)\n\n // If there's no second segment (ie, the pathname is just `/`), there's no\n // locale.\n if (!segments[1]) return { pathname }\n\n // The second segment will contain the locale part if any.\n const segment = segments[1].toLowerCase()\n\n // See if the segment matches one of the locales. If it doesn't, there is\n // no locale (or it's the default).\n const index = lowercasedLocales.indexOf(segment)\n if (index < 0) return { pathname }\n\n // Return the case-sensitive locale.\n detectedLocale = locales[index]\n\n // Remove the `/${locale}` part of the pathname.\n pathname = pathname.slice(detectedLocale.length + 1) || '/'\n\n return { pathname, detectedLocale }\n}\n"],"names":["cache","WeakMap","normalizeLocalePath","pathname","locales","lowercasedLocales","get","map","locale","toLowerCase","set","detectedLocale","segments","split","segment","index","indexOf","slice","length"],"mappings":"AAKA;;;;CAIC;;;;AACD,MAAMA,QAAQ,IAAIC;AAWX,SAASC,oBACdC,QAAgB,EAChBC,OAA2B;IAE3B,sDAAsD;IACtD,IAAI,CAACA,SAAS,OAAO;QAAED;IAAS;IAEhC,iEAAiE;IACjE,IAAIE,oBAAoBL,MAAMM,GAAG,CAACF;IAClC,IAAI,CAACC,mBAAmB;QACtBA,oBAAoBD,QAAQG,GAAG,CAAC,CAACC,SAAWA,OAAOC,WAAW;QAC9DT,MAAMU,GAAG,CAACN,SAASC;IACrB;IAEA,IAAIM;IAEJ,oEAAoE;IACpE,yEAAyE;IACzE,MAAMC,WAAWT,SAASU,KAAK,CAAC,KAAK;IAErC,0EAA0E;IAC1E,UAAU;IACV,IAAI,CAACD,QAAQ,CAAC,EAAE,EAAE,OAAO;QAAET;IAAS;IAEpC,0DAA0D;IAC1D,MAAMW,UAAUF,QAAQ,CAAC,EAAE,CAACH,WAAW;IAEvC,yEAAyE;IACzE,mCAAmC;IACnC,MAAMM,QAAQV,kBAAkBW,OAAO,CAACF;IACxC,IAAIC,QAAQ,GAAG,OAAO;QAAEZ;IAAS;IAEjC,oCAAoC;IACpCQ,iBAAiBP,OAAO,CAACW,MAAM;IAE/B,gDAAgD;IAChDZ,WAAWA,SAASc,KAAK,CAACN,eAAeO,MAAM,GAAG,MAAM;IAExD,OAAO;QAAEf;QAAUQ;IAAe;AACpC","ignoreList":[0]}}, + {"offset": {"line": 5047, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/remove-path-prefix.ts"],"sourcesContent":["import { pathHasPrefix } from './path-has-prefix'\n\n/**\n * Given a path and a prefix it will remove the prefix when it exists in the\n * given path. It ensures it matches exactly without containing extra chars\n * and if the prefix is not there it will be noop.\n *\n * @param path The path to remove the prefix from.\n * @param prefix The prefix to be removed.\n */\nexport function removePathPrefix(path: string, prefix: string): string {\n // If the path doesn't start with the prefix we can return it as is. This\n // protects us from situations where the prefix is a substring of the path\n // prefix such as:\n //\n // For prefix: /blog\n //\n // /blog -> true\n // /blog/ -> true\n // /blog/1 -> true\n // /blogging -> false\n // /blogging/ -> false\n // /blogging/1 -> false\n if (!pathHasPrefix(path, prefix)) {\n return path\n }\n\n // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length)\n\n // If the path without the prefix starts with a `/` we can return it as is.\n if (withoutPrefix.startsWith('/')) {\n return withoutPrefix\n }\n\n // If the path without the prefix doesn't start with a `/` we need to add it\n // back to the path to make sure it's a valid path.\n return `/${withoutPrefix}`\n}\n"],"names":["pathHasPrefix","removePathPrefix","path","prefix","withoutPrefix","slice","length","startsWith"],"mappings":";;;;AAAA,SAASA,aAAa,QAAQ,oBAAmB;;AAU1C,SAASC,iBAAiBC,IAAY,EAAEC,MAAc;IAC3D,yEAAyE;IACzE,0EAA0E;IAC1E,kBAAkB;IAClB,EAAE;IACF,oBAAoB;IACpB,EAAE;IACF,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,uBAAuB;IACvB,wBAAwB;IACxB,yBAAyB;IACzB,IAAI,KAACH,yYAAAA,EAAcE,MAAMC,SAAS;QAChC,OAAOD;IACT;IAEA,+CAA+C;IAC/C,MAAME,gBAAgBF,KAAKG,KAAK,CAACF,OAAOG,MAAM;IAE9C,2EAA2E;IAC3E,IAAIF,cAAcG,UAAU,CAAC,MAAM;QACjC,OAAOH;IACT;IAEA,4EAA4E;IAC5E,mDAAmD;IACnD,OAAO,CAAC,CAAC,EAAEA,eAAe;AAC5B","ignoreList":[0]}}, + {"offset": {"line": 5083, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/get-next-pathname-info.ts"],"sourcesContent":["import { normalizeLocalePath } from '../../i18n/normalize-locale-path'\nimport { removePathPrefix } from './remove-path-prefix'\nimport { pathHasPrefix } from './path-has-prefix'\nimport type { I18NProvider } from '../../../../server/lib/i18n-provider'\n\nexport interface NextPathnameInfo {\n /**\n * The base path in case the pathname included it.\n */\n basePath?: string\n /**\n * The buildId for when the parsed URL is a data URL. Parsing it can be\n * disabled with the `parseData` option.\n */\n buildId?: string\n /**\n * If there was a locale in the pathname, this will hold its value.\n */\n locale?: string\n /**\n * The processed pathname without a base path, locale, or data URL elements\n * when parsing it is enabled.\n */\n pathname: string\n /**\n * A boolean telling if the pathname had a trailingSlash. This can be only\n * true if trailingSlash is enabled.\n */\n trailingSlash?: boolean\n}\n\ninterface Options {\n /**\n * When passed to true, this function will also parse Nextjs data URLs.\n */\n parseData?: boolean\n /**\n * A partial of the Next.js configuration to parse the URL.\n */\n nextConfig?: {\n basePath?: string\n i18n?: { locales?: readonly string[] } | null\n trailingSlash?: boolean\n }\n\n /**\n * If provided, this normalizer will be used to detect the locale instead of\n * the default locale detection.\n */\n i18nProvider?: I18NProvider\n}\n\nexport function getNextPathnameInfo(\n pathname: string,\n options: Options\n): NextPathnameInfo {\n const { basePath, i18n, trailingSlash } = options.nextConfig ?? {}\n const info: NextPathnameInfo = {\n pathname,\n trailingSlash: pathname !== '/' ? pathname.endsWith('/') : trailingSlash,\n }\n\n if (basePath && pathHasPrefix(info.pathname, basePath)) {\n info.pathname = removePathPrefix(info.pathname, basePath)\n info.basePath = basePath\n }\n let pathnameNoDataPrefix = info.pathname\n\n if (\n info.pathname.startsWith('/_next/data/') &&\n info.pathname.endsWith('.json')\n ) {\n const paths = info.pathname\n .replace(/^\\/_next\\/data\\//, '')\n .replace(/\\.json$/, '')\n .split('/')\n\n const buildId = paths[0]\n info.buildId = buildId\n pathnameNoDataPrefix =\n paths[1] !== 'index' ? `/${paths.slice(1).join('/')}` : '/'\n\n // update pathname with normalized if enabled although\n // we use normalized to populate locale info still\n if (options.parseData === true) {\n info.pathname = pathnameNoDataPrefix\n }\n }\n\n // If provided, use the locale route normalizer to detect the locale instead\n // of the function below.\n if (i18n) {\n let result = options.i18nProvider\n ? options.i18nProvider.analyze(info.pathname)\n : normalizeLocalePath(info.pathname, i18n.locales)\n\n info.locale = result.detectedLocale\n info.pathname = result.pathname ?? info.pathname\n\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider\n ? options.i18nProvider.analyze(pathnameNoDataPrefix)\n : normalizeLocalePath(pathnameNoDataPrefix, i18n.locales)\n\n if (result.detectedLocale) {\n info.locale = result.detectedLocale\n }\n }\n }\n return info\n}\n"],"names":["normalizeLocalePath","removePathPrefix","pathHasPrefix","getNextPathnameInfo","pathname","options","basePath","i18n","trailingSlash","nextConfig","info","endsWith","pathnameNoDataPrefix","startsWith","paths","replace","split","buildId","slice","join","parseData","result","i18nProvider","analyze","locales","locale","detectedLocale"],"mappings":";;;;AAAA,SAASA,mBAAmB,QAAQ,mCAAkC;AACtE,SAASC,gBAAgB,QAAQ,uBAAsB;AACvD,SAASC,aAAa,QAAQ,oBAAmB;;;;AAkD1C,SAASC,oBACdC,QAAgB,EAChBC,OAAgB;IAEhB,MAAM,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,aAAa,EAAE,GAAGH,QAAQI,UAAU,IAAI,CAAC;IACjE,MAAMC,OAAyB;QAC7BN;QACAI,eAAeJ,aAAa,MAAMA,SAASO,QAAQ,CAAC,OAAOH;IAC7D;IAEA,IAAIF,gBAAYJ,yYAAAA,EAAcQ,KAAKN,QAAQ,EAAEE,WAAW;QACtDI,KAAKN,QAAQ,OAAGH,+YAAAA,EAAiBS,KAAKN,QAAQ,EAAEE;QAChDI,KAAKJ,QAAQ,GAAGA;IAClB;IACA,IAAIM,uBAAuBF,KAAKN,QAAQ;IAExC,IACEM,KAAKN,QAAQ,CAACS,UAAU,CAAC,mBACzBH,KAAKN,QAAQ,CAACO,QAAQ,CAAC,UACvB;QACA,MAAMG,QAAQJ,KAAKN,QAAQ,CACxBW,OAAO,CAAC,oBAAoB,IAC5BA,OAAO,CAAC,WAAW,IACnBC,KAAK,CAAC;QAET,MAAMC,UAAUH,KAAK,CAAC,EAAE;QACxBJ,KAAKO,OAAO,GAAGA;QACfL,uBACEE,KAAK,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,EAAEA,MAAMI,KAAK,CAAC,GAAGC,IAAI,CAAC,MAAM,GAAG;QAE1D,sDAAsD;QACtD,kDAAkD;QAClD,IAAId,QAAQe,SAAS,KAAK,MAAM;YAC9BV,KAAKN,QAAQ,GAAGQ;QAClB;IACF;IAEA,4EAA4E;IAC5E,yBAAyB;IACzB,IAAIL,MAAM;QACR,IAAIc,SAAShB,QAAQiB,YAAY,GAC7BjB,QAAQiB,YAAY,CAACC,OAAO,CAACb,KAAKN,QAAQ,QAC1CJ,0YAAAA,EAAoBU,KAAKN,QAAQ,EAAEG,KAAKiB,OAAO;QAEnDd,KAAKe,MAAM,GAAGJ,OAAOK,cAAc;QACnChB,KAAKN,QAAQ,GAAGiB,OAAOjB,QAAQ,IAAIM,KAAKN,QAAQ;QAEhD,IAAI,CAACiB,OAAOK,cAAc,IAAIhB,KAAKO,OAAO,EAAE;YAC1CI,SAAShB,QAAQiB,YAAY,GACzBjB,QAAQiB,YAAY,CAACC,OAAO,CAACX,4BAC7BZ,0YAAAA,EAAoBY,sBAAsBL,KAAKiB,OAAO;YAE1D,IAAIH,OAAOK,cAAc,EAAE;gBACzBhB,KAAKe,MAAM,GAAGJ,OAAOK,cAAc;YACrC;QACF;IACF;IACA,OAAOhB;AACT","ignoreList":[0]}}, + {"offset": {"line": 5134, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/next-url.ts"],"sourcesContent":["import type { OutgoingHttpHeaders } from 'http'\nimport type { DomainLocale, I18NConfig } from '../config-shared'\nimport type { I18NProvider } from '../lib/i18n-provider'\n\nimport { detectDomainLocale } from '../../shared/lib/i18n/detect-domain-locale'\nimport { formatNextPathnameInfo } from '../../shared/lib/router/utils/format-next-pathname-info'\nimport { getHostname } from '../../shared/lib/get-hostname'\nimport { getNextPathnameInfo } from '../../shared/lib/router/utils/get-next-pathname-info'\n\ninterface Options {\n base?: string | URL\n headers?: OutgoingHttpHeaders\n forceLocale?: boolean\n nextConfig?: {\n basePath?: string\n i18n?: I18NConfig | null\n trailingSlash?: boolean\n }\n i18nProvider?: I18NProvider\n}\n\nconst REGEX_LOCALHOST_HOSTNAME =\n /(?!^https?:\\/\\/)(127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\\[::1\\]|localhost)/\n\nfunction parseURL(url: string | URL, base?: string | URL) {\n return new URL(\n String(url).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'),\n base && String(base).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost')\n )\n}\n\nconst Internal = Symbol('NextURLInternal')\n\nexport class NextURL {\n private [Internal]: {\n basePath: string\n buildId?: string\n flightSearchParameters?: Record\n defaultLocale?: string\n domainLocale?: DomainLocale\n locale?: string\n options: Options\n trailingSlash?: boolean\n url: URL\n }\n\n constructor(input: string | URL, base?: string | URL, opts?: Options)\n constructor(input: string | URL, opts?: Options)\n constructor(\n input: string | URL,\n baseOrOpts?: string | URL | Options,\n opts?: Options\n ) {\n let base: undefined | string | URL\n let options: Options\n\n if (\n (typeof baseOrOpts === 'object' && 'pathname' in baseOrOpts) ||\n typeof baseOrOpts === 'string'\n ) {\n base = baseOrOpts\n options = opts || {}\n } else {\n options = opts || baseOrOpts || {}\n }\n\n this[Internal] = {\n url: parseURL(input, base ?? options.base),\n options: options,\n basePath: '',\n }\n\n this.analyze()\n }\n\n private analyze() {\n const info = getNextPathnameInfo(this[Internal].url.pathname, {\n nextConfig: this[Internal].options.nextConfig,\n parseData: !process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE,\n i18nProvider: this[Internal].options.i18nProvider,\n })\n\n const hostname = getHostname(\n this[Internal].url,\n this[Internal].options.headers\n )\n this[Internal].domainLocale = this[Internal].options.i18nProvider\n ? this[Internal].options.i18nProvider.detectDomainLocale(hostname)\n : detectDomainLocale(\n this[Internal].options.nextConfig?.i18n?.domains,\n hostname\n )\n\n const defaultLocale =\n this[Internal].domainLocale?.defaultLocale ||\n this[Internal].options.nextConfig?.i18n?.defaultLocale\n\n this[Internal].url.pathname = info.pathname\n this[Internal].defaultLocale = defaultLocale\n this[Internal].basePath = info.basePath ?? ''\n this[Internal].buildId = info.buildId\n this[Internal].locale = info.locale ?? defaultLocale\n this[Internal].trailingSlash = info.trailingSlash\n }\n\n private formatPathname() {\n return formatNextPathnameInfo({\n basePath: this[Internal].basePath,\n buildId: this[Internal].buildId,\n defaultLocale: !this[Internal].options.forceLocale\n ? this[Internal].defaultLocale\n : undefined,\n locale: this[Internal].locale,\n pathname: this[Internal].url.pathname,\n trailingSlash: this[Internal].trailingSlash,\n })\n }\n\n private formatSearch() {\n return this[Internal].url.search\n }\n\n public get buildId() {\n return this[Internal].buildId\n }\n\n public set buildId(buildId: string | undefined) {\n this[Internal].buildId = buildId\n }\n\n public get locale() {\n return this[Internal].locale ?? ''\n }\n\n public set locale(locale: string) {\n if (\n !this[Internal].locale ||\n !this[Internal].options.nextConfig?.i18n?.locales.includes(locale)\n ) {\n throw new TypeError(\n `The NextURL configuration includes no locale \"${locale}\"`\n )\n }\n\n this[Internal].locale = locale\n }\n\n get defaultLocale() {\n return this[Internal].defaultLocale\n }\n\n get domainLocale() {\n return this[Internal].domainLocale\n }\n\n get searchParams() {\n return this[Internal].url.searchParams\n }\n\n get host() {\n return this[Internal].url.host\n }\n\n set host(value: string) {\n this[Internal].url.host = value\n }\n\n get hostname() {\n return this[Internal].url.hostname\n }\n\n set hostname(value: string) {\n this[Internal].url.hostname = value\n }\n\n get port() {\n return this[Internal].url.port\n }\n\n set port(value: string) {\n this[Internal].url.port = value\n }\n\n get protocol() {\n return this[Internal].url.protocol\n }\n\n set protocol(value: string) {\n this[Internal].url.protocol = value\n }\n\n get href() {\n const pathname = this.formatPathname()\n const search = this.formatSearch()\n return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`\n }\n\n set href(url: string) {\n this[Internal].url = parseURL(url)\n this.analyze()\n }\n\n get origin() {\n return this[Internal].url.origin\n }\n\n get pathname() {\n return this[Internal].url.pathname\n }\n\n set pathname(value: string) {\n this[Internal].url.pathname = value\n }\n\n get hash() {\n return this[Internal].url.hash\n }\n\n set hash(value: string) {\n this[Internal].url.hash = value\n }\n\n get search() {\n return this[Internal].url.search\n }\n\n set search(value: string) {\n this[Internal].url.search = value\n }\n\n get password() {\n return this[Internal].url.password\n }\n\n set password(value: string) {\n this[Internal].url.password = value\n }\n\n get username() {\n return this[Internal].url.username\n }\n\n set username(value: string) {\n this[Internal].url.username = value\n }\n\n get basePath() {\n return this[Internal].basePath\n }\n\n set basePath(value: string) {\n this[Internal].basePath = value.startsWith('/') ? value : `/${value}`\n }\n\n toString() {\n return this.href\n }\n\n toJSON() {\n return this.href\n }\n\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n href: this.href,\n origin: this.origin,\n protocol: this.protocol,\n username: this.username,\n password: this.password,\n host: this.host,\n hostname: this.hostname,\n port: this.port,\n pathname: this.pathname,\n search: this.search,\n searchParams: this.searchParams,\n hash: this.hash,\n }\n }\n\n clone() {\n return new NextURL(String(this), this[Internal].options)\n }\n}\n"],"names":["detectDomainLocale","formatNextPathnameInfo","getHostname","getNextPathnameInfo","REGEX_LOCALHOST_HOSTNAME","parseURL","url","base","URL","String","replace","Internal","Symbol","NextURL","constructor","input","baseOrOpts","opts","options","basePath","analyze","info","pathname","nextConfig","parseData","process","env","__NEXT_NO_MIDDLEWARE_URL_NORMALIZE","i18nProvider","hostname","headers","domainLocale","i18n","domains","defaultLocale","buildId","locale","trailingSlash","formatPathname","forceLocale","undefined","formatSearch","search","locales","includes","TypeError","searchParams","host","value","port","protocol","href","hash","origin","password","username","startsWith","toString","toJSON","for","clone"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 5329, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/error.ts"],"sourcesContent":["export class PageSignatureError extends Error {\n constructor({ page }: { page: string }) {\n super(`The middleware \"${page}\" accepts an async API directly with the form:\n \n export function middleware(request, event) {\n return NextResponse.redirect('/new-location')\n }\n \n Read more: https://nextjs.org/docs/messages/middleware-new-signature\n `)\n }\n}\n\nexport class RemovedPageError extends Error {\n constructor() {\n super(`The request.page has been deprecated in favour of \\`URLPattern\\`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n `)\n }\n}\n\nexport class RemovedUAError extends Error {\n constructor() {\n super(`The request.ua has been removed in favour of \\`userAgent\\` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n `)\n }\n}\n"],"names":["PageSignatureError","Error","constructor","page","RemovedPageError","RemovedUAError"],"mappings":";;;;;;;;AAAO,MAAMA,2BAA2BC;IACtCC,YAAY,EAAEC,IAAI,EAAoB,CAAE;QACtC,KAAK,CAAC,CAAC,gBAAgB,EAAEA,KAAK;;;;;;;EAOhC,CAAC;IACD;AACF;AAEO,MAAMC,yBAAyBH;IACpCC,aAAc;QACZ,KAAK,CAAC,CAAC;;EAET,CAAC;IACD;AACF;AAEO,MAAMG,uBAAuBJ;IAClCC,aAAc;QACZ,KAAK,CAAC,CAAC;;EAET,CAAC;IACD;AACF","ignoreList":[0]}}, + {"offset": {"line": 5367, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/dist/compiled/%40edge-runtime/cookies/index.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [\n key.toLowerCase().replace(/-/g, \"\"),\n value2\n ])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed) {\n this._parsed.set(name, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\n get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n]) => n === name).map(([_, value]) => value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\n delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name) => map.delete(name));\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\n clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed)\n this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */\n get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c) => c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */\n delete(...args) {\n const [name, options] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0]];\n return this.set({ ...options, name, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = { name: \"\", value: \"\" }) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n RequestCookies,\n ResponseCookies,\n parseCookie,\n parseSetCookie,\n stringifyCookie\n});\n"],"names":[],"mappings":"AACA,IAAI,YAAY,OAAO,cAAc;AACrC,IAAI,mBAAmB,OAAO,wBAAwB;AACtD,IAAI,oBAAoB,OAAO,mBAAmB;AAClD,IAAI,eAAe,OAAO,SAAS,CAAC,cAAc;AAClD,IAAI,WAAW,CAAC,QAAQ;IACtB,IAAK,IAAI,QAAQ,IACf,UAAU,QAAQ,MAAM;QAAE,KAAK,GAAG,CAAC,KAAK;QAAE,YAAY;IAAK;AAC/D;AACA,IAAI,cAAc,CAAC,IAAI,MAAM,QAAQ;IACnC,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;QAClE,KAAK,IAAI,OAAO,kBAAkB,MAChC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,QAAQ,QAAQ,QACzC,UAAU,IAAI,KAAK;YAAE,KAAK,IAAM,IAAI,CAAC,IAAI;YAAE,YAAY,CAAC,CAAC,OAAO,iBAAiB,MAAM,IAAI,KAAK,KAAK,UAAU;QAAC;IACtH;IACA,OAAO;AACT;AACA,IAAI,eAAe,CAAC,MAAQ,YAAY,UAAU,CAAC,GAAG,cAAc;QAAE,OAAO;IAAK,IAAI;AAEtF,eAAe;AACf,IAAI,cAAc,CAAC;AACnB,SAAS,aAAa;IACpB,gBAAgB,IAAM;IACtB,iBAAiB,IAAM;IACvB,aAAa,IAAM;IACnB,gBAAgB,IAAM;IACtB,iBAAiB,IAAM;AACzB;AACA,OAAO,OAAO,GAAG,aAAa;AAE9B,mBAAmB;AACnB,SAAS,gBAAgB,CAAC;IACxB,IAAI;IACJ,MAAM,QAAQ;QACZ,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE;QACzC,aAAa,KAAK,CAAC,EAAE,OAAO,IAAI,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,WAAW,IAAI,KAAK,EAAE,OAAO,IAAI,EAAE,OAAO,EAAE,WAAW,IAAI;QAChJ,YAAY,KAAK,OAAO,EAAE,MAAM,KAAK,YAAY,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE;QACtE,YAAY,KAAK,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE;QACjD,YAAY,KAAK,EAAE,MAAM,IAAI;QAC7B,cAAc,KAAK,EAAE,QAAQ,IAAI;QACjC,cAAc,KAAK,EAAE,QAAQ,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE;QACzD,iBAAiB,KAAK,EAAE,WAAW,IAAI;QACvC,cAAc,KAAK,EAAE,QAAQ,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE;KAC1D,CAAC,MAAM,CAAC;IACT,MAAM,cAAc,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,mBAAmB,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,KAAK,KAAK;IACvF,OAAO,MAAM,MAAM,KAAK,IAAI,cAAc,GAAG,YAAY,EAAE,EAAE,MAAM,IAAI,CAAC,OAAO;AACjF;AACA,SAAS,YAAY,MAAM;IACzB,MAAM,MAAM,aAAa,GAAG,IAAI;IAChC,KAAK,MAAM,QAAQ,OAAO,KAAK,CAAC,OAAQ;QACtC,IAAI,CAAC,MACH;QACF,MAAM,UAAU,KAAK,OAAO,CAAC;QAC7B,IAAI,YAAY,CAAC,GAAG;YAClB,IAAI,GAAG,CAAC,MAAM;YACd;QACF;QACA,MAAM,CAAC,KAAK,MAAM,GAAG;YAAC,KAAK,KAAK,CAAC,GAAG;YAAU,KAAK,KAAK,CAAC,UAAU;SAAG;QACtE,IAAI;YACF,IAAI,GAAG,CAAC,KAAK,mBAAmB,SAAS,OAAO,QAAQ;QAC1D,EAAE,OAAM,CACR;IACF;IACA,OAAO;AACT;AACA,SAAS,eAAe,SAAS;IAC/B,IAAI,CAAC,WAAW;QACd,OAAO,KAAK;IACd;IACA,MAAM,CAAC,CAAC,MAAM,MAAM,EAAE,GAAG,WAAW,GAAG,YAAY;IACnD,MAAM,EACJ,MAAM,EACN,OAAO,EACP,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACT,GAAG,OAAO,WAAW,CACpB,WAAW,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,GAAK;YAChC,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM;YAChC;SACD;IAEH,MAAM,SAAS;QACb;QACA,OAAO,mBAAmB;QAC1B;QACA,GAAG,WAAW;YAAE,SAAS,IAAI,KAAK;QAAS,CAAC;QAC5C,GAAG,YAAY;YAAE,UAAU;QAAK,CAAC;QACjC,GAAG,OAAO,WAAW,YAAY;YAAE,QAAQ,OAAO;QAAQ,CAAC;QAC3D;QACA,GAAG,YAAY;YAAE,UAAU,cAAc;QAAU,CAAC;QACpD,GAAG,UAAU;YAAE,QAAQ;QAAK,CAAC;QAC7B,GAAG,YAAY;YAAE,UAAU,cAAc;QAAU,CAAC;QACpD,GAAG,eAAe;YAAE,aAAa;QAAK,CAAC;IACzC;IACA,OAAO,QAAQ;AACjB;AACA,SAAS,QAAQ,CAAC;IAChB,MAAM,OAAO,CAAC;IACd,IAAK,MAAM,OAAO,EAAG;QACnB,IAAI,CAAC,CAAC,IAAI,EAAE;YACV,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;QACpB;IACF;IACA,OAAO;AACT;AACA,IAAI,YAAY;IAAC;IAAU;IAAO;CAAO;AACzC,SAAS,cAAc,MAAM;IAC3B,SAAS,OAAO,WAAW;IAC3B,OAAO,UAAU,QAAQ,CAAC,UAAU,SAAS,KAAK;AACpD;AACA,IAAI,WAAW;IAAC;IAAO;IAAU;CAAO;AACxC,SAAS,cAAc,MAAM;IAC3B,SAAS,OAAO,WAAW;IAC3B,OAAO,SAAS,QAAQ,CAAC,UAAU,SAAS,KAAK;AACnD;AACA,SAAS,mBAAmB,aAAa;IACvC,IAAI,CAAC,eACH,OAAO,EAAE;IACX,IAAI,iBAAiB,EAAE;IACvB,IAAI,MAAM;IACV,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,SAAS;QACP,MAAO,MAAM,cAAc,MAAM,IAAI,KAAK,IAAI,CAAC,cAAc,MAAM,CAAC,MAAO;YACzE,OAAO;QACT;QACA,OAAO,MAAM,cAAc,MAAM;IACnC;IACA,SAAS;QACP,KAAK,cAAc,MAAM,CAAC;QAC1B,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO;IAC5C;IACA,MAAO,MAAM,cAAc,MAAM,CAAE;QACjC,QAAQ;QACR,wBAAwB;QACxB,MAAO,iBAAkB;YACvB,KAAK,cAAc,MAAM,CAAC;YAC1B,IAAI,OAAO,KAAK;gBACd,YAAY;gBACZ,OAAO;gBACP;gBACA,YAAY;gBACZ,MAAO,MAAM,cAAc,MAAM,IAAI,iBAAkB;oBACrD,OAAO;gBACT;gBACA,IAAI,MAAM,cAAc,MAAM,IAAI,cAAc,MAAM,CAAC,SAAS,KAAK;oBACnE,wBAAwB;oBACxB,MAAM;oBACN,eAAe,IAAI,CAAC,cAAc,SAAS,CAAC,OAAO;oBACnD,QAAQ;gBACV,OAAO;oBACL,MAAM,YAAY;gBACpB;YACF,OAAO;gBACL,OAAO;YACT;QACF;QACA,IAAI,CAAC,yBAAyB,OAAO,cAAc,MAAM,EAAE;YACzD,eAAe,IAAI,CAAC,cAAc,SAAS,CAAC,OAAO,cAAc,MAAM;QACzE;IACF;IACA,OAAO;AACT;AAEA,yBAAyB;AACzB,IAAI,iBAAiB;IACnB,YAAY,cAAc,CAAE;QAC1B,cAAc,GACd,IAAI,CAAC,OAAO,GAAG,aAAa,GAAG,IAAI;QACnC,IAAI,CAAC,QAAQ,GAAG;QAChB,MAAM,SAAS,eAAe,GAAG,CAAC;QAClC,IAAI,QAAQ;YACV,MAAM,SAAS,YAAY;YAC3B,KAAK,MAAM,CAAC,MAAM,MAAM,IAAI,OAAQ;gBAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;oBAAE;oBAAM;gBAAM;YACvC;QACF;IACF;IACA,CAAC,OAAO,QAAQ,CAAC,GAAG;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,QAAQ,CAAC;IACtC;IACA;;GAEC,GACD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI;IAC1B;IACA,IAAI,GAAG,IAAI,EAAE;QACX,MAAM,OAAO,OAAO,IAAI,CAAC,EAAE,KAAK,WAAW,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI;QACjE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1B;IACA,OAAO,GAAG,IAAI,EAAE;QACd,IAAI;QACJ,MAAM,MAAM,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO;QACnC,IAAI,CAAC,KAAK,MAAM,EAAE;YAChB,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAK;QACjC;QACA,MAAM,OAAO,OAAO,IAAI,CAAC,EAAE,KAAK,WAAW,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,OAAO,KAAK,IAAI,GAAG,IAAI;QAC9F,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,GAAK,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAK;IAC7D;IACA,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1B;IACA,IAAI,GAAG,IAAI,EAAE;QACX,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,MAAM,KAAK,IAAI;YAAC,IAAI,CAAC,EAAE,CAAC,IAAI;YAAE,IAAI,CAAC,EAAE,CAAC,KAAK;SAAC,GAAG;QAC1E,MAAM,MAAM,IAAI,CAAC,OAAO;QACxB,IAAI,GAAG,CAAC,MAAM;YAAE;YAAM;QAAM;QAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,UACA,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,GAAK,gBAAgB,SAAS,IAAI,CAAC;QAErE,OAAO,IAAI;IACb;IACA;;GAEC,GACD,OAAO,KAAK,EAAE;QACZ,MAAM,MAAM,IAAI,CAAC,OAAO;QACxB,MAAM,SAAS,CAAC,MAAM,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,MAAM,GAAG,CAAC,CAAC,OAAS,IAAI,MAAM,CAAC;QAC1F,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,UACA,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAK,gBAAgB,QAAQ,IAAI,CAAC;QAEnE,OAAO;IACT;IACA;;GAEC,GACD,QAAQ;QACN,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;QACxC,OAAO,IAAI;IACb;IACA;;GAEC,GACD,CAAC,OAAO,GAAG,CAAC,+BAA+B,GAAG;QAC5C,OAAO,CAAC,eAAe,EAAE,KAAK,SAAS,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,IAAI;IAC7E;IACA,WAAW;QACT,OAAO;eAAI,IAAI,CAAC,OAAO,CAAC,MAAM;SAAG,CAAC,GAAG,CAAC,CAAC,IAAM,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,GAAG,EAAE,IAAI,CAAC;IAChG;AACF;AAEA,0BAA0B;AAC1B,IAAI,kBAAkB;IACpB,YAAY,eAAe,CAAE;QAC3B,cAAc,GACd,IAAI,CAAC,OAAO,GAAG,aAAa,GAAG,IAAI;QACnC,IAAI,IAAI,IAAI;QACZ,IAAI,CAAC,QAAQ,GAAG;QAChB,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,gBAAgB,YAAY,KAAK,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC,gBAAgB,KAAK,OAAO,KAAK,gBAAgB,GAAG,CAAC,aAAa,KAAK,OAAO,KAAK,EAAE;QAClL,MAAM,gBAAgB,MAAM,OAAO,CAAC,aAAa,YAAY,mBAAmB;QAChF,KAAK,MAAM,gBAAgB,cAAe;YACxC,MAAM,SAAS,eAAe;YAC9B,IAAI,QACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE;QAClC;IACF;IACA;;GAEC,GACD,IAAI,GAAG,IAAI,EAAE;QACX,MAAM,MAAM,OAAO,IAAI,CAAC,EAAE,KAAK,WAAW,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1B;IACA;;GAEC,GACD,OAAO,GAAG,IAAI,EAAE;QACd,IAAI;QACJ,MAAM,MAAM,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;QAC1C,IAAI,CAAC,KAAK,MAAM,EAAE;YAChB,OAAO;QACT;QACA,MAAM,MAAM,OAAO,IAAI,CAAC,EAAE,KAAK,WAAW,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,OAAO,KAAK,IAAI,GAAG,IAAI;QAC7F,OAAO,IAAI,MAAM,CAAC,CAAC,IAAM,EAAE,IAAI,KAAK;IACtC;IACA,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1B;IACA;;GAEC,GACD,IAAI,GAAG,IAAI,EAAE;QACX,MAAM,CAAC,MAAM,OAAO,OAAO,GAAG,KAAK,MAAM,KAAK,IAAI;YAAC,IAAI,CAAC,EAAE,CAAC,IAAI;YAAE,IAAI,CAAC,EAAE,CAAC,KAAK;YAAE,IAAI,CAAC,EAAE;SAAC,GAAG;QAC3F,MAAM,MAAM,IAAI,CAAC,OAAO;QACxB,IAAI,GAAG,CAAC,MAAM,gBAAgB;YAAE;YAAM;YAAO,GAAG,MAAM;QAAC;QACvD,QAAQ,KAAK,IAAI,CAAC,QAAQ;QAC1B,OAAO,IAAI;IACb;IACA;;GAEC,GACD,OAAO,GAAG,IAAI,EAAE;QACd,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,EAAE,KAAK,WAAW;YAAC,IAAI,CAAC,EAAE;SAAC,GAAG;YAAC,IAAI,CAAC,EAAE,CAAC,IAAI;YAAE,IAAI,CAAC,EAAE;SAAC;QACzF,OAAO,IAAI,CAAC,GAAG,CAAC;YAAE,GAAG,OAAO;YAAE;YAAM,OAAO;YAAI,SAAS,aAAa,GAAG,IAAI,KAAK;QAAG;IACtF;IACA,CAAC,OAAO,GAAG,CAAC,+BAA+B,GAAG;QAC5C,OAAO,CAAC,gBAAgB,EAAE,KAAK,SAAS,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,IAAI;IAC9E;IACA,WAAW;QACT,OAAO;eAAI,IAAI,CAAC,OAAO,CAAC,MAAM;SAAG,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC;IAC9D;AACF;AACA,SAAS,QAAQ,GAAG,EAAE,OAAO;IAC3B,QAAQ,MAAM,CAAC;IACf,KAAK,MAAM,GAAG,MAAM,IAAI,IAAK;QAC3B,MAAM,aAAa,gBAAgB;QACnC,QAAQ,MAAM,CAAC,cAAc;IAC/B;AACF;AACA,SAAS,gBAAgB,SAAS;IAAE,MAAM;IAAI,OAAO;AAAG,CAAC;IACvD,IAAI,OAAO,OAAO,OAAO,KAAK,UAAU;QACtC,OAAO,OAAO,GAAG,IAAI,KAAK,OAAO,OAAO;IAC1C;IACA,IAAI,OAAO,MAAM,EAAE;QACjB,OAAO,OAAO,GAAG,IAAI,KAAK,KAAK,GAAG,KAAK,OAAO,MAAM,GAAG;IACzD;IACA,IAAI,OAAO,IAAI,KAAK,QAAQ,OAAO,IAAI,KAAK,KAAK,GAAG;QAClD,OAAO,IAAI,GAAG;IAChB;IACA,OAAO;AACT;AACA,6DAA6D;AAC7D,KAAK,CAAC,OAAO,OAAO,GAAG;IACrB;IACA;IACA;IACA;IACA;AACF,CAAC","ignoreList":[0]}}, + {"offset": {"line": 5737, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/spec-extension/cookies.ts"],"sourcesContent":["export {\n RequestCookies,\n ResponseCookies,\n stringifyCookie,\n} from 'next/dist/compiled/@edge-runtime/cookies'\n"],"names":["RequestCookies","ResponseCookies","stringifyCookie"],"mappings":";AAAA,SACEA,cAAc,EACdC,eAAe,EACfC,eAAe,QACV,2CAA0C","ignoreList":[0]}}, + {"offset": {"line": 5744, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/spec-extension/request.ts"],"sourcesContent":["import type { I18NConfig } from '../../config-shared'\nimport { NextURL } from '../next-url'\nimport { toNodeOutgoingHttpHeaders, validateURL } from '../utils'\nimport { RemovedUAError, RemovedPageError } from '../error'\nimport { RequestCookies } from './cookies'\n\nexport const INTERNALS = Symbol('internal request')\n\n/**\n * This class extends the [Web `Request` API](https://developer.mozilla.org/docs/Web/API/Request) with additional convenience methods.\n *\n * Read more: [Next.js Docs: `NextRequest`](https://nextjs.org/docs/app/api-reference/functions/next-request)\n */\nexport class NextRequest extends Request {\n /** @internal */\n [INTERNALS]: {\n cookies: RequestCookies\n url: string\n nextUrl: NextURL\n }\n\n constructor(input: URL | RequestInfo, init: RequestInit = {}) {\n const url =\n typeof input !== 'string' && 'url' in input ? input.url : String(input)\n\n validateURL(url)\n\n // node Request instance requires duplex option when a body\n // is present or it errors, we don't handle this for\n // Request being passed in since it would have already\n // errored if this wasn't configured\n if (process.env.NEXT_RUNTIME !== 'edge') {\n if (init.body && init.duplex !== 'half') {\n init.duplex = 'half'\n }\n }\n\n if (input instanceof Request) super(input, init)\n else super(url, init)\n\n const nextUrl = new NextURL(url, {\n headers: toNodeOutgoingHttpHeaders(this.headers),\n nextConfig: init.nextConfig,\n })\n this[INTERNALS] = {\n cookies: new RequestCookies(this.headers),\n nextUrl,\n url: process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE\n ? url\n : nextUrl.toString(),\n }\n }\n\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\n nextUrl: this.nextUrl,\n url: this.url,\n // rest of props come from Request\n bodyUsed: this.bodyUsed,\n cache: this.cache,\n credentials: this.credentials,\n destination: this.destination,\n headers: Object.fromEntries(this.headers),\n integrity: this.integrity,\n keepalive: this.keepalive,\n method: this.method,\n mode: this.mode,\n redirect: this.redirect,\n referrer: this.referrer,\n referrerPolicy: this.referrerPolicy,\n signal: this.signal,\n }\n }\n\n public get cookies() {\n return this[INTERNALS].cookies\n }\n\n public get nextUrl() {\n return this[INTERNALS].nextUrl\n }\n\n /**\n * @deprecated\n * `page` has been deprecated in favour of `URLPattern`.\n * Read more: https://nextjs.org/docs/messages/middleware-request-page\n */\n public get page() {\n throw new RemovedPageError()\n }\n\n /**\n * @deprecated\n * `ua` has been removed in favour of \\`userAgent\\` function.\n * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n */\n public get ua() {\n throw new RemovedUAError()\n }\n\n public get url() {\n return this[INTERNALS].url\n }\n}\n\nexport interface RequestInit extends globalThis.RequestInit {\n nextConfig?: {\n basePath?: string\n i18n?: I18NConfig | null\n trailingSlash?: boolean\n }\n signal?: AbortSignal\n // see https://github.com/whatwg/fetch/pull/1457\n duplex?: 'half'\n}\n"],"names":["NextURL","toNodeOutgoingHttpHeaders","validateURL","RemovedUAError","RemovedPageError","RequestCookies","INTERNALS","Symbol","NextRequest","Request","constructor","input","init","url","String","process","env","NEXT_RUNTIME","body","duplex","nextUrl","headers","nextConfig","cookies","__NEXT_NO_MIDDLEWARE_URL_NORMALIZE","toString","for","bodyUsed","cache","credentials","destination","Object","fromEntries","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","signal","page","ua"],"mappings":";;;;;;AACA,SAASA,OAAO,QAAQ,cAAa;AACrC,SAASC,yBAAyB,EAAEC,WAAW,QAAQ,WAAU;AACjE,SAASC,cAAc,EAAEC,gBAAgB,QAAQ,WAAU;;AAC3D,SAASC,cAAc,QAAQ,YAAW;;;;;AAEnC,MAAMC,YAAYC,OAAO,oBAAmB;AAO5C,MAAMC,oBAAoBC;IAQ/BC,YAAYC,KAAwB,EAAEC,OAAoB,CAAC,CAAC,CAAE;QAC5D,MAAMC,MACJ,OAAOF,UAAU,YAAY,SAASA,QAAQA,MAAME,GAAG,GAAGC,OAAOH;YAEnET,oWAAAA,EAAYW;QAEZ,2DAA2D;QAC3D,oDAAoD;QACpD,sDAAsD;QACtD,oCAAoC;QACpC,IAAIE,QAAQC,GAAG,CAACC,YAAY,KAAK,OAAQ;YACvC,IAAIL,KAAKM,IAAI,IAAIN,KAAKO,MAAM,KAAK,QAAQ;gBACvCP,KAAKO,MAAM,GAAG;YAChB;QACF;QAEA,IAAIR,iBAAiBF,SAAS,KAAK,CAACE,OAAOC;aACtC,KAAK,CAACC,KAAKD;QAEhB,MAAMQ,UAAU,IAAIpB,sWAAAA,CAAQa,KAAK;YAC/BQ,aAASpB,kXAAAA,EAA0B,IAAI,CAACoB,OAAO;YAC/CC,YAAYV,KAAKU,UAAU;QAC7B;QACA,IAAI,CAAChB,UAAU,GAAG;YAChBiB,SAAS,IAAIlB,2XAAAA,CAAe,IAAI,CAACgB,OAAO;YACxCD;YACAP,KAAKE,QAAQC,GAAG,CAACQ,0BACbX,QAD+C,kBAE/CO,QAAQK,QAAQ;QACtB;IACF;IAEA,CAAClB,OAAOmB,GAAG,CAAC,+BAA+B,GAAG;QAC5C,OAAO;YACLH,SAAS,IAAI,CAACA,OAAO;YACrBH,SAAS,IAAI,CAACA,OAAO;YACrBP,KAAK,IAAI,CAACA,GAAG;YACb,kCAAkC;YAClCc,UAAU,IAAI,CAACA,QAAQ;YACvBC,OAAO,IAAI,CAACA,KAAK;YACjBC,aAAa,IAAI,CAACA,WAAW;YAC7BC,aAAa,IAAI,CAACA,WAAW;YAC7BT,SAASU,OAAOC,WAAW,CAAC,IAAI,CAACX,OAAO;YACxCY,WAAW,IAAI,CAACA,SAAS;YACzBC,WAAW,IAAI,CAACA,SAAS;YACzBC,QAAQ,IAAI,CAACA,MAAM;YACnBC,MAAM,IAAI,CAACA,IAAI;YACfC,UAAU,IAAI,CAACA,QAAQ;YACvBC,UAAU,IAAI,CAACA,QAAQ;YACvBC,gBAAgB,IAAI,CAACA,cAAc;YACnCC,QAAQ,IAAI,CAACA,MAAM;QACrB;IACF;IAEA,IAAWjB,UAAU;QACnB,OAAO,IAAI,CAACjB,UAAU,CAACiB,OAAO;IAChC;IAEA,IAAWH,UAAU;QACnB,OAAO,IAAI,CAACd,UAAU,CAACc,OAAO;IAChC;IAEA;;;;GAIC,GACD,IAAWqB,OAAO;QAChB,MAAM,IAAIrC,yWAAAA;IACZ;IAEA;;;;GAIC,GACD,IAAWsC,KAAK;QACd,MAAM,IAAIvC,uWAAAA;IACZ;IAEA,IAAWU,MAAM;QACf,OAAO,IAAI,CAACP,UAAU,CAACO,GAAG;IAC5B;AACF","ignoreList":[0]}}, + {"offset": {"line": 5834, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/base-http/helpers.ts"],"sourcesContent":["import type { BaseNextRequest, BaseNextResponse } from './'\nimport type { NodeNextRequest, NodeNextResponse } from './node'\nimport type { WebNextRequest, WebNextResponse } from './web'\n\n/**\n * This file provides some helpers that should be used in conjunction with\n * explicit environment checks. When combined with the environment checks, it\n * will ensure that the correct typings are used as well as enable code\n * elimination.\n */\n\n/**\n * Type guard to determine if a request is a WebNextRequest. This does not\n * actually check the type of the request, but rather the runtime environment.\n * It's expected that when the runtime environment is the edge runtime, that any\n * base request is a WebNextRequest.\n */\nexport const isWebNextRequest = (req: BaseNextRequest): req is WebNextRequest =>\n process.env.NEXT_RUNTIME === 'edge'\n\n/**\n * Type guard to determine if a response is a WebNextResponse. This does not\n * actually check the type of the response, but rather the runtime environment.\n * It's expected that when the runtime environment is the edge runtime, that any\n * base response is a WebNextResponse.\n */\nexport const isWebNextResponse = (\n res: BaseNextResponse\n): res is WebNextResponse => process.env.NEXT_RUNTIME === 'edge'\n\n/**\n * Type guard to determine if a request is a NodeNextRequest. This does not\n * actually check the type of the request, but rather the runtime environment.\n * It's expected that when the runtime environment is the node runtime, that any\n * base request is a NodeNextRequest.\n */\nexport const isNodeNextRequest = (\n req: BaseNextRequest\n): req is NodeNextRequest => process.env.NEXT_RUNTIME !== 'edge'\n\n/**\n * Type guard to determine if a response is a NodeNextResponse. This does not\n * actually check the type of the response, but rather the runtime environment.\n * It's expected that when the runtime environment is the node runtime, that any\n * base response is a NodeNextResponse.\n */\nexport const isNodeNextResponse = (\n res: BaseNextResponse\n): res is NodeNextResponse => process.env.NEXT_RUNTIME !== 'edge'\n"],"names":["isWebNextRequest","req","process","env","NEXT_RUNTIME","isWebNextResponse","res","isNodeNextRequest","isNodeNextResponse"],"mappings":"AAIA;;;;;CAKC,GAED;;;;;CAKC,GACD;;;;;;;;;;AAAO,MAAMA,mBAAmB,CAACC,MAC/BC,QAAQC,GAAG,CAACC,YAAY,uBAAK,OAAM;AAQ9B,MAAMC,oBAAoB,CAC/BC,MAC2BJ,QAAQC,GAAG,CAACC,YAAY,uBAAK,OAAM;AAQzD,MAAMG,oBAAoB,CAC/BN,MAC2BC,QAAQC,GAAG,CAACC,YAAY,uBAAK,OAAM;AAQzD,MAAMI,qBAAqB,CAChCF,MAC4BJ,QAAQC,GAAG,CAACC,YAAY,uBAAK,OAAM","ignoreList":[0]}}, + {"offset": {"line": 5862, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/spec-extension/adapters/next-request.ts"],"sourcesContent":["import type { BaseNextRequest } from '../../../base-http'\nimport type { NodeNextRequest } from '../../../base-http/node'\nimport type { WebNextRequest } from '../../../base-http/web'\nimport type { Writable } from 'node:stream'\n\nimport { getRequestMeta } from '../../../request-meta'\nimport { fromNodeOutgoingHttpHeaders } from '../../utils'\nimport { NextRequest } from '../request'\nimport { isNodeNextRequest, isWebNextRequest } from '../../../base-http/helpers'\n\nexport const ResponseAbortedName = 'ResponseAborted'\nexport class ResponseAborted extends Error {\n public readonly name = ResponseAbortedName\n}\n\n/**\n * Creates an AbortController tied to the closing of a ServerResponse (or other\n * appropriate Writable).\n *\n * If the `close` event is fired before the `finish` event, then we'll send the\n * `abort` signal.\n */\nexport function createAbortController(response: Writable): AbortController {\n const controller = new AbortController()\n\n // If `finish` fires first, then `res.end()` has been called and the close is\n // just us finishing the stream on our side. If `close` fires first, then we\n // know the client disconnected before we finished.\n response.once('close', () => {\n if (response.writableFinished) return\n\n controller.abort(new ResponseAborted())\n })\n\n return controller\n}\n\n/**\n * Creates an AbortSignal tied to the closing of a ServerResponse (or other\n * appropriate Writable).\n *\n * This cannot be done with the request (IncomingMessage or Readable) because\n * the `abort` event will not fire if to data has been fully read (because that\n * will \"close\" the readable stream and nothing fires after that).\n */\nexport function signalFromNodeResponse(response: Writable): AbortSignal {\n const { errored, destroyed } = response\n if (errored || destroyed) {\n return AbortSignal.abort(errored ?? new ResponseAborted())\n }\n\n const { signal } = createAbortController(response)\n return signal\n}\n\nexport class NextRequestAdapter {\n public static fromBaseNextRequest(\n request: BaseNextRequest,\n signal: AbortSignal\n ): NextRequest {\n if (\n // The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n process.env.NEXT_RUNTIME === 'edge' &&\n isWebNextRequest(request)\n ) {\n return NextRequestAdapter.fromWebNextRequest(request)\n } else if (\n // The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n process.env.NEXT_RUNTIME !== 'edge' &&\n isNodeNextRequest(request)\n ) {\n return NextRequestAdapter.fromNodeNextRequest(request, signal)\n } else {\n throw new Error('Invariant: Unsupported NextRequest type')\n }\n }\n\n public static fromNodeNextRequest(\n request: NodeNextRequest,\n signal: AbortSignal\n ): NextRequest {\n // HEAD and GET requests can not have a body.\n let body: BodyInit | null = null\n if (request.method !== 'GET' && request.method !== 'HEAD' && request.body) {\n // @ts-expect-error - this is handled by undici, when streams/web land use it instead\n body = request.body\n }\n\n let url: URL\n if (request.url.startsWith('http')) {\n url = new URL(request.url)\n } else {\n // Grab the full URL from the request metadata.\n const base = getRequestMeta(request, 'initURL')\n if (!base || !base.startsWith('http')) {\n // Because the URL construction relies on the fact that the URL provided\n // is absolute, we need to provide a base URL. We can't use the request\n // URL because it's relative, so we use a dummy URL instead.\n url = new URL(request.url, 'http://n')\n } else {\n url = new URL(request.url, base)\n }\n }\n\n return new NextRequest(url, {\n method: request.method,\n headers: fromNodeOutgoingHttpHeaders(request.headers),\n duplex: 'half',\n signal,\n // geo\n // ip\n // nextConfig\n\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...(signal.aborted\n ? {}\n : {\n body,\n }),\n })\n }\n\n public static fromWebNextRequest(request: WebNextRequest): NextRequest {\n // HEAD and GET requests can not have a body.\n let body: ReadableStream | null = null\n if (request.method !== 'GET' && request.method !== 'HEAD') {\n body = request.body\n }\n\n return new NextRequest(request.url, {\n method: request.method,\n headers: fromNodeOutgoingHttpHeaders(request.headers),\n duplex: 'half',\n signal: request.request.signal,\n // geo\n // ip\n // nextConfig\n\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...(request.request.signal.aborted\n ? {}\n : {\n body,\n }),\n })\n }\n}\n"],"names":["getRequestMeta","fromNodeOutgoingHttpHeaders","NextRequest","isNodeNextRequest","isWebNextRequest","ResponseAbortedName","ResponseAborted","Error","name","createAbortController","response","controller","AbortController","once","writableFinished","abort","signalFromNodeResponse","errored","destroyed","AbortSignal","signal","NextRequestAdapter","fromBaseNextRequest","request","process","env","NEXT_RUNTIME","fromWebNextRequest","fromNodeNextRequest","body","method","url","startsWith","URL","base","headers","duplex","aborted"],"mappings":";;;;;;;;;;;;AAKA,SAASA,cAAc,QAAQ,wBAAuB;AACtD,SAASC,2BAA2B,QAAQ,cAAa;AACzD,SAASC,WAAW,QAAQ,aAAY;AACxC,SAASC,iBAAiB,EAAEC,gBAAgB,QAAQ,6BAA4B;;;;;AAEzE,MAAMC,sBAAsB,kBAAiB;AAC7C,MAAMC,wBAAwBC;;QAA9B,KAAA,IAAA,OAAA,IAAA,CACWC,IAAAA,GAAOH;;AACzB;AASO,SAASI,sBAAsBC,QAAkB;IACtD,MAAMC,aAAa,IAAIC;IAEvB,6EAA6E;IAC7E,4EAA4E;IAC5E,mDAAmD;IACnDF,SAASG,IAAI,CAAC,SAAS;QACrB,IAAIH,SAASI,gBAAgB,EAAE;QAE/BH,WAAWI,KAAK,CAAC,IAAIT;IACvB;IAEA,OAAOK;AACT;AAUO,SAASK,uBAAuBN,QAAkB;IACvD,MAAM,EAAEO,OAAO,EAAEC,SAAS,EAAE,GAAGR;IAC/B,IAAIO,WAAWC,WAAW;QACxB,OAAOC,YAAYJ,KAAK,CAACE,WAAW,IAAIX;IAC1C;IAEA,MAAM,EAAEc,MAAM,EAAE,GAAGX,sBAAsBC;IACzC,OAAOU;AACT;AAEO,MAAMC;IACX,OAAcC,oBACZC,OAAwB,EACxBH,MAAmB,EACN;QACb,IAEE,AADA,6DAC6D,QADQ;QAErEI,QAAQC,GAAG,CAACC,YAAY,uBAAK,cAC7BtB,oXAAAA,EAAiBmB,UACjB;;aAEK,IACL,AACA,6DAA6D,QADQ;QAErEC,QAAQC,GAAG,CAACC,YAAY,uBAAK,cAC7BvB,qXAAAA,EAAkBoB,UAClB;YACA,OAAOF,mBAAmBO,mBAAmB,CAACL,SAASH;QACzD,OAAO;YACL,MAAM,OAAA,cAAoD,CAApD,IAAIb,MAAM,4CAAV,qBAAA;uBAAA;4BAAA;8BAAA;YAAmD;QAC3D;IACF;IAEA,OAAcqB,oBACZL,OAAwB,EACxBH,MAAmB,EACN;QACb,6CAA6C;QAC7C,IAAIS,OAAwB;QAC5B,IAAIN,QAAQO,MAAM,KAAK,SAASP,QAAQO,MAAM,KAAK,UAAUP,QAAQM,IAAI,EAAE;YACzE,qFAAqF;YACrFA,OAAON,QAAQM,IAAI;QACrB;QAEA,IAAIE;QACJ,IAAIR,QAAQQ,GAAG,CAACC,UAAU,CAAC,SAAS;YAClCD,MAAM,IAAIE,IAAIV,QAAQQ,GAAG;QAC3B,OAAO;YACL,+CAA+C;YAC/C,MAAMG,WAAOlC,0WAAAA,EAAeuB,SAAS;YACrC,IAAI,CAACW,QAAQ,CAACA,KAAKF,UAAU,CAAC,SAAS;gBACrC,wEAAwE;gBACxE,uEAAuE;gBACvE,4DAA4D;gBAC5DD,MAAM,IAAIE,IAAIV,QAAQQ,GAAG,EAAE;YAC7B,OAAO;gBACLA,MAAM,IAAIE,IAAIV,QAAQQ,GAAG,EAAEG;YAC7B;QACF;QAEA,OAAO,IAAIhC,2XAAAA,CAAY6B,KAAK;YAC1BD,QAAQP,QAAQO,MAAM;YACtBK,aAASlC,oXAAAA,EAA4BsB,QAAQY,OAAO;YACpDC,QAAQ;YACRhB;YACA,MAAM;YACN,KAAK;YACL,aAAa;YAEb,gDAAgD;YAChD,+CAA+C;YAC/C,GAAIA,OAAOiB,OAAO,GACd,CAAC,IACD;gBACER;YACF,CAAC;QACP;IACF;IAEA,OAAcF,mBAAmBJ,OAAuB,EAAe;QACrE,6CAA6C;QAC7C,IAAIM,OAA8B;QAClC,IAAIN,QAAQO,MAAM,KAAK,SAASP,QAAQO,MAAM,KAAK,QAAQ;YACzDD,OAAON,QAAQM,IAAI;QACrB;QAEA,OAAO,IAAI3B,2XAAAA,CAAYqB,QAAQQ,GAAG,EAAE;YAClCD,QAAQP,QAAQO,MAAM;YACtBK,aAASlC,oXAAAA,EAA4BsB,QAAQY,OAAO;YACpDC,QAAQ;YACRhB,QAAQG,QAAQA,OAAO,CAACH,MAAM;YAC9B,MAAM;YACN,KAAK;YACL,aAAa;YAEb,gDAAgD;YAChD,+CAA+C;YAC/C,GAAIG,QAAQA,OAAO,CAACH,MAAM,CAACiB,OAAO,GAC9B,CAAC,IACD;gBACER;YACF,CAAC;QACP;IACF;AACF","ignoreList":[0]}}, + {"offset": {"line": 5986, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/client-component-renderer-logger.ts"],"sourcesContent":["import type { AppPageModule } from './route-modules/app-page/module'\n\n// Combined load times for loading client components\nlet clientComponentLoadStart = 0\nlet clientComponentLoadTimes = 0\nlet clientComponentLoadCount = 0\n\nexport function wrapClientComponentLoader(\n ComponentMod: AppPageModule\n): AppPageModule['__next_app__'] {\n if (!('performance' in globalThis)) {\n return ComponentMod.__next_app__\n }\n\n return {\n require: (...args) => {\n const startTime = performance.now()\n\n if (clientComponentLoadStart === 0) {\n clientComponentLoadStart = startTime\n }\n\n try {\n clientComponentLoadCount += 1\n return ComponentMod.__next_app__.require(...args)\n } finally {\n clientComponentLoadTimes += performance.now() - startTime\n }\n },\n loadChunk: (...args) => {\n const startTime = performance.now()\n const result = ComponentMod.__next_app__.loadChunk(...args)\n // Avoid wrapping `loadChunk`'s result in an extra promise in case something like React depends on its identity.\n // We only need to know when it's settled.\n result.finally(() => {\n clientComponentLoadTimes += performance.now() - startTime\n })\n return result\n },\n }\n}\n\nexport function getClientComponentLoaderMetrics(\n options: { reset?: boolean } = {}\n) {\n const metrics =\n clientComponentLoadStart === 0\n ? undefined\n : {\n clientComponentLoadStart,\n clientComponentLoadTimes,\n clientComponentLoadCount,\n }\n\n if (options.reset) {\n clientComponentLoadStart = 0\n clientComponentLoadTimes = 0\n clientComponentLoadCount = 0\n }\n\n return metrics\n}\n"],"names":["clientComponentLoadStart","clientComponentLoadTimes","clientComponentLoadCount","wrapClientComponentLoader","ComponentMod","globalThis","__next_app__","require","args","startTime","performance","now","loadChunk","result","finally","getClientComponentLoaderMetrics","options","metrics","undefined","reset"],"mappings":"AAEA,oDAAoD;;;;;;;AACpD,IAAIA,2BAA2B;AAC/B,IAAIC,2BAA2B;AAC/B,IAAIC,2BAA2B;AAExB,SAASC,0BACdC,YAA2B;IAE3B,IAAI,CAAE,CAAA,iBAAiBC,UAAS,GAAI;QAClC,OAAOD,aAAaE,YAAY;IAClC;IAEA,OAAO;QACLC,SAAS,CAAC,GAAGC;YACX,MAAMC,YAAYC,YAAYC,GAAG;YAEjC,IAAIX,6BAA6B,GAAG;gBAClCA,2BAA2BS;YAC7B;YAEA,IAAI;gBACFP,4BAA4B;gBAC5B,OAAOE,aAAaE,YAAY,CAACC,OAAO,IAAIC;YAC9C,SAAU;gBACRP,4BAA4BS,YAAYC,GAAG,KAAKF;YAClD;QACF;QACAG,WAAW,CAAC,GAAGJ;YACb,MAAMC,YAAYC,YAAYC,GAAG;YACjC,MAAME,SAAST,aAAaE,YAAY,CAACM,SAAS,IAAIJ;YACtD,gHAAgH;YAChH,0CAA0C;YAC1CK,OAAOC,OAAO,CAAC;gBACbb,4BAA4BS,YAAYC,GAAG,KAAKF;YAClD;YACA,OAAOI;QACT;IACF;AACF;AAEO,SAASE,gCACdC,UAA+B,CAAC,CAAC;IAEjC,MAAMC,UACJjB,6BAA6B,IACzBkB,YACA;QACElB;QACAC;QACAC;IACF;IAEN,IAAIc,QAAQG,KAAK,EAAE;QACjBnB,2BAA2B;QAC3BC,2BAA2B;QAC3BC,2BAA2B;IAC7B;IAEA,OAAOe;AACT","ignoreList":[0]}}, + {"offset": {"line": 6042, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/pipe-readable.ts"],"sourcesContent":["import type { ServerResponse } from 'node:http'\n\nimport {\n ResponseAbortedName,\n createAbortController,\n} from './web/spec-extension/adapters/next-request'\nimport { DetachedPromise } from '../lib/detached-promise'\nimport { getTracer } from './lib/trace/tracer'\nimport { NextNodeServerSpan } from './lib/trace/constants'\nimport { getClientComponentLoaderMetrics } from './client-component-renderer-logger'\n\nexport function isAbortError(e: any): e is Error & { name: 'AbortError' } {\n return e?.name === 'AbortError' || e?.name === ResponseAbortedName\n}\n\nfunction createWriterFromResponse(\n res: ServerResponse,\n waitUntilForEnd?: Promise\n): WritableStream {\n let started = false\n\n // Create a promise that will resolve once the response has drained. See\n // https://nodejs.org/api/stream.html#stream_event_drain\n let drained = new DetachedPromise()\n function onDrain() {\n drained.resolve()\n }\n res.on('drain', onDrain)\n\n // If the finish event fires, it means we shouldn't block and wait for the\n // drain event.\n res.once('close', () => {\n res.off('drain', onDrain)\n drained.resolve()\n })\n\n // Create a promise that will resolve once the response has finished. See\n // https://nodejs.org/api/http.html#event-finish_1\n const finished = new DetachedPromise()\n res.once('finish', () => {\n finished.resolve()\n })\n\n // Create a writable stream that will write to the response.\n return new WritableStream({\n write: async (chunk) => {\n // You'd think we'd want to use `start` instead of placing this in `write`\n // but this ensures that we don't actually flush the headers until we've\n // started writing chunks.\n if (!started) {\n started = true\n\n if (\n 'performance' in globalThis &&\n process.env.NEXT_OTEL_PERFORMANCE_PREFIX\n ) {\n const metrics = getClientComponentLoaderMetrics()\n if (metrics) {\n performance.measure(\n `${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,\n {\n start: metrics.clientComponentLoadStart,\n end:\n metrics.clientComponentLoadStart +\n metrics.clientComponentLoadTimes,\n }\n )\n }\n }\n\n res.flushHeaders()\n getTracer().trace(\n NextNodeServerSpan.startResponse,\n {\n spanName: 'start response',\n },\n () => undefined\n )\n }\n\n try {\n const ok = res.write(chunk)\n\n // Added by the `compression` middleware, this is a function that will\n // flush the partially-compressed response to the client.\n if ('flush' in res && typeof res.flush === 'function') {\n res.flush()\n }\n\n // If the write returns false, it means there's some backpressure, so\n // wait until it's streamed before continuing.\n if (!ok) {\n await drained.promise\n\n // Reset the drained promise so that we can wait for the next drain event.\n drained = new DetachedPromise()\n }\n } catch (err) {\n res.end()\n throw new Error('failed to write chunk to response', { cause: err })\n }\n },\n abort: (err) => {\n if (res.writableFinished) return\n\n res.destroy(err)\n },\n close: async () => {\n // if a waitUntil promise was passed, wait for it to resolve before\n // ending the response.\n if (waitUntilForEnd) {\n await waitUntilForEnd\n }\n\n if (res.writableFinished) return\n\n res.end()\n return finished.promise\n },\n })\n}\n\nexport async function pipeToNodeResponse(\n readable: ReadableStream,\n res: ServerResponse,\n waitUntilForEnd?: Promise\n) {\n try {\n // If the response has already errored, then just return now.\n const { errored, destroyed } = res\n if (errored || destroyed) return\n\n // Create a new AbortController so that we can abort the readable if the\n // client disconnects.\n const controller = createAbortController(res)\n\n const writer = createWriterFromResponse(res, waitUntilForEnd)\n\n await readable.pipeTo(writer, { signal: controller.signal })\n } catch (err: any) {\n // If this isn't related to an abort error, re-throw it.\n if (isAbortError(err)) return\n\n throw new Error('failed to pipe response', { cause: err })\n }\n}\n"],"names":["ResponseAbortedName","createAbortController","DetachedPromise","getTracer","NextNodeServerSpan","getClientComponentLoaderMetrics","isAbortError","e","name","createWriterFromResponse","res","waitUntilForEnd","started","drained","onDrain","resolve","on","once","off","finished","WritableStream","write","chunk","globalThis","process","env","NEXT_OTEL_PERFORMANCE_PREFIX","metrics","performance","measure","start","clientComponentLoadStart","end","clientComponentLoadTimes","flushHeaders","trace","startResponse","spanName","undefined","ok","flush","promise","err","Error","cause","abort","writableFinished","destroy","close","pipeToNodeResponse","readable","errored","destroyed","controller","writer","pipeTo","signal"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 6173, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/render-result.ts"],"sourcesContent":["import type { OutgoingHttpHeaders, ServerResponse } from 'http'\nimport type { CacheControl } from './lib/cache-control'\nimport type { FetchMetrics } from './base-http'\n\nimport {\n chainStreams,\n streamFromBuffer,\n streamFromString,\n streamToString,\n} from './stream-utils/node-web-streams-helper'\nimport { isAbortError, pipeToNodeResponse } from './pipe-readable'\nimport type { RenderResumeDataCache } from './resume-data-cache/resume-data-cache'\nimport { InvariantError } from '../shared/lib/invariant-error'\nimport type {\n HTML_CONTENT_TYPE_HEADER,\n JSON_CONTENT_TYPE_HEADER,\n TEXT_PLAIN_CONTENT_TYPE_HEADER,\n} from '../lib/constants'\nimport type { RSC_CONTENT_TYPE_HEADER } from '../client/components/app-router-headers'\n\ntype ContentTypeOption =\n | typeof RSC_CONTENT_TYPE_HEADER // For App Page RSC responses\n | typeof HTML_CONTENT_TYPE_HEADER // For App Page, Pages HTML responses\n | typeof JSON_CONTENT_TYPE_HEADER // For API routes, Next.js data requests\n | typeof TEXT_PLAIN_CONTENT_TYPE_HEADER // For simplified errors\n\nexport type AppPageRenderResultMetadata = {\n flightData?: Buffer\n cacheControl?: CacheControl\n staticBailoutInfo?: {\n stack?: string\n description?: string\n }\n\n /**\n * The postponed state if the render had postponed and needs to be resumed.\n */\n postponed?: string\n\n /**\n * The headers to set on the response that were added by the render.\n */\n headers?: OutgoingHttpHeaders\n statusCode?: number\n fetchTags?: string\n fetchMetrics?: FetchMetrics\n\n segmentData?: Map\n\n /**\n * In development, the resume data cache is warmed up before the render. This\n * is attached to the metadata so that it can be used during the render. When\n * prerendering, the filled resume data cache is also attached to the metadata\n * so that it can be used when prerendering matching fallback shells.\n */\n renderResumeDataCache?: RenderResumeDataCache\n}\n\nexport type PagesRenderResultMetadata = {\n pageData?: any\n cacheControl?: CacheControl\n assetQueryString?: string\n isNotFound?: boolean\n isRedirect?: boolean\n}\n\nexport type StaticRenderResultMetadata = {}\n\nexport type RenderResultMetadata = AppPageRenderResultMetadata &\n PagesRenderResultMetadata &\n StaticRenderResultMetadata\n\nexport type RenderResultResponse =\n | ReadableStream[]\n | ReadableStream\n | string\n | Buffer\n | null\n\nexport type RenderResultOptions<\n Metadata extends RenderResultMetadata = RenderResultMetadata,\n> = {\n contentType: ContentTypeOption | null\n waitUntil?: Promise\n metadata: Metadata\n}\n\nexport default class RenderResult<\n Metadata extends RenderResultMetadata = RenderResultMetadata,\n> {\n /**\n * The detected content type for the response. This is used to set the\n * `Content-Type` header.\n */\n public readonly contentType: ContentTypeOption | null\n\n /**\n * The metadata for the response. This is used to set the revalidation times\n * and other metadata.\n */\n public readonly metadata: Readonly\n\n /**\n * The response itself. This can be a string, a stream, or null. If it's a\n * string, then it's a static response. If it's a stream, then it's a\n * dynamic response. If it's null, then the response was not found or was\n * already sent.\n */\n private response: RenderResultResponse\n\n /**\n * A render result that represents an empty response. This is used to\n * represent a response that was not found or was already sent.\n */\n public static readonly EMPTY = new RenderResult(\n null,\n { metadata: {}, contentType: null }\n )\n\n /**\n * Creates a new RenderResult instance from a static response.\n *\n * @param value the static response value\n * @param contentType the content type of the response\n * @returns a new RenderResult instance\n */\n public static fromStatic(\n value: string | Buffer,\n contentType: ContentTypeOption\n ) {\n return new RenderResult(value, {\n metadata: {},\n contentType,\n })\n }\n\n private readonly waitUntil?: Promise\n\n constructor(\n response: RenderResultResponse,\n { contentType, waitUntil, metadata }: RenderResultOptions\n ) {\n this.response = response\n this.contentType = contentType\n this.metadata = metadata\n this.waitUntil = waitUntil\n }\n\n public assignMetadata(metadata: Metadata) {\n Object.assign(this.metadata, metadata)\n }\n\n /**\n * Returns true if the response is null. It can be null if the response was\n * not found or was already sent.\n */\n public get isNull(): boolean {\n return this.response === null\n }\n\n /**\n * Returns false if the response is a string. It can be a string if the page\n * was prerendered. If it's not, then it was generated dynamically.\n */\n public get isDynamic(): boolean {\n return typeof this.response !== 'string'\n }\n\n /**\n * Returns the response if it is a string. If the page was dynamic, this will\n * return a promise if the `stream` option is true, or it will throw an error.\n *\n * @param stream Whether or not to return a promise if the response is dynamic\n * @returns The response as a string\n */\n public toUnchunkedString(stream?: false): string\n public toUnchunkedString(stream: true): Promise\n public toUnchunkedString(stream = false): Promise | string {\n if (this.response === null) {\n // If the response is null, return an empty string. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return ''\n }\n\n if (typeof this.response !== 'string') {\n if (!stream) {\n throw new InvariantError(\n 'dynamic responses cannot be unchunked. This is a bug in Next.js'\n )\n }\n\n return streamToString(this.readable)\n }\n\n return this.response\n }\n\n /**\n * Returns a readable stream of the response.\n */\n private get readable(): ReadableStream {\n if (this.response === null) {\n // If the response is null, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return new ReadableStream({\n start(controller) {\n controller.close()\n },\n })\n }\n\n if (typeof this.response === 'string') {\n return streamFromString(this.response)\n }\n\n if (Buffer.isBuffer(this.response)) {\n return streamFromBuffer(this.response)\n }\n\n // If the response is an array of streams, then chain them together.\n if (Array.isArray(this.response)) {\n return chainStreams(...this.response)\n }\n\n return this.response\n }\n\n /**\n * Coerces the response to an array of streams. This will convert the response\n * to an array of streams if it is not already one.\n *\n * @returns An array of streams\n */\n private coerce(): ReadableStream[] {\n if (this.response === null) {\n // If the response is null, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return []\n }\n\n if (typeof this.response === 'string') {\n return [streamFromString(this.response)]\n } else if (Array.isArray(this.response)) {\n return this.response\n } else if (Buffer.isBuffer(this.response)) {\n return [streamFromBuffer(this.response)]\n } else {\n return [this.response]\n }\n }\n\n /**\n * Unshifts a new stream to the response. This will convert the response to an\n * array of streams if it is not already one and will add the new stream to\n * the start of the array. When this response is piped, all of the streams\n * will be piped one after the other.\n *\n * @param readable The new stream to unshift\n */\n public unshift(readable: ReadableStream): void {\n // Coerce the response to an array of streams.\n this.response = this.coerce()\n\n // Add the new stream to the start of the array.\n this.response.unshift(readable)\n }\n\n /**\n * Chains a new stream to the response. This will convert the response to an\n * array of streams if it is not already one and will add the new stream to\n * the end. When this response is piped, all of the streams will be piped\n * one after the other.\n *\n * @param readable The new stream to chain\n */\n public push(readable: ReadableStream): void {\n // Coerce the response to an array of streams.\n this.response = this.coerce()\n\n // Add the new stream to the end of the array.\n this.response.push(readable)\n }\n\n /**\n * Pipes the response to a writable stream. This will close/cancel the\n * writable stream if an error is encountered. If this doesn't throw, then\n * the writable stream will be closed or aborted.\n *\n * @param writable Writable stream to pipe the response to\n */\n public async pipeTo(writable: WritableStream): Promise {\n try {\n await this.readable.pipeTo(writable, {\n // We want to close the writable stream ourselves so that we can wait\n // for the waitUntil promise to resolve before closing it. If an error\n // is encountered, we'll abort the writable stream if we swallowed the\n // error.\n preventClose: true,\n })\n\n // If there is a waitUntil promise, wait for it to resolve before\n // closing the writable stream.\n if (this.waitUntil) await this.waitUntil\n\n // Close the writable stream.\n await writable.close()\n } catch (err) {\n // If this is an abort error, we should abort the writable stream (as we\n // took ownership of it when we started piping). We don't need to re-throw\n // because we handled the error.\n if (isAbortError(err)) {\n // Abort the writable stream if an error is encountered.\n await writable.abort(err)\n\n return\n }\n\n // We're not aborting the writer here as when this method throws it's not\n // clear as to how so the caller should assume it's their responsibility\n // to clean up the writer.\n throw err\n }\n }\n\n /**\n * Pipes the response to a node response. This will close/cancel the node\n * response if an error is encountered.\n *\n * @param res\n */\n public async pipeToNodeResponse(res: ServerResponse) {\n await pipeToNodeResponse(this.readable, res, this.waitUntil)\n }\n}\n"],"names":["chainStreams","streamFromBuffer","streamFromString","streamToString","isAbortError","pipeToNodeResponse","InvariantError","RenderResult","EMPTY","metadata","contentType","fromStatic","value","constructor","response","waitUntil","assignMetadata","Object","assign","isNull","isDynamic","toUnchunkedString","stream","readable","ReadableStream","start","controller","close","Buffer","isBuffer","Array","isArray","coerce","unshift","push","pipeTo","writable","preventClose","err","abort","res"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 6367, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/response-cache/utils.ts"],"sourcesContent":["import {\n CachedRouteKind,\n IncrementalCacheKind,\n type CachedAppPageValue,\n type CachedPageValue,\n type IncrementalResponseCacheEntry,\n type ResponseCacheEntry,\n} from './types'\n\nimport RenderResult from '../render-result'\nimport { RouteKind } from '../route-kind'\nimport { HTML_CONTENT_TYPE_HEADER } from '../../lib/constants'\n\nexport async function fromResponseCacheEntry(\n cacheEntry: ResponseCacheEntry\n): Promise {\n return {\n ...cacheEntry,\n value:\n cacheEntry.value?.kind === CachedRouteKind.PAGES\n ? {\n kind: CachedRouteKind.PAGES,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n pageData: cacheEntry.value.pageData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status,\n }\n : cacheEntry.value?.kind === CachedRouteKind.APP_PAGE\n ? {\n kind: CachedRouteKind.APP_PAGE,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n postponed: cacheEntry.value.postponed,\n rscData: cacheEntry.value.rscData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status,\n segmentData: cacheEntry.value.segmentData,\n }\n : cacheEntry.value,\n }\n}\n\nexport async function toResponseCacheEntry(\n response: IncrementalResponseCacheEntry | null\n): Promise {\n if (!response) return null\n\n return {\n isMiss: response.isMiss,\n isStale: response.isStale,\n cacheControl: response.cacheControl,\n value:\n response.value?.kind === CachedRouteKind.PAGES\n ? ({\n kind: CachedRouteKind.PAGES,\n html: RenderResult.fromStatic(\n response.value.html,\n HTML_CONTENT_TYPE_HEADER\n ),\n pageData: response.value.pageData,\n headers: response.value.headers,\n status: response.value.status,\n } satisfies CachedPageValue)\n : response.value?.kind === CachedRouteKind.APP_PAGE\n ? ({\n kind: CachedRouteKind.APP_PAGE,\n html: RenderResult.fromStatic(\n response.value.html,\n HTML_CONTENT_TYPE_HEADER\n ),\n rscData: response.value.rscData,\n headers: response.value.headers,\n status: response.value.status,\n postponed: response.value.postponed,\n segmentData: response.value.segmentData,\n } satisfies CachedAppPageValue)\n : response.value,\n }\n}\n\nexport function routeKindToIncrementalCacheKind(\n routeKind: RouteKind\n): Exclude {\n switch (routeKind) {\n case RouteKind.PAGES:\n return IncrementalCacheKind.PAGES\n case RouteKind.APP_PAGE:\n return IncrementalCacheKind.APP_PAGE\n case RouteKind.IMAGE:\n return IncrementalCacheKind.IMAGE\n case RouteKind.APP_ROUTE:\n return IncrementalCacheKind.APP_ROUTE\n case RouteKind.PAGES_API:\n // Pages Router API routes are not cached in the incremental cache.\n throw new Error(`Unexpected route kind ${routeKind}`)\n default:\n return routeKind satisfies never\n }\n}\n"],"names":["CachedRouteKind","IncrementalCacheKind","RenderResult","RouteKind","HTML_CONTENT_TYPE_HEADER","fromResponseCacheEntry","cacheEntry","value","kind","PAGES","html","toUnchunkedString","pageData","headers","status","APP_PAGE","postponed","rscData","segmentData","toResponseCacheEntry","response","isMiss","isStale","cacheControl","fromStatic","routeKindToIncrementalCacheKind","routeKind","IMAGE","APP_ROUTE","PAGES_API","Error"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 6453, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/response-cache/index.ts"],"sourcesContent":["import type {\n ResponseCacheEntry,\n ResponseGenerator,\n ResponseCacheBase,\n IncrementalResponseCacheEntry,\n IncrementalResponseCache,\n} from './types'\n\nimport { Batcher } from '../../lib/batcher'\nimport { scheduleOnNextTick } from '../../lib/scheduler'\nimport {\n fromResponseCacheEntry,\n routeKindToIncrementalCacheKind,\n toResponseCacheEntry,\n} from './utils'\nimport type { RouteKind } from '../route-kind'\n\nexport * from './types'\n\nexport default class ResponseCache implements ResponseCacheBase {\n private readonly getBatcher = Batcher.create<\n { key: string; isOnDemandRevalidate: boolean },\n IncrementalResponseCacheEntry | null,\n string\n >({\n // Ensure on-demand revalidate doesn't block normal requests, it should be\n // safe to run an on-demand revalidate for the same key as a normal request.\n cacheKeyFn: ({ key, isOnDemandRevalidate }) =>\n `${key}-${isOnDemandRevalidate ? '1' : '0'}`,\n // We wait to do any async work until after we've added our promise to\n // `pendingResponses` to ensure that any any other calls will reuse the\n // same promise until we've fully finished our work.\n schedulerFn: scheduleOnNextTick,\n })\n\n private readonly revalidateBatcher = Batcher.create<\n string,\n IncrementalResponseCacheEntry | null\n >({\n // We wait to do any async work until after we've added our promise to\n // `pendingResponses` to ensure that any any other calls will reuse the\n // same promise until we've fully finished our work.\n schedulerFn: scheduleOnNextTick,\n })\n\n private previousCacheItem?: {\n key: string\n entry: IncrementalResponseCacheEntry | null\n expiresAt: number\n }\n\n // we don't use minimal_mode name here as this.minimal_mode is\n // statically replace for server runtimes but we need it to\n // be dynamic here\n private minimal_mode?: boolean\n\n constructor(minimal_mode: boolean) {\n this.minimal_mode = minimal_mode\n }\n\n /**\n * Gets the response cache entry for the given key.\n *\n * @param key - The key to get the response cache entry for.\n * @param responseGenerator - The response generator to use to generate the response cache entry.\n * @param context - The context for the get request.\n * @returns The response cache entry.\n */\n public async get(\n key: string | null,\n responseGenerator: ResponseGenerator,\n context: {\n routeKind: RouteKind\n isOnDemandRevalidate?: boolean\n isPrefetch?: boolean\n incrementalCache: IncrementalResponseCache\n isRoutePPREnabled?: boolean\n isFallback?: boolean\n waitUntil?: (prom: Promise) => void\n }\n ): Promise {\n // If there is no key for the cache, we can't possibly look this up in the\n // cache so just return the result of the response generator.\n if (!key) {\n return responseGenerator({\n hasResolved: false,\n previousCacheEntry: null,\n })\n }\n\n // Check minimal mode cache before doing any other work\n if (\n this.minimal_mode &&\n this.previousCacheItem?.key === key &&\n this.previousCacheItem.expiresAt > Date.now()\n ) {\n return toResponseCacheEntry(this.previousCacheItem.entry)\n }\n\n const {\n incrementalCache,\n isOnDemandRevalidate = false,\n isFallback = false,\n isRoutePPREnabled = false,\n isPrefetch = false,\n waitUntil,\n routeKind,\n } = context\n\n const response = await this.getBatcher.batch(\n { key, isOnDemandRevalidate },\n ({ resolve }) => {\n const promise = this.handleGet(\n key,\n responseGenerator,\n {\n incrementalCache,\n isOnDemandRevalidate,\n isFallback,\n isRoutePPREnabled,\n isPrefetch,\n routeKind,\n },\n resolve\n )\n\n // We need to ensure background revalidates are passed to waitUntil.\n if (waitUntil) waitUntil(promise)\n\n return promise\n }\n )\n\n return toResponseCacheEntry(response)\n }\n\n /**\n * Handles the get request for the response cache.\n *\n * @param key - The key to get the response cache entry for.\n * @param responseGenerator - The response generator to use to generate the response cache entry.\n * @param context - The context for the get request.\n * @param resolve - The resolve function to use to resolve the response cache entry.\n * @returns The response cache entry.\n */\n private async handleGet(\n key: string,\n responseGenerator: ResponseGenerator,\n context: {\n incrementalCache: IncrementalResponseCache\n isOnDemandRevalidate: boolean\n isFallback: boolean\n isRoutePPREnabled: boolean\n isPrefetch: boolean\n routeKind: RouteKind\n },\n resolve: (value: IncrementalResponseCacheEntry | null) => void\n ): Promise {\n let previousIncrementalCacheEntry: IncrementalResponseCacheEntry | null =\n null\n let resolved = false\n\n try {\n // Get the previous cache entry if not in minimal mode\n previousIncrementalCacheEntry = !this.minimal_mode\n ? await context.incrementalCache.get(key, {\n kind: routeKindToIncrementalCacheKind(context.routeKind),\n isRoutePPREnabled: context.isRoutePPREnabled,\n isFallback: context.isFallback,\n })\n : null\n\n if (previousIncrementalCacheEntry && !context.isOnDemandRevalidate) {\n resolve(previousIncrementalCacheEntry)\n resolved = true\n\n if (!previousIncrementalCacheEntry.isStale || context.isPrefetch) {\n // The cached value is still valid, so we don't need to update it yet.\n return previousIncrementalCacheEntry\n }\n }\n\n // Revalidate the cache entry\n const incrementalResponseCacheEntry = await this.revalidate(\n key,\n context.incrementalCache,\n context.isRoutePPREnabled,\n context.isFallback,\n responseGenerator,\n previousIncrementalCacheEntry,\n previousIncrementalCacheEntry !== null && !context.isOnDemandRevalidate\n )\n\n // Handle null response\n if (!incrementalResponseCacheEntry) {\n // Unset the previous cache item if it was set so we don't use it again.\n if (this.minimal_mode) this.previousCacheItem = undefined\n return null\n }\n\n // Resolve for on-demand revalidation or if not already resolved\n if (context.isOnDemandRevalidate && !resolved) {\n return incrementalResponseCacheEntry\n }\n\n return incrementalResponseCacheEntry\n } catch (err) {\n // If we've already resolved the cache entry, we can't reject as we\n // already resolved the cache entry so log the error here.\n if (resolved) {\n console.error(err)\n return null\n }\n\n throw err\n }\n }\n\n /**\n * Revalidates the cache entry for the given key.\n *\n * @param key - The key to revalidate the cache entry for.\n * @param incrementalCache - The incremental cache to use to revalidate the cache entry.\n * @param isRoutePPREnabled - Whether the route is PPR enabled.\n * @param isFallback - Whether the route is a fallback.\n * @param responseGenerator - The response generator to use to generate the response cache entry.\n * @param previousIncrementalCacheEntry - The previous cache entry to use to revalidate the cache entry.\n * @param hasResolved - Whether the response has been resolved.\n * @returns The revalidated cache entry.\n */\n public async revalidate(\n key: string,\n incrementalCache: IncrementalResponseCache,\n isRoutePPREnabled: boolean,\n isFallback: boolean,\n responseGenerator: ResponseGenerator,\n previousIncrementalCacheEntry: IncrementalResponseCacheEntry | null,\n hasResolved: boolean,\n waitUntil?: (prom: Promise) => void\n ) {\n return this.revalidateBatcher.batch(key, () => {\n const promise = this.handleRevalidate(\n key,\n incrementalCache,\n isRoutePPREnabled,\n isFallback,\n responseGenerator,\n previousIncrementalCacheEntry,\n hasResolved\n )\n\n // We need to ensure background revalidates are passed to waitUntil.\n if (waitUntil) waitUntil(promise)\n\n return promise\n })\n }\n\n private async handleRevalidate(\n key: string,\n incrementalCache: IncrementalResponseCache,\n isRoutePPREnabled: boolean,\n isFallback: boolean,\n responseGenerator: ResponseGenerator,\n previousIncrementalCacheEntry: IncrementalResponseCacheEntry | null,\n hasResolved: boolean\n ) {\n try {\n // Generate the response cache entry using the response generator.\n const responseCacheEntry = await responseGenerator({\n hasResolved,\n previousCacheEntry: previousIncrementalCacheEntry,\n isRevalidating: true,\n })\n if (!responseCacheEntry) {\n return null\n }\n\n // Convert the response cache entry to an incremental response cache entry.\n const incrementalResponseCacheEntry = await fromResponseCacheEntry({\n ...responseCacheEntry,\n isMiss: !previousIncrementalCacheEntry,\n })\n\n // We want to persist the result only if it has a cache control value\n // defined.\n if (incrementalResponseCacheEntry.cacheControl) {\n if (this.minimal_mode) {\n this.previousCacheItem = {\n key,\n entry: incrementalResponseCacheEntry,\n expiresAt: Date.now() + 1000,\n }\n } else {\n await incrementalCache.set(key, incrementalResponseCacheEntry.value, {\n cacheControl: incrementalResponseCacheEntry.cacheControl,\n isRoutePPREnabled,\n isFallback,\n })\n }\n }\n\n return incrementalResponseCacheEntry\n } catch (err) {\n // When a path is erroring we automatically re-set the existing cache\n // with new revalidate and expire times to prevent non-stop retrying.\n if (previousIncrementalCacheEntry?.cacheControl) {\n const revalidate = Math.min(\n Math.max(\n previousIncrementalCacheEntry.cacheControl.revalidate || 3,\n 3\n ),\n 30\n )\n const expire =\n previousIncrementalCacheEntry.cacheControl.expire === undefined\n ? undefined\n : Math.max(\n revalidate + 3,\n previousIncrementalCacheEntry.cacheControl.expire\n )\n\n await incrementalCache.set(key, previousIncrementalCacheEntry.value, {\n cacheControl: { revalidate: revalidate, expire: expire },\n isRoutePPREnabled,\n isFallback,\n })\n }\n\n // We haven't resolved yet, so let's throw to indicate an error.\n throw err\n }\n }\n}\n"],"names":["Batcher","scheduleOnNextTick","fromResponseCacheEntry","routeKindToIncrementalCacheKind","toResponseCacheEntry","ResponseCache","constructor","minimal_mode","getBatcher","create","cacheKeyFn","key","isOnDemandRevalidate","schedulerFn","revalidateBatcher","get","responseGenerator","context","hasResolved","previousCacheEntry","previousCacheItem","expiresAt","Date","now","entry","incrementalCache","isFallback","isRoutePPREnabled","isPrefetch","waitUntil","routeKind","response","batch","resolve","promise","handleGet","previousIncrementalCacheEntry","resolved","kind","isStale","incrementalResponseCacheEntry","revalidate","undefined","err","console","error","handleRevalidate","responseCacheEntry","isRevalidating","isMiss","cacheControl","set","value","Math","min","max","expire"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 6650, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/lib/patch-fetch.ts"],"sourcesContent":["import type {\n WorkAsyncStorage,\n WorkStore,\n} from '../app-render/work-async-storage.external'\n\nimport { AppRenderSpan, NextNodeServerSpan } from './trace/constants'\nimport { getTracer, SpanKind } from './trace/tracer'\nimport {\n CACHE_ONE_YEAR,\n INFINITE_CACHE,\n NEXT_CACHE_TAG_MAX_ITEMS,\n NEXT_CACHE_TAG_MAX_LENGTH,\n} from '../../lib/constants'\nimport { markCurrentScopeAsDynamic } from '../app-render/dynamic-rendering'\nimport { makeHangingPromise } from '../dynamic-rendering-utils'\nimport type { FetchMetric } from '../base-http'\nimport { createDedupeFetch } from './dedupe-fetch'\nimport {\n getCacheSignal,\n type RevalidateStore,\n type WorkUnitAsyncStorage,\n} from '../app-render/work-unit-async-storage.external'\nimport {\n CachedRouteKind,\n IncrementalCacheKind,\n type CachedFetchData,\n type ServerComponentsHmrCache,\n type SetIncrementalFetchCacheContext,\n} from '../response-cache'\nimport { cloneResponse } from './clone-response'\nimport type { IncrementalCache } from './incremental-cache'\nimport { RenderStage } from '../app-render/staged-rendering'\n\nconst isEdgeRuntime = process.env.NEXT_RUNTIME === 'edge'\n\ntype Fetcher = typeof fetch\n\ntype PatchedFetcher = Fetcher & {\n readonly __nextPatched: true\n readonly __nextGetStaticStore: () => WorkAsyncStorage\n readonly _nextOriginalFetch: Fetcher\n}\n\nexport const NEXT_PATCH_SYMBOL = Symbol.for('next-patch')\n\nfunction isFetchPatched() {\n return (globalThis as Record)[NEXT_PATCH_SYMBOL] === true\n}\n\nexport function validateRevalidate(\n revalidateVal: unknown,\n route: string\n): undefined | number {\n try {\n let normalizedRevalidate: number | undefined = undefined\n\n if (revalidateVal === false) {\n normalizedRevalidate = INFINITE_CACHE\n } else if (\n typeof revalidateVal === 'number' &&\n !isNaN(revalidateVal) &&\n revalidateVal > -1\n ) {\n normalizedRevalidate = revalidateVal\n } else if (typeof revalidateVal !== 'undefined') {\n throw new Error(\n `Invalid revalidate value \"${revalidateVal}\" on \"${route}\", must be a non-negative number or false`\n )\n }\n return normalizedRevalidate\n } catch (err: any) {\n // handle client component error from attempting to check revalidate value\n if (err instanceof Error && err.message.includes('Invalid revalidate')) {\n throw err\n }\n return undefined\n }\n}\n\nexport function validateTags(tags: any[], description: string) {\n const validTags: string[] = []\n const invalidTags: Array<{\n tag: any\n reason: string\n }> = []\n\n for (let i = 0; i < tags.length; i++) {\n const tag = tags[i]\n\n if (typeof tag !== 'string') {\n invalidTags.push({ tag, reason: 'invalid type, must be a string' })\n } else if (tag.length > NEXT_CACHE_TAG_MAX_LENGTH) {\n invalidTags.push({\n tag,\n reason: `exceeded max length of ${NEXT_CACHE_TAG_MAX_LENGTH}`,\n })\n } else {\n validTags.push(tag)\n }\n\n if (validTags.length > NEXT_CACHE_TAG_MAX_ITEMS) {\n console.warn(\n `Warning: exceeded max tag count for ${description}, dropped tags:`,\n tags.slice(i).join(', ')\n )\n break\n }\n }\n\n if (invalidTags.length > 0) {\n console.warn(`Warning: invalid tags passed to ${description}: `)\n\n for (const { tag, reason } of invalidTags) {\n console.log(`tag: \"${tag}\" ${reason}`)\n }\n }\n return validTags\n}\n\nfunction trackFetchMetric(\n workStore: WorkStore,\n ctx: Omit\n) {\n if (!workStore.shouldTrackFetchMetrics) {\n return\n }\n\n workStore.fetchMetrics ??= []\n\n workStore.fetchMetrics.push({\n ...ctx,\n end: performance.timeOrigin + performance.now(),\n idx: workStore.nextFetchId || 0,\n })\n}\n\nasync function createCachedPrerenderResponse(\n res: Response,\n cacheKey: string,\n incrementalCacheContext: SetIncrementalFetchCacheContext | undefined,\n incrementalCache: IncrementalCache,\n revalidate: number,\n handleUnlock: () => Promise | void\n): Promise {\n // We are prerendering at build time or revalidate time with cacheComponents so we\n // need to buffer the response so we can guarantee it can be read in a\n // microtask.\n const bodyBuffer = await res.arrayBuffer()\n\n const fetchedData = {\n headers: Object.fromEntries(res.headers.entries()),\n body: Buffer.from(bodyBuffer).toString('base64'),\n status: res.status,\n url: res.url,\n }\n\n // We can skip setting the serverComponentsHmrCache because we aren't in dev\n // mode.\n\n if (incrementalCacheContext) {\n await incrementalCache.set(\n cacheKey,\n { kind: CachedRouteKind.FETCH, data: fetchedData, revalidate },\n incrementalCacheContext\n )\n }\n\n await handleUnlock()\n\n // We return a new Response to the caller.\n return new Response(bodyBuffer, {\n headers: res.headers,\n status: res.status,\n statusText: res.statusText,\n })\n}\n\nasync function createCachedDynamicResponse(\n workStore: WorkStore,\n res: Response,\n cacheKey: string,\n incrementalCacheContext: SetIncrementalFetchCacheContext | undefined,\n incrementalCache: IncrementalCache,\n serverComponentsHmrCache: ServerComponentsHmrCache | undefined,\n revalidate: number,\n input: RequestInfo | URL,\n handleUnlock: () => Promise | void\n): Promise {\n // We're cloning the response using this utility because there exists a bug in\n // the undici library around response cloning. See the following pull request\n // for more details: https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = cloneResponse(res)\n\n // We are dynamically rendering including dev mode. We want to return the\n // response to the caller as soon as possible because it might stream over a\n // very long time.\n const cacheSetPromise = cloned1\n .arrayBuffer()\n .then(async (arrayBuffer) => {\n const bodyBuffer = Buffer.from(arrayBuffer)\n\n const fetchedData = {\n headers: Object.fromEntries(cloned1.headers.entries()),\n body: bodyBuffer.toString('base64'),\n status: cloned1.status,\n url: cloned1.url,\n }\n\n serverComponentsHmrCache?.set(cacheKey, fetchedData)\n\n if (incrementalCacheContext) {\n await incrementalCache.set(\n cacheKey,\n { kind: CachedRouteKind.FETCH, data: fetchedData, revalidate },\n incrementalCacheContext\n )\n }\n })\n .catch((error) => console.warn(`Failed to set fetch cache`, input, error))\n .finally(handleUnlock)\n\n const pendingRevalidateKey = `cache-set-${cacheKey}`\n workStore.pendingRevalidates ??= {}\n\n if (pendingRevalidateKey in workStore.pendingRevalidates) {\n // there is already a pending revalidate entry that we need to await to\n // avoid race conditions\n await workStore.pendingRevalidates[pendingRevalidateKey]\n }\n\n workStore.pendingRevalidates[pendingRevalidateKey] = cacheSetPromise.finally(\n () => {\n // If the pending revalidate is not present in the store, then we have\n // nothing to delete.\n if (!workStore.pendingRevalidates?.[pendingRevalidateKey]) {\n return\n }\n\n delete workStore.pendingRevalidates[pendingRevalidateKey]\n }\n )\n\n return cloned2\n}\n\ninterface PatchableModule {\n workAsyncStorage: WorkAsyncStorage\n workUnitAsyncStorage: WorkUnitAsyncStorage\n}\n\nexport function createPatchedFetcher(\n originFetch: Fetcher,\n { workAsyncStorage, workUnitAsyncStorage }: PatchableModule\n): PatchedFetcher {\n // Create the patched fetch function.\n const patched = async function fetch(\n input: RequestInfo | URL,\n init: RequestInit | undefined\n ): Promise {\n let url: URL | undefined\n try {\n url = new URL(input instanceof Request ? input.url : input)\n url.username = ''\n url.password = ''\n } catch {\n // Error caused by malformed URL should be handled by native fetch\n url = undefined\n }\n const fetchUrl = url?.href ?? ''\n const method = init?.method?.toUpperCase() || 'GET'\n\n // Do create a new span trace for internal fetches in the\n // non-verbose mode.\n const isInternal = (init?.next as any)?.internal === true\n const hideSpan = process.env.NEXT_OTEL_FETCH_DISABLED === '1'\n // We don't track fetch metrics for internal fetches\n // so it's not critical that we have a start time, as it won't be recorded.\n // This is to workaround a flaky issue where performance APIs might\n // not be available and will require follow-up investigation.\n const fetchStart: number | undefined = isInternal\n ? undefined\n : performance.timeOrigin + performance.now()\n\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n let cacheSignal = workUnitStore ? getCacheSignal(workUnitStore) : null\n if (cacheSignal) {\n cacheSignal.beginRead()\n }\n\n const result = getTracer().trace(\n isInternal ? NextNodeServerSpan.internalFetch : AppRenderSpan.fetch,\n {\n hideSpan,\n kind: SpanKind.CLIENT,\n spanName: ['fetch', method, fetchUrl].filter(Boolean).join(' '),\n attributes: {\n 'http.url': fetchUrl,\n 'http.method': method,\n 'net.peer.name': url?.hostname,\n 'net.peer.port': url?.port || undefined,\n },\n },\n async () => {\n // If this is an internal fetch, we should not do any special treatment.\n if (isInternal) {\n return originFetch(input, init)\n }\n\n // If the workStore is not available, we can't do any\n // special treatment of fetch, therefore fallback to the original\n // fetch implementation.\n if (!workStore) {\n return originFetch(input, init)\n }\n\n // We should also fallback to the original fetch implementation if we\n // are in draft mode, it does not constitute a static generation.\n if (workStore.isDraftMode) {\n return originFetch(input, init)\n }\n\n const isRequestInput =\n input &&\n typeof input === 'object' &&\n typeof (input as Request).method === 'string'\n\n const getRequestMeta = (field: string) => {\n // If request input is present but init is not, retrieve from input first.\n const value = (init as any)?.[field]\n return value || (isRequestInput ? (input as any)[field] : null)\n }\n\n let finalRevalidate: number | undefined = undefined\n const getNextField = (field: 'revalidate' | 'tags') => {\n return typeof init?.next?.[field] !== 'undefined'\n ? init?.next?.[field]\n : isRequestInput\n ? (input as any).next?.[field]\n : undefined\n }\n // RequestInit doesn't keep extra fields e.g. next so it's\n // only available if init is used separate\n const originalFetchRevalidate = getNextField('revalidate')\n let currentFetchRevalidate = originalFetchRevalidate\n const tags: string[] = validateTags(\n getNextField('tags') || [],\n `fetch ${input.toString()}`\n )\n\n let revalidateStore: RevalidateStore | undefined\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-runtime':\n // TODO: Stop accumulating tags in client prerender. (fallthrough)\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n revalidateStore = workUnitStore\n break\n case 'request':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n if (revalidateStore) {\n if (Array.isArray(tags)) {\n // Collect tags onto parent caches or parent prerenders.\n const collectedTags =\n revalidateStore.tags ?? (revalidateStore.tags = [])\n for (const tag of tags) {\n if (!collectedTags.includes(tag)) {\n collectedTags.push(tag)\n }\n }\n }\n }\n\n const implicitTags = workUnitStore?.implicitTags\n\n let pageFetchCacheMode = workStore.fetchCache\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'unstable-cache':\n // Inside unstable-cache we treat it the same as force-no-store on\n // the page.\n pageFetchCacheMode = 'force-no-store'\n break\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n const isUsingNoStore = !!workStore.isUnstableNoStore\n\n let currentFetchCacheConfig = getRequestMeta('cache')\n let cacheReason = ''\n let cacheWarning: string | undefined\n\n if (\n typeof currentFetchCacheConfig === 'string' &&\n typeof currentFetchRevalidate !== 'undefined'\n ) {\n // If the revalidate value conflicts with the cache value, we should warn the user and unset the conflicting values.\n const isConflictingRevalidate =\n // revalidate: 0 and cache: force-cache\n (currentFetchCacheConfig === 'force-cache' &&\n currentFetchRevalidate === 0) ||\n // revalidate: >0 or revalidate: false and cache: no-store\n (currentFetchCacheConfig === 'no-store' &&\n (currentFetchRevalidate > 0 || currentFetchRevalidate === false))\n\n if (isConflictingRevalidate) {\n cacheWarning = `Specified \"cache: ${currentFetchCacheConfig}\" and \"revalidate: ${currentFetchRevalidate}\", only one should be specified.`\n currentFetchCacheConfig = undefined\n currentFetchRevalidate = undefined\n }\n }\n\n const hasExplicitFetchCacheOptOut =\n // fetch config itself signals not to cache\n currentFetchCacheConfig === 'no-cache' ||\n currentFetchCacheConfig === 'no-store' ||\n // the fetch isn't explicitly caching and the segment level cache config signals not to cache\n // note: `pageFetchCacheMode` is also set by being in an unstable_cache context.\n pageFetchCacheMode === 'force-no-store' ||\n pageFetchCacheMode === 'only-no-store'\n\n // If no explicit fetch cache mode is set, but dynamic = `force-dynamic` is set,\n // we shouldn't consider caching the fetch. This is because the `dynamic` cache\n // is considered a \"top-level\" cache mode, whereas something like `fetchCache` is more\n // fine-grained. Top-level modes are responsible for setting reasonable defaults for the\n // other configurations.\n const noFetchConfigAndForceDynamic =\n !pageFetchCacheMode &&\n !currentFetchCacheConfig &&\n !currentFetchRevalidate &&\n workStore.forceDynamic\n\n if (\n // force-cache was specified without a revalidate value. We set the revalidate value to false\n // which will signal the cache to not revalidate\n currentFetchCacheConfig === 'force-cache' &&\n typeof currentFetchRevalidate === 'undefined'\n ) {\n currentFetchRevalidate = false\n } else if (\n hasExplicitFetchCacheOptOut ||\n noFetchConfigAndForceDynamic\n ) {\n currentFetchRevalidate = 0\n }\n\n if (\n currentFetchCacheConfig === 'no-cache' ||\n currentFetchCacheConfig === 'no-store'\n ) {\n cacheReason = `cache: ${currentFetchCacheConfig}`\n }\n\n finalRevalidate = validateRevalidate(\n currentFetchRevalidate,\n workStore.route\n )\n\n const _headers = getRequestMeta('headers')\n const initHeaders: Headers =\n typeof _headers?.get === 'function'\n ? _headers\n : new Headers(_headers || {})\n\n const hasUnCacheableHeader =\n initHeaders.get('authorization') || initHeaders.get('cookie')\n\n const isUnCacheableMethod = !['get', 'head'].includes(\n getRequestMeta('method')?.toLowerCase() || 'get'\n )\n\n /**\n * We automatically disable fetch caching under the following conditions:\n * - Fetch cache configs are not set. Specifically:\n * - A page fetch cache mode is not set (export const fetchCache=...)\n * - A fetch cache mode is not set in the fetch call (fetch(url, { cache: ... }))\n * or the fetch cache mode is set to 'default'\n * - A fetch revalidate value is not set in the fetch call (fetch(url, { revalidate: ... }))\n * - OR the fetch comes after a configuration that triggered dynamic rendering (e.g., reading cookies())\n * and the fetch was considered uncacheable (e.g., POST method or has authorization headers)\n */\n const hasNoExplicitCacheConfig =\n // eslint-disable-next-line eqeqeq\n pageFetchCacheMode == undefined &&\n // eslint-disable-next-line eqeqeq\n (currentFetchCacheConfig == undefined ||\n // when considering whether to opt into the default \"no-cache\" fetch semantics,\n // a \"default\" cache config should be treated the same as no cache config\n currentFetchCacheConfig === 'default') &&\n // eslint-disable-next-line eqeqeq\n currentFetchRevalidate == undefined\n\n let autoNoCache = Boolean(\n (hasUnCacheableHeader || isUnCacheableMethod) &&\n revalidateStore?.revalidate === 0\n )\n\n let isImplicitBuildTimeCache = false\n\n if (!autoNoCache && hasNoExplicitCacheConfig) {\n // We don't enable automatic no-cache behavior during build-time\n // prerendering so that we can still leverage the fetch cache between\n // export workers.\n if (workStore.isBuildTimePrerendering) {\n isImplicitBuildTimeCache = true\n } else {\n autoNoCache = true\n }\n }\n\n // If we have no cache config, and we're in Dynamic I/O prerendering,\n // it'll be a dynamic call. We don't have to issue that dynamic call.\n if (hasNoExplicitCacheConfig && workUnitStore !== undefined) {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-runtime':\n // While we don't want to do caching in the client scope we know the\n // fetch will be dynamic for cacheComponents so we may as well avoid the\n // call here. (fallthrough)\n case 'prerender-client':\n if (cacheSignal) {\n cacheSignal.endRead()\n cacheSignal = null\n }\n\n return makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n 'fetch()'\n )\n case 'request':\n if (\n process.env.NODE_ENV === 'development' &&\n workUnitStore.stagedRendering\n ) {\n if (cacheSignal) {\n cacheSignal.endRead()\n cacheSignal = null\n }\n await workUnitStore.stagedRendering.waitForStage(\n RenderStage.Dynamic\n )\n }\n break\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n switch (pageFetchCacheMode) {\n case 'force-no-store': {\n cacheReason = 'fetchCache = force-no-store'\n break\n }\n case 'only-no-store': {\n if (\n currentFetchCacheConfig === 'force-cache' ||\n (typeof finalRevalidate !== 'undefined' && finalRevalidate > 0)\n ) {\n throw new Error(\n `cache: 'force-cache' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-no-store'`\n )\n }\n cacheReason = 'fetchCache = only-no-store'\n break\n }\n case 'only-cache': {\n if (currentFetchCacheConfig === 'no-store') {\n throw new Error(\n `cache: 'no-store' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-cache'`\n )\n }\n break\n }\n case 'force-cache': {\n if (\n typeof currentFetchRevalidate === 'undefined' ||\n currentFetchRevalidate === 0\n ) {\n cacheReason = 'fetchCache = force-cache'\n finalRevalidate = INFINITE_CACHE\n }\n break\n }\n case 'default-cache':\n case 'default-no-store':\n case 'auto':\n case undefined:\n // sometimes we won't match the above cases. the reason we don't move\n // everything to this switch is the use of autoNoCache which is not a fetchCacheMode\n // I suspect this could be unified with fetchCacheMode however in which case we could\n // simplify the switch case and ensure we have an exhaustive switch handling all modes\n break\n default:\n pageFetchCacheMode satisfies never\n }\n\n if (typeof finalRevalidate === 'undefined') {\n if (pageFetchCacheMode === 'default-cache' && !isUsingNoStore) {\n finalRevalidate = INFINITE_CACHE\n cacheReason = 'fetchCache = default-cache'\n } else if (pageFetchCacheMode === 'default-no-store') {\n finalRevalidate = 0\n cacheReason = 'fetchCache = default-no-store'\n } else if (isUsingNoStore) {\n finalRevalidate = 0\n cacheReason = 'noStore call'\n } else if (autoNoCache) {\n finalRevalidate = 0\n cacheReason = 'auto no cache'\n } else {\n // TODO: should we consider this case an invariant?\n cacheReason = 'auto cache'\n finalRevalidate = revalidateStore\n ? revalidateStore.revalidate\n : INFINITE_CACHE\n }\n } else if (!cacheReason) {\n cacheReason = `revalidate: ${finalRevalidate}`\n }\n\n if (\n // when force static is configured we don't bail from\n // `revalidate: 0` values\n !(workStore.forceStatic && finalRevalidate === 0) &&\n // we don't consider autoNoCache to switch to dynamic for ISR\n !autoNoCache &&\n // If the revalidate value isn't currently set or the value is less\n // than the current revalidate value, we should update the revalidate\n // value.\n revalidateStore &&\n finalRevalidate < revalidateStore.revalidate\n ) {\n // If we were setting the revalidate value to 0, we should try to\n // postpone instead first.\n if (finalRevalidate === 0) {\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n if (cacheSignal) {\n cacheSignal.endRead()\n cacheSignal = null\n }\n return makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n 'fetch()'\n )\n case 'request':\n if (\n process.env.NODE_ENV === 'development' &&\n workUnitStore.stagedRendering\n ) {\n if (cacheSignal) {\n cacheSignal.endRead()\n cacheSignal = null\n }\n await workUnitStore.stagedRendering.waitForStage(\n RenderStage.Dynamic\n )\n }\n break\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n markCurrentScopeAsDynamic(\n workStore,\n workUnitStore,\n `revalidate: 0 fetch ${input} ${workStore.route}`\n )\n }\n\n // We only want to set the revalidate store's revalidate time if it\n // was explicitly set for the fetch call, i.e.\n // originalFetchRevalidate.\n if (revalidateStore && originalFetchRevalidate === finalRevalidate) {\n revalidateStore.revalidate = finalRevalidate\n }\n }\n\n const isCacheableRevalidate =\n typeof finalRevalidate === 'number' && finalRevalidate > 0\n\n let cacheKey: string | undefined\n const { incrementalCache } = workStore\n let isHmrRefresh = false\n let serverComponentsHmrCache: ServerComponentsHmrCache | undefined\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'request':\n case 'cache':\n case 'private-cache':\n isHmrRefresh = workUnitStore.isHmrRefresh ?? false\n serverComponentsHmrCache = workUnitStore.serverComponentsHmrCache\n break\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n if (\n incrementalCache &&\n (isCacheableRevalidate || serverComponentsHmrCache)\n ) {\n try {\n cacheKey = await incrementalCache.generateCacheKey(\n fetchUrl,\n isRequestInput ? (input as RequestInit) : init\n )\n } catch (err) {\n console.error(`Failed to generate cache key for`, input)\n }\n }\n\n const fetchIdx = workStore.nextFetchId ?? 1\n workStore.nextFetchId = fetchIdx + 1\n\n let handleUnlock: () => Promise | void = () => {}\n\n const doOriginalFetch = async (\n isStale?: boolean,\n cacheReasonOverride?: string\n ) => {\n const requestInputFields = [\n 'cache',\n 'credentials',\n 'headers',\n 'integrity',\n 'keepalive',\n 'method',\n 'mode',\n 'redirect',\n 'referrer',\n 'referrerPolicy',\n 'window',\n 'duplex',\n\n // don't pass through signal when revalidating\n ...(isStale ? [] : ['signal']),\n ]\n\n if (isRequestInput) {\n const reqInput: Request = input as any\n const reqOptions: RequestInit = {\n body: (reqInput as any)._ogBody || reqInput.body,\n }\n\n for (const field of requestInputFields) {\n // @ts-expect-error custom fields\n reqOptions[field] = reqInput[field]\n }\n input = new Request(reqInput.url, reqOptions)\n } else if (init) {\n const { _ogBody, body, signal, ...otherInput } =\n init as RequestInit & { _ogBody?: any }\n init = {\n ...otherInput,\n body: _ogBody || body,\n signal: isStale ? undefined : signal,\n }\n }\n\n // add metadata to init without editing the original\n const clonedInit = {\n ...init,\n next: { ...init?.next, fetchType: 'origin', fetchIdx },\n }\n\n return originFetch(input, clonedInit)\n .then(async (res) => {\n if (!isStale && fetchStart) {\n trackFetchMetric(workStore, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason: cacheReasonOverride || cacheReason,\n cacheStatus:\n finalRevalidate === 0 || cacheReasonOverride\n ? 'skip'\n : 'miss',\n cacheWarning,\n status: res.status,\n method: clonedInit.method || 'GET',\n })\n }\n if (\n res.status === 200 &&\n incrementalCache &&\n cacheKey &&\n (isCacheableRevalidate || serverComponentsHmrCache)\n ) {\n const normalizedRevalidate =\n finalRevalidate >= INFINITE_CACHE\n ? CACHE_ONE_YEAR\n : finalRevalidate\n\n const incrementalCacheConfig:\n | SetIncrementalFetchCacheContext\n | undefined = isCacheableRevalidate\n ? {\n fetchCache: true,\n fetchUrl,\n fetchIdx,\n tags,\n isImplicitBuildTimeCache,\n }\n : undefined\n\n switch (workUnitStore?.type) {\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n return createCachedPrerenderResponse(\n res,\n cacheKey,\n incrementalCacheConfig,\n incrementalCache,\n normalizedRevalidate,\n handleUnlock\n )\n case 'request':\n if (\n process.env.NODE_ENV === 'development' &&\n workUnitStore.stagedRendering &&\n workUnitStore.cacheSignal\n ) {\n // We're filling caches for a staged render,\n // so we need to wait for the response to finish instead of streaming.\n return createCachedPrerenderResponse(\n res,\n cacheKey,\n incrementalCacheConfig,\n incrementalCache,\n normalizedRevalidate,\n handleUnlock\n )\n }\n // fallthrough\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case undefined:\n return createCachedDynamicResponse(\n workStore,\n res,\n cacheKey,\n incrementalCacheConfig,\n incrementalCache,\n serverComponentsHmrCache,\n normalizedRevalidate,\n input,\n handleUnlock\n )\n default:\n workUnitStore satisfies never\n }\n }\n\n // we had response that we determined shouldn't be cached so we return it\n // and don't cache it. This also needs to unlock the cache lock we acquired.\n await handleUnlock()\n\n return res\n })\n .catch((error) => {\n handleUnlock()\n throw error\n })\n }\n\n let cacheReasonOverride\n let isForegroundRevalidate = false\n let isHmrRefreshCache = false\n\n if (cacheKey && incrementalCache) {\n let cachedFetchData: CachedFetchData | undefined\n\n if (isHmrRefresh && serverComponentsHmrCache) {\n cachedFetchData = serverComponentsHmrCache.get(cacheKey)\n isHmrRefreshCache = true\n }\n\n if (isCacheableRevalidate && !cachedFetchData) {\n handleUnlock = await incrementalCache.lock(cacheKey)\n const entry = workStore.isOnDemandRevalidate\n ? null\n : await incrementalCache.get(cacheKey, {\n kind: IncrementalCacheKind.FETCH,\n revalidate: finalRevalidate,\n fetchUrl,\n fetchIdx,\n tags,\n softTags: implicitTags?.tags,\n })\n\n if (hasNoExplicitCacheConfig && workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n // We sometimes use the cache to dedupe fetches that do not\n // specify a cache configuration. In these cases we want to\n // make sure we still exclude them from prerenders if\n // cacheComponents is on so we introduce an artificial task boundary\n // here.\n await getTimeoutBoundary()\n break\n case 'request':\n if (\n process.env.NODE_ENV === 'development' &&\n workUnitStore.stagedRendering\n ) {\n await workUnitStore.stagedRendering.waitForStage(\n RenderStage.Dynamic\n )\n }\n break\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n if (entry) {\n await handleUnlock()\n } else {\n // in dev, incremental cache response will be null in case the browser adds `cache-control: no-cache` in the request headers\n // TODO: it seems like we also hit this after revalidates in dev?\n cacheReasonOverride = 'cache-control: no-cache (hard refresh)'\n }\n\n if (entry?.value && entry.value.kind === CachedRouteKind.FETCH) {\n // when stale and is revalidating we wait for fresh data\n // so the revalidated entry has the updated data\n if (workStore.isStaticGeneration && entry.isStale) {\n isForegroundRevalidate = true\n } else {\n if (entry.isStale) {\n workStore.pendingRevalidates ??= {}\n if (!workStore.pendingRevalidates[cacheKey]) {\n const pendingRevalidate = doOriginalFetch(true)\n .then(async (response) => ({\n body: await response.arrayBuffer(),\n headers: response.headers,\n status: response.status,\n statusText: response.statusText,\n }))\n .finally(() => {\n workStore.pendingRevalidates ??= {}\n delete workStore.pendingRevalidates[cacheKey || '']\n })\n\n // Attach the empty catch here so we don't get a \"unhandled\n // promise rejection\" warning.\n pendingRevalidate.catch(console.error)\n\n workStore.pendingRevalidates[cacheKey] = pendingRevalidate\n }\n }\n\n cachedFetchData = entry.value.data\n }\n }\n }\n\n if (cachedFetchData) {\n if (fetchStart) {\n trackFetchMetric(workStore, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason,\n cacheStatus: isHmrRefreshCache ? 'hmr' : 'hit',\n cacheWarning,\n status: cachedFetchData.status || 200,\n method: init?.method || 'GET',\n })\n }\n\n const response = new Response(\n Buffer.from(cachedFetchData.body, 'base64'),\n {\n headers: cachedFetchData.headers,\n status: cachedFetchData.status,\n }\n )\n\n Object.defineProperty(response, 'url', {\n value: cachedFetchData.url,\n })\n\n return response\n }\n }\n\n if (\n (workStore.isStaticGeneration ||\n (process.env.NODE_ENV === 'development' &&\n process.env.__NEXT_CACHE_COMPONENTS &&\n workUnitStore &&\n // eslint-disable-next-line no-restricted-syntax\n workUnitStore.type === 'request' &&\n workUnitStore.stagedRendering)) &&\n init &&\n typeof init === 'object'\n ) {\n const { cache } = init\n\n // Delete `cache` property as Cloudflare Workers will throw an error\n if (isEdgeRuntime) delete init.cache\n\n if (cache === 'no-store') {\n // If enabled, we should bail out of static generation.\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n if (cacheSignal) {\n cacheSignal.endRead()\n cacheSignal = null\n }\n return makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n 'fetch()'\n )\n case 'request':\n if (\n process.env.NODE_ENV === 'development' &&\n workUnitStore.stagedRendering\n ) {\n if (cacheSignal) {\n cacheSignal.endRead()\n cacheSignal = null\n }\n await workUnitStore.stagedRendering.waitForStage(\n RenderStage.Dynamic\n )\n }\n break\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n markCurrentScopeAsDynamic(\n workStore,\n workUnitStore,\n `no-store fetch ${input} ${workStore.route}`\n )\n }\n\n const hasNextConfig = 'next' in init\n const { next = {} } = init\n if (\n typeof next.revalidate === 'number' &&\n revalidateStore &&\n next.revalidate < revalidateStore.revalidate\n ) {\n if (next.revalidate === 0) {\n // If enabled, we should bail out of static generation.\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n return makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n 'fetch()'\n )\n case 'request':\n if (\n process.env.NODE_ENV === 'development' &&\n workUnitStore.stagedRendering\n ) {\n await workUnitStore.stagedRendering.waitForStage(\n RenderStage.Dynamic\n )\n }\n break\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'prerender-legacy':\n case 'prerender-ppr':\n break\n default:\n workUnitStore satisfies never\n }\n }\n markCurrentScopeAsDynamic(\n workStore,\n workUnitStore,\n `revalidate: 0 fetch ${input} ${workStore.route}`\n )\n }\n\n if (!workStore.forceStatic || next.revalidate !== 0) {\n revalidateStore.revalidate = next.revalidate\n }\n }\n if (hasNextConfig) delete init.next\n }\n\n // if we are revalidating the whole page via time or on-demand and\n // the fetch cache entry is stale we should still de-dupe the\n // origin hit if it's a cache-able entry\n if (cacheKey && isForegroundRevalidate) {\n const pendingRevalidateKey = cacheKey\n workStore.pendingRevalidates ??= {}\n let pendingRevalidate =\n workStore.pendingRevalidates[pendingRevalidateKey]\n\n if (pendingRevalidate) {\n const revalidatedResult: {\n body: ArrayBuffer\n headers: Headers\n status: number\n statusText: string\n } = await pendingRevalidate\n return new Response(revalidatedResult.body, {\n headers: revalidatedResult.headers,\n status: revalidatedResult.status,\n statusText: revalidatedResult.statusText,\n })\n }\n\n // We used to just resolve the Response and clone it however for\n // static generation with cacheComponents we need the response to be able to\n // be resolved in a microtask and cloning the response will never have\n // a body that can resolve in a microtask in node (as observed through\n // experimentation) So instead we await the body and then when it is\n // available we construct manually cloned Response objects with the\n // body as an ArrayBuffer. This will be resolvable in a microtask\n // making it compatible with cacheComponents.\n const pendingResponse = doOriginalFetch(true, cacheReasonOverride)\n // We're cloning the response using this utility because there\n // exists a bug in the undici library around response cloning.\n // See the following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n .then(cloneResponse)\n\n pendingRevalidate = pendingResponse\n .then(async (responses) => {\n const response = responses[0]\n return {\n body: await response.arrayBuffer(),\n headers: response.headers,\n status: response.status,\n statusText: response.statusText,\n }\n })\n .finally(() => {\n // If the pending revalidate is not present in the store, then\n // we have nothing to delete.\n if (!workStore.pendingRevalidates?.[pendingRevalidateKey]) {\n return\n }\n\n delete workStore.pendingRevalidates[pendingRevalidateKey]\n })\n\n // Attach the empty catch here so we don't get a \"unhandled promise\n // rejection\" warning\n pendingRevalidate.catch(() => {})\n\n workStore.pendingRevalidates[pendingRevalidateKey] = pendingRevalidate\n\n return pendingResponse.then((responses) => responses[1])\n } else {\n return doOriginalFetch(false, cacheReasonOverride)\n }\n }\n )\n\n if (cacheSignal) {\n try {\n return await result\n } finally {\n if (cacheSignal) {\n cacheSignal.endRead()\n }\n }\n }\n return result\n }\n\n // Attach the necessary properties to the patched fetch function.\n // We don't use this to determine if the fetch function has been patched,\n // but for external consumers to determine if the fetch function has been\n // patched.\n patched.__nextPatched = true as const\n patched.__nextGetStaticStore = () => workAsyncStorage\n patched._nextOriginalFetch = originFetch\n ;(globalThis as Record)[NEXT_PATCH_SYMBOL] = true\n\n // Assign the function name also as a name property, so that it's preserved\n // even when mangling is enabled.\n Object.defineProperty(patched, 'name', { value: 'fetch', writable: false })\n\n return patched\n}\n\n// we patch fetch to collect cache information used for\n// determining if a page is static or not\nexport function patchFetch(options: PatchableModule) {\n // If we've already patched fetch, we should not patch it again.\n if (isFetchPatched()) return\n\n // Grab the original fetch function. We'll attach this so we can use it in\n // the patched fetch function.\n const original = createDedupeFetch(globalThis.fetch)\n\n // Set the global fetch to the patched fetch.\n globalThis.fetch = createPatchedFetcher(original, options)\n}\n\nlet currentTimeoutBoundary: null | Promise = null\nfunction getTimeoutBoundary() {\n if (!currentTimeoutBoundary) {\n currentTimeoutBoundary = new Promise((r) => {\n setTimeout(() => {\n currentTimeoutBoundary = null\n r()\n }, 0)\n })\n }\n return currentTimeoutBoundary\n}\n"],"names":["AppRenderSpan","NextNodeServerSpan","getTracer","SpanKind","CACHE_ONE_YEAR","INFINITE_CACHE","NEXT_CACHE_TAG_MAX_ITEMS","NEXT_CACHE_TAG_MAX_LENGTH","markCurrentScopeAsDynamic","makeHangingPromise","createDedupeFetch","getCacheSignal","CachedRouteKind","IncrementalCacheKind","cloneResponse","RenderStage","isEdgeRuntime","process","env","NEXT_RUNTIME","NEXT_PATCH_SYMBOL","Symbol","for","isFetchPatched","globalThis","validateRevalidate","revalidateVal","route","normalizedRevalidate","undefined","isNaN","Error","err","message","includes","validateTags","tags","description","validTags","invalidTags","i","length","tag","push","reason","console","warn","slice","join","log","trackFetchMetric","workStore","ctx","shouldTrackFetchMetrics","fetchMetrics","end","performance","timeOrigin","now","idx","nextFetchId","createCachedPrerenderResponse","res","cacheKey","incrementalCacheContext","incrementalCache","revalidate","handleUnlock","bodyBuffer","arrayBuffer","fetchedData","headers","Object","fromEntries","entries","body","Buffer","from","toString","status","url","set","kind","FETCH","data","Response","statusText","createCachedDynamicResponse","serverComponentsHmrCache","input","cloned1","cloned2","cacheSetPromise","then","catch","error","finally","pendingRevalidateKey","pendingRevalidates","createPatchedFetcher","originFetch","workAsyncStorage","workUnitAsyncStorage","patched","fetch","init","URL","Request","username","password","fetchUrl","href","method","toUpperCase","isInternal","next","internal","hideSpan","NEXT_OTEL_FETCH_DISABLED","fetchStart","getStore","workUnitStore","cacheSignal","beginRead","result","trace","internalFetch","CLIENT","spanName","filter","Boolean","attributes","hostname","port","getRequestMeta","isDraftMode","isRequestInput","field","value","finalRevalidate","getNextField","originalFetchRevalidate","currentFetchRevalidate","revalidateStore","type","Array","isArray","collectedTags","implicitTags","pageFetchCacheMode","fetchCache","isUsingNoStore","isUnstableNoStore","currentFetchCacheConfig","cacheReason","cacheWarning","isConflictingRevalidate","hasExplicitFetchCacheOptOut","noFetchConfigAndForceDynamic","forceDynamic","_headers","initHeaders","get","Headers","hasUnCacheableHeader","isUnCacheableMethod","toLowerCase","hasNoExplicitCacheConfig","autoNoCache","isImplicitBuildTimeCache","isBuildTimePrerendering","endRead","renderSignal","NODE_ENV","stagedRendering","waitForStage","Dynamic","forceStatic","isCacheableRevalidate","isHmrRefresh","generateCacheKey","fetchIdx","doOriginalFetch","isStale","cacheReasonOverride","requestInputFields","reqInput","reqOptions","_ogBody","signal","otherInput","clonedInit","fetchType","start","cacheStatus","incrementalCacheConfig","isForegroundRevalidate","isHmrRefreshCache","cachedFetchData","lock","entry","isOnDemandRevalidate","softTags","getTimeoutBoundary","isStaticGeneration","pendingRevalidate","response","defineProperty","__NEXT_CACHE_COMPONENTS","cache","hasNextConfig","revalidatedResult","pendingResponse","responses","__nextPatched","__nextGetStaticStore","_nextOriginalFetch","writable","patchFetch","options","original","currentTimeoutBoundary","Promise","r","setTimeout"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 7582, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/page-path/ensure-leading-slash.ts"],"sourcesContent":["/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */\nexport function ensureLeadingSlash(path: string) {\n return path.startsWith('/') ? path : `/${path}`\n}\n"],"names":["ensureLeadingSlash","path","startsWith"],"mappings":"AAAA;;;CAGC,GACD;;;;AAAO,SAASA,mBAAmBC,IAAY;IAC7C,OAAOA,KAAKC,UAAU,CAAC,OAAOD,OAAO,CAAC,CAAC,EAAEA,MAAM;AACjD","ignoreList":[0]}}, + {"offset": {"line": 7596, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/segment.ts"],"sourcesContent":["import type { FlightRouterState, Segment } from './app-router-types'\n\nexport function getSegmentValue(segment: Segment) {\n return Array.isArray(segment) ? segment[1] : segment\n}\n\nexport function isGroupSegment(segment: string) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')')\n}\n\nexport function isParallelRouteSegment(segment: string) {\n return segment.startsWith('@') && segment !== '@children'\n}\n\nexport function addSearchParamsIfPageSegment(\n segment: Segment,\n searchParams: Record\n) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY)\n\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams)\n return stringifiedQuery !== '{}'\n ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery\n : PAGE_SEGMENT_KEY\n }\n\n return segment\n}\n\nexport function computeSelectedLayoutSegment(\n segments: string[] | null,\n parallelRouteKey: string\n): string | null {\n if (!segments || segments.length === 0) {\n return null\n }\n\n // For 'children', use first segment; for other parallel routes, use last segment\n const rawSegment =\n parallelRouteKey === 'children'\n ? segments[0]\n : segments[segments.length - 1]\n\n // If the default slot is showing, return null since it's not technically \"selected\" (it's a fallback)\n // Returning an internal value like `__DEFAULT__` would be confusing\n return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment\n}\n\n/** Get the canonical parameters from the current level to the leaf node. */\nexport function getSelectedLayoutSegmentPath(\n tree: FlightRouterState,\n parallelRouteKey: string,\n first = true,\n segmentPath: string[] = []\n): string[] {\n let node: FlightRouterState\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey]\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1]\n node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]\n }\n\n if (!node) return segmentPath\n const segment = node[0]\n\n let segmentValue = getSegmentValue(segment)\n\n if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) {\n return segmentPath\n }\n\n segmentPath.push(segmentValue)\n\n return getSelectedLayoutSegmentPath(\n node,\n parallelRouteKey,\n false,\n segmentPath\n )\n}\n\nexport const PAGE_SEGMENT_KEY = '__PAGE__'\nexport const DEFAULT_SEGMENT_KEY = '__DEFAULT__'\n"],"names":["getSegmentValue","segment","Array","isArray","isGroupSegment","endsWith","isParallelRouteSegment","startsWith","addSearchParamsIfPageSegment","searchParams","isPageSegment","includes","PAGE_SEGMENT_KEY","stringifiedQuery","JSON","stringify","computeSelectedLayoutSegment","segments","parallelRouteKey","length","rawSegment","DEFAULT_SEGMENT_KEY","getSelectedLayoutSegmentPath","tree","first","segmentPath","node","parallelRoutes","children","Object","values","segmentValue","push"],"mappings":";;;;;;;;;;;;;;;;;;AAEO,SAASA,gBAAgBC,OAAgB;IAC9C,OAAOC,MAAMC,OAAO,CAACF,WAAWA,OAAO,CAAC,EAAE,GAAGA;AAC/C;AAEO,SAASG,eAAeH,OAAe;IAC5C,sCAAsC;IACtC,OAAOA,OAAO,CAAC,EAAE,KAAK,OAAOA,QAAQI,QAAQ,CAAC;AAChD;AAEO,SAASC,uBAAuBL,OAAe;IACpD,OAAOA,QAAQM,UAAU,CAAC,QAAQN,YAAY;AAChD;AAEO,SAASO,6BACdP,OAAgB,EAChBQ,YAA2D;IAE3D,MAAMC,gBAAgBT,QAAQU,QAAQ,CAACC;IAEvC,IAAIF,eAAe;QACjB,MAAMG,mBAAmBC,KAAKC,SAAS,CAACN;QACxC,OAAOI,qBAAqB,OACxBD,mBAAmB,MAAMC,mBACzBD;IACN;IAEA,OAAOX;AACT;AAEO,SAASe,6BACdC,QAAyB,EACzBC,gBAAwB;IAExB,IAAI,CAACD,YAAYA,SAASE,MAAM,KAAK,GAAG;QACtC,OAAO;IACT;IAEA,iFAAiF;IACjF,MAAMC,aACJF,qBAAqB,aACjBD,QAAQ,CAAC,EAAE,GACXA,QAAQ,CAACA,SAASE,MAAM,GAAG,EAAE;IAEnC,sGAAsG;IACtG,oEAAoE;IACpE,OAAOC,eAAeC,sBAAsB,OAAOD;AACrD;AAGO,SAASE,6BACdC,IAAuB,EACvBL,gBAAwB,EACxBM,QAAQ,IAAI,EACZC,cAAwB,EAAE;IAE1B,IAAIC;IACJ,IAAIF,OAAO;QACT,kEAAkE;QAClEE,OAAOH,IAAI,CAAC,EAAE,CAACL,iBAAiB;IAClC,OAAO;QACL,oGAAoG;QACpG,MAAMS,iBAAiBJ,IAAI,CAAC,EAAE;QAC9BG,OAAOC,eAAeC,QAAQ,IAAIC,OAAOC,MAAM,CAACH,eAAe,CAAC,EAAE;IACpE;IAEA,IAAI,CAACD,MAAM,OAAOD;IAClB,MAAMxB,UAAUyB,IAAI,CAAC,EAAE;IAEvB,IAAIK,eAAe/B,gBAAgBC;IAEnC,IAAI,CAAC8B,gBAAgBA,aAAaxB,UAAU,CAACK,mBAAmB;QAC9D,OAAOa;IACT;IAEAA,YAAYO,IAAI,CAACD;IAEjB,OAAOT,6BACLI,MACAR,kBACA,OACAO;AAEJ;AAEO,MAAMb,mBAAmB,WAAU;AACnC,MAAMS,sBAAsB,cAAa","ignoreList":[0]}}, + {"offset": {"line": 7667, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/app-paths.ts"],"sourcesContent":["import { ensureLeadingSlash } from '../../page-path/ensure-leading-slash'\nimport { isGroupSegment } from '../../segment'\n\n/**\n * Normalizes an app route so it represents the actual request path. Essentially\n * performing the following transformations:\n *\n * - `/(dashboard)/user/[id]/page` to `/user/[id]`\n * - `/(dashboard)/account/page` to `/account`\n * - `/user/[id]/page` to `/user/[id]`\n * - `/account/page` to `/account`\n * - `/page` to `/`\n * - `/(dashboard)/user/[id]/route` to `/user/[id]`\n * - `/(dashboard)/account/route` to `/account`\n * - `/user/[id]/route` to `/user/[id]`\n * - `/account/route` to `/account`\n * - `/route` to `/`\n * - `/` to `/`\n *\n * @param route the app route to normalize\n * @returns the normalized pathname\n */\nexport function normalizeAppPath(route: string) {\n return ensureLeadingSlash(\n route.split('/').reduce((pathname, segment, index, segments) => {\n // Empty segments are ignored.\n if (!segment) {\n return pathname\n }\n\n // Groups are ignored.\n if (isGroupSegment(segment)) {\n return pathname\n }\n\n // Parallel segments are ignored.\n if (segment[0] === '@') {\n return pathname\n }\n\n // The last segment (if it's a leaf) should be ignored.\n if (\n (segment === 'page' || segment === 'route') &&\n index === segments.length - 1\n ) {\n return pathname\n }\n\n return `${pathname}/${segment}`\n }, '')\n )\n}\n\n/**\n * Strips the `.rsc` extension if it's in the pathname.\n * Since this function is used on full urls it checks `?` for searchParams handling.\n */\nexport function normalizeRscURL(url: string) {\n return url.replace(\n /\\.rsc($|\\?)/,\n // $1 ensures `?` is preserved\n '$1'\n )\n}\n"],"names":["ensureLeadingSlash","isGroupSegment","normalizeAppPath","route","split","reduce","pathname","segment","index","segments","length","normalizeRscURL","url","replace"],"mappings":";;;;;;AAAA,SAASA,kBAAkB,QAAQ,uCAAsC;AACzE,SAASC,cAAc,QAAQ,gBAAe;;;AAqBvC,SAASC,iBAAiBC,KAAa;IAC5C,WAAOH,gZAAAA,EACLG,MAAMC,KAAK,CAAC,KAAKC,MAAM,CAAC,CAACC,UAAUC,SAASC,OAAOC;QACjD,8BAA8B;QAC9B,IAAI,CAACF,SAAS;YACZ,OAAOD;QACT;QAEA,sBAAsB;QACtB,QAAIL,yWAAAA,EAAeM,UAAU;YAC3B,OAAOD;QACT;QAEA,iCAAiC;QACjC,IAAIC,OAAO,CAAC,EAAE,KAAK,KAAK;YACtB,OAAOD;QACT;QAEA,uDAAuD;QACvD,IACGC,CAAAA,YAAY,UAAUA,YAAY,OAAM,KACzCC,UAAUC,SAASC,MAAM,GAAG,GAC5B;YACA,OAAOJ;QACT;QAEA,OAAO,GAAGA,SAAS,CAAC,EAAEC,SAAS;IACjC,GAAG;AAEP;AAMO,SAASI,gBAAgBC,GAAW;IACzC,OAAOA,IAAIC,OAAO,CAChB,eACA,AACA,8BAD8B;AAGlC","ignoreList":[0]}}, + {"offset": {"line": 7705, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/app-render/encryption-utils.ts"],"sourcesContent":["import type { ActionManifest } from '../../build/webpack/plugins/flight-client-entry-plugin'\nimport type {\n ClientReferenceManifest,\n ClientReferenceManifestForRsc,\n} from '../../build/webpack/plugins/flight-manifest-plugin'\nimport type { DeepReadonly } from '../../shared/lib/deep-readonly'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { workAsyncStorage } from './work-async-storage.external'\n\nlet __next_loaded_action_key: CryptoKey\n\nexport function arrayBufferToString(\n buffer: ArrayBuffer | Uint8Array\n) {\n const bytes = new Uint8Array(buffer)\n const len = bytes.byteLength\n\n // @anonrig: V8 has a limit of 65535 arguments in a function.\n // For len < 65535, this is faster.\n // https://github.com/vercel/next.js/pull/56377#pullrequestreview-1656181623\n if (len < 65535) {\n return String.fromCharCode.apply(null, bytes as unknown as number[])\n }\n\n let binary = ''\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i])\n }\n return binary\n}\n\nexport function stringToUint8Array(binary: string) {\n const len = binary.length\n const arr = new Uint8Array(len)\n\n for (let i = 0; i < len; i++) {\n arr[i] = binary.charCodeAt(i)\n }\n\n return arr\n}\n\nexport function encrypt(\n key: CryptoKey,\n iv: Uint8Array,\n data: Uint8Array\n) {\n return crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv,\n },\n key,\n data\n )\n}\n\nexport function decrypt(\n key: CryptoKey,\n iv: Uint8Array,\n data: Uint8Array\n) {\n return crypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv,\n },\n key,\n data\n )\n}\n\n// This is a global singleton that is used to encode/decode the action bound args from\n// the closure. This can't be using a AsyncLocalStorage as it might happen on the module\n// level. Since the client reference manifest won't be mutated, let's use a global singleton\n// to keep it.\nconst SERVER_ACTION_MANIFESTS_SINGLETON = Symbol.for(\n 'next.server.action-manifests'\n)\n\nexport function setReferenceManifestsSingleton({\n page,\n clientReferenceManifest,\n serverActionsManifest,\n serverModuleMap,\n}: {\n page: string\n clientReferenceManifest: DeepReadonly\n serverActionsManifest: DeepReadonly\n serverModuleMap: {\n [id: string]: {\n id: string\n chunks: string[]\n name: string\n }\n }\n}) {\n // @ts-expect-error\n const clientReferenceManifestsPerPage = globalThis[\n SERVER_ACTION_MANIFESTS_SINGLETON\n ]?.clientReferenceManifestsPerPage as\n | undefined\n | DeepReadonly>\n\n // @ts-expect-error\n globalThis[SERVER_ACTION_MANIFESTS_SINGLETON] = {\n clientReferenceManifestsPerPage: {\n ...clientReferenceManifestsPerPage,\n [normalizeAppPath(page)]: clientReferenceManifest,\n },\n serverActionsManifest,\n serverModuleMap,\n }\n}\n\nexport function getServerModuleMap() {\n const serverActionsManifestSingleton = (globalThis as any)[\n SERVER_ACTION_MANIFESTS_SINGLETON\n ] as {\n serverModuleMap: {\n [id: string]: {\n id: string\n chunks: string[]\n name: string\n }\n }\n }\n\n if (!serverActionsManifestSingleton) {\n throw new InvariantError('Missing manifest for Server Actions.')\n }\n\n return serverActionsManifestSingleton.serverModuleMap\n}\n\nexport function getClientReferenceManifestForRsc(): DeepReadonly {\n const serverActionsManifestSingleton = (globalThis as any)[\n SERVER_ACTION_MANIFESTS_SINGLETON\n ] as {\n clientReferenceManifestsPerPage: DeepReadonly<\n Record\n >\n }\n\n if (!serverActionsManifestSingleton) {\n throw new InvariantError('Missing manifest for Server Actions.')\n }\n\n const { clientReferenceManifestsPerPage } = serverActionsManifestSingleton\n const workStore = workAsyncStorage.getStore()\n\n if (!workStore) {\n // If there's no work store defined, we can assume that a client reference\n // manifest is needed during module evaluation, e.g. to create a server\n // action using a higher-order function. This might also use client\n // components which need to be serialized by Flight, and therefore client\n // references need to be resolvable. To make this work, we're returning a\n // merged manifest across all pages. This is fine as long as the module IDs\n // are not page specific, which they are not for Webpack. TODO: Fix this in\n // Turbopack.\n return mergeClientReferenceManifests(clientReferenceManifestsPerPage)\n }\n\n const clientReferenceManifest =\n clientReferenceManifestsPerPage[workStore.route]\n\n if (!clientReferenceManifest) {\n throw new InvariantError(\n `Missing Client Reference Manifest for ${workStore.route}.`\n )\n }\n\n return clientReferenceManifest\n}\n\nexport async function getActionEncryptionKey() {\n if (__next_loaded_action_key) {\n return __next_loaded_action_key\n }\n\n const serverActionsManifestSingleton = (globalThis as any)[\n SERVER_ACTION_MANIFESTS_SINGLETON\n ] as {\n serverActionsManifest: DeepReadonly\n }\n\n if (!serverActionsManifestSingleton) {\n throw new InvariantError('Missing manifest for Server Actions.')\n }\n\n const rawKey =\n process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY ||\n serverActionsManifestSingleton.serverActionsManifest.encryptionKey\n\n if (rawKey === undefined) {\n throw new InvariantError('Missing encryption key for Server Actions')\n }\n\n __next_loaded_action_key = await crypto.subtle.importKey(\n 'raw',\n stringToUint8Array(atob(rawKey)),\n 'AES-GCM',\n true,\n ['encrypt', 'decrypt']\n )\n\n return __next_loaded_action_key\n}\n\nfunction mergeClientReferenceManifests(\n clientReferenceManifestsPerPage: DeepReadonly<\n Record\n >\n): ClientReferenceManifestForRsc {\n const clientReferenceManifests = Object.values(\n clientReferenceManifestsPerPage as Record\n )\n\n const mergedClientReferenceManifest: ClientReferenceManifestForRsc = {\n clientModules: {},\n edgeRscModuleMapping: {},\n rscModuleMapping: {},\n }\n\n for (const clientReferenceManifest of clientReferenceManifests) {\n mergedClientReferenceManifest.clientModules = {\n ...mergedClientReferenceManifest.clientModules,\n ...clientReferenceManifest.clientModules,\n }\n mergedClientReferenceManifest.edgeRscModuleMapping = {\n ...mergedClientReferenceManifest.edgeRscModuleMapping,\n ...clientReferenceManifest.edgeRscModuleMapping,\n }\n mergedClientReferenceManifest.rscModuleMapping = {\n ...mergedClientReferenceManifest.rscModuleMapping,\n ...clientReferenceManifest.rscModuleMapping,\n }\n }\n\n return mergedClientReferenceManifest\n}\n"],"names":["InvariantError","normalizeAppPath","workAsyncStorage","__next_loaded_action_key","arrayBufferToString","buffer","bytes","Uint8Array","len","byteLength","String","fromCharCode","apply","binary","i","stringToUint8Array","length","arr","charCodeAt","encrypt","key","iv","data","crypto","subtle","name","decrypt","SERVER_ACTION_MANIFESTS_SINGLETON","Symbol","for","setReferenceManifestsSingleton","page","clientReferenceManifest","serverActionsManifest","serverModuleMap","globalThis","clientReferenceManifestsPerPage","getServerModuleMap","serverActionsManifestSingleton","getClientReferenceManifestForRsc","workStore","getStore","mergeClientReferenceManifests","route","getActionEncryptionKey","rawKey","process","env","NEXT_SERVER_ACTIONS_ENCRYPTION_KEY","encryptionKey","undefined","importKey","atob","clientReferenceManifests","Object","values","mergedClientReferenceManifest","clientModules","edgeRscModuleMapping","rscModuleMapping"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 7880, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/app-render/action-utils.ts"],"sourcesContent":["import type { ActionManifest } from '../../build/webpack/plugins/flight-client-entry-plugin'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { pathHasPrefix } from '../../shared/lib/router/utils/path-has-prefix'\nimport { removePathPrefix } from '../../shared/lib/router/utils/remove-path-prefix'\nimport { workAsyncStorage } from './work-async-storage.external'\n\n// This function creates a Flight-acceptable server module map proxy from our\n// Server Reference Manifest similar to our client module map.\n// This is because our manifest contains a lot of internal Next.js data that\n// are relevant to the runtime, workers, etc. that React doesn't need to know.\nexport function createServerModuleMap({\n serverActionsManifest,\n}: {\n serverActionsManifest: ActionManifest\n}) {\n return new Proxy(\n {},\n {\n get: (_, id: string) => {\n const workers =\n serverActionsManifest[\n process.env.NEXT_RUNTIME === 'edge' ? 'edge' : 'node'\n ]?.[id]?.workers\n\n if (!workers) {\n return undefined\n }\n\n const workStore = workAsyncStorage.getStore()\n\n let workerEntry:\n | { moduleId: string | number; async: boolean }\n | undefined\n\n if (workStore) {\n workerEntry = workers[normalizeWorkerPageName(workStore.page)]\n } else {\n // If there's no work store defined, we can assume that a server\n // module map is needed during module evaluation, e.g. to create a\n // server action using a higher-order function. Therefore it should be\n // safe to return any entry from the manifest that matches the action\n // ID. They all refer to the same module ID, which must also exist in\n // the current page bundle. TODO: This is currently not guaranteed in\n // Turbopack, and needs to be fixed.\n workerEntry = Object.values(workers).at(0)\n }\n\n if (!workerEntry) {\n return undefined\n }\n\n const { moduleId, async } = workerEntry\n\n return { id: moduleId, name: id, chunks: [], async }\n },\n }\n )\n}\n\n/**\n * Checks if the requested action has a worker for the current page.\n * If not, it returns the first worker that has a handler for the action.\n */\nexport function selectWorkerForForwarding(\n actionId: string,\n pageName: string,\n serverActionsManifest: ActionManifest\n) {\n const workers =\n serverActionsManifest[\n process.env.NEXT_RUNTIME === 'edge' ? 'edge' : 'node'\n ][actionId]?.workers\n const workerName = normalizeWorkerPageName(pageName)\n\n // no workers, nothing to forward to\n if (!workers) return\n\n // if there is a worker for this page, no need to forward it.\n if (workers[workerName]) {\n return\n }\n\n // otherwise, grab the first worker that has a handler for this action id\n return denormalizeWorkerPageName(Object.keys(workers)[0])\n}\n\n/**\n * The flight entry loader keys actions by bundlePath.\n * bundlePath corresponds with the relative path (including 'app') to the page entrypoint.\n */\nfunction normalizeWorkerPageName(pageName: string) {\n if (pathHasPrefix(pageName, 'app')) {\n return pageName\n }\n\n return 'app' + pageName\n}\n\n/**\n * Converts a bundlePath (relative path to the entrypoint) to a routable page name\n */\nfunction denormalizeWorkerPageName(bundlePath: string) {\n return normalizeAppPath(removePathPrefix(bundlePath, 'app'))\n}\n"],"names":["normalizeAppPath","pathHasPrefix","removePathPrefix","workAsyncStorage","createServerModuleMap","serverActionsManifest","Proxy","get","_","id","workers","process","env","NEXT_RUNTIME","undefined","workStore","getStore","workerEntry","normalizeWorkerPageName","page","Object","values","at","moduleId","async","name","chunks","selectWorkerForForwarding","actionId","pageName","workerName","denormalizeWorkerPageName","keys","bundlePath"],"mappings":";;;;;;AACA,SAASA,gBAAgB,QAAQ,0CAAyC;AAC1E,SAASC,aAAa,QAAQ,gDAA+C;AAC7E,SAASC,gBAAgB,QAAQ,mDAAkD;AACnF,SAASC,gBAAgB,QAAQ,gCAA+B;;;;;AAMzD,SAASC,sBAAsB,EACpCC,qBAAqB,EAGtB;IACC,OAAO,IAAIC,MACT,CAAC,GACD;QACEC,KAAK,CAACC,GAAGC;gBAELJ,4BAAAA;YADF,MAAMK,UAAAA,CACJL,0BAAAA,qBAAqB,CACnBM,QAAQC,GAAG,CAACC,YAAY,KAAK,SAAS,0BAAS,OAChD,KAAA,OAAA,KAAA,IAAA,CAFDR,6BAAAA,uBAEG,CAACI,GAAG,KAAA,OAAA,KAAA,IAFPJ,2BAESK,OAAO;YAElB,IAAI,CAACA,SAAS;gBACZ,OAAOI;YACT;YAEA,MAAMC,YAAYZ,uRAAAA,CAAiBa,QAAQ;YAE3C,IAAIC;YAIJ,IAAIF,WAAW;gBACbE,cAAcP,OAAO,CAACQ,wBAAwBH,UAAUI,IAAI,EAAE;YAChE,OAAO;gBACL,gEAAgE;gBAChE,kEAAkE;gBAClE,sEAAsE;gBACtE,qEAAqE;gBACrE,qEAAqE;gBACrE,qEAAqE;gBACrE,oCAAoC;gBACpCF,cAAcG,OAAOC,MAAM,CAACX,SAASY,EAAE,CAAC;YAC1C;YAEA,IAAI,CAACL,aAAa;gBAChB,OAAOH;YACT;YAEA,MAAM,EAAES,QAAQ,EAAEC,KAAK,EAAE,GAAGP;YAE5B,OAAO;gBAAER,IAAIc;gBAAUE,MAAMhB;gBAAIiB,QAAQ,EAAE;gBAAEF;YAAM;QACrD;IACF;AAEJ;AAMO,SAASG,0BACdC,QAAgB,EAChBC,QAAgB,EAChBxB,qBAAqC;QAGnCA;IADF,MAAMK,UAAAA,CACJL,mCAAAA,qBAAqB,CACnBM,QAAQC,GAAG,CAACC,YAAY,KAAK,SAAS,0BAAS,OAChD,CAACe,SAAS,KAAA,OAAA,KAAA,IAFXvB,iCAEaK,OAAO;IACtB,MAAMoB,aAAaZ,wBAAwBW;IAE3C,oCAAoC;IACpC,IAAI,CAACnB,SAAS;IAEd,6DAA6D;IAC7D,IAAIA,OAAO,CAACoB,WAAW,EAAE;QACvB;IACF;IAEA,yEAAyE;IACzE,OAAOC,0BAA0BX,OAAOY,IAAI,CAACtB,QAAQ,CAAC,EAAE;AAC1D;AAEA;;;CAGC,GACD,SAASQ,wBAAwBW,QAAgB;IAC/C,QAAI5B,yYAAAA,EAAc4B,UAAU,QAAQ;QAClC,OAAOA;IACT;IAEA,OAAO,QAAQA;AACjB;AAEA;;CAEC,GACD,SAASE,0BAA0BE,UAAkB;IACnD,WAAOjC,mYAAAA,MAAiBE,+YAAAA,EAAiB+B,YAAY;AACvD","ignoreList":[0]}}, + {"offset": {"line": 7960, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/spec-extension/adapters/reflect.ts"],"sourcesContent":["export class ReflectAdapter {\n static get(\n target: T,\n prop: string | symbol,\n receiver: unknown\n ): any {\n const value = Reflect.get(target, prop, receiver)\n if (typeof value === 'function') {\n return value.bind(target)\n }\n\n return value\n }\n\n static set(\n target: T,\n prop: string | symbol,\n value: any,\n receiver: any\n ): boolean {\n return Reflect.set(target, prop, value, receiver)\n }\n\n static has(target: T, prop: string | symbol): boolean {\n return Reflect.has(target, prop)\n }\n\n static deleteProperty(\n target: T,\n prop: string | symbol\n ): boolean {\n return Reflect.deleteProperty(target, prop)\n }\n}\n"],"names":["ReflectAdapter","get","target","prop","receiver","value","Reflect","bind","set","has","deleteProperty"],"mappings":";;;;AAAO,MAAMA;IACX,OAAOC,IACLC,MAAS,EACTC,IAAqB,EACrBC,QAAiB,EACZ;QACL,MAAMC,QAAQC,QAAQL,GAAG,CAACC,QAAQC,MAAMC;QACxC,IAAI,OAAOC,UAAU,YAAY;YAC/B,OAAOA,MAAME,IAAI,CAACL;QACpB;QAEA,OAAOG;IACT;IAEA,OAAOG,IACLN,MAAS,EACTC,IAAqB,EACrBE,KAAU,EACVD,QAAa,EACJ;QACT,OAAOE,QAAQE,GAAG,CAACN,QAAQC,MAAME,OAAOD;IAC1C;IAEA,OAAOK,IAAsBP,MAAS,EAAEC,IAAqB,EAAW;QACtE,OAAOG,QAAQG,GAAG,CAACP,QAAQC;IAC7B;IAEA,OAAOO,eACLR,MAAS,EACTC,IAAqB,EACZ;QACT,OAAOG,QAAQI,cAAc,CAACR,QAAQC;IACxC;AACF","ignoreList":[0]}}, + {"offset": {"line": 7986, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/spec-extension/adapters/headers.ts"],"sourcesContent":["import type { IncomingHttpHeaders } from 'http'\n\nimport { ReflectAdapter } from './reflect'\n\n/**\n * @internal\n */\nexport class ReadonlyHeadersError extends Error {\n constructor() {\n super(\n 'Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers'\n )\n }\n\n public static callable() {\n throw new ReadonlyHeadersError()\n }\n}\n\nexport type ReadonlyHeaders = Headers & {\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n append(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n set(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n delete(...args: any[]): void\n}\nexport class HeadersAdapter extends Headers {\n private readonly headers: IncomingHttpHeaders\n\n constructor(headers: IncomingHttpHeaders) {\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super()\n\n this.headers = new Proxy(headers, {\n get(target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === 'symbol') {\n return ReflectAdapter.get(target, prop, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return undefined.\n if (typeof original === 'undefined') return\n\n // If the original casing exists, return the value.\n return ReflectAdapter.get(target, original, receiver)\n },\n set(target, prop, value, receiver) {\n if (typeof prop === 'symbol') {\n return ReflectAdapter.set(target, prop, value, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, use the prop as the key.\n return ReflectAdapter.set(target, original ?? prop, value, receiver)\n },\n has(target, prop) {\n if (typeof prop === 'symbol') return ReflectAdapter.has(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return false.\n if (typeof original === 'undefined') return false\n\n // If the original casing exists, return true.\n return ReflectAdapter.has(target, original)\n },\n deleteProperty(target, prop) {\n if (typeof prop === 'symbol')\n return ReflectAdapter.deleteProperty(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return true.\n if (typeof original === 'undefined') return true\n\n // If the original casing exists, delete the property.\n return ReflectAdapter.deleteProperty(target, original)\n },\n })\n }\n\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n */\n public static seal(headers: Headers): ReadonlyHeaders {\n return new Proxy(headers, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'append':\n case 'delete':\n case 'set':\n return ReadonlyHeadersError.callable\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n }\n\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */\n private merge(value: string | string[]): string {\n if (Array.isArray(value)) return value.join(', ')\n\n return value\n }\n\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */\n public static from(headers: IncomingHttpHeaders | Headers): Headers {\n if (headers instanceof Headers) return headers\n\n return new HeadersAdapter(headers)\n }\n\n public append(name: string, value: string): void {\n const existing = this.headers[name]\n if (typeof existing === 'string') {\n this.headers[name] = [existing, value]\n } else if (Array.isArray(existing)) {\n existing.push(value)\n } else {\n this.headers[name] = value\n }\n }\n\n public delete(name: string): void {\n delete this.headers[name]\n }\n\n public get(name: string): string | null {\n const value = this.headers[name]\n if (typeof value !== 'undefined') return this.merge(value)\n\n return null\n }\n\n public has(name: string): boolean {\n return typeof this.headers[name] !== 'undefined'\n }\n\n public set(name: string, value: string): void {\n this.headers[name] = value\n }\n\n public forEach(\n callbackfn: (value: string, name: string, parent: Headers) => void,\n thisArg?: any\n ): void {\n for (const [name, value] of this.entries()) {\n callbackfn.call(thisArg, value, name, this)\n }\n }\n\n public *entries(): HeadersIterator<[string, string]> {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name) as string\n\n yield [name, value] as [string, string]\n }\n }\n\n public *keys(): HeadersIterator {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n yield name\n }\n }\n\n public *values(): HeadersIterator {\n for (const key of Object.keys(this.headers)) {\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key) as string\n\n yield value\n }\n }\n\n public [Symbol.iterator](): HeadersIterator<[string, string]> {\n return this.entries()\n }\n}\n"],"names":["ReflectAdapter","ReadonlyHeadersError","Error","constructor","callable","HeadersAdapter","Headers","headers","Proxy","get","target","prop","receiver","lowercased","toLowerCase","original","Object","keys","find","o","set","value","has","deleteProperty","seal","merge","Array","isArray","join","from","append","name","existing","push","delete","forEach","callbackfn","thisArg","entries","call","key","values","Symbol","iterator"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 8164, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/dist/compiled/cookie/index.js"],"sourcesContent":["(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;\n/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */r.parse=parse;r.serialize=serialize;var i=decodeURIComponent;var t=encodeURIComponent;var a=/; */;var n=/^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;function parse(e,r){if(typeof e!==\"string\"){throw new TypeError(\"argument str must be a string\")}var t={};var n=r||{};var o=e.split(a);var s=n.decode||i;for(var p=0;p\nexport type NextApiRequestQuery = Partial<{ [key: string]: string | string[] }>\n\nexport type __ApiPreviewProps = {\n previewModeId: string\n previewModeEncryptionKey: string\n previewModeSigningKey: string\n}\n\nexport function wrapApiHandler any>(\n page: string,\n handler: T\n): T {\n return ((...args) => {\n getTracer().setRootSpanAttribute('next.route', page)\n // Call API route method\n return getTracer().trace(\n NodeSpan.runHandler,\n {\n spanName: `executing api route (pages) ${page}`,\n },\n () => handler(...args)\n )\n }) as T\n}\n\n/**\n *\n * @param res response object\n * @param statusCode `HTTP` status code of response\n */\nexport function sendStatusCode(\n res: NextApiResponse,\n statusCode: number\n): NextApiResponse {\n res.statusCode = statusCode\n return res\n}\n\n/**\n *\n * @param res response object\n * @param [statusOrUrl] `HTTP` status code of redirect\n * @param url URL of redirect\n */\nexport function redirect(\n res: NextApiResponse,\n statusOrUrl: string | number,\n url?: string\n): NextApiResponse {\n if (typeof statusOrUrl === 'string') {\n url = statusOrUrl\n statusOrUrl = 307\n }\n if (typeof statusOrUrl !== 'number' || typeof url !== 'string') {\n throw new Error(\n `Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').`\n )\n }\n res.writeHead(statusOrUrl, { Location: url })\n res.write(url)\n res.end()\n return res\n}\n\nexport function checkIsOnDemandRevalidate(\n req: Request | IncomingMessage | BaseNextRequest,\n previewProps: __ApiPreviewProps\n): {\n isOnDemandRevalidate: boolean\n revalidateOnlyGenerated: boolean\n} {\n const headers = HeadersAdapter.from(req.headers)\n\n const previewModeId = headers.get(PRERENDER_REVALIDATE_HEADER)\n const isOnDemandRevalidate = previewModeId === previewProps.previewModeId\n\n const revalidateOnlyGenerated = headers.has(\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER\n )\n\n return { isOnDemandRevalidate, revalidateOnlyGenerated }\n}\n\nexport const COOKIE_NAME_PRERENDER_BYPASS = `__prerender_bypass`\nexport const COOKIE_NAME_PRERENDER_DATA = `__next_preview_data`\n\nexport const RESPONSE_LIMIT_DEFAULT = 4 * 1024 * 1024\n\nexport const SYMBOL_PREVIEW_DATA = Symbol(COOKIE_NAME_PRERENDER_DATA)\nexport const SYMBOL_CLEARED_COOKIES = Symbol(COOKIE_NAME_PRERENDER_BYPASS)\n\nexport function clearPreviewData(\n res: NextApiResponse,\n options: {\n path?: string\n } = {}\n): NextApiResponse {\n if (SYMBOL_CLEARED_COOKIES in res) {\n return res\n }\n\n const { serialize } =\n require('next/dist/compiled/cookie') as typeof import('next/dist/compiled/cookie')\n const previous = res.getHeader('Set-Cookie')\n res.setHeader(`Set-Cookie`, [\n ...(typeof previous === 'string'\n ? [previous]\n : Array.isArray(previous)\n ? previous\n : []),\n serialize(COOKIE_NAME_PRERENDER_BYPASS, '', {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax',\n secure: process.env.NODE_ENV !== 'development',\n path: '/',\n ...(options.path !== undefined\n ? ({ path: options.path } as CookieSerializeOptions)\n : undefined),\n }),\n serialize(COOKIE_NAME_PRERENDER_DATA, '', {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax',\n secure: process.env.NODE_ENV !== 'development',\n path: '/',\n ...(options.path !== undefined\n ? ({ path: options.path } as CookieSerializeOptions)\n : undefined),\n }),\n ])\n\n Object.defineProperty(res, SYMBOL_CLEARED_COOKIES, {\n value: true,\n enumerable: false,\n })\n return res\n}\n\n/**\n * Custom error class\n */\nexport class ApiError extends Error {\n readonly statusCode: number\n\n constructor(statusCode: number, message: string) {\n super(message)\n this.statusCode = statusCode\n }\n}\n\n/**\n * Sends error in `response`\n * @param res response object\n * @param statusCode of response\n * @param message of response\n */\nexport function sendError(\n res: NextApiResponse,\n statusCode: number,\n message: string\n): void {\n res.statusCode = statusCode\n res.statusMessage = message\n res.end(message)\n}\n\ninterface LazyProps {\n req: IncomingMessage\n}\n\n/**\n * Execute getter function only if its needed\n * @param LazyProps `req` and `params` for lazyProp\n * @param prop name of property\n * @param getter function to get data\n */\nexport function setLazyProp(\n { req }: LazyProps,\n prop: string,\n getter: () => T\n): void {\n const opts = { configurable: true, enumerable: true }\n const optsReset = { ...opts, writable: true }\n\n Object.defineProperty(req, prop, {\n ...opts,\n get: () => {\n const value = getter()\n // we set the property on the object to avoid recalculating it\n Object.defineProperty(req, prop, { ...optsReset, value })\n return value\n },\n set: (value) => {\n Object.defineProperty(req, prop, { ...optsReset, value })\n },\n })\n}\n"],"names":["HeadersAdapter","PRERENDER_REVALIDATE_HEADER","PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER","getTracer","NodeSpan","wrapApiHandler","page","handler","args","setRootSpanAttribute","trace","runHandler","spanName","sendStatusCode","res","statusCode","redirect","statusOrUrl","url","Error","writeHead","Location","write","end","checkIsOnDemandRevalidate","req","previewProps","headers","from","previewModeId","get","isOnDemandRevalidate","revalidateOnlyGenerated","has","COOKIE_NAME_PRERENDER_BYPASS","COOKIE_NAME_PRERENDER_DATA","RESPONSE_LIMIT_DEFAULT","SYMBOL_PREVIEW_DATA","Symbol","SYMBOL_CLEARED_COOKIES","clearPreviewData","options","serialize","require","previous","getHeader","setHeader","Array","isArray","expires","Date","httpOnly","sameSite","process","env","NODE_ENV","secure","path","undefined","Object","defineProperty","value","enumerable","ApiError","constructor","message","sendError","statusMessage","setLazyProp","prop","getter","opts","configurable","optsReset","writable","set"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 8455, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/client/components/redirect-status-code.ts"],"sourcesContent":["export enum RedirectStatusCode {\n SeeOther = 303,\n TemporaryRedirect = 307,\n PermanentRedirect = 308,\n}\n"],"names":["RedirectStatusCode"],"mappings":";;;;AAAO,IAAKA,qBAAAA,WAAAA,GAAAA,SAAAA,kBAAAA;;;;WAAAA;MAIX","ignoreList":[0]}}, + {"offset": {"line": 8469, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/api-utils/get-cookie-parser.ts"],"sourcesContent":["import type { NextApiRequestCookies } from '.'\n\n/**\n * Parse cookies from the `headers` of request\n * @param req request object\n */\n\nexport function getCookieParser(headers: {\n [key: string]: string | string[] | null | undefined\n}): () => NextApiRequestCookies {\n return function parseCookie(): NextApiRequestCookies {\n const { cookie } = headers\n\n if (!cookie) {\n return {}\n }\n\n const { parse: parseCookieFn } =\n require('next/dist/compiled/cookie') as typeof import('next/dist/compiled/cookie')\n return parseCookieFn(Array.isArray(cookie) ? cookie.join('; ') : cookie)\n }\n}\n"],"names":["getCookieParser","headers","parseCookie","cookie","parse","parseCookieFn","require","Array","isArray","join"],"mappings":"AAEA;;;CAGC,GAED;;;;AAAO,SAASA,gBAAgBC,OAE/B;IACC,OAAO,SAASC;QACd,MAAM,EAAEC,MAAM,EAAE,GAAGF;QAEnB,IAAI,CAACE,QAAQ;YACX,OAAO,CAAC;QACV;QAEA,MAAM,EAAEC,OAAOC,aAAa,EAAE,GAC5BC,QAAQ;QACV,OAAOD,cAAcE,MAAMC,OAAO,CAACL,UAAUA,OAAOM,IAAI,CAAC,QAAQN;IACnE;AACF","ignoreList":[0]}}, + {"offset": {"line": 8490, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/base-http/index.ts"],"sourcesContent":["import type { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'\nimport type { I18NConfig } from '../config-shared'\n\nimport { RedirectStatusCode } from '../../client/components/redirect-status-code'\nimport type { NextApiRequestCookies } from '../api-utils'\nimport { getCookieParser } from '../api-utils/get-cookie-parser'\n\nexport interface BaseNextRequestConfig {\n basePath: string | undefined\n i18n?: I18NConfig\n trailingSlash?: boolean | undefined\n}\n\nexport type FetchMetric = {\n url: string\n idx: number\n end: number\n start: number\n method: string\n status: number\n cacheReason: string\n cacheStatus: 'hit' | 'miss' | 'skip' | 'hmr'\n cacheWarning?: string\n}\n\nexport type FetchMetrics = Array\n\nexport abstract class BaseNextRequest {\n protected _cookies: NextApiRequestCookies | undefined\n public abstract headers: IncomingHttpHeaders\n public abstract fetchMetrics: FetchMetric[] | undefined\n\n constructor(\n public method: string,\n public url: string,\n public body: Body\n ) {}\n\n // Utils implemented using the abstract methods above\n\n public get cookies() {\n if (this._cookies) return this._cookies\n return (this._cookies = getCookieParser(this.headers)())\n }\n}\n\nexport abstract class BaseNextResponse {\n abstract statusCode: number | undefined\n abstract statusMessage: string | undefined\n abstract get sent(): boolean\n\n constructor(public destination: Destination) {}\n\n /**\n * Sets a value for the header overwriting existing values\n */\n abstract setHeader(name: string, value: string | string[]): this\n\n /**\n * Removes a header\n */\n abstract removeHeader(name: string): this\n\n /**\n * Appends value for the given header name\n */\n abstract appendHeader(name: string, value: string): this\n\n /**\n * Get all values for a header as an array or undefined if no value is present\n */\n abstract getHeaderValues(name: string): string[] | undefined\n\n abstract hasHeader(name: string): boolean\n\n /**\n * Get values for a header concatenated using `,` or undefined if no value is present\n */\n abstract getHeader(name: string): string | undefined\n\n abstract getHeaders(): OutgoingHttpHeaders\n\n abstract body(value: string): this\n\n abstract send(): void\n\n abstract onClose(callback: () => void): void\n\n // Utils implemented using the abstract methods above\n\n public redirect(destination: string, statusCode: number) {\n this.setHeader('Location', destination)\n this.statusCode = statusCode\n\n // Since IE11 doesn't support the 308 header add backwards\n // compatibility using refresh header\n if (statusCode === RedirectStatusCode.PermanentRedirect) {\n this.setHeader('Refresh', `0;url=${destination}`)\n }\n\n return this\n }\n}\n"],"names":["RedirectStatusCode","getCookieParser","BaseNextRequest","constructor","method","url","body","cookies","_cookies","headers","BaseNextResponse","destination","redirect","statusCode","setHeader","PermanentRedirect"],"mappings":";;;;;;AAGA,SAASA,kBAAkB,QAAQ,+CAA8C;AAEjF,SAASC,eAAe,QAAQ,iCAAgC;;;AAsBzD,MAAeC;IAKpBC,YACSC,MAAc,EACdC,GAAW,EACXC,IAAU,CACjB;aAHOF,MAAAA,GAAAA;aACAC,GAAAA,GAAAA;aACAC,IAAAA,GAAAA;IACN;IAEH,qDAAqD;IAErD,IAAWC,UAAU;QACnB,IAAI,IAAI,CAACC,QAAQ,EAAE,OAAO,IAAI,CAACA,QAAQ;QACvC,OAAQ,IAAI,CAACA,QAAQ,OAAGP,mYAAAA,EAAgB,IAAI,CAACQ,OAAO;IACtD;AACF;AAEO,MAAeC;IAKpBP,YAAmBQ,WAAwB,CAAE;aAA1BA,WAAAA,GAAAA;IAA2B;IAqC9C,qDAAqD;IAE9CC,SAASD,WAAmB,EAAEE,UAAkB,EAAE;QACvD,IAAI,CAACC,SAAS,CAAC,YAAYH;QAC3B,IAAI,CAACE,UAAU,GAAGA;QAElB,0DAA0D;QAC1D,qCAAqC;QACrC,IAAIA,eAAeb,uYAAAA,CAAmBe,iBAAiB,EAAE;YACvD,IAAI,CAACD,SAAS,CAAC,WAAW,CAAC,MAAM,EAAEH,aAAa;QAClD;QAEA,OAAO,IAAI;IACb;AACF","ignoreList":[0]}}, + {"offset": {"line": 8532, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/base-http/node.ts"],"sourcesContent":["import type { ServerResponse, IncomingMessage } from 'http'\nimport type { Writable, Readable } from 'stream'\n\nimport { SYMBOL_CLEARED_COOKIES } from '../api-utils'\nimport type { NextApiRequestCookies } from '../api-utils'\n\nimport { NEXT_REQUEST_META } from '../request-meta'\nimport type { RequestMeta } from '../request-meta'\n\nimport { BaseNextRequest, BaseNextResponse, type FetchMetric } from './index'\nimport type { OutgoingHttpHeaders } from 'node:http'\n\ntype Req = IncomingMessage & {\n [NEXT_REQUEST_META]?: RequestMeta\n cookies?: NextApiRequestCookies\n fetchMetrics?: FetchMetric[]\n}\n\nexport class NodeNextRequest extends BaseNextRequest {\n public headers = this._req.headers\n public fetchMetrics: FetchMetric[] | undefined = this._req?.fetchMetrics;\n\n [NEXT_REQUEST_META]: RequestMeta = this._req[NEXT_REQUEST_META] || {}\n\n constructor(private _req: Req) {\n super(_req.method!.toUpperCase(), _req.url!, _req)\n }\n\n get originalRequest() {\n // Need to mimic these changes to the original req object for places where we use it:\n // render.tsx, api/ssg requests\n this._req[NEXT_REQUEST_META] = this[NEXT_REQUEST_META]\n this._req.url = this.url\n this._req.cookies = this.cookies\n return this._req\n }\n\n set originalRequest(value: Req) {\n this._req = value\n }\n\n private streaming = false\n\n /**\n * Returns the request body as a Web Readable Stream. The body here can only\n * be read once as the body will start flowing as soon as the data handler\n * is attached.\n *\n * @internal\n */\n public stream() {\n if (this.streaming) {\n throw new Error(\n 'Invariant: NodeNextRequest.stream() can only be called once'\n )\n }\n this.streaming = true\n\n return new ReadableStream({\n start: (controller) => {\n this._req.on('data', (chunk) => {\n controller.enqueue(new Uint8Array(chunk))\n })\n this._req.on('end', () => {\n controller.close()\n })\n this._req.on('error', (err) => {\n controller.error(err)\n })\n },\n })\n }\n}\n\nexport class NodeNextResponse extends BaseNextResponse {\n private textBody: string | undefined = undefined\n\n public [SYMBOL_CLEARED_COOKIES]?: boolean\n\n get originalResponse() {\n if (SYMBOL_CLEARED_COOKIES in this) {\n this._res[SYMBOL_CLEARED_COOKIES] = this[SYMBOL_CLEARED_COOKIES]\n }\n\n return this._res\n }\n\n constructor(\n private _res: ServerResponse & { [SYMBOL_CLEARED_COOKIES]?: boolean }\n ) {\n super(_res)\n }\n\n get sent() {\n return this._res.finished || this._res.headersSent\n }\n\n get statusCode() {\n return this._res.statusCode\n }\n\n set statusCode(value: number) {\n this._res.statusCode = value\n }\n\n get statusMessage() {\n return this._res.statusMessage\n }\n\n set statusMessage(value: string) {\n this._res.statusMessage = value\n }\n\n setHeader(name: string, value: string | string[]): this {\n this._res.setHeader(name, value)\n return this\n }\n\n removeHeader(name: string): this {\n this._res.removeHeader(name)\n return this\n }\n\n getHeaderValues(name: string): string[] | undefined {\n const values = this._res.getHeader(name)\n\n if (values === undefined) return undefined\n\n return (Array.isArray(values) ? values : [values]).map((value) =>\n value.toString()\n )\n }\n\n hasHeader(name: string): boolean {\n return this._res.hasHeader(name)\n }\n\n getHeader(name: string): string | undefined {\n const values = this.getHeaderValues(name)\n return Array.isArray(values) ? values.join(',') : undefined\n }\n\n getHeaders(): OutgoingHttpHeaders {\n return this._res.getHeaders()\n }\n\n appendHeader(name: string, value: string): this {\n const currentValues = this.getHeaderValues(name) ?? []\n\n if (!currentValues.includes(value)) {\n this._res.setHeader(name, [...currentValues, value])\n }\n\n return this\n }\n\n body(value: string) {\n this.textBody = value\n return this\n }\n\n send() {\n this._res.end(this.textBody)\n }\n\n public onClose(callback: () => void) {\n this.originalResponse.on('close', callback)\n }\n}\n"],"names":["SYMBOL_CLEARED_COOKIES","NEXT_REQUEST_META","BaseNextRequest","BaseNextResponse","NodeNextRequest","constructor","_req","method","toUpperCase","url","headers","fetchMetrics","streaming","originalRequest","cookies","value","stream","Error","ReadableStream","start","controller","on","chunk","enqueue","Uint8Array","close","err","error","NodeNextResponse","originalResponse","_res","textBody","undefined","sent","finished","headersSent","statusCode","statusMessage","setHeader","name","removeHeader","getHeaderValues","values","getHeader","Array","isArray","map","toString","hasHeader","join","getHeaders","appendHeader","currentValues","includes","body","send","end","onClose","callback"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 8668, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/instrumentation/utils.ts"],"sourcesContent":["export function getRevalidateReason(params: {\n isOnDemandRevalidate?: boolean\n isStaticGeneration?: boolean\n}): 'on-demand' | 'stale' | undefined {\n if (params.isOnDemandRevalidate) {\n return 'on-demand'\n }\n if (params.isStaticGeneration) {\n return 'stale'\n }\n return undefined\n}\n"],"names":["getRevalidateReason","params","isOnDemandRevalidate","isStaticGeneration","undefined"],"mappings":";;;;AAAO,SAASA,oBAAoBC,MAGnC;IACC,IAAIA,OAAOC,oBAAoB,EAAE;QAC/B,OAAO;IACT;IACA,IAAID,OAAOE,kBAAkB,EAAE;QAC7B,OAAO;IACT;IACA,OAAOC;AACT","ignoreList":[0]}}, + {"offset": {"line": 8685, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/send-response.ts"],"sourcesContent":["import type { BaseNextRequest, BaseNextResponse } from './base-http'\nimport { isNodeNextResponse } from './base-http/helpers'\n\nimport { pipeToNodeResponse } from './pipe-readable'\nimport { splitCookiesString } from './web/utils'\n\n/**\n * Sends the response on the underlying next response object.\n *\n * @param req the underlying request object\n * @param res the underlying response object\n * @param response the response to send\n */\nexport async function sendResponse(\n req: BaseNextRequest,\n res: BaseNextResponse,\n response: Response,\n waitUntil?: Promise\n): Promise {\n if (\n // The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n process.env.NEXT_RUNTIME !== 'edge' &&\n isNodeNextResponse(res)\n ) {\n // Copy over the response status.\n res.statusCode = response.status\n res.statusMessage = response.statusText\n\n // TODO: this is not spec-compliant behavior and we should not restrict\n // headers that are allowed to appear many times.\n //\n // See:\n // https://github.com/vercel/next.js/pull/70127\n const headersWithMultipleValuesAllowed = [\n // can add more headers to this list if needed\n 'set-cookie',\n 'www-authenticate',\n 'proxy-authenticate',\n 'vary',\n ]\n\n // Copy over the response headers.\n response.headers?.forEach((value, name) => {\n // `x-middleware-set-cookie` is an internal header not needed for the response\n if (name.toLowerCase() === 'x-middleware-set-cookie') {\n return\n }\n\n // The append handling is special cased for `set-cookie`.\n if (name.toLowerCase() === 'set-cookie') {\n // TODO: (wyattjoh) replace with native response iteration when we can upgrade undici\n for (const cookie of splitCookiesString(value)) {\n res.appendHeader(name, cookie)\n }\n } else {\n // only append the header if it is either not present in the outbound response\n // or if the header supports multiple values\n const isHeaderPresent = typeof res.getHeader(name) !== 'undefined'\n if (\n headersWithMultipleValuesAllowed.includes(name.toLowerCase()) ||\n !isHeaderPresent\n ) {\n res.appendHeader(name, value)\n }\n }\n })\n\n /**\n * The response can't be directly piped to the underlying response. The\n * following is duplicated from the edge runtime handler.\n *\n * See packages/next/server/next-server.ts\n */\n\n const { originalResponse } = res\n\n // A response body must not be sent for HEAD requests. See https://httpwg.org/specs/rfc9110.html#HEAD\n if (response.body && req.method !== 'HEAD') {\n await pipeToNodeResponse(response.body, originalResponse, waitUntil)\n } else {\n originalResponse.end()\n }\n }\n}\n"],"names":["isNodeNextResponse","pipeToNodeResponse","splitCookiesString","sendResponse","req","res","response","waitUntil","process","env","NEXT_RUNTIME","statusCode","status","statusMessage","statusText","headersWithMultipleValuesAllowed","headers","forEach","value","name","toLowerCase","cookie","appendHeader","isHeaderPresent","getHeader","includes","originalResponse","body","method","end"],"mappings":";;;;AACA,SAASA,kBAAkB,QAAQ,sBAAqB;AAExD,SAASC,kBAAkB,QAAQ,kBAAiB;AACpD,SAASC,kBAAkB,QAAQ,cAAa;;;;AASzC,eAAeC,aACpBC,GAAoB,EACpBC,GAAqB,EACrBC,QAAkB,EAClBC,SAA4B;IAE5B,IACE,AACA,6DAA6D,QADQ;IAErEC,QAAQC,GAAG,CAACC,YAAY,uBAAK,cAC7BV,sXAAAA,EAAmBK,MACnB;YAkBA,AACAC,kCADkC;QAjBlC,iCAAiC;QACjCD,IAAIM,UAAU,GAAGL,SAASM,MAAM;QAChCP,IAAIQ,aAAa,GAAGP,SAASQ,UAAU;QAEvC,uEAAuE;QACvE,iDAAiD;QACjD,EAAE;QACF,OAAO;QACP,+CAA+C;QAC/C,MAAMC,mCAAmC;YACvC,8CAA8C;YAC9C;YACA;YACA;YACA;SACD;SAGDT,oBAAAA,SAASU,OAAO,KAAA,OAAA,KAAA,IAAhBV,kBAAkBW,OAAO,CAAC,CAACC,OAAOC;YAChC,8EAA8E;YAC9E,IAAIA,KAAKC,WAAW,OAAO,2BAA2B;gBACpD;YACF;YAEA,yDAAyD;YACzD,IAAID,KAAKC,WAAW,OAAO,cAAc;gBACvC,qFAAqF;gBACrF,KAAK,MAAMC,cAAUnB,2WAAAA,EAAmBgB,OAAQ;oBAC9Cb,IAAIiB,YAAY,CAACH,MAAME;gBACzB;YACF,OAAO;gBACL,8EAA8E;gBAC9E,4CAA4C;gBAC5C,MAAME,kBAAkB,OAAOlB,IAAImB,SAAS,CAACL,UAAU;gBACvD,IACEJ,iCAAiCU,QAAQ,CAACN,KAAKC,WAAW,OAC1D,CAACG,iBACD;oBACAlB,IAAIiB,YAAY,CAACH,MAAMD;gBACzB;YACF;QACF;QAEA;;;;;KAKC,GAED,MAAM,EAAEQ,gBAAgB,EAAE,GAAGrB;QAE7B,qGAAqG;QACrG,IAAIC,SAASqB,IAAI,IAAIvB,IAAIwB,MAAM,KAAK,QAAQ;YAC1C,UAAM3B,+WAAAA,EAAmBK,SAASqB,IAAI,EAAED,kBAAkBnB;QAC5D,OAAO;YACLmB,iBAAiBG,GAAG;QACtB;IACF;AACF","ignoreList":[0]}}, + {"offset": {"line": 8752, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/lib/cache-control.ts"],"sourcesContent":["import { CACHE_ONE_YEAR } from '../../lib/constants'\n\n/**\n * The revalidate option used internally for pages. A value of `false` means\n * that the page should not be revalidated. A number means that the page\n * should be revalidated after the given number of seconds (this also includes\n * `1` which means to revalidate after 1 second). A value of `0` is not a valid\n * value for this option.\n */\nexport type Revalidate = number | false\n\nexport interface CacheControl {\n revalidate: Revalidate\n expire: number | undefined\n}\n\nexport function getCacheControlHeader({\n revalidate,\n expire,\n}: CacheControl): string {\n const swrHeader =\n typeof revalidate === 'number' &&\n expire !== undefined &&\n revalidate < expire\n ? `, stale-while-revalidate=${expire - revalidate}`\n : ''\n\n if (revalidate === 0) {\n return 'private, no-cache, no-store, max-age=0, must-revalidate'\n } else if (typeof revalidate === 'number') {\n return `s-maxage=${revalidate}${swrHeader}`\n }\n\n return `s-maxage=${CACHE_ONE_YEAR}${swrHeader}`\n}\n"],"names":["CACHE_ONE_YEAR","getCacheControlHeader","revalidate","expire","swrHeader","undefined"],"mappings":";;;;AAAA,SAASA,cAAc,QAAQ,sBAAqB;;AAgB7C,SAASC,sBAAsB,EACpCC,UAAU,EACVC,MAAM,EACO;IACb,MAAMC,YACJ,OAAOF,eAAe,YACtBC,WAAWE,aACXH,aAAaC,SACT,CAAC,yBAAyB,EAAEA,SAASD,YAAY,GACjD;IAEN,IAAIA,eAAe,GAAG;QACpB,OAAO;IACT,OAAO,IAAI,OAAOA,eAAe,UAAU;QACzC,OAAO,CAAC,SAAS,EAAEA,aAAaE,WAAW;IAC7C;IAEA,OAAO,CAAC,SAAS,EAAEJ,iWAAAA,GAAiBI,WAAW;AACjD","ignoreList":[0]}}, + {"offset": {"line": 8771, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/i18n/detect-domain-locale.ts"],"sourcesContent":["import type { DomainLocale } from '../../../server/config-shared'\n\nexport function detectDomainLocale(\n domainItems?: readonly DomainLocale[],\n hostname?: string,\n detectedLocale?: string\n) {\n if (!domainItems) return\n\n if (detectedLocale) {\n detectedLocale = detectedLocale.toLowerCase()\n }\n\n for (const item of domainItems) {\n // remove port if present\n const domainHostname = item.domain?.split(':', 1)[0].toLowerCase()\n if (\n hostname === domainHostname ||\n detectedLocale === item.defaultLocale.toLowerCase() ||\n item.locales?.some((locale) => locale.toLowerCase() === detectedLocale)\n ) {\n return item\n }\n }\n}\n"],"names":["detectDomainLocale","domainItems","hostname","detectedLocale","toLowerCase","item","domainHostname","domain","split","defaultLocale","locales","some","locale"],"mappings":";;;+BAEgBA,sBAAAA;;;eAAAA;;;AAAT,SAASA,mBACdC,WAAqC,EACrCC,QAAiB,EACjBC,cAAuB;IAEvB,IAAI,CAACF,aAAa;IAElB,IAAIE,gBAAgB;QAClBA,iBAAiBA,eAAeC,WAAW;IAC7C;IAEA,KAAK,MAAMC,QAAQJ,YAAa;QAC9B,yBAAyB;QACzB,MAAMK,iBAAiBD,KAAKE,MAAM,EAAEC,MAAM,KAAK,EAAE,CAAC,EAAE,CAACJ;QACrD,IACEF,aAAaI,kBACbH,mBAAmBE,KAAKI,aAAa,CAACL,WAAW,MACjDC,KAAKK,OAAO,EAAEC,KAAK,CAACC,SAAWA,OAAOR,WAAW,OAAOD,iBACxD;YACA,OAAOE;QACT;IACF;AACF","ignoreList":[0]}}, + {"offset": {"line": 8797, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/remove-trailing-slash.ts"],"sourcesContent":["/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */\nexport function removeTrailingSlash(route: string) {\n return route.replace(/\\/$/, '') || '/'\n}\n"],"names":["removeTrailingSlash","route","replace"],"mappings":"AAAA;;;;;;CAMC;;;+BACeA,uBAAAA;;;eAAAA;;;AAAT,SAASA,oBAAoBC,KAAa;IAC/C,OAAOA,MAAMC,OAAO,CAAC,OAAO,OAAO;AACrC","ignoreList":[0]}}, + {"offset": {"line": 8819, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/parse-path.ts"],"sourcesContent":["/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */\nexport function parsePath(path: string) {\n const hashIndex = path.indexOf('#')\n const queryIndex = path.indexOf('?')\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex)\n\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery\n ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined)\n : '',\n hash: hashIndex > -1 ? path.slice(hashIndex) : '',\n }\n }\n\n return { pathname: path, query: '', hash: '' }\n}\n"],"names":["parsePath","path","hashIndex","indexOf","queryIndex","hasQuery","pathname","substring","query","undefined","hash","slice"],"mappings":"AAAA;;;;CAIC;;;+BACeA,aAAAA;;;eAAAA;;;AAAT,SAASA,UAAUC,IAAY;IACpC,MAAMC,YAAYD,KAAKE,OAAO,CAAC;IAC/B,MAAMC,aAAaH,KAAKE,OAAO,CAAC;IAChC,MAAME,WAAWD,aAAa,CAAC,KAAMF,CAAAA,YAAY,KAAKE,aAAaF,SAAQ;IAE3E,IAAIG,YAAYH,YAAY,CAAC,GAAG;QAC9B,OAAO;YACLI,UAAUL,KAAKM,SAAS,CAAC,GAAGF,WAAWD,aAAaF;YACpDM,OAAOH,WACHJ,KAAKM,SAAS,CAACH,YAAYF,YAAY,CAAC,IAAIA,YAAYO,aACxD;YACJC,MAAMR,YAAY,CAAC,IAAID,KAAKU,KAAK,CAACT,aAAa;QACjD;IACF;IAEA,OAAO;QAAEI,UAAUL;QAAMO,OAAO;QAAIE,MAAM;IAAG;AAC/C","ignoreList":[0]}}, + {"offset": {"line": 8853, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/add-path-prefix.ts"],"sourcesContent":["import { parsePath } from './parse-path'\n\n/**\n * Adds the provided prefix to the given path. It first ensures that the path\n * is indeed starting with a slash.\n */\nexport function addPathPrefix(path: string, prefix?: string) {\n if (!path.startsWith('/') || !prefix) {\n return path\n }\n\n const { pathname, query, hash } = parsePath(path)\n return `${prefix}${pathname}${query}${hash}`\n}\n"],"names":["addPathPrefix","path","prefix","startsWith","pathname","query","hash","parsePath"],"mappings":";;;+BAMgBA,iBAAAA;;;eAAAA;;;2BANU;AAMnB,SAASA,cAAcC,IAAY,EAAEC,MAAe;IACzD,IAAI,CAACD,KAAKE,UAAU,CAAC,QAAQ,CAACD,QAAQ;QACpC,OAAOD;IACT;IAEA,MAAM,EAAEG,QAAQ,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGC,CAAAA,GAAAA,WAAAA,SAAS,EAACN;IAC5C,OAAO,GAAGC,SAASE,WAAWC,QAAQC,MAAM;AAC9C","ignoreList":[0]}}, + {"offset": {"line": 8874, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/add-path-suffix.ts"],"sourcesContent":["import { parsePath } from './parse-path'\n\n/**\n * Similarly to `addPathPrefix`, this function adds a suffix at the end on the\n * provided path. It also works only for paths ensuring the argument starts\n * with a slash.\n */\nexport function addPathSuffix(path: string, suffix?: string) {\n if (!path.startsWith('/') || !suffix) {\n return path\n }\n\n const { pathname, query, hash } = parsePath(path)\n return `${pathname}${suffix}${query}${hash}`\n}\n"],"names":["addPathSuffix","path","suffix","startsWith","pathname","query","hash","parsePath"],"mappings":";;;+BAOgBA,iBAAAA;;;eAAAA;;;2BAPU;AAOnB,SAASA,cAAcC,IAAY,EAAEC,MAAe;IACzD,IAAI,CAACD,KAAKE,UAAU,CAAC,QAAQ,CAACD,QAAQ;QACpC,OAAOD;IACT;IAEA,MAAM,EAAEG,QAAQ,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGC,CAAAA,GAAAA,WAAAA,SAAS,EAACN;IAC5C,OAAO,GAAGG,WAAWF,SAASG,QAAQC,MAAM;AAC9C","ignoreList":[0]}}, + {"offset": {"line": 8895, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/path-has-prefix.ts"],"sourcesContent":["import { parsePath } from './parse-path'\n\n/**\n * Checks if a given path starts with a given prefix. It ensures it matches\n * exactly without containing extra chars. e.g. prefix /docs should replace\n * for /docs, /docs/, /docs/a but not /docsss\n * @param path The path to check.\n * @param prefix The prefix to check against.\n */\nexport function pathHasPrefix(path: string, prefix: string) {\n if (typeof path !== 'string') {\n return false\n }\n\n const { pathname } = parsePath(path)\n return pathname === prefix || pathname.startsWith(prefix + '/')\n}\n"],"names":["pathHasPrefix","path","prefix","pathname","parsePath","startsWith"],"mappings":";;;+BASgBA,iBAAAA;;;eAAAA;;;2BATU;AASnB,SAASA,cAAcC,IAAY,EAAEC,MAAc;IACxD,IAAI,OAAOD,SAAS,UAAU;QAC5B,OAAO;IACT;IAEA,MAAM,EAAEE,QAAQ,EAAE,GAAGC,CAAAA,GAAAA,WAAAA,SAAS,EAACH;IAC/B,OAAOE,aAAaD,UAAUC,SAASE,UAAU,CAACH,SAAS;AAC7D","ignoreList":[0]}}, + {"offset": {"line": 8916, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/add-locale.ts"],"sourcesContent":["import { addPathPrefix } from './add-path-prefix'\nimport { pathHasPrefix } from './path-has-prefix'\n\n/**\n * For a given path and a locale, if the locale is given, it will prefix the\n * locale. The path shouldn't be an API path. If a default locale is given the\n * prefix will be omitted if the locale is already the default locale.\n */\nexport function addLocale(\n path: string,\n locale?: string | false,\n defaultLocale?: string,\n ignorePrefix?: boolean\n) {\n // If no locale was given or the locale is the default locale, we don't need\n // to prefix the path.\n if (!locale || locale === defaultLocale) return path\n\n const lower = path.toLowerCase()\n\n // If the path is an API path or the path already has the locale prefix, we\n // don't need to prefix the path.\n if (!ignorePrefix) {\n if (pathHasPrefix(lower, '/api')) return path\n if (pathHasPrefix(lower, `/${locale.toLowerCase()}`)) return path\n }\n\n // Add the locale prefix to the path.\n return addPathPrefix(path, `/${locale}`)\n}\n"],"names":["addLocale","path","locale","defaultLocale","ignorePrefix","lower","toLowerCase","pathHasPrefix","addPathPrefix"],"mappings":";;;+BAQgBA,aAAAA;;;eAAAA;;;+BARc;+BACA;AAOvB,SAASA,UACdC,IAAY,EACZC,MAAuB,EACvBC,aAAsB,EACtBC,YAAsB;IAEtB,4EAA4E;IAC5E,sBAAsB;IACtB,IAAI,CAACF,UAAUA,WAAWC,eAAe,OAAOF;IAEhD,MAAMI,QAAQJ,KAAKK,WAAW;IAE9B,2EAA2E;IAC3E,iCAAiC;IACjC,IAAI,CAACF,cAAc;QACjB,IAAIG,CAAAA,GAAAA,eAAAA,aAAa,EAACF,OAAO,SAAS,OAAOJ;QACzC,IAAIM,CAAAA,GAAAA,eAAAA,aAAa,EAACF,OAAO,CAAC,CAAC,EAAEH,OAAOI,WAAW,IAAI,GAAG,OAAOL;IAC/D;IAEA,qCAAqC;IACrC,OAAOO,CAAAA,GAAAA,eAAAA,aAAa,EAACP,MAAM,CAAC,CAAC,EAAEC,QAAQ;AACzC","ignoreList":[0]}}, + {"offset": {"line": 8945, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/format-next-pathname-info.ts"],"sourcesContent":["import type { NextPathnameInfo } from './get-next-pathname-info'\nimport { removeTrailingSlash } from './remove-trailing-slash'\nimport { addPathPrefix } from './add-path-prefix'\nimport { addPathSuffix } from './add-path-suffix'\nimport { addLocale } from './add-locale'\n\ninterface ExtendedInfo extends NextPathnameInfo {\n defaultLocale?: string\n ignorePrefix?: boolean\n}\n\nexport function formatNextPathnameInfo(info: ExtendedInfo) {\n let pathname = addLocale(\n info.pathname,\n info.locale,\n info.buildId ? undefined : info.defaultLocale,\n info.ignorePrefix\n )\n\n if (info.buildId || !info.trailingSlash) {\n pathname = removeTrailingSlash(pathname)\n }\n\n if (info.buildId) {\n pathname = addPathSuffix(\n addPathPrefix(pathname, `/_next/data/${info.buildId}`),\n info.pathname === '/' ? 'index.json' : '.json'\n )\n }\n\n pathname = addPathPrefix(pathname, info.basePath)\n return !info.buildId && info.trailingSlash\n ? !pathname.endsWith('/')\n ? addPathSuffix(pathname, '/')\n : pathname\n : removeTrailingSlash(pathname)\n}\n"],"names":["formatNextPathnameInfo","info","pathname","addLocale","locale","buildId","undefined","defaultLocale","ignorePrefix","trailingSlash","removeTrailingSlash","addPathSuffix","addPathPrefix","basePath","endsWith"],"mappings":";;;+BAWgBA,0BAAAA;;;eAAAA;;;qCAVoB;+BACN;+BACA;2BACJ;AAOnB,SAASA,uBAAuBC,IAAkB;IACvD,IAAIC,WAAWC,CAAAA,GAAAA,WAAAA,SAAS,EACtBF,KAAKC,QAAQ,EACbD,KAAKG,MAAM,EACXH,KAAKI,OAAO,GAAGC,YAAYL,KAAKM,aAAa,EAC7CN,KAAKO,YAAY;IAGnB,IAAIP,KAAKI,OAAO,IAAI,CAACJ,KAAKQ,aAAa,EAAE;QACvCP,WAAWQ,CAAAA,GAAAA,qBAAAA,mBAAmB,EAACR;IACjC;IAEA,IAAID,KAAKI,OAAO,EAAE;QAChBH,WAAWS,CAAAA,GAAAA,eAAAA,aAAa,EACtBC,CAAAA,GAAAA,eAAAA,aAAa,EAACV,UAAU,CAAC,YAAY,EAAED,KAAKI,OAAO,EAAE,GACrDJ,KAAKC,QAAQ,KAAK,MAAM,eAAe;IAE3C;IAEAA,WAAWU,CAAAA,GAAAA,eAAAA,aAAa,EAACV,UAAUD,KAAKY,QAAQ;IAChD,OAAO,CAACZ,KAAKI,OAAO,IAAIJ,KAAKQ,aAAa,GACtC,CAACP,SAASY,QAAQ,CAAC,OACjBH,CAAAA,GAAAA,eAAAA,aAAa,EAACT,UAAU,OACxBA,WACFQ,CAAAA,GAAAA,qBAAAA,mBAAmB,EAACR;AAC1B","ignoreList":[0]}}, + {"offset": {"line": 8973, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/get-hostname.ts"],"sourcesContent":["import type { OutgoingHttpHeaders } from 'http'\n\n/**\n * Takes an object with a hostname property (like a parsed URL) and some\n * headers that may contain Host and returns the preferred hostname.\n * @param parsed An object containing a hostname property.\n * @param headers A dictionary with headers containing a `host`.\n */\nexport function getHostname(\n parsed: { hostname?: string | null },\n headers?: OutgoingHttpHeaders\n): string | undefined {\n // Get the hostname from the headers if it exists, otherwise use the parsed\n // hostname.\n let hostname: string\n if (headers?.host && !Array.isArray(headers.host)) {\n hostname = headers.host.toString().split(':', 1)[0]\n } else if (parsed.hostname) {\n hostname = parsed.hostname\n } else return\n\n return hostname.toLowerCase()\n}\n"],"names":["getHostname","parsed","headers","hostname","host","Array","isArray","toString","split","toLowerCase"],"mappings":";;;+BAQgBA,eAAAA;;;eAAAA;;;AAAT,SAASA,YACdC,MAAoC,EACpCC,OAA6B;IAE7B,2EAA2E;IAC3E,YAAY;IACZ,IAAIC;IACJ,IAAID,SAASE,QAAQ,CAACC,MAAMC,OAAO,CAACJ,QAAQE,IAAI,GAAG;QACjDD,WAAWD,QAAQE,IAAI,CAACG,QAAQ,GAAGC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE;IACrD,OAAO,IAAIP,OAAOE,QAAQ,EAAE;QAC1BA,WAAWF,OAAOE,QAAQ;IAC5B,OAAO;IAEP,OAAOA,SAASM,WAAW;AAC7B","ignoreList":[0]}}, + {"offset": {"line": 8997, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/i18n/normalize-locale-path.ts"],"sourcesContent":["export interface PathLocale {\n detectedLocale?: string\n pathname: string\n}\n\n/**\n * A cache of lowercased locales for each list of locales. This is stored as a\n * WeakMap so if the locales are garbage collected, the cache entry will be\n * removed as well.\n */\nconst cache = new WeakMap()\n\n/**\n * For a pathname that may include a locale from a list of locales, it\n * removes the locale from the pathname returning it alongside with the\n * detected locale.\n *\n * @param pathname A pathname that may include a locale.\n * @param locales A list of locales.\n * @returns The detected locale and pathname without locale\n */\nexport function normalizeLocalePath(\n pathname: string,\n locales?: readonly string[]\n): PathLocale {\n // If locales is undefined, return the pathname as is.\n if (!locales) return { pathname }\n\n // Get the cached lowercased locales or create a new cache entry.\n let lowercasedLocales = cache.get(locales)\n if (!lowercasedLocales) {\n lowercasedLocales = locales.map((locale) => locale.toLowerCase())\n cache.set(locales, lowercasedLocales)\n }\n\n let detectedLocale: string | undefined\n\n // The first segment will be empty, because it has a leading `/`. If\n // there is no further segment, there is no locale (or it's the default).\n const segments = pathname.split('/', 2)\n\n // If there's no second segment (ie, the pathname is just `/`), there's no\n // locale.\n if (!segments[1]) return { pathname }\n\n // The second segment will contain the locale part if any.\n const segment = segments[1].toLowerCase()\n\n // See if the segment matches one of the locales. If it doesn't, there is\n // no locale (or it's the default).\n const index = lowercasedLocales.indexOf(segment)\n if (index < 0) return { pathname }\n\n // Return the case-sensitive locale.\n detectedLocale = locales[index]\n\n // Remove the `/${locale}` part of the pathname.\n pathname = pathname.slice(detectedLocale.length + 1) || '/'\n\n return { pathname, detectedLocale }\n}\n"],"names":["normalizeLocalePath","cache","WeakMap","pathname","locales","lowercasedLocales","get","map","locale","toLowerCase","set","detectedLocale","segments","split","segment","index","indexOf","slice","length"],"mappings":";;;+BAqBgBA,uBAAAA;;;eAAAA;;;AAhBhB;;;;CAIC,GACD,MAAMC,QAAQ,IAAIC;AAWX,SAASF,oBACdG,QAAgB,EAChBC,OAA2B;IAE3B,sDAAsD;IACtD,IAAI,CAACA,SAAS,OAAO;QAAED;IAAS;IAEhC,iEAAiE;IACjE,IAAIE,oBAAoBJ,MAAMK,GAAG,CAACF;IAClC,IAAI,CAACC,mBAAmB;QACtBA,oBAAoBD,QAAQG,GAAG,CAAC,CAACC,SAAWA,OAAOC,WAAW;QAC9DR,MAAMS,GAAG,CAACN,SAASC;IACrB;IAEA,IAAIM;IAEJ,oEAAoE;IACpE,yEAAyE;IACzE,MAAMC,WAAWT,SAASU,KAAK,CAAC,KAAK;IAErC,0EAA0E;IAC1E,UAAU;IACV,IAAI,CAACD,QAAQ,CAAC,EAAE,EAAE,OAAO;QAAET;IAAS;IAEpC,0DAA0D;IAC1D,MAAMW,UAAUF,QAAQ,CAAC,EAAE,CAACH,WAAW;IAEvC,yEAAyE;IACzE,mCAAmC;IACnC,MAAMM,QAAQV,kBAAkBW,OAAO,CAACF;IACxC,IAAIC,QAAQ,GAAG,OAAO;QAAEZ;IAAS;IAEjC,oCAAoC;IACpCQ,iBAAiBP,OAAO,CAACW,MAAM;IAE/B,gDAAgD;IAChDZ,WAAWA,SAASc,KAAK,CAACN,eAAeO,MAAM,GAAG,MAAM;IAExD,OAAO;QAAEf;QAAUQ;IAAe;AACpC","ignoreList":[0]}}, + {"offset": {"line": 9052, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/remove-path-prefix.ts"],"sourcesContent":["import { pathHasPrefix } from './path-has-prefix'\n\n/**\n * Given a path and a prefix it will remove the prefix when it exists in the\n * given path. It ensures it matches exactly without containing extra chars\n * and if the prefix is not there it will be noop.\n *\n * @param path The path to remove the prefix from.\n * @param prefix The prefix to be removed.\n */\nexport function removePathPrefix(path: string, prefix: string): string {\n // If the path doesn't start with the prefix we can return it as is. This\n // protects us from situations where the prefix is a substring of the path\n // prefix such as:\n //\n // For prefix: /blog\n //\n // /blog -> true\n // /blog/ -> true\n // /blog/1 -> true\n // /blogging -> false\n // /blogging/ -> false\n // /blogging/1 -> false\n if (!pathHasPrefix(path, prefix)) {\n return path\n }\n\n // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length)\n\n // If the path without the prefix starts with a `/` we can return it as is.\n if (withoutPrefix.startsWith('/')) {\n return withoutPrefix\n }\n\n // If the path without the prefix doesn't start with a `/` we need to add it\n // back to the path to make sure it's a valid path.\n return `/${withoutPrefix}`\n}\n"],"names":["removePathPrefix","path","prefix","pathHasPrefix","withoutPrefix","slice","length","startsWith"],"mappings":";;;+BAUgBA,oBAAAA;;;eAAAA;;;+BAVc;AAUvB,SAASA,iBAAiBC,IAAY,EAAEC,MAAc;IAC3D,yEAAyE;IACzE,0EAA0E;IAC1E,kBAAkB;IAClB,EAAE;IACF,oBAAoB;IACpB,EAAE;IACF,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,uBAAuB;IACvB,wBAAwB;IACxB,yBAAyB;IACzB,IAAI,CAACC,CAAAA,GAAAA,eAAAA,aAAa,EAACF,MAAMC,SAAS;QAChC,OAAOD;IACT;IAEA,+CAA+C;IAC/C,MAAMG,gBAAgBH,KAAKI,KAAK,CAACH,OAAOI,MAAM;IAE9C,2EAA2E;IAC3E,IAAIF,cAAcG,UAAU,CAAC,MAAM;QACjC,OAAOH;IACT;IAEA,4EAA4E;IAC5E,mDAAmD;IACnD,OAAO,CAAC,CAAC,EAAEA,eAAe;AAC5B","ignoreList":[0]}}, + {"offset": {"line": 9092, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/router/utils/get-next-pathname-info.ts"],"sourcesContent":["import { normalizeLocalePath } from '../../i18n/normalize-locale-path'\nimport { removePathPrefix } from './remove-path-prefix'\nimport { pathHasPrefix } from './path-has-prefix'\nimport type { I18NProvider } from '../../../../server/lib/i18n-provider'\n\nexport interface NextPathnameInfo {\n /**\n * The base path in case the pathname included it.\n */\n basePath?: string\n /**\n * The buildId for when the parsed URL is a data URL. Parsing it can be\n * disabled with the `parseData` option.\n */\n buildId?: string\n /**\n * If there was a locale in the pathname, this will hold its value.\n */\n locale?: string\n /**\n * The processed pathname without a base path, locale, or data URL elements\n * when parsing it is enabled.\n */\n pathname: string\n /**\n * A boolean telling if the pathname had a trailingSlash. This can be only\n * true if trailingSlash is enabled.\n */\n trailingSlash?: boolean\n}\n\ninterface Options {\n /**\n * When passed to true, this function will also parse Nextjs data URLs.\n */\n parseData?: boolean\n /**\n * A partial of the Next.js configuration to parse the URL.\n */\n nextConfig?: {\n basePath?: string\n i18n?: { locales?: readonly string[] } | null\n trailingSlash?: boolean\n }\n\n /**\n * If provided, this normalizer will be used to detect the locale instead of\n * the default locale detection.\n */\n i18nProvider?: I18NProvider\n}\n\nexport function getNextPathnameInfo(\n pathname: string,\n options: Options\n): NextPathnameInfo {\n const { basePath, i18n, trailingSlash } = options.nextConfig ?? {}\n const info: NextPathnameInfo = {\n pathname,\n trailingSlash: pathname !== '/' ? pathname.endsWith('/') : trailingSlash,\n }\n\n if (basePath && pathHasPrefix(info.pathname, basePath)) {\n info.pathname = removePathPrefix(info.pathname, basePath)\n info.basePath = basePath\n }\n let pathnameNoDataPrefix = info.pathname\n\n if (\n info.pathname.startsWith('/_next/data/') &&\n info.pathname.endsWith('.json')\n ) {\n const paths = info.pathname\n .replace(/^\\/_next\\/data\\//, '')\n .replace(/\\.json$/, '')\n .split('/')\n\n const buildId = paths[0]\n info.buildId = buildId\n pathnameNoDataPrefix =\n paths[1] !== 'index' ? `/${paths.slice(1).join('/')}` : '/'\n\n // update pathname with normalized if enabled although\n // we use normalized to populate locale info still\n if (options.parseData === true) {\n info.pathname = pathnameNoDataPrefix\n }\n }\n\n // If provided, use the locale route normalizer to detect the locale instead\n // of the function below.\n if (i18n) {\n let result = options.i18nProvider\n ? options.i18nProvider.analyze(info.pathname)\n : normalizeLocalePath(info.pathname, i18n.locales)\n\n info.locale = result.detectedLocale\n info.pathname = result.pathname ?? info.pathname\n\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider\n ? options.i18nProvider.analyze(pathnameNoDataPrefix)\n : normalizeLocalePath(pathnameNoDataPrefix, i18n.locales)\n\n if (result.detectedLocale) {\n info.locale = result.detectedLocale\n }\n }\n }\n return info\n}\n"],"names":["getNextPathnameInfo","pathname","options","basePath","i18n","trailingSlash","nextConfig","info","endsWith","pathHasPrefix","removePathPrefix","pathnameNoDataPrefix","startsWith","paths","replace","split","buildId","slice","join","parseData","result","i18nProvider","analyze","normalizeLocalePath","locales","locale","detectedLocale"],"mappings":";;;+BAoDgBA,uBAAAA;;;eAAAA;;;qCApDoB;kCACH;+BACH;AAkDvB,SAASA,oBACdC,QAAgB,EAChBC,OAAgB;IAEhB,MAAM,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,aAAa,EAAE,GAAGH,QAAQI,UAAU,IAAI,CAAC;IACjE,MAAMC,OAAyB;QAC7BN;QACAI,eAAeJ,aAAa,MAAMA,SAASO,QAAQ,CAAC,OAAOH;IAC7D;IAEA,IAAIF,YAAYM,CAAAA,GAAAA,eAAAA,aAAa,EAACF,KAAKN,QAAQ,EAAEE,WAAW;QACtDI,KAAKN,QAAQ,GAAGS,CAAAA,GAAAA,kBAAAA,gBAAgB,EAACH,KAAKN,QAAQ,EAAEE;QAChDI,KAAKJ,QAAQ,GAAGA;IAClB;IACA,IAAIQ,uBAAuBJ,KAAKN,QAAQ;IAExC,IACEM,KAAKN,QAAQ,CAACW,UAAU,CAAC,mBACzBL,KAAKN,QAAQ,CAACO,QAAQ,CAAC,UACvB;QACA,MAAMK,QAAQN,KAAKN,QAAQ,CACxBa,OAAO,CAAC,oBAAoB,IAC5BA,OAAO,CAAC,WAAW,IACnBC,KAAK,CAAC;QAET,MAAMC,UAAUH,KAAK,CAAC,EAAE;QACxBN,KAAKS,OAAO,GAAGA;QACfL,uBACEE,KAAK,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,EAAEA,MAAMI,KAAK,CAAC,GAAGC,IAAI,CAAC,MAAM,GAAG;QAE1D,sDAAsD;QACtD,kDAAkD;QAClD,IAAIhB,QAAQiB,SAAS,KAAK,MAAM;YAC9BZ,KAAKN,QAAQ,GAAGU;QAClB;IACF;IAEA,4EAA4E;IAC5E,yBAAyB;IACzB,IAAIP,MAAM;QACR,IAAIgB,SAASlB,QAAQmB,YAAY,GAC7BnB,QAAQmB,YAAY,CAACC,OAAO,CAACf,KAAKN,QAAQ,IAC1CsB,CAAAA,GAAAA,qBAAAA,mBAAmB,EAAChB,KAAKN,QAAQ,EAAEG,KAAKoB,OAAO;QAEnDjB,KAAKkB,MAAM,GAAGL,OAAOM,cAAc;QACnCnB,KAAKN,QAAQ,GAAGmB,OAAOnB,QAAQ,IAAIM,KAAKN,QAAQ;QAEhD,IAAI,CAACmB,OAAOM,cAAc,IAAInB,KAAKS,OAAO,EAAE;YAC1CI,SAASlB,QAAQmB,YAAY,GACzBnB,QAAQmB,YAAY,CAACC,OAAO,CAACX,wBAC7BY,CAAAA,GAAAA,qBAAAA,mBAAmB,EAACZ,sBAAsBP,KAAKoB,OAAO;YAE1D,IAAIJ,OAAOM,cAAc,EAAE;gBACzBnB,KAAKkB,MAAM,GAAGL,OAAOM,cAAc;YACrC;QACF;IACF;IACA,OAAOnB;AACT","ignoreList":[0]}}, + {"offset": {"line": 9145, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/next-url.ts"],"sourcesContent":["import type { OutgoingHttpHeaders } from 'http'\nimport type { DomainLocale, I18NConfig } from '../config-shared'\nimport type { I18NProvider } from '../lib/i18n-provider'\n\nimport { detectDomainLocale } from '../../shared/lib/i18n/detect-domain-locale'\nimport { formatNextPathnameInfo } from '../../shared/lib/router/utils/format-next-pathname-info'\nimport { getHostname } from '../../shared/lib/get-hostname'\nimport { getNextPathnameInfo } from '../../shared/lib/router/utils/get-next-pathname-info'\n\ninterface Options {\n base?: string | URL\n headers?: OutgoingHttpHeaders\n forceLocale?: boolean\n nextConfig?: {\n basePath?: string\n i18n?: I18NConfig | null\n trailingSlash?: boolean\n }\n i18nProvider?: I18NProvider\n}\n\nconst REGEX_LOCALHOST_HOSTNAME =\n /(?!^https?:\\/\\/)(127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\\[::1\\]|localhost)/\n\nfunction parseURL(url: string | URL, base?: string | URL) {\n return new URL(\n String(url).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'),\n base && String(base).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost')\n )\n}\n\nconst Internal = Symbol('NextURLInternal')\n\nexport class NextURL {\n private [Internal]: {\n basePath: string\n buildId?: string\n flightSearchParameters?: Record\n defaultLocale?: string\n domainLocale?: DomainLocale\n locale?: string\n options: Options\n trailingSlash?: boolean\n url: URL\n }\n\n constructor(input: string | URL, base?: string | URL, opts?: Options)\n constructor(input: string | URL, opts?: Options)\n constructor(\n input: string | URL,\n baseOrOpts?: string | URL | Options,\n opts?: Options\n ) {\n let base: undefined | string | URL\n let options: Options\n\n if (\n (typeof baseOrOpts === 'object' && 'pathname' in baseOrOpts) ||\n typeof baseOrOpts === 'string'\n ) {\n base = baseOrOpts\n options = opts || {}\n } else {\n options = opts || baseOrOpts || {}\n }\n\n this[Internal] = {\n url: parseURL(input, base ?? options.base),\n options: options,\n basePath: '',\n }\n\n this.analyze()\n }\n\n private analyze() {\n const info = getNextPathnameInfo(this[Internal].url.pathname, {\n nextConfig: this[Internal].options.nextConfig,\n parseData: !process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE,\n i18nProvider: this[Internal].options.i18nProvider,\n })\n\n const hostname = getHostname(\n this[Internal].url,\n this[Internal].options.headers\n )\n this[Internal].domainLocale = this[Internal].options.i18nProvider\n ? this[Internal].options.i18nProvider.detectDomainLocale(hostname)\n : detectDomainLocale(\n this[Internal].options.nextConfig?.i18n?.domains,\n hostname\n )\n\n const defaultLocale =\n this[Internal].domainLocale?.defaultLocale ||\n this[Internal].options.nextConfig?.i18n?.defaultLocale\n\n this[Internal].url.pathname = info.pathname\n this[Internal].defaultLocale = defaultLocale\n this[Internal].basePath = info.basePath ?? ''\n this[Internal].buildId = info.buildId\n this[Internal].locale = info.locale ?? defaultLocale\n this[Internal].trailingSlash = info.trailingSlash\n }\n\n private formatPathname() {\n return formatNextPathnameInfo({\n basePath: this[Internal].basePath,\n buildId: this[Internal].buildId,\n defaultLocale: !this[Internal].options.forceLocale\n ? this[Internal].defaultLocale\n : undefined,\n locale: this[Internal].locale,\n pathname: this[Internal].url.pathname,\n trailingSlash: this[Internal].trailingSlash,\n })\n }\n\n private formatSearch() {\n return this[Internal].url.search\n }\n\n public get buildId() {\n return this[Internal].buildId\n }\n\n public set buildId(buildId: string | undefined) {\n this[Internal].buildId = buildId\n }\n\n public get locale() {\n return this[Internal].locale ?? ''\n }\n\n public set locale(locale: string) {\n if (\n !this[Internal].locale ||\n !this[Internal].options.nextConfig?.i18n?.locales.includes(locale)\n ) {\n throw new TypeError(\n `The NextURL configuration includes no locale \"${locale}\"`\n )\n }\n\n this[Internal].locale = locale\n }\n\n get defaultLocale() {\n return this[Internal].defaultLocale\n }\n\n get domainLocale() {\n return this[Internal].domainLocale\n }\n\n get searchParams() {\n return this[Internal].url.searchParams\n }\n\n get host() {\n return this[Internal].url.host\n }\n\n set host(value: string) {\n this[Internal].url.host = value\n }\n\n get hostname() {\n return this[Internal].url.hostname\n }\n\n set hostname(value: string) {\n this[Internal].url.hostname = value\n }\n\n get port() {\n return this[Internal].url.port\n }\n\n set port(value: string) {\n this[Internal].url.port = value\n }\n\n get protocol() {\n return this[Internal].url.protocol\n }\n\n set protocol(value: string) {\n this[Internal].url.protocol = value\n }\n\n get href() {\n const pathname = this.formatPathname()\n const search = this.formatSearch()\n return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`\n }\n\n set href(url: string) {\n this[Internal].url = parseURL(url)\n this.analyze()\n }\n\n get origin() {\n return this[Internal].url.origin\n }\n\n get pathname() {\n return this[Internal].url.pathname\n }\n\n set pathname(value: string) {\n this[Internal].url.pathname = value\n }\n\n get hash() {\n return this[Internal].url.hash\n }\n\n set hash(value: string) {\n this[Internal].url.hash = value\n }\n\n get search() {\n return this[Internal].url.search\n }\n\n set search(value: string) {\n this[Internal].url.search = value\n }\n\n get password() {\n return this[Internal].url.password\n }\n\n set password(value: string) {\n this[Internal].url.password = value\n }\n\n get username() {\n return this[Internal].url.username\n }\n\n set username(value: string) {\n this[Internal].url.username = value\n }\n\n get basePath() {\n return this[Internal].basePath\n }\n\n set basePath(value: string) {\n this[Internal].basePath = value.startsWith('/') ? value : `/${value}`\n }\n\n toString() {\n return this.href\n }\n\n toJSON() {\n return this.href\n }\n\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n href: this.href,\n origin: this.origin,\n protocol: this.protocol,\n username: this.username,\n password: this.password,\n host: this.host,\n hostname: this.hostname,\n port: this.port,\n pathname: this.pathname,\n search: this.search,\n searchParams: this.searchParams,\n hash: this.hash,\n }\n }\n\n clone() {\n return new NextURL(String(this), this[Internal].options)\n }\n}\n"],"names":["NextURL","REGEX_LOCALHOST_HOSTNAME","parseURL","url","base","URL","String","replace","Internal","Symbol","constructor","input","baseOrOpts","opts","options","basePath","analyze","info","getNextPathnameInfo","pathname","nextConfig","parseData","process","env","__NEXT_NO_MIDDLEWARE_URL_NORMALIZE","i18nProvider","hostname","getHostname","headers","domainLocale","detectDomainLocale","i18n","domains","defaultLocale","buildId","locale","trailingSlash","formatPathname","formatNextPathnameInfo","forceLocale","undefined","formatSearch","search","locales","includes","TypeError","searchParams","host","value","port","protocol","href","hash","origin","password","username","startsWith","toString","toJSON","for","clone"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 9341, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/lib/constants.ts"],"sourcesContent":["import type { ServerRuntime } from '../types'\n\nexport const TEXT_PLAIN_CONTENT_TYPE_HEADER = 'text/plain'\nexport const HTML_CONTENT_TYPE_HEADER = 'text/html; charset=utf-8'\nexport const JSON_CONTENT_TYPE_HEADER = 'application/json; charset=utf-8'\nexport const NEXT_QUERY_PARAM_PREFIX = 'nxtP'\nexport const NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI'\n\nexport const MATCHED_PATH_HEADER = 'x-matched-path'\nexport const PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate'\nexport const PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER =\n 'x-prerender-revalidate-if-generated'\n\nexport const RSC_PREFETCH_SUFFIX = '.prefetch.rsc'\nexport const RSC_SEGMENTS_DIR_SUFFIX = '.segments'\nexport const RSC_SEGMENT_SUFFIX = '.segment.rsc'\nexport const RSC_SUFFIX = '.rsc'\nexport const ACTION_SUFFIX = '.action'\nexport const NEXT_DATA_SUFFIX = '.json'\nexport const NEXT_META_SUFFIX = '.meta'\nexport const NEXT_BODY_SUFFIX = '.body'\n\nexport const NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags'\nexport const NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags'\nexport const NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER =\n 'x-next-revalidate-tag-token'\n\nexport const NEXT_RESUME_HEADER = 'next-resume'\n\n// if these change make sure we update the related\n// documentation as well\nexport const NEXT_CACHE_TAG_MAX_ITEMS = 128\nexport const NEXT_CACHE_TAG_MAX_LENGTH = 256\nexport const NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024\nexport const NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_'\n\n// in seconds\nexport const CACHE_ONE_YEAR = 31536000\n\n// in seconds, represents revalidate=false. I.e. never revaliate.\n// We use this value since it can be represented as a V8 SMI for optimal performance.\n// It can also be serialized as JSON if it ever leaks accidentally as an actual value.\nexport const INFINITE_CACHE = 0xfffffffe\n\n// Patterns to detect middleware files\nexport const MIDDLEWARE_FILENAME = 'middleware'\nexport const MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`\n\n// Patterns to detect proxy files (replacement for middleware)\nexport const PROXY_FILENAME = 'proxy'\nexport const PROXY_LOCATION_REGEXP = `(?:src/)?${PROXY_FILENAME}`\n\n// Pattern to detect instrumentation hooks file\nexport const INSTRUMENTATION_HOOK_FILENAME = 'instrumentation'\n\n// Because on Windows absolute paths in the generated code can break because of numbers, eg 1 in the path,\n// we have to use a private alias\nexport const PAGES_DIR_ALIAS = 'private-next-pages'\nexport const DOT_NEXT_ALIAS = 'private-dot-next'\nexport const ROOT_DIR_ALIAS = 'private-next-root-dir'\nexport const APP_DIR_ALIAS = 'private-next-app-dir'\nexport const RSC_MOD_REF_PROXY_ALIAS = 'private-next-rsc-mod-ref-proxy'\nexport const RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate'\nexport const RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference'\nexport const RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper'\nexport const RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS =\n 'private-next-rsc-track-dynamic-import'\nexport const RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption'\nexport const RSC_ACTION_CLIENT_WRAPPER_ALIAS =\n 'private-next-rsc-action-client-wrapper'\n\nexport const PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`\n\nexport const SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`\n\nexport const SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`\n\nexport const SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`\n\nexport const STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`\n\nexport const SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`\n\nexport const GSP_NO_RETURNED_VALUE =\n 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?'\nexport const GSSP_NO_RETURNED_VALUE =\n 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?'\n\nexport const UNSTABLE_REVALIDATE_RENAME_ERROR =\n 'The `unstable_revalidate` property is available for general use.\\n' +\n 'Please use `revalidate` instead.'\n\nexport const GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`\n\nexport const NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`\n\nexport const SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`\n\nexport const ESLINT_DEFAULT_DIRS = ['app', 'pages', 'components', 'lib', 'src']\n\nexport const SERVER_RUNTIME: Record = {\n edge: 'edge',\n experimentalEdge: 'experimental-edge',\n nodejs: 'nodejs',\n}\n\nexport const WEB_SOCKET_MAX_RECONNECTIONS = 12\n\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */\nconst WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */\n shared: 'shared',\n /**\n * The layer for server-only runtime and picking up `react-server` export conditions.\n * Including app router RSC pages and app router custom routes and metadata routes.\n */\n reactServerComponents: 'rsc',\n /**\n * Server Side Rendering layer for app (ssr).\n */\n serverSideRendering: 'ssr',\n /**\n * The browser client bundle layer for actions.\n */\n actionBrowser: 'action-browser',\n /**\n * The Node.js bundle layer for the API routes.\n */\n apiNode: 'api-node',\n /**\n * The Edge Lite bundle layer for the API routes.\n */\n apiEdge: 'api-edge',\n /**\n * The layer for the middleware code.\n */\n middleware: 'middleware',\n /**\n * The layer for the instrumentation hooks.\n */\n instrument: 'instrument',\n /**\n * The layer for assets on the edge.\n */\n edgeAsset: 'edge-asset',\n /**\n * The browser client bundle layer for App directory.\n */\n appPagesBrowser: 'app-pages-browser',\n /**\n * The browser client bundle layer for Pages directory.\n */\n pagesDirBrowser: 'pages-dir-browser',\n /**\n * The Edge Lite bundle layer for Pages directory.\n */\n pagesDirEdge: 'pages-dir-edge',\n /**\n * The Node.js bundle layer for Pages directory.\n */\n pagesDirNode: 'pages-dir-node',\n} as const\n\nexport type WebpackLayerName =\n (typeof WEBPACK_LAYERS_NAMES)[keyof typeof WEBPACK_LAYERS_NAMES]\n\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n builtinReact: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n ],\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware,\n ],\n neutralTarget: [\n // pages api\n WEBPACK_LAYERS_NAMES.apiNode,\n WEBPACK_LAYERS_NAMES.apiEdge,\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n ],\n bundled: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware,\n ],\n appPages: [\n // app router pages and layouts\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n ],\n },\n}\n\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: '__next_edge_ssr_entry__',\n metadata: '__next_metadata__',\n metadataRoute: '__next_metadata_route__',\n metadataImageMeta: '__next_metadata_image_meta__',\n}\n\nexport { WEBPACK_LAYERS, WEBPACK_RESOURCE_QUERIES }\n"],"names":["ACTION_SUFFIX","APP_DIR_ALIAS","CACHE_ONE_YEAR","DOT_NEXT_ALIAS","ESLINT_DEFAULT_DIRS","GSP_NO_RETURNED_VALUE","GSSP_COMPONENT_MEMBER_ERROR","GSSP_NO_RETURNED_VALUE","HTML_CONTENT_TYPE_HEADER","INFINITE_CACHE","INSTRUMENTATION_HOOK_FILENAME","JSON_CONTENT_TYPE_HEADER","MATCHED_PATH_HEADER","MIDDLEWARE_FILENAME","MIDDLEWARE_LOCATION_REGEXP","NEXT_BODY_SUFFIX","NEXT_CACHE_IMPLICIT_TAG_ID","NEXT_CACHE_REVALIDATED_TAGS_HEADER","NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER","NEXT_CACHE_SOFT_TAG_MAX_LENGTH","NEXT_CACHE_TAGS_HEADER","NEXT_CACHE_TAG_MAX_ITEMS","NEXT_CACHE_TAG_MAX_LENGTH","NEXT_DATA_SUFFIX","NEXT_INTERCEPTION_MARKER_PREFIX","NEXT_META_SUFFIX","NEXT_QUERY_PARAM_PREFIX","NEXT_RESUME_HEADER","NON_STANDARD_NODE_ENV","PAGES_DIR_ALIAS","PRERENDER_REVALIDATE_HEADER","PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER","PROXY_FILENAME","PROXY_LOCATION_REGEXP","PUBLIC_DIR_MIDDLEWARE_CONFLICT","ROOT_DIR_ALIAS","RSC_ACTION_CLIENT_WRAPPER_ALIAS","RSC_ACTION_ENCRYPTION_ALIAS","RSC_ACTION_PROXY_ALIAS","RSC_ACTION_VALIDATE_ALIAS","RSC_CACHE_WRAPPER_ALIAS","RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS","RSC_MOD_REF_PROXY_ALIAS","RSC_PREFETCH_SUFFIX","RSC_SEGMENTS_DIR_SUFFIX","RSC_SEGMENT_SUFFIX","RSC_SUFFIX","SERVER_PROPS_EXPORT_ERROR","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","SERVER_RUNTIME","SSG_FALLBACK_EXPORT_ERROR","SSG_GET_INITIAL_PROPS_CONFLICT","STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR","TEXT_PLAIN_CONTENT_TYPE_HEADER","UNSTABLE_REVALIDATE_RENAME_ERROR","WEBPACK_LAYERS","WEBPACK_RESOURCE_QUERIES","WEB_SOCKET_MAX_RECONNECTIONS","edge","experimentalEdge","nodejs","WEBPACK_LAYERS_NAMES","shared","reactServerComponents","serverSideRendering","actionBrowser","apiNode","apiEdge","middleware","instrument","edgeAsset","appPagesBrowser","pagesDirBrowser","pagesDirEdge","pagesDirNode","GROUP","builtinReact","serverOnly","neutralTarget","clientOnly","bundled","appPages","edgeSSREntry","metadata","metadataRoute","metadataImageMeta"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 9752, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/utils.ts"],"sourcesContent":["import type { OutgoingHttpHeaders } from 'http'\nimport {\n NEXT_INTERCEPTION_MARKER_PREFIX,\n NEXT_QUERY_PARAM_PREFIX,\n} from '../../lib/constants'\n\n/**\n * Converts a Node.js IncomingHttpHeaders object to a Headers object. Any\n * headers with multiple values will be joined with a comma and space. Any\n * headers that have an undefined value will be ignored and others will be\n * coerced to strings.\n *\n * @param nodeHeaders the headers object to convert\n * @returns the converted headers object\n */\nexport function fromNodeOutgoingHttpHeaders(\n nodeHeaders: OutgoingHttpHeaders\n): Headers {\n const headers = new Headers()\n for (let [key, value] of Object.entries(nodeHeaders)) {\n const values = Array.isArray(value) ? value : [value]\n for (let v of values) {\n if (typeof v === 'undefined') continue\n if (typeof v === 'number') {\n v = v.toString()\n }\n\n headers.append(key, v)\n }\n }\n return headers\n}\n\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n \n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/\nexport function splitCookiesString(cookiesString: string) {\n var cookiesStrings = []\n var pos = 0\n var start\n var ch\n var lastComma\n var nextStart\n var cookiesSeparatorFound\n\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1\n }\n return pos < cookiesString.length\n }\n\n function notSpecialChar() {\n ch = cookiesString.charAt(pos)\n\n return ch !== '=' && ch !== ';' && ch !== ','\n }\n\n while (pos < cookiesString.length) {\n start = pos\n cookiesSeparatorFound = false\n\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos)\n if (ch === ',') {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos\n pos += 1\n\n skipWhitespace()\n nextStart = pos\n\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1\n }\n\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === '=') {\n // we found cookies separator\n cookiesSeparatorFound = true\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart\n cookiesStrings.push(cookiesString.substring(start, lastComma))\n start = pos\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1\n }\n } else {\n pos += 1\n }\n }\n\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length))\n }\n }\n\n return cookiesStrings\n}\n\n/**\n * Converts a Headers object to a Node.js OutgoingHttpHeaders object. This is\n * required to support the set-cookie header, which may have multiple values.\n *\n * @param headers the headers object to convert\n * @returns the converted headers object\n */\nexport function toNodeOutgoingHttpHeaders(\n headers: Headers\n): OutgoingHttpHeaders {\n const nodeHeaders: OutgoingHttpHeaders = {}\n const cookies: string[] = []\n if (headers) {\n for (const [key, value] of headers.entries()) {\n if (key.toLowerCase() === 'set-cookie') {\n // We may have gotten a comma joined string of cookies, or multiple\n // set-cookie headers. We need to merge them into one header array\n // to represent all the cookies.\n cookies.push(...splitCookiesString(value))\n nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies\n } else {\n nodeHeaders[key] = value\n }\n }\n }\n return nodeHeaders\n}\n\n/**\n * Validate the correctness of a user-provided URL.\n */\nexport function validateURL(url: string | URL): string {\n try {\n return String(new URL(String(url)))\n } catch (error: any) {\n throw new Error(\n `URL is malformed \"${String(\n url\n )}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,\n { cause: error }\n )\n }\n}\n\n/**\n * Normalizes `nxtP` and `nxtI` query param values to remove the prefix.\n * This function does not mutate the input key.\n */\nexport function normalizeNextQueryParam(key: string): null | string {\n const prefixes = [NEXT_QUERY_PARAM_PREFIX, NEXT_INTERCEPTION_MARKER_PREFIX]\n for (const prefix of prefixes) {\n if (key !== prefix && key.startsWith(prefix)) {\n return key.substring(prefix.length)\n }\n }\n return null\n}\n"],"names":["fromNodeOutgoingHttpHeaders","normalizeNextQueryParam","splitCookiesString","toNodeOutgoingHttpHeaders","validateURL","nodeHeaders","headers","Headers","key","value","Object","entries","values","Array","isArray","v","toString","append","cookiesString","cookiesStrings","pos","start","ch","lastComma","nextStart","cookiesSeparatorFound","skipWhitespace","length","test","charAt","notSpecialChar","push","substring","cookies","toLowerCase","url","String","URL","error","Error","cause","prefixes","NEXT_QUERY_PARAM_PREFIX","NEXT_INTERCEPTION_MARKER_PREFIX","prefix","startsWith"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 9904, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/error.ts"],"sourcesContent":["export class PageSignatureError extends Error {\n constructor({ page }: { page: string }) {\n super(`The middleware \"${page}\" accepts an async API directly with the form:\n \n export function middleware(request, event) {\n return NextResponse.redirect('/new-location')\n }\n \n Read more: https://nextjs.org/docs/messages/middleware-new-signature\n `)\n }\n}\n\nexport class RemovedPageError extends Error {\n constructor() {\n super(`The request.page has been deprecated in favour of \\`URLPattern\\`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n `)\n }\n}\n\nexport class RemovedUAError extends Error {\n constructor() {\n super(`The request.ua has been removed in favour of \\`userAgent\\` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n `)\n }\n}\n"],"names":["PageSignatureError","RemovedPageError","RemovedUAError","Error","constructor","page"],"mappings":";;;;;;;;;;;;;;;IAAaA,kBAAkB,EAAA;eAAlBA;;IAaAC,gBAAgB,EAAA;eAAhBA;;IAQAC,cAAc,EAAA;eAAdA;;;AArBN,MAAMF,2BAA2BG;IACtCC,YAAY,EAAEC,IAAI,EAAoB,CAAE;QACtC,KAAK,CAAC,CAAC,gBAAgB,EAAEA,KAAK;;;;;;;EAOhC,CAAC;IACD;AACF;AAEO,MAAMJ,yBAAyBE;IACpCC,aAAc;QACZ,KAAK,CAAC,CAAC;;EAET,CAAC;IACD;AACF;AAEO,MAAMF,uBAAuBC;IAClCC,aAAc;QACZ,KAAK,CAAC,CAAC;;EAET,CAAC;IACD;AACF","ignoreList":[0]}}, + {"offset": {"line": 9959, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/spec-extension/cookies.ts"],"sourcesContent":["export {\n RequestCookies,\n ResponseCookies,\n stringifyCookie,\n} from 'next/dist/compiled/@edge-runtime/cookies'\n"],"names":["RequestCookies","ResponseCookies","stringifyCookie"],"mappings":";;;;;;;;;;;;;;;IACEA,cAAc,EAAA;eAAdA,SAAAA,cAAc;;IACdC,eAAe,EAAA;eAAfA,SAAAA,eAAe;;IACfC,eAAe,EAAA;eAAfA,SAAAA,eAAe;;;yBACV","ignoreList":[0]}}, + {"offset": {"line": 9989, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/spec-extension/request.ts"],"sourcesContent":["import type { I18NConfig } from '../../config-shared'\nimport { NextURL } from '../next-url'\nimport { toNodeOutgoingHttpHeaders, validateURL } from '../utils'\nimport { RemovedUAError, RemovedPageError } from '../error'\nimport { RequestCookies } from './cookies'\n\nexport const INTERNALS = Symbol('internal request')\n\n/**\n * This class extends the [Web `Request` API](https://developer.mozilla.org/docs/Web/API/Request) with additional convenience methods.\n *\n * Read more: [Next.js Docs: `NextRequest`](https://nextjs.org/docs/app/api-reference/functions/next-request)\n */\nexport class NextRequest extends Request {\n /** @internal */\n [INTERNALS]: {\n cookies: RequestCookies\n url: string\n nextUrl: NextURL\n }\n\n constructor(input: URL | RequestInfo, init: RequestInit = {}) {\n const url =\n typeof input !== 'string' && 'url' in input ? input.url : String(input)\n\n validateURL(url)\n\n // node Request instance requires duplex option when a body\n // is present or it errors, we don't handle this for\n // Request being passed in since it would have already\n // errored if this wasn't configured\n if (process.env.NEXT_RUNTIME !== 'edge') {\n if (init.body && init.duplex !== 'half') {\n init.duplex = 'half'\n }\n }\n\n if (input instanceof Request) super(input, init)\n else super(url, init)\n\n const nextUrl = new NextURL(url, {\n headers: toNodeOutgoingHttpHeaders(this.headers),\n nextConfig: init.nextConfig,\n })\n this[INTERNALS] = {\n cookies: new RequestCookies(this.headers),\n nextUrl,\n url: process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE\n ? url\n : nextUrl.toString(),\n }\n }\n\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\n nextUrl: this.nextUrl,\n url: this.url,\n // rest of props come from Request\n bodyUsed: this.bodyUsed,\n cache: this.cache,\n credentials: this.credentials,\n destination: this.destination,\n headers: Object.fromEntries(this.headers),\n integrity: this.integrity,\n keepalive: this.keepalive,\n method: this.method,\n mode: this.mode,\n redirect: this.redirect,\n referrer: this.referrer,\n referrerPolicy: this.referrerPolicy,\n signal: this.signal,\n }\n }\n\n public get cookies() {\n return this[INTERNALS].cookies\n }\n\n public get nextUrl() {\n return this[INTERNALS].nextUrl\n }\n\n /**\n * @deprecated\n * `page` has been deprecated in favour of `URLPattern`.\n * Read more: https://nextjs.org/docs/messages/middleware-request-page\n */\n public get page() {\n throw new RemovedPageError()\n }\n\n /**\n * @deprecated\n * `ua` has been removed in favour of \\`userAgent\\` function.\n * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n */\n public get ua() {\n throw new RemovedUAError()\n }\n\n public get url() {\n return this[INTERNALS].url\n }\n}\n\nexport interface RequestInit extends globalThis.RequestInit {\n nextConfig?: {\n basePath?: string\n i18n?: I18NConfig | null\n trailingSlash?: boolean\n }\n signal?: AbortSignal\n // see https://github.com/whatwg/fetch/pull/1457\n duplex?: 'half'\n}\n"],"names":["INTERNALS","NextRequest","Symbol","Request","constructor","input","init","url","String","validateURL","process","env","NEXT_RUNTIME","body","duplex","nextUrl","NextURL","headers","toNodeOutgoingHttpHeaders","nextConfig","cookies","RequestCookies","__NEXT_NO_MIDDLEWARE_URL_NORMALIZE","toString","for","bodyUsed","cache","credentials","destination","Object","fromEntries","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","signal","page","RemovedPageError","ua","RemovedUAError"],"mappings":";;;;;;;;;;;;;;IAMaA,SAAS,EAAA;eAATA;;IAOAC,WAAW,EAAA;eAAXA;;;yBAZW;uBAC+B;uBACN;yBAClB;AAExB,MAAMD,YAAYE,OAAO;AAOzB,MAAMD,oBAAoBE;IAQ/BC,YAAYC,KAAwB,EAAEC,OAAoB,CAAC,CAAC,CAAE;QAC5D,MAAMC,MACJ,OAAOF,UAAU,YAAY,SAASA,QAAQA,MAAME,GAAG,GAAGC,OAAOH;QAEnEI,CAAAA,GAAAA,OAAAA,WAAW,EAACF;QAEZ,2DAA2D;QAC3D,oDAAoD;QACpD,sDAAsD;QACtD,oCAAoC;QACpC,IAAIG,QAAQC,GAAG,CAACC,YAAY,KAAK,OAAQ;YACvC,IAAIN,KAAKO,IAAI,IAAIP,KAAKQ,MAAM,KAAK,QAAQ;gBACvCR,KAAKQ,MAAM,GAAG;YAChB;QACF;QAEA,IAAIT,iBAAiBF,SAAS,KAAK,CAACE,OAAOC;aACtC,KAAK,CAACC,KAAKD;QAEhB,MAAMS,UAAU,IAAIC,SAAAA,OAAO,CAACT,KAAK;YAC/BU,SAASC,CAAAA,GAAAA,OAAAA,yBAAyB,EAAC,IAAI,CAACD,OAAO;YAC/CE,YAAYb,KAAKa,UAAU;QAC7B;QACA,IAAI,CAACnB,UAAU,GAAG;YAChBoB,SAAS,IAAIC,SAAAA,cAAc,CAAC,IAAI,CAACJ,OAAO;YACxCF;YACAR,KAAKG,QAAQC,GAAG,CAACW,0BACbf,QAD+C,kBAE/CQ,QAAQQ,QAAQ;QACtB;IACF;IAEA,CAACrB,OAAOsB,GAAG,CAAC,+BAA+B,GAAG;QAC5C,OAAO;YACLJ,SAAS,IAAI,CAACA,OAAO;YACrBL,SAAS,IAAI,CAACA,OAAO;YACrBR,KAAK,IAAI,CAACA,GAAG;YACb,kCAAkC;YAClCkB,UAAU,IAAI,CAACA,QAAQ;YACvBC,OAAO,IAAI,CAACA,KAAK;YACjBC,aAAa,IAAI,CAACA,WAAW;YAC7BC,aAAa,IAAI,CAACA,WAAW;YAC7BX,SAASY,OAAOC,WAAW,CAAC,IAAI,CAACb,OAAO;YACxCc,WAAW,IAAI,CAACA,SAAS;YACzBC,WAAW,IAAI,CAACA,SAAS;YACzBC,QAAQ,IAAI,CAACA,MAAM;YACnBC,MAAM,IAAI,CAACA,IAAI;YACfC,UAAU,IAAI,CAACA,QAAQ;YACvBC,UAAU,IAAI,CAACA,QAAQ;YACvBC,gBAAgB,IAAI,CAACA,cAAc;YACnCC,QAAQ,IAAI,CAACA,MAAM;QACrB;IACF;IAEA,IAAWlB,UAAU;QACnB,OAAO,IAAI,CAACpB,UAAU,CAACoB,OAAO;IAChC;IAEA,IAAWL,UAAU;QACnB,OAAO,IAAI,CAACf,UAAU,CAACe,OAAO;IAChC;IAEA;;;;GAIC,GACD,IAAWwB,OAAO;QAChB,MAAM,IAAIC,OAAAA,gBAAgB;IAC5B;IAEA;;;;GAIC,GACD,IAAWC,KAAK;QACd,MAAM,IAAIC,OAAAA,cAAc;IAC1B;IAEA,IAAWnC,MAAM;QACf,OAAO,IAAI,CAACP,UAAU,CAACO,GAAG;IAC5B;AACF","ignoreList":[0]}}, + {"offset": {"line": 10089, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/spec-extension/adapters/reflect.ts"],"sourcesContent":["export class ReflectAdapter {\n static get(\n target: T,\n prop: string | symbol,\n receiver: unknown\n ): any {\n const value = Reflect.get(target, prop, receiver)\n if (typeof value === 'function') {\n return value.bind(target)\n }\n\n return value\n }\n\n static set(\n target: T,\n prop: string | symbol,\n value: any,\n receiver: any\n ): boolean {\n return Reflect.set(target, prop, value, receiver)\n }\n\n static has(target: T, prop: string | symbol): boolean {\n return Reflect.has(target, prop)\n }\n\n static deleteProperty(\n target: T,\n prop: string | symbol\n ): boolean {\n return Reflect.deleteProperty(target, prop)\n }\n}\n"],"names":["ReflectAdapter","get","target","prop","receiver","value","Reflect","bind","set","has","deleteProperty"],"mappings":";;;+BAAaA,kBAAAA;;;eAAAA;;;AAAN,MAAMA;IACX,OAAOC,IACLC,MAAS,EACTC,IAAqB,EACrBC,QAAiB,EACZ;QACL,MAAMC,QAAQC,QAAQL,GAAG,CAACC,QAAQC,MAAMC;QACxC,IAAI,OAAOC,UAAU,YAAY;YAC/B,OAAOA,MAAME,IAAI,CAACL;QACpB;QAEA,OAAOG;IACT;IAEA,OAAOG,IACLN,MAAS,EACTC,IAAqB,EACrBE,KAAU,EACVD,QAAa,EACJ;QACT,OAAOE,QAAQE,GAAG,CAACN,QAAQC,MAAME,OAAOD;IAC1C;IAEA,OAAOK,IAAsBP,MAAS,EAAEC,IAAqB,EAAW;QACtE,OAAOG,QAAQG,GAAG,CAACP,QAAQC;IAC7B;IAEA,OAAOO,eACLR,MAAS,EACTC,IAAqB,EACZ;QACT,OAAOG,QAAQI,cAAc,CAACR,QAAQC;IACxC;AACF","ignoreList":[0]}}, + {"offset": {"line": 10120, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/spec-extension/response.ts"],"sourcesContent":["import { stringifyCookie } from '../../web/spec-extension/cookies'\nimport type { I18NConfig } from '../../config-shared'\nimport { NextURL } from '../next-url'\nimport { toNodeOutgoingHttpHeaders, validateURL } from '../utils'\nimport { ReflectAdapter } from './adapters/reflect'\n\nimport { ResponseCookies } from './cookies'\n\nconst INTERNALS = Symbol('internal response')\nconst REDIRECTS = new Set([301, 302, 303, 307, 308])\n\nfunction handleMiddlewareField(\n init: MiddlewareResponseInit | undefined,\n headers: Headers\n) {\n if (init?.request?.headers) {\n if (!(init.request.headers instanceof Headers)) {\n throw new Error('request.headers must be an instance of Headers')\n }\n\n const keys = []\n for (const [key, value] of init.request.headers) {\n headers.set('x-middleware-request-' + key, value)\n keys.push(key)\n }\n\n headers.set('x-middleware-override-headers', keys.join(','))\n }\n}\n\n/**\n * This class extends the [Web `Response` API](https://developer.mozilla.org/docs/Web/API/Response) with additional convenience methods.\n *\n * Read more: [Next.js Docs: `NextResponse`](https://nextjs.org/docs/app/api-reference/functions/next-response)\n */\nexport class NextResponse extends Response {\n [INTERNALS]: {\n cookies: ResponseCookies\n url?: NextURL\n body?: Body\n }\n\n constructor(body?: BodyInit | null, init: ResponseInit = {}) {\n super(body, init)\n\n const headers = this.headers\n const cookies = new ResponseCookies(headers)\n\n const cookiesProxy = new Proxy(cookies, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'delete':\n case 'set': {\n return (...args: [string, string]) => {\n const result = Reflect.apply(target[prop], target, args)\n const newHeaders = new Headers(headers)\n\n if (result instanceof ResponseCookies) {\n headers.set(\n 'x-middleware-set-cookie',\n result\n .getAll()\n .map((cookie) => stringifyCookie(cookie))\n .join(',')\n )\n }\n\n handleMiddlewareField(init, newHeaders)\n return result\n }\n }\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n\n this[INTERNALS] = {\n cookies: cookiesProxy,\n url: init.url\n ? new NextURL(init.url, {\n headers: toNodeOutgoingHttpHeaders(headers),\n nextConfig: init.nextConfig,\n })\n : undefined,\n }\n }\n\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\n url: this.url,\n // rest of props come from Response\n body: this.body,\n bodyUsed: this.bodyUsed,\n headers: Object.fromEntries(this.headers),\n ok: this.ok,\n redirected: this.redirected,\n status: this.status,\n statusText: this.statusText,\n type: this.type,\n }\n }\n\n public get cookies() {\n return this[INTERNALS].cookies\n }\n\n static json(\n body: JsonBody,\n init?: ResponseInit\n ): NextResponse {\n const response: Response = Response.json(body, init)\n return new NextResponse(response.body, response)\n }\n\n static redirect(url: string | NextURL | URL, init?: number | ResponseInit) {\n const status = typeof init === 'number' ? init : (init?.status ?? 307)\n if (!REDIRECTS.has(status)) {\n throw new RangeError(\n 'Failed to execute \"redirect\" on \"response\": Invalid status code'\n )\n }\n const initObj = typeof init === 'object' ? init : {}\n const headers = new Headers(initObj?.headers)\n headers.set('Location', validateURL(url))\n\n return new NextResponse(null, {\n ...initObj,\n headers,\n status,\n })\n }\n\n static rewrite(\n destination: string | NextURL | URL,\n init?: MiddlewareResponseInit\n ) {\n const headers = new Headers(init?.headers)\n headers.set('x-middleware-rewrite', validateURL(destination))\n\n handleMiddlewareField(init, headers)\n return new NextResponse(null, { ...init, headers })\n }\n\n static next(init?: MiddlewareResponseInit) {\n const headers = new Headers(init?.headers)\n headers.set('x-middleware-next', '1')\n\n handleMiddlewareField(init, headers)\n return new NextResponse(null, { ...init, headers })\n }\n}\n\ninterface ResponseInit extends globalThis.ResponseInit {\n nextConfig?: {\n basePath?: string\n i18n?: I18NConfig\n trailingSlash?: boolean\n }\n url?: string\n}\n\ninterface ModifiedRequest {\n /**\n * If this is set, the request headers will be overridden with this value.\n */\n headers?: Headers\n}\n\ninterface MiddlewareResponseInit extends globalThis.ResponseInit {\n /**\n * These fields will override the request from clients.\n */\n request?: ModifiedRequest\n}\n"],"names":["NextResponse","INTERNALS","Symbol","REDIRECTS","Set","handleMiddlewareField","init","headers","request","Headers","Error","keys","key","value","set","push","join","Response","constructor","body","cookies","ResponseCookies","cookiesProxy","Proxy","get","target","prop","receiver","args","result","Reflect","apply","newHeaders","getAll","map","cookie","stringifyCookie","ReflectAdapter","url","NextURL","toNodeOutgoingHttpHeaders","nextConfig","undefined","for","bodyUsed","Object","fromEntries","ok","redirected","status","statusText","type","json","response","redirect","has","RangeError","initObj","validateURL","rewrite","destination","next"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 10257, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/spec-extension/image-response.ts"],"sourcesContent":["/**\n * @deprecated ImageResponse moved from \"next/server\" to \"next/og\" since Next.js 14, please import from \"next/og\" instead.\n * Migration with codemods: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#next-og-import\n */\nexport function ImageResponse(): never {\n throw new Error(\n 'ImageResponse moved from \"next/server\" to \"next/og\" since Next.js 14, please import from \"next/og\" instead'\n )\n}\n"],"names":["ImageResponse","Error"],"mappings":"AAAA;;;CAGC;;;+BACeA,iBAAAA;;;eAAAA;;;AAAT,SAASA;IACd,MAAM,OAAA,cAEL,CAFK,IAAIC,MACR,+GADI,qBAAA;eAAA;oBAAA;sBAAA;IAEN;AACF","ignoreList":[0]}}, + {"offset": {"line": 10279, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/dist/compiled/ua-parser-js/ua-parser.js"],"sourcesContent":["(()=>{var i={226:function(i,e){(function(o,a){\"use strict\";var r=\"1.0.35\",t=\"\",n=\"?\",s=\"function\",b=\"undefined\",w=\"object\",l=\"string\",d=\"major\",c=\"model\",u=\"name\",p=\"type\",m=\"vendor\",f=\"version\",h=\"architecture\",v=\"console\",g=\"mobile\",k=\"tablet\",x=\"smarttv\",_=\"wearable\",y=\"embedded\",q=350;var T=\"Amazon\",S=\"Apple\",z=\"ASUS\",N=\"BlackBerry\",A=\"Browser\",C=\"Chrome\",E=\"Edge\",O=\"Firefox\",U=\"Google\",j=\"Huawei\",P=\"LG\",R=\"Microsoft\",M=\"Motorola\",B=\"Opera\",V=\"Samsung\",D=\"Sharp\",I=\"Sony\",W=\"Viera\",F=\"Xiaomi\",G=\"Zebra\",H=\"Facebook\",L=\"Chromium OS\",Z=\"Mac OS\";var extend=function(i,e){var o={};for(var a in i){if(e[a]&&e[a].length%2===0){o[a]=e[a].concat(i[a])}else{o[a]=i[a]}}return o},enumerize=function(i){var e={};for(var o=0;o0){if(b.length===2){if(typeof b[1]==s){this[b[0]]=b[1].call(this,d)}else{this[b[0]]=b[1]}}else if(b.length===3){if(typeof b[1]===s&&!(b[1].exec&&b[1].test)){this[b[0]]=d?b[1].call(this,d,b[2]):a}else{this[b[0]]=d?d.replace(b[1],b[2]):a}}else if(b.length===4){this[b[0]]=d?b[3].call(this,d.replace(b[1],b[2])):a}}else{this[b]=d?d:a}}}}o+=2}},strMapper=function(i,e){for(var o in e){if(typeof e[o]===w&&e[o].length>0){for(var r=0;r2){i[c]=\"iPad\";i[p]=k}return i};this.getEngine=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.engine);return i};this.getOS=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.os);if(_&&!i[u]&&v&&v.platform!=\"Unknown\"){i[u]=v.platform.replace(/chrome os/i,L).replace(/macos/i,Z)}return i};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return n};this.setUA=function(i){n=typeof i===l&&i.length>q?trim(i,q):i;return this};this.setUA(n);return this};UAParser.VERSION=r;UAParser.BROWSER=enumerize([u,f,d]);UAParser.CPU=enumerize([h]);UAParser.DEVICE=enumerize([c,m,p,v,g,x,k,_,y]);UAParser.ENGINE=UAParser.OS=enumerize([u,f]);if(typeof e!==b){if(\"object\"!==b&&i.exports){e=i.exports=UAParser}e.UAParser=UAParser}else{if(typeof define===s&&define.amd){define((function(){return UAParser}))}else if(typeof o!==b){o.UAParser=UAParser}}var Q=typeof o!==b&&(o.jQuery||o.Zepto);if(Q&&!Q.ua){var Y=new UAParser;Q.ua=Y.getResult();Q.ua.get=function(){return Y.getUA()};Q.ua.set=function(i){Y.setUA(i);var e=Y.getResult();for(var o in e){Q.ua[o]=e[o]}}}})(typeof window===\"object\"?window:this)}};var e={};function __nccwpck_require__(o){var a=e[o];if(a!==undefined){return a.exports}var r=e[o]={exports:{}};var t=true;try{i[o].call(r.exports,r,r.exports,__nccwpck_require__);t=false}finally{if(t)delete e[o]}return r.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var o=__nccwpck_require__(226);module.exports=o})();"],"names":[],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 12601, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/spec-extension/user-agent.ts"],"sourcesContent":["import parseua from 'next/dist/compiled/ua-parser-js'\n\ninterface UserAgent {\n isBot: boolean\n ua: string\n browser: {\n name?: string\n version?: string\n major?: string\n }\n device: {\n model?: string\n type?: string\n vendor?: string\n }\n engine: {\n name?: string\n version?: string\n }\n os: {\n name?: string\n version?: string\n }\n cpu: {\n architecture?: string\n }\n}\n\nexport function isBot(input: string): boolean {\n return /Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i.test(\n input\n )\n}\n\nexport function userAgentFromString(input: string | undefined): UserAgent {\n return {\n ...parseua(input),\n isBot: input === undefined ? false : isBot(input),\n }\n}\n\nexport function userAgent({ headers }: { headers: Headers }): UserAgent {\n return userAgentFromString(headers.get('user-agent') || undefined)\n}\n"],"names":["isBot","userAgent","userAgentFromString","input","test","parseua","undefined","headers","get"],"mappings":";;;;;;;;;;;;;;;IA4BgBA,KAAK,EAAA;eAALA;;IAaAC,SAAS,EAAA;eAATA;;IAPAC,mBAAmB,EAAA;eAAnBA;;;mEAlCI;;;;;;AA4Bb,SAASF,MAAMG,KAAa;IACjC,OAAO,0WAA0WC,IAAI,CACnXD;AAEJ;AAEO,SAASD,oBAAoBC,KAAyB;IAC3D,OAAO;QACL,GAAGE,CAAAA,GAAAA,YAAAA,OAAO,EAACF,MAAM;QACjBH,OAAOG,UAAUG,YAAY,QAAQN,MAAMG;IAC7C;AACF;AAEO,SAASF,UAAU,EAAEM,OAAO,EAAwB;IACzD,OAAOL,oBAAoBK,QAAQC,GAAG,CAAC,iBAAiBF;AAC1D","ignoreList":[0]}}, + {"offset": {"line": 12648, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/spec-extension/url-pattern.ts"],"sourcesContent":["const GlobalURLPattern =\n // @ts-expect-error: URLPattern is not available in Node.js\n typeof URLPattern === 'undefined' ? undefined : URLPattern\n\nexport { GlobalURLPattern as URLPattern }\n"],"names":["URLPattern","GlobalURLPattern","undefined"],"mappings":";;;+BAI6BA,cAAAA;;;eAApBC;;;AAJT,MAAMA,mBACJ,AACA,OAAOD,eAAe,cAAcE,YAAYF,WADW","ignoreList":[0]}}, + {"offset": {"line": 12662, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/after/after.ts"],"sourcesContent":["import { workAsyncStorage } from '../app-render/work-async-storage.external'\n\nexport type AfterTask = Promise | AfterCallback\nexport type AfterCallback = () => T | Promise\n\n/**\n * This function allows you to schedule callbacks to be executed after the current request finishes.\n */\nexport function after(task: AfterTask): void {\n const workStore = workAsyncStorage.getStore()\n\n if (!workStore) {\n // TODO(after): the linked docs page talks about *dynamic* APIs, which after soon won't be anymore\n throw new Error(\n '`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context'\n )\n }\n\n const { afterContext } = workStore\n return afterContext.after(task)\n}\n"],"names":["after","task","workStore","workAsyncStorage","getStore","Error","afterContext"],"mappings":";;;+BAQgBA,SAAAA;;;eAAAA;;;0CARiB;AAQ1B,SAASA,MAASC,IAAkB;IACzC,MAAMC,YAAYC,0BAAAA,gBAAgB,CAACC,QAAQ;IAE3C,IAAI,CAACF,WAAW;QACd,kGAAkG;QAClG,MAAM,OAAA,cAEL,CAFK,IAAIG,MACR,2HADI,qBAAA;mBAAA;wBAAA;0BAAA;QAEN;IACF;IAEA,MAAM,EAAEC,YAAY,EAAE,GAAGJ;IACzB,OAAOI,aAAaN,KAAK,CAACC;AAC5B","ignoreList":[0]}}, + {"offset": {"line": 12689, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/after/index.ts"],"sourcesContent":["export * from './after'\n"],"names":[],"mappings":";;;;qBAAc,oNAAA","ignoreList":[0]}}, + {"offset": {"line": 12711, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/client/components/hooks-server-context.ts"],"sourcesContent":["const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'\n\nexport class DynamicServerError extends Error {\n digest: typeof DYNAMIC_ERROR_CODE = DYNAMIC_ERROR_CODE\n\n constructor(public readonly description: string) {\n super(`Dynamic server usage: ${description}`)\n }\n}\n\nexport function isDynamicServerError(err: unknown): err is DynamicServerError {\n if (\n typeof err !== 'object' ||\n err === null ||\n !('digest' in err) ||\n typeof err.digest !== 'string'\n ) {\n return false\n }\n\n return err.digest === DYNAMIC_ERROR_CODE\n}\n"],"names":["DynamicServerError","isDynamicServerError","DYNAMIC_ERROR_CODE","Error","constructor","description","digest","err"],"mappings":";;;;;;;;;;;;;;IAEaA,kBAAkB,EAAA;eAAlBA;;IAQGC,oBAAoB,EAAA;eAApBA;;;AAVhB,MAAMC,qBAAqB;AAEpB,MAAMF,2BAA2BG;IAGtCC,YAA4BC,WAAmB,CAAE;QAC/C,KAAK,CAAC,CAAC,sBAAsB,EAAEA,aAAa,GAAA,IAAA,CADlBA,WAAAA,GAAAA,aAAAA,IAAAA,CAF5BC,MAAAA,GAAoCJ;IAIpC;AACF;AAEO,SAASD,qBAAqBM,GAAY;IAC/C,IACE,OAAOA,QAAQ,YACfA,QAAQ,QACR,CAAE,CAAA,YAAYA,GAAE,KAChB,OAAOA,IAAID,MAAM,KAAK,UACtB;QACA,OAAO;IACT;IAEA,OAAOC,IAAID,MAAM,KAAKJ;AACxB","ignoreList":[0]}}, + {"offset": {"line": 12755, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/client/components/static-generation-bailout.ts"],"sourcesContent":["const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'\n\nexport class StaticGenBailoutError extends Error {\n public readonly code = NEXT_STATIC_GEN_BAILOUT\n}\n\nexport function isStaticGenBailoutError(\n error: unknown\n): error is StaticGenBailoutError {\n if (typeof error !== 'object' || error === null || !('code' in error)) {\n return false\n }\n\n return error.code === NEXT_STATIC_GEN_BAILOUT\n}\n"],"names":["StaticGenBailoutError","isStaticGenBailoutError","NEXT_STATIC_GEN_BAILOUT","Error","code","error"],"mappings":";;;;;;;;;;;;;;IAEaA,qBAAqB,EAAA;eAArBA;;IAIGC,uBAAuB,EAAA;eAAvBA;;;AANhB,MAAMC,0BAA0B;AAEzB,MAAMF,8BAA8BG;;QAApC,KAAA,IAAA,OAAA,IAAA,CACWC,IAAAA,GAAOF;;AACzB;AAEO,SAASD,wBACdI,KAAc;IAEd,IAAI,OAAOA,UAAU,YAAYA,UAAU,QAAQ,CAAE,CAAA,UAAUA,KAAI,GAAI;QACrE,OAAO;IACT;IAEA,OAAOA,MAAMD,IAAI,KAAKF;AACxB","ignoreList":[0]}}, + {"offset": {"line": 12799, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/dynamic-rendering-utils.ts"],"sourcesContent":["import type { NonStaticRenderStage } from './app-render/staged-rendering'\nimport type { RequestStore } from './app-render/work-unit-async-storage.external'\n\nexport function isHangingPromiseRejectionError(\n err: unknown\n): err is HangingPromiseRejectionError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === HANGING_PROMISE_REJECTION\n}\n\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION'\n\nclass HangingPromiseRejectionError extends Error {\n public readonly digest = HANGING_PROMISE_REJECTION\n\n constructor(\n public readonly route: string,\n public readonly expression: string\n ) {\n super(\n `During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route \"${route}\".`\n )\n }\n}\n\ntype AbortListeners = Array<(err: unknown) => void>\nconst abortListenersBySignal = new WeakMap()\n\n/**\n * This function constructs a promise that will never resolve. This is primarily\n * useful for cacheComponents where we use promise resolution timing to determine which\n * parts of a render can be included in a prerender.\n *\n * @internal\n */\nexport function makeHangingPromise(\n signal: AbortSignal,\n route: string,\n expression: string\n): Promise {\n if (signal.aborted) {\n return Promise.reject(new HangingPromiseRejectionError(route, expression))\n } else {\n const hangingPromise = new Promise((_, reject) => {\n const boundRejection = reject.bind(\n null,\n new HangingPromiseRejectionError(route, expression)\n )\n let currentListeners = abortListenersBySignal.get(signal)\n if (currentListeners) {\n currentListeners.push(boundRejection)\n } else {\n const listeners = [boundRejection]\n abortListenersBySignal.set(signal, listeners)\n signal.addEventListener(\n 'abort',\n () => {\n for (let i = 0; i < listeners.length; i++) {\n listeners[i]()\n }\n },\n { once: true }\n )\n }\n })\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject)\n return hangingPromise\n }\n}\n\nfunction ignoreReject() {}\n\nexport function makeDevtoolsIOAwarePromise(\n underlying: T,\n requestStore: RequestStore,\n stage: NonStaticRenderStage\n): Promise {\n if (requestStore.stagedRendering) {\n // We resolve each stage in a timeout, so React DevTools will pick this up as IO.\n return requestStore.stagedRendering.delayUntilStage(\n stage,\n undefined,\n underlying\n )\n }\n // in React DevTools if we resolve in a setTimeout we will observe\n // the promise resolution as something that can suspend a boundary or root.\n return new Promise((resolve) => {\n // Must use setTimeout to be considered IO React DevTools. setImmediate will not work.\n setTimeout(() => {\n resolve(underlying)\n }, 0)\n })\n}\n"],"names":["isHangingPromiseRejectionError","makeDevtoolsIOAwarePromise","makeHangingPromise","err","digest","HANGING_PROMISE_REJECTION","HangingPromiseRejectionError","Error","constructor","route","expression","abortListenersBySignal","WeakMap","signal","aborted","Promise","reject","hangingPromise","_","boundRejection","bind","currentListeners","get","push","listeners","set","addEventListener","i","length","once","catch","ignoreReject","underlying","requestStore","stage","stagedRendering","delayUntilStage","undefined","resolve","setTimeout"],"mappings":";;;;;;;;;;;;;;;IAGgBA,8BAA8B,EAAA;eAA9BA;;IA2EAC,0BAA0B,EAAA;eAA1BA;;IAxCAC,kBAAkB,EAAA;eAAlBA;;;AAnCT,SAASF,+BACdG,GAAY;IAEZ,IAAI,OAAOA,QAAQ,YAAYA,QAAQ,QAAQ,CAAE,CAAA,YAAYA,GAAE,GAAI;QACjE,OAAO;IACT;IAEA,OAAOA,IAAIC,MAAM,KAAKC;AACxB;AAEA,MAAMA,4BAA4B;AAElC,MAAMC,qCAAqCC;IAGzCC,YACkBC,KAAa,EACbC,UAAkB,CAClC;QACA,KAAK,CACH,CAAC,qBAAqB,EAAEA,WAAW,qGAAqG,EAAEA,WAAW,8KAA8K,EAAED,MAAM,EAAE,CAAC,GAAA,IAAA,CAJhUA,KAAAA,GAAAA,OAAAA,IAAAA,CACAC,UAAAA,GAAAA,YAAAA,IAAAA,CAJFN,MAAAA,GAASC;IASzB;AACF;AAGA,MAAMM,yBAAyB,IAAIC;AAS5B,SAASV,mBACdW,MAAmB,EACnBJ,KAAa,EACbC,UAAkB;IAElB,IAAIG,OAAOC,OAAO,EAAE;QAClB,OAAOC,QAAQC,MAAM,CAAC,IAAIV,6BAA6BG,OAAOC;IAChE,OAAO;QACL,MAAMO,iBAAiB,IAAIF,QAAW,CAACG,GAAGF;YACxC,MAAMG,iBAAiBH,OAAOI,IAAI,CAChC,MACA,IAAId,6BAA6BG,OAAOC;YAE1C,IAAIW,mBAAmBV,uBAAuBW,GAAG,CAACT;YAClD,IAAIQ,kBAAkB;gBACpBA,iBAAiBE,IAAI,CAACJ;YACxB,OAAO;gBACL,MAAMK,YAAY;oBAACL;iBAAe;gBAClCR,uBAAuBc,GAAG,CAACZ,QAAQW;gBACnCX,OAAOa,gBAAgB,CACrB,SACA;oBACE,IAAK,IAAIC,IAAI,GAAGA,IAAIH,UAAUI,MAAM,EAAED,IAAK;wBACzCH,SAAS,CAACG,EAAE;oBACd;gBACF,GACA;oBAAEE,MAAM;gBAAK;YAEjB;QACF;QACA,2GAA2G;QAC3G,6GAA6G;QAC7G,yFAAyF;QACzFZ,eAAea,KAAK,CAACC;QACrB,OAAOd;IACT;AACF;AAEA,SAASc,gBAAgB;AAElB,SAAS9B,2BACd+B,UAAa,EACbC,YAA0B,EAC1BC,KAA2B;IAE3B,IAAID,aAAaE,eAAe,EAAE;QAChC,iFAAiF;QACjF,OAAOF,aAAaE,eAAe,CAACC,eAAe,CACjDF,OACAG,WACAL;IAEJ;IACA,kEAAkE;IAClE,2EAA2E;IAC3E,OAAO,IAAIjB,QAAW,CAACuB;QACrB,sFAAsF;QACtFC,WAAW;YACTD,QAAQN;QACV,GAAG;IACL;AACF","ignoreList":[0]}}, + {"offset": {"line": 12886, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/lib/framework/boundary-constants.tsx"],"sourcesContent":["export const METADATA_BOUNDARY_NAME = '__next_metadata_boundary__'\nexport const VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__'\nexport const OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__'\nexport const ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__'\n"],"names":["METADATA_BOUNDARY_NAME","OUTLET_BOUNDARY_NAME","ROOT_LAYOUT_BOUNDARY_NAME","VIEWPORT_BOUNDARY_NAME"],"mappings":";;;;;;;;;;;;;;;;IAAaA,sBAAsB,EAAA;eAAtBA;;IAEAC,oBAAoB,EAAA;eAApBA;;IACAC,yBAAyB,EAAA;eAAzBA;;IAFAC,sBAAsB,EAAA;eAAtBA;;;AADN,MAAMH,yBAAyB;AAC/B,MAAMG,yBAAyB;AAC/B,MAAMF,uBAAuB;AAC7B,MAAMC,4BAA4B","ignoreList":[0]}}, + {"offset": {"line": 12923, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/lib/scheduler.ts"],"sourcesContent":["export type ScheduledFn = () => T | PromiseLike\nexport type SchedulerFn = (cb: ScheduledFn) => void\n\n/**\n * Schedules a function to be called on the next tick after the other promises\n * have been resolved.\n *\n * @param cb the function to schedule\n */\nexport const scheduleOnNextTick = (cb: ScheduledFn) => {\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(() => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n process.nextTick(cb)\n }\n })\n}\n\n/**\n * Schedules a function to be called using `setImmediate` or `setTimeout` if\n * `setImmediate` is not available (like in the Edge runtime).\n *\n * @param cb the function to schedule\n */\nexport const scheduleImmediate = (cb: ScheduledFn): void => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n setImmediate(cb)\n }\n}\n\n/**\n * returns a promise than resolves in a future task. There is no guarantee that the task it resolves in\n * will be the next task but if you await it you can at least be sure that the current task is over and\n * most usefully that the entire microtask queue of the current task has been emptied.\n */\nexport function atLeastOneTask() {\n return new Promise((resolve) => scheduleImmediate(resolve))\n}\n\n/**\n * This utility function is extracted to make it easier to find places where we are doing\n * specific timing tricks to try to schedule work after React has rendered. This is especially\n * important at the moment because Next.js uses the edge builds of React which use setTimeout to\n * schedule work when you might expect that something like setImmediate would do the trick.\n *\n * Long term we should switch to the node versions of React rendering when possible and then\n * update this to use setImmediate rather than setTimeout\n */\nexport function waitAtLeastOneReactRenderTask(): Promise {\n if (process.env.NEXT_RUNTIME === 'edge') {\n return new Promise((r) => setTimeout(r, 0))\n } else {\n return new Promise((r) => setImmediate(r))\n }\n}\n"],"names":["atLeastOneTask","scheduleImmediate","scheduleOnNextTick","waitAtLeastOneReactRenderTask","cb","Promise","resolve","then","process","env","NEXT_RUNTIME","setTimeout","nextTick","setImmediate","r"],"mappings":";;;;;;;;;;;;;;;;IA4CgBA,cAAc,EAAA;eAAdA;;IAbHC,iBAAiB,EAAA;eAAjBA;;IAtBAC,kBAAkB,EAAA;eAAlBA;;IAgDGC,6BAA6B,EAAA;eAA7BA;;;AAhDT,MAAMD,qBAAqB,CAACE;IACjC,6EAA6E;IAC7E,4EAA4E;IAC5E,uCAAuC;IACvC,EAAE;IACF,kLAAkL;IAClL,EAAE;IACFC,QAAQC,OAAO,GAAGC,IAAI,CAAC;QACrB,IAAIC,QAAQC,GAAG,CAACC,YAAY,KAAK,QAAQ;;aAElC;YACLF,QAAQI,QAAQ,CAACR;QACnB;IACF;AACF;AAQO,MAAMH,oBAAoB,CAACG;IAChC,IAAII,QAAQC,GAAG,CAACC,YAAY,KAAK,QAAQ;;SAElC;QACLG,aAAaT;IACf;AACF;AAOO,SAASJ;IACd,OAAO,IAAIK,QAAc,CAACC,UAAYL,kBAAkBK;AAC1D;AAWO,SAASH;IACd,IAAIK,QAAQC,GAAG,CAACC,YAAY,KAAK,QAAQ;;SAElC;QACL,OAAO,IAAIL,QAAQ,CAACS,IAAMD,aAAaC;IACzC;AACF","ignoreList":[0]}}, + {"offset": {"line": 12988, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/lazy-dynamic/bailout-to-csr.ts"],"sourcesContent":["// This has to be a shared module which is shared between client component error boundary and dynamic component\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING'\n\n/** An error that should be thrown when we want to bail out to client-side rendering. */\nexport class BailoutToCSRError extends Error {\n public readonly digest = BAILOUT_TO_CSR\n\n constructor(public readonly reason: string) {\n super(`Bail out to client-side rendering: ${reason}`)\n }\n}\n\n/** Checks if a passed argument is an error that is thrown if we want to bail out to client-side rendering. */\nexport function isBailoutToCSRError(err: unknown): err is BailoutToCSRError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === BAILOUT_TO_CSR\n}\n"],"names":["BailoutToCSRError","isBailoutToCSRError","BAILOUT_TO_CSR","Error","constructor","reason","digest","err"],"mappings":"AAAA,+GAA+G;;;;;;;;;;;;;;;IAIlGA,iBAAiB,EAAA;eAAjBA;;IASGC,mBAAmB,EAAA;eAAnBA;;;AAZhB,MAAMC,iBAAiB;AAGhB,MAAMF,0BAA0BG;IAGrCC,YAA4BC,MAAc,CAAE;QAC1C,KAAK,CAAC,CAAC,mCAAmC,EAAEA,QAAQ,GAAA,IAAA,CAD1BA,MAAAA,GAAAA,QAAAA,IAAAA,CAFZC,MAAAA,GAASJ;IAIzB;AACF;AAGO,SAASD,oBAAoBM,GAAY;IAC9C,IAAI,OAAOA,QAAQ,YAAYA,QAAQ,QAAQ,CAAE,CAAA,YAAYA,GAAE,GAAI;QACjE,OAAO;IACT;IAEA,OAAOA,IAAID,MAAM,KAAKJ;AACxB","ignoreList":[0]}}, + {"offset": {"line": 13026, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/invariant-error.ts"],"sourcesContent":["export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n"],"names":["InvariantError","Error","constructor","message","options","endsWith","name"],"mappings":";;;+BAAaA,kBAAAA;;;eAAAA;;;AAAN,MAAMA,uBAAuBC;IAClCC,YAAYC,OAAe,EAAEC,OAAsB,CAAE;QACnD,KAAK,CACH,CAAC,WAAW,EAAED,QAAQE,QAAQ,CAAC,OAAOF,UAAUA,UAAU,IAAI,0BAA0B,CAAC,EACzFC;QAEF,IAAI,CAACE,IAAI,GAAG;IACd;AACF","ignoreList":[0]}}, + {"offset": {"line": 13045, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/shared/lib/promise-with-resolvers.ts"],"sourcesContent":["export function createPromiseWithResolvers(): PromiseWithResolvers {\n // Shim of Stage 4 Promise.withResolvers proposal\n let resolve: (value: T | PromiseLike) => void\n let reject: (reason: any) => void\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return { resolve: resolve!, reject: reject!, promise }\n}\n"],"names":["createPromiseWithResolvers","resolve","reject","promise","Promise","res","rej"],"mappings":";;;+BAAgBA,8BAAAA;;;eAAAA;;;AAAT,SAASA;IACd,iDAAiD;IACjD,IAAIC;IACJ,IAAIC;IACJ,MAAMC,UAAU,IAAIC,QAAW,CAACC,KAAKC;QACnCL,UAAUI;QACVH,SAASI;IACX;IACA,OAAO;QAAEL,SAASA;QAAUC,QAAQA;QAASC;IAAQ;AACvD","ignoreList":[0]}}, + {"offset": {"line": 13072, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/app-render/staged-rendering.ts"],"sourcesContent":["import { InvariantError } from '../../shared/lib/invariant-error'\nimport { createPromiseWithResolvers } from '../../shared/lib/promise-with-resolvers'\n\nexport enum RenderStage {\n Static = 1,\n Runtime = 2,\n Dynamic = 3,\n}\n\nexport type NonStaticRenderStage = RenderStage.Runtime | RenderStage.Dynamic\n\nexport class StagedRenderingController {\n currentStage: RenderStage = RenderStage.Static\n\n private runtimeStagePromise = createPromiseWithResolvers()\n private dynamicStagePromise = createPromiseWithResolvers()\n\n constructor(private abortSignal: AbortSignal | null = null) {\n if (abortSignal) {\n abortSignal.addEventListener(\n 'abort',\n () => {\n const { reason } = abortSignal\n if (this.currentStage < RenderStage.Runtime) {\n this.runtimeStagePromise.promise.catch(ignoreReject) // avoid unhandled rejections\n this.runtimeStagePromise.reject(reason)\n }\n if (this.currentStage < RenderStage.Dynamic) {\n this.dynamicStagePromise.promise.catch(ignoreReject) // avoid unhandled rejections\n this.dynamicStagePromise.reject(reason)\n }\n },\n { once: true }\n )\n }\n }\n\n advanceStage(stage: NonStaticRenderStage) {\n // If we're already at the target stage or beyond, do nothing.\n // (this can happen e.g. if sync IO advanced us to the dynamic stage)\n if (this.currentStage >= stage) {\n return\n }\n this.currentStage = stage\n // Note that we might be going directly from Static to Dynamic,\n // so we need to resolve the runtime stage as well.\n if (stage >= RenderStage.Runtime) {\n this.runtimeStagePromise.resolve()\n }\n if (stage >= RenderStage.Dynamic) {\n this.dynamicStagePromise.resolve()\n }\n }\n\n private getStagePromise(stage: NonStaticRenderStage): Promise {\n switch (stage) {\n case RenderStage.Runtime: {\n return this.runtimeStagePromise.promise\n }\n case RenderStage.Dynamic: {\n return this.dynamicStagePromise.promise\n }\n default: {\n stage satisfies never\n throw new InvariantError(`Invalid render stage: ${stage}`)\n }\n }\n }\n\n waitForStage(stage: NonStaticRenderStage) {\n return this.getStagePromise(stage)\n }\n\n delayUntilStage(\n stage: NonStaticRenderStage,\n displayName: string | undefined,\n resolvedValue: T\n ) {\n const ioTriggerPromise = this.getStagePromise(stage)\n\n const promise = makeDevtoolsIOPromiseFromIOTrigger(\n ioTriggerPromise,\n displayName,\n resolvedValue\n )\n\n // Analogously to `makeHangingPromise`, we might reject this promise if the signal is invoked.\n // (e.g. in the case where we don't want want the render to proceed to the dynamic stage and abort it).\n // We shouldn't consider this an unhandled rejection, so we attach a noop catch handler here to suppress this warning.\n if (this.abortSignal) {\n promise.catch(ignoreReject)\n }\n return promise\n }\n}\n\nfunction ignoreReject() {}\n\n// TODO(restart-on-cache-miss): the layering of `delayUntilStage`,\n// `makeDevtoolsIOPromiseFromIOTrigger` and and `makeDevtoolsIOAwarePromise`\n// is confusing, we should clean it up.\nfunction makeDevtoolsIOPromiseFromIOTrigger(\n ioTrigger: Promise,\n displayName: string | undefined,\n resolvedValue: T\n): Promise {\n // If we create a `new Promise` and give it a displayName\n // (with no userspace code above us in the stack)\n // React Devtools will use it as the IO cause when determining \"suspended by\".\n // In particular, it should shadow any inner IO that resolved/rejected the promise\n // (in case of staged rendering, this will be the `setTimeout` that triggers the relevant stage)\n const promise = new Promise((resolve, reject) => {\n ioTrigger.then(resolve.bind(null, resolvedValue), reject)\n })\n if (displayName !== undefined) {\n // @ts-expect-error\n promise.displayName = displayName\n }\n return promise\n}\n"],"names":["RenderStage","StagedRenderingController","constructor","abortSignal","currentStage","runtimeStagePromise","createPromiseWithResolvers","dynamicStagePromise","addEventListener","reason","promise","catch","ignoreReject","reject","once","advanceStage","stage","resolve","getStagePromise","InvariantError","waitForStage","delayUntilStage","displayName","resolvedValue","ioTriggerPromise","makeDevtoolsIOPromiseFromIOTrigger","ioTrigger","Promise","then","bind","undefined"],"mappings":";;;;;;;;;;;;;;IAGYA,WAAW,EAAA;eAAXA;;IAQCC,yBAAyB,EAAA;eAAzBA;;;gCAXkB;sCACY;AAEpC,IAAKD,cAAAA,WAAAA,GAAAA,SAAAA,WAAAA;;;;WAAAA;;AAQL,MAAMC;IAMXC,YAAoBC,cAAkC,IAAI,CAAE;aAAxCA,WAAAA,GAAAA;aALpBC,YAAAA,GAAAA;aAEQC,mBAAAA,GAAsBC,CAAAA,GAAAA,sBAAAA,0BAA0B;aAChDC,mBAAAA,GAAsBD,CAAAA,GAAAA,sBAAAA,0BAA0B;QAGtD,IAAIH,aAAa;YACfA,YAAYK,gBAAgB,CAC1B,SACA;gBACE,MAAM,EAAEC,MAAM,EAAE,GAAGN;gBACnB,IAAI,IAAI,CAACC,YAAY,GAAA,GAAwB;oBAC3C,IAAI,CAACC,mBAAmB,CAACK,OAAO,CAACC,KAAK,CAACC,cAAc,6BAA6B;;oBAClF,IAAI,CAACP,mBAAmB,CAACQ,MAAM,CAACJ;gBAClC;gBACA,IAAI,IAAI,CAACL,YAAY,GAAA,GAAwB;oBAC3C,IAAI,CAACG,mBAAmB,CAACG,OAAO,CAACC,KAAK,CAACC,cAAc,6BAA6B;;oBAClF,IAAI,CAACL,mBAAmB,CAACM,MAAM,CAACJ;gBAClC;YACF,GACA;gBAAEK,MAAM;YAAK;QAEjB;IACF;IAEAC,aAAaC,KAA2B,EAAE;QACxC,8DAA8D;QAC9D,qEAAqE;QACrE,IAAI,IAAI,CAACZ,YAAY,IAAIY,OAAO;YAC9B;QACF;QACA,IAAI,CAACZ,YAAY,GAAGY;QACpB,+DAA+D;QAC/D,mDAAmD;QACnD,IAAIA,SAAAA,GAA8B;YAChC,IAAI,CAACX,mBAAmB,CAACY,OAAO;QAClC;QACA,IAAID,SAAAA,GAA8B;YAChC,IAAI,CAACT,mBAAmB,CAACU,OAAO;QAClC;IACF;IAEQC,gBAAgBF,KAA2B,EAAiB;QAClE,OAAQA;YACN,KAAA;gBAA0B;oBACxB,OAAO,IAAI,CAACX,mBAAmB,CAACK,OAAO;gBACzC;YACA,KAAA;gBAA0B;oBACxB,OAAO,IAAI,CAACH,mBAAmB,CAACG,OAAO;gBACzC;YACA;gBAAS;oBACPM;oBACA,MAAM,OAAA,cAAoD,CAApD,IAAIG,gBAAAA,cAAc,CAAC,CAAC,sBAAsB,EAAEH,OAAO,GAAnD,qBAAA;+BAAA;oCAAA;sCAAA;oBAAmD;gBAC3D;QACF;IACF;IAEAI,aAAaJ,KAA2B,EAAE;QACxC,OAAO,IAAI,CAACE,eAAe,CAACF;IAC9B;IAEAK,gBACEL,KAA2B,EAC3BM,WAA+B,EAC/BC,aAAgB,EAChB;QACA,MAAMC,mBAAmB,IAAI,CAACN,eAAe,CAACF;QAE9C,MAAMN,UAAUe,mCACdD,kBACAF,aACAC;QAGF,8FAA8F;QAC9F,uGAAuG;QACvG,sHAAsH;QACtH,IAAI,IAAI,CAACpB,WAAW,EAAE;YACpBO,QAAQC,KAAK,CAACC;QAChB;QACA,OAAOF;IACT;AACF;AAEA,SAASE,gBAAgB;AAEzB,kEAAkE;AAClE,4EAA4E;AAC5E,uCAAuC;AACvC,SAASa,mCACPC,SAAuB,EACvBJ,WAA+B,EAC/BC,aAAgB;IAEhB,yDAAyD;IACzD,iDAAiD;IACjD,8EAA8E;IAC9E,kFAAkF;IAClF,gGAAgG;IAChG,MAAMb,UAAU,IAAIiB,QAAW,CAACV,SAASJ;QACvCa,UAAUE,IAAI,CAACX,QAAQY,IAAI,CAAC,MAAMN,gBAAgBV;IACpD;IACA,IAAIS,gBAAgBQ,WAAW;QAC7B,mBAAmB;QACnBpB,QAAQY,WAAW,GAAGA;IACxB;IACA,OAAOZ;AACT","ignoreList":[0]}}, + {"offset": {"line": 13200, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/app-render/dynamic-rendering.ts"],"sourcesContent":["/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\n */\n\nimport type { WorkStore } from '../app-render/work-async-storage.external'\nimport type {\n WorkUnitStore,\n RequestStore,\n PrerenderStoreLegacy,\n PrerenderStoreModern,\n PrerenderStoreModernRuntime,\n} from '../app-render/work-unit-async-storage.external'\n\n// Once postpone is in stable we should switch to importing the postpone export directly\nimport React from 'react'\n\nimport { DynamicServerError } from '../../client/components/hooks-server-context'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n getRuntimeStagePromise,\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n} from './work-unit-async-storage.external'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport { makeHangingPromise } from '../dynamic-rendering-utils'\nimport {\n METADATA_BOUNDARY_NAME,\n VIEWPORT_BOUNDARY_NAME,\n OUTLET_BOUNDARY_NAME,\n ROOT_LAYOUT_BOUNDARY_NAME,\n} from '../../lib/framework/boundary-constants'\nimport { scheduleOnNextTick } from '../../lib/scheduler'\nimport { BailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { RenderStage } from './staged-rendering'\n\nconst hasPostpone = typeof React.unstable_postpone === 'function'\n\nexport type DynamicAccess = {\n /**\n * If debugging, this will contain the stack trace of where the dynamic access\n * occurred. This is used to provide more information to the user about why\n * their page is being rendered dynamically.\n */\n stack?: string\n\n /**\n * The expression that was accessed dynamically.\n */\n expression: string\n}\n\n// Stores dynamic reasons used during an RSC render.\nexport type DynamicTrackingState = {\n /**\n * When true, stack information will also be tracked during dynamic access.\n */\n readonly isDebugDynamicAccesses: boolean | undefined\n\n /**\n * The dynamic accesses that occurred during the render.\n */\n readonly dynamicAccesses: Array\n\n syncDynamicErrorWithStack: null | Error\n}\n\n// Stores dynamic reasons used during an SSR render.\nexport type DynamicValidationState = {\n hasSuspenseAboveBody: boolean\n hasDynamicMetadata: boolean\n hasDynamicViewport: boolean\n hasAllowedDynamic: boolean\n dynamicErrors: Array\n}\n\nexport function createDynamicTrackingState(\n isDebugDynamicAccesses: boolean | undefined\n): DynamicTrackingState {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicErrorWithStack: null,\n }\n}\n\nexport function createDynamicValidationState(): DynamicValidationState {\n return {\n hasSuspenseAboveBody: false,\n hasDynamicMetadata: false,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: [],\n }\n}\n\nexport function getFirstDynamicReason(\n trackingState: DynamicTrackingState\n): undefined | string {\n return trackingState.dynamicAccesses[0]?.expression\n}\n\n/**\n * This function communicates that the current scope should be treated as dynamic.\n *\n * In most cases this function is a no-op but if called during\n * a PPR prerender it will postpone the current sub-tree and calling\n * it during a normal prerender will cause the entire prerender to abort\n */\nexport function markCurrentScopeAsDynamic(\n store: WorkStore,\n workUnitStore: undefined | Exclude,\n expression: string\n): void {\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'request':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return\n\n if (store.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-ppr':\n return postponeWithTracking(\n store.route,\n expression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n workUnitStore.revalidate = 0\n\n // We aren't prerendering, but we are generating a static page. We need\n // to bail out of static generation.\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n case 'request':\n if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\n/**\n * This function is meant to be used when prerendering without cacheComponents or PPR.\n * When called during a build it will cause Next.js to consider the route as dynamic.\n *\n * @internal\n */\nexport function throwToInterruptStaticGeneration(\n expression: string,\n store: WorkStore,\n prerenderStore: PrerenderStoreLegacy\n): never {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n\n prerenderStore.revalidate = 0\n\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n}\n\n/**\n * This function should be used to track whether something dynamic happened even when\n * we are in a dynamic render. This is useful for Dev where all renders are dynamic but\n * we still track whether dynamic APIs were accessed for helpful messaging\n *\n * @internal\n */\nexport function trackDynamicDataInDynamicRender(workUnitStore: WorkUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'prerender-client':\n break\n case 'request':\n if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n default:\n workUnitStore satisfies never\n }\n}\n\nfunction abortOnSynchronousDynamicDataAccess(\n route: string,\n expression: string,\n prerenderStore: PrerenderStoreModern\n): void {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n\n const error = createPrerenderInterruptedError(reason)\n\n prerenderStore.controller.abort(error)\n\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nexport function abortOnSynchronousPlatformIOAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): void {\n const dynamicTracking = prerenderStore.dynamicTracking\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\n}\n\nexport function trackSynchronousPlatformIOAccessInDev(\n requestStore: RequestStore\n): void {\n // We don't actually have a controller to abort but we do the semantic equivalent by\n // advancing the request store out of the prerender stage\n if (requestStore.stagedRendering) {\n // TODO: error for sync IO in the runtime stage\n // (which is not currently covered by the validation render in `spawnDynamicValidationInDev`)\n requestStore.stagedRendering.advanceStage(RenderStage.Dynamic)\n }\n}\n\n/**\n * use this function when prerendering with cacheComponents. If we are doing a\n * prospective prerender we don't actually abort because we want to discover\n * all caches for the shell. If this is the actual prerender we do abort.\n *\n * This function accepts a prerenderStore but the caller should ensure we're\n * actually running in cacheComponents mode.\n *\n * @internal\n */\nexport function abortAndThrowOnSynchronousRequestDataAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): never {\n const prerenderSignal = prerenderStore.controller.signal\n if (prerenderSignal.aborted === false) {\n // TODO it would be better to move this aborted check into the callsite so we can avoid making\n // the error object when it isn't relevant to the aborting of the prerender however\n // since we need the throw semantics regardless of whether we abort it is easier to land\n // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer\n // to ideal implementation\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\n }\n throw createPrerenderInterruptedError(\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n )\n}\n\n/**\n * This component will call `React.postpone` that throws the postponed error.\n */\ntype PostponeProps = {\n reason: string\n route: string\n}\nexport function Postpone({ reason, route }: PostponeProps): never {\n const prerenderStore = workUnitAsyncStorage.getStore()\n const dynamicTracking =\n prerenderStore && prerenderStore.type === 'prerender-ppr'\n ? prerenderStore.dynamicTracking\n : null\n postponeWithTracking(route, reason, dynamicTracking)\n}\n\nexport function postponeWithTracking(\n route: string,\n expression: string,\n dynamicTracking: null | DynamicTrackingState\n): never {\n assertPostpone()\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n\n React.unstable_postpone(createPostponeReason(route, expression))\n}\n\nfunction createPostponeReason(route: string, expression: string) {\n return (\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` +\n `React throws this special object to indicate where. It should not be caught by ` +\n `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`\n )\n}\n\nexport function isDynamicPostpone(err: unknown) {\n if (\n typeof err === 'object' &&\n err !== null &&\n typeof (err as any).message === 'string'\n ) {\n return isDynamicPostponeReason((err as any).message)\n }\n return false\n}\n\nfunction isDynamicPostponeReason(reason: string) {\n return (\n reason.includes(\n 'needs to bail out of prerendering at this point because it used'\n ) &&\n reason.includes(\n 'Learn more: https://nextjs.org/docs/messages/ppr-caught-error'\n )\n )\n}\n\nif (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {\n throw new Error(\n 'Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'\n )\n}\n\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED'\n\nfunction createPrerenderInterruptedError(message: string): Error {\n const error = new Error(message)\n ;(error as any).digest = NEXT_PRERENDER_INTERRUPTED\n return error\n}\n\ntype DigestError = Error & {\n digest: string\n}\n\nexport function isPrerenderInterruptedError(\n error: unknown\n): error is DigestError {\n return (\n typeof error === 'object' &&\n error !== null &&\n (error as any).digest === NEXT_PRERENDER_INTERRUPTED &&\n 'name' in error &&\n 'message' in error &&\n error instanceof Error\n )\n}\n\nexport function accessedDynamicData(\n dynamicAccesses: Array\n): boolean {\n return dynamicAccesses.length > 0\n}\n\nexport function consumeDynamicAccess(\n serverDynamic: DynamicTrackingState,\n clientDynamic: DynamicTrackingState\n): DynamicTrackingState['dynamicAccesses'] {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses)\n return serverDynamic.dynamicAccesses\n}\n\nexport function formatDynamicAPIAccesses(\n dynamicAccesses: Array\n): string[] {\n return dynamicAccesses\n .filter(\n (access): access is Required =>\n typeof access.stack === 'string' && access.stack.length > 0\n )\n .map(({ expression, stack }) => {\n stack = stack\n .split('\\n')\n // Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4)\n .filter((line) => {\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false\n }\n\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' ()')) {\n return false\n }\n\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false\n }\n\n return true\n })\n .join('\\n')\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`\n })\n}\n\nfunction assertPostpone() {\n if (!hasPostpone) {\n throw new Error(\n `Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`\n )\n }\n}\n\n/**\n * This is a bit of a hack to allow us to abort a render using a Postpone instance instead of an Error which changes React's\n * abort semantics slightly.\n */\nexport function createRenderInBrowserAbortSignal(): AbortSignal {\n const controller = new AbortController()\n controller.abort(new BailoutToCSRError('Render in Browser'))\n return controller.signal\n}\n\n/**\n * In a prerender, we may end up with hanging Promises as inputs due them\n * stalling on connection() or because they're loading dynamic data. In that\n * case we need to abort the encoding of arguments since they'll never complete.\n */\nexport function createHangingInputAbortSignal(\n workUnitStore: WorkUnitStore\n): AbortSignal | undefined {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-runtime':\n const controller = new AbortController()\n\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If\n // the input we're waiting on is coming from another cache, we do want\n // to wait for it so that we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(() => {\n controller.abort()\n })\n } else {\n // Otherwise we're in the final render and we should already have all\n // our caches filled.\n // If the prerender uses stages, we have wait until the runtime stage,\n // at which point all runtime inputs will be resolved.\n // (otherwise, a runtime prerender might consider `cookies()` hanging\n // even though they'd resolve in the next task.)\n //\n // We might still be waiting on some microtasks so we\n // wait one tick before giving up. When we give up, we still want to\n // render the content of this cache as deeply as we can so that we can\n // suspend as deeply as possible in the tree or not at all if we don't\n // end up waiting for the input.\n const runtimeStagePromise = getRuntimeStagePromise(workUnitStore)\n if (runtimeStagePromise) {\n runtimeStagePromise.then(() =>\n scheduleOnNextTick(() => controller.abort())\n )\n } else {\n scheduleOnNextTick(() => controller.abort())\n }\n }\n\n return controller.signal\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n return undefined\n default:\n workUnitStore satisfies never\n }\n}\n\nexport function annotateDynamicAccess(\n expression: string,\n prerenderStore: PrerenderStoreModern\n) {\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nexport function useDynamicRouteParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workStore && workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-client':\n case 'prerender': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n\n if (fallbackParams && fallbackParams.size > 0) {\n // We are in a prerender with cacheComponents semantics. We are going to\n // hang here and never resolve. This will cause the currently\n // rendering component to effectively be a dynamic hole.\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n }\n break\n }\n case 'prerender-ppr': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n if (fallbackParams && fallbackParams.size > 0) {\n return postponeWithTracking(\n workStore.route,\n expression,\n workUnitStore.dynamicTracking\n )\n }\n break\n }\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'prerender-legacy':\n case 'request':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\nexport function useDynamicSearchParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (!workStore) {\n // We assume pages router context and just return\n return\n }\n\n if (!workUnitStore) {\n throwForMissingRequestStore(expression)\n }\n\n switch (workUnitStore.type) {\n case 'prerender-client': {\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n break\n }\n case 'prerender-legacy':\n case 'prerender-ppr': {\n if (workStore.forceStatic) {\n return\n }\n throw new BailoutToCSRError(expression)\n }\n case 'prerender':\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'unstable-cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'request':\n return\n default:\n workUnitStore satisfies never\n }\n}\n\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(\\)/\n\n// Common implicit body tags that React will treat as body when placed directly in html\nconst bodyAndImplicitTags =\n 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6'\n\n// Detects when RootLayoutBoundary (our framework marker component) appears\n// after Suspense in the component stack, indicating the root layout is wrapped\n// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.\n//\n// Example matches:\n// at Suspense ()\n// at __next_root_layout_boundary__ ()\n//\n// Or with other components in between (but not body/html/implicit-body):\n// at Suspense ()\n// at SomeComponent ()\n// at __next_root_layout_boundary__ ()\nconst hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(\n `\\\\n\\\\s+at Suspense \\\\(\\\\)(?:(?!\\\\n\\\\s+at (?:${bodyAndImplicitTags}) \\\\(\\\\))[\\\\s\\\\S])*?\\\\n\\\\s+at ${ROOT_LAYOUT_BOUNDARY_NAME} \\\\([^\\\\n]*\\\\)`\n)\n\nconst hasMetadataRegex = new RegExp(\n `\\\\n\\\\s+at ${METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasViewportRegex = new RegExp(\n `\\\\n\\\\s+at ${VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`)\n\nexport function trackAllowedDynamicAccess(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true\n return\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message =\n `Route \"${workStore.route}\": Uncached data was accessed outside of ` +\n '. This delays the entire page from rendering, resulting in a ' +\n 'slow user experience. Learn more: ' +\n 'https://nextjs.org/docs/messages/blocking-route'\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n */\nfunction createErrorWithComponentOrOwnerStack(\n message: string,\n componentStack: string\n) {\n const ownerStack =\n process.env.NODE_ENV !== 'production' && React.captureOwnerStack\n ? React.captureOwnerStack()\n : null\n\n const error = new Error(message)\n error.stack = error.name + ': ' + message + (ownerStack ?? componentStack)\n return error\n}\n\nexport enum PreludeState {\n Full = 0,\n Empty = 1,\n Errored = 2,\n}\n\nexport function logDisallowedDynamicError(\n workStore: WorkStore,\n error: Error\n): void {\n console.error(error)\n\n if (!workStore.dev) {\n if (workStore.hasReadableErrorStacks) {\n console.error(\n `To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.`\n )\n } else {\n console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:\n - Start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.\n - Rerun the production build with \\`next build --debug-prerender\\` to generate better stack traces.`)\n }\n }\n}\n\nexport function throwIfDisallowedDynamic(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState,\n serverDynamic: DynamicTrackingState\n): void {\n if (serverDynamic.syncDynamicErrorWithStack) {\n logDisallowedDynamicError(\n workStore,\n serverDynamic.syncDynamicErrorWithStack\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude !== PreludeState.Full) {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return\n }\n\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n for (let i = 0; i < dynamicErrors.length; i++) {\n logDisallowedDynamicError(workStore, dynamicErrors[i])\n }\n\n throw new StaticGenBailoutError()\n }\n\n // If we got this far then the only other thing that could be blocking\n // the root is dynamic Viewport. If this is dynamic then\n // you need to opt into that by adding a Suspense boundary above the body\n // to indicate your are ok with fully dynamic rendering.\n if (dynamicValidation.hasDynamicViewport) {\n console.error(\n `Route \"${workStore.route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude === PreludeState.Empty) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n console.error(\n `Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`\n )\n throw new StaticGenBailoutError()\n }\n } else {\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.hasDynamicMetadata\n ) {\n console.error(\n `Route \"${workStore.route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n )\n throw new StaticGenBailoutError()\n }\n }\n}\n\nexport function delayUntilRuntimeStage(\n prerenderStore: PrerenderStoreModernRuntime,\n result: Promise\n): Promise {\n if (prerenderStore.runtimeStagePromise) {\n return prerenderStore.runtimeStagePromise.then(() => result)\n }\n return result\n}\n"],"names":["Postpone","PreludeState","abortAndThrowOnSynchronousRequestDataAccess","abortOnSynchronousPlatformIOAccess","accessedDynamicData","annotateDynamicAccess","consumeDynamicAccess","createDynamicTrackingState","createDynamicValidationState","createHangingInputAbortSignal","createRenderInBrowserAbortSignal","delayUntilRuntimeStage","formatDynamicAPIAccesses","getFirstDynamicReason","isDynamicPostpone","isPrerenderInterruptedError","logDisallowedDynamicError","markCurrentScopeAsDynamic","postponeWithTracking","throwIfDisallowedDynamic","throwToInterruptStaticGeneration","trackAllowedDynamicAccess","trackDynamicDataInDynamicRender","trackSynchronousPlatformIOAccessInDev","useDynamicRouteParams","useDynamicSearchParams","hasPostpone","React","unstable_postpone","isDebugDynamicAccesses","dynamicAccesses","syncDynamicErrorWithStack","hasSuspenseAboveBody","hasDynamicMetadata","hasDynamicViewport","hasAllowedDynamic","dynamicErrors","trackingState","expression","store","workUnitStore","type","forceDynamic","forceStatic","dynamicShouldError","StaticGenBailoutError","route","dynamicTracking","revalidate","err","DynamicServerError","dynamicUsageDescription","dynamicUsageStack","stack","process","env","NODE_ENV","usedDynamic","prerenderStore","abortOnSynchronousDynamicDataAccess","reason","error","createPrerenderInterruptedError","controller","abort","push","Error","undefined","errorWithStack","requestStore","stagedRendering","advanceStage","RenderStage","Dynamic","prerenderSignal","signal","aborted","workUnitAsyncStorage","getStore","assertPostpone","createPostponeReason","message","isDynamicPostponeReason","includes","NEXT_PRERENDER_INTERRUPTED","digest","length","serverDynamic","clientDynamic","filter","access","map","split","slice","line","join","AbortController","BailoutToCSRError","cacheSignal","inputReady","then","runtimeStagePromise","getRuntimeStagePromise","scheduleOnNextTick","workStore","workAsyncStorage","fallbackParams","fallbackRouteParams","size","use","makeHangingPromise","renderSignal","InvariantError","throwForMissingRequestStore","hasSuspenseRegex","bodyAndImplicitTags","hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex","RegExp","ROOT_LAYOUT_BOUNDARY_NAME","hasMetadataRegex","METADATA_BOUNDARY_NAME","hasViewportRegex","VIEWPORT_BOUNDARY_NAME","hasOutletRegex","OUTLET_BOUNDARY_NAME","componentStack","dynamicValidation","test","createErrorWithComponentOrOwnerStack","ownerStack","captureOwnerStack","name","console","dev","hasReadableErrorStacks","prelude","i","result"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 13916, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/request/utils.ts"],"sourcesContent":["import { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport { afterTaskAsyncStorage } from '../app-render/after-task-async-storage.external'\nimport type { WorkStore } from '../app-render/work-async-storage.external'\n\nexport function throwWithStaticGenerationBailoutErrorWithDynamicError(\n route: string,\n expression: string\n): never {\n throw new StaticGenBailoutError(\n `Route ${route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n}\n\nexport function throwForSearchParamsAccessInUseCache(\n workStore: WorkStore,\n constructorOpt: Function\n): never {\n const error = new Error(\n `Route ${workStore.route} used \\`searchParams\\` inside \"use cache\". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \\`searchParams\\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n\n Error.captureStackTrace(error, constructorOpt)\n workStore.invalidDynamicUsageError ??= error\n\n throw error\n}\n\nexport function isRequestAPICallableInsideAfter() {\n const afterTaskStore = afterTaskAsyncStorage.getStore()\n return afterTaskStore?.rootTaskSpawnPhase === 'action'\n}\n"],"names":["isRequestAPICallableInsideAfter","throwForSearchParamsAccessInUseCache","throwWithStaticGenerationBailoutErrorWithDynamicError","route","expression","StaticGenBailoutError","workStore","constructorOpt","error","Error","captureStackTrace","invalidDynamicUsageError","afterTaskStore","afterTaskAsyncStorage","getStore","rootTaskSpawnPhase"],"mappings":";;;;;;;;;;;;;;;IA2BgBA,+BAA+B,EAAA;eAA/BA;;IAdAC,oCAAoC,EAAA;eAApCA;;IATAC,qDAAqD,EAAA;eAArDA;;;yCAJsB;+CACA;AAG/B,SAASA,sDACdC,KAAa,EACbC,UAAkB;IAElB,MAAM,OAAA,cAEL,CAFK,IAAIC,yBAAAA,qBAAqB,CAC7B,CAAC,MAAM,EAAEF,MAAM,4EAA4E,EAAEC,WAAW,0HAA0H,CAAC,GAD/N,qBAAA;eAAA;oBAAA;sBAAA;IAEN;AACF;AAEO,SAASH,qCACdK,SAAoB,EACpBC,cAAwB;IAExB,MAAMC,QAAQ,OAAA,cAEb,CAFa,IAAIC,MAChB,CAAC,MAAM,EAAEH,UAAUH,KAAK,CAAC,2XAA2X,CAAC,GADzY,qBAAA;eAAA;oBAAA;sBAAA;IAEd;IAEAM,MAAMC,iBAAiB,CAACF,OAAOD;IAC/BD,UAAUK,wBAAwB,KAAKH;IAEvC,MAAMA;AACR;AAEO,SAASR;IACd,MAAMY,iBAAiBC,+BAAAA,qBAAqB,CAACC,QAAQ;IACrD,OAAOF,CAAAA,kBAAAA,OAAAA,KAAAA,IAAAA,eAAgBG,kBAAkB,MAAK;AAChD","ignoreList":[0]}}, + {"offset": {"line": 13968, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/request/connection.ts"],"sourcesContent":["import { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport {\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n} from '../app-render/work-unit-async-storage.external'\nimport {\n postponeWithTracking,\n throwToInterruptStaticGeneration,\n trackDynamicDataInDynamicRender,\n} from '../app-render/dynamic-rendering'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n makeHangingPromise,\n makeDevtoolsIOAwarePromise,\n} from '../dynamic-rendering-utils'\nimport { isRequestAPICallableInsideAfter } from './utils'\nimport { RenderStage } from '../app-render/staged-rendering'\n\n/**\n * This function allows you to indicate that you require an actual user Request before continuing.\n *\n * During prerendering it will never resolve and during rendering it resolves immediately.\n */\nexport function connection(): Promise {\n const callingExpression = 'connection'\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (workStore) {\n if (\n workUnitStore &&\n workUnitStore.phase === 'after' &&\n !isRequestAPICallableInsideAfter()\n ) {\n throw new Error(\n `Route ${workStore.route} used \\`connection()\\` inside \\`after()\\`. The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual Request, but \\`after()\\` executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`\n )\n }\n\n if (workStore.forceStatic) {\n // When using forceStatic, we override all other logic and always just\n // return a resolving promise without tracking.\n return Promise.resolve(undefined)\n }\n\n if (workStore.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`connection()\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache': {\n const error = new Error(\n `Route ${workStore.route} used \\`connection()\\` inside \"use cache\". The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual request, but caches must be able to be produced before a request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n Error.captureStackTrace(error, connection)\n workStore.invalidDynamicUsageError ??= error\n throw error\n }\n case 'private-cache': {\n // It might not be intuitive to throw for private caches as well, but\n // we don't consider runtime prefetches as \"actual requests\" (in the\n // navigation sense), despite allowing them to read cookies.\n const error = new Error(\n `Route ${workStore.route} used \\`connection()\\` inside \"use cache: private\". The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual navigation request, but caches must be able to be produced before a navigation request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n Error.captureStackTrace(error, connection)\n workStore.invalidDynamicUsageError ??= error\n throw error\n }\n case 'unstable-cache':\n throw new Error(\n `Route ${workStore.route} used \\`connection()\\` inside a function cached with \\`unstable_cache()\\`. The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\n )\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n // We return a promise that never resolves to allow the prerender to\n // stall at this point.\n return makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n '`connection()`'\n )\n case 'prerender-ppr':\n // We use React's postpone API to interrupt rendering here to create a\n // dynamic hole\n return postponeWithTracking(\n workStore.route,\n 'connection',\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n // We throw an error here to interrupt prerendering to mark the route\n // as dynamic\n return throwToInterruptStaticGeneration(\n 'connection',\n workStore,\n workUnitStore\n )\n case 'request':\n trackDynamicDataInDynamicRender(workUnitStore)\n if (process.env.NODE_ENV === 'development') {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n if (workUnitStore.asyncApiPromises) {\n return workUnitStore.asyncApiPromises.connection\n }\n return makeDevtoolsIOAwarePromise(\n undefined,\n workUnitStore,\n RenderStage.Dynamic\n )\n } else {\n return Promise.resolve(undefined)\n }\n default:\n workUnitStore satisfies never\n }\n }\n }\n\n // If we end up here, there was no work store or work unit store present.\n throwForMissingRequestStore(callingExpression)\n}\n"],"names":["connection","callingExpression","workStore","workAsyncStorage","getStore","workUnitStore","workUnitAsyncStorage","phase","isRequestAPICallableInsideAfter","Error","route","forceStatic","Promise","resolve","undefined","dynamicShouldError","StaticGenBailoutError","type","error","captureStackTrace","invalidDynamicUsageError","makeHangingPromise","renderSignal","postponeWithTracking","dynamicTracking","throwToInterruptStaticGeneration","trackDynamicDataInDynamicRender","process","env","NODE_ENV","asyncApiPromises","makeDevtoolsIOAwarePromise","RenderStage","Dynamic","throwForMissingRequestStore"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 14078, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/server.js"],"sourcesContent":["const serverExports = {\n NextRequest: require('next/dist/server/web/spec-extension/request')\n .NextRequest,\n NextResponse: require('next/dist/server/web/spec-extension/response')\n .NextResponse,\n ImageResponse: require('next/dist/server/web/spec-extension/image-response')\n .ImageResponse,\n userAgentFromString: require('next/dist/server/web/spec-extension/user-agent')\n .userAgentFromString,\n userAgent: require('next/dist/server/web/spec-extension/user-agent')\n .userAgent,\n URLPattern: require('next/dist/server/web/spec-extension/url-pattern')\n .URLPattern,\n after: require('next/dist/server/after').after,\n connection: require('next/dist/server/request/connection').connection,\n}\n\n// https://nodejs.org/api/esm.html#commonjs-namespaces\n// When importing CommonJS modules, the module.exports object is provided as the default export\nmodule.exports = serverExports\n\n// make import { xxx } from 'next/server' work\nexports.NextRequest = serverExports.NextRequest\nexports.NextResponse = serverExports.NextResponse\nexports.ImageResponse = serverExports.ImageResponse\nexports.userAgentFromString = serverExports.userAgentFromString\nexports.userAgent = serverExports.userAgent\nexports.URLPattern = serverExports.URLPattern\nexports.after = serverExports.after\nexports.connection = serverExports.connection\n"],"names":[],"mappings":"AAAA,MAAM,gBAAgB;IACpB,aAAa,0OACV,WAAW;IACd,cAAc,2OACX,YAAY;IACf,eAAe,iPACZ,aAAa;IAChB,qBAAqB,6OAClB,mBAAmB;IACtB,WAAW,6OACR,SAAS;IACZ,YAAY,8OACT,UAAU;IACb,OAAO,2NAAkC,KAAK;IAC9C,YAAY,kOAA+C,UAAU;AACvE;AAEA,sDAAsD;AACtD,+FAA+F;AAC/F,OAAO,OAAO,GAAG;AAEjB,8CAA8C;AAC9C,QAAQ,WAAW,GAAG,cAAc,WAAW;AAC/C,QAAQ,YAAY,GAAG,cAAc,YAAY;AACjD,QAAQ,aAAa,GAAG,cAAc,aAAa;AACnD,QAAQ,mBAAmB,GAAG,cAAc,mBAAmB;AAC/D,QAAQ,SAAS,GAAG,cAAc,SAAS;AAC3C,QAAQ,UAAU,GAAG,cAAc,UAAU;AAC7C,QAAQ,KAAK,GAAG,cAAc,KAAK;AACnC,QAAQ,UAAU,GAAG,cAAc,UAAU","ignoreList":[0]}}, + {"offset": {"line": 14104, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/spec-extension/adapters/request-cookies.ts"],"sourcesContent":["import { RequestCookies } from '../cookies'\n\nimport { ResponseCookies } from '../cookies'\nimport { ReflectAdapter } from './reflect'\nimport { workAsyncStorage } from '../../../app-render/work-async-storage.external'\nimport type { RequestStore } from '../../../app-render/work-unit-async-storage.external'\n\n/**\n * @internal\n */\nexport class ReadonlyRequestCookiesError extends Error {\n constructor() {\n super(\n 'Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options'\n )\n }\n\n public static callable() {\n throw new ReadonlyRequestCookiesError()\n }\n}\n\n// We use this to type some APIs but we don't construct instances directly\nexport type { ResponseCookies }\n\n// The `cookies()` API is a mix of request and response cookies. For `.get()` methods,\n// we want to return the request cookie if it exists. For mutative methods like `.set()`,\n// we want to return the response cookie.\nexport type ReadonlyRequestCookies = Omit<\n RequestCookies,\n 'set' | 'clear' | 'delete'\n> &\n Pick\n\nexport class RequestCookiesAdapter {\n public static seal(cookies: RequestCookies): ReadonlyRequestCookies {\n return new Proxy(cookies as any, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'clear':\n case 'delete':\n case 'set':\n return ReadonlyRequestCookiesError.callable\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n }\n}\n\nconst SYMBOL_MODIFY_COOKIE_VALUES = Symbol.for('next.mutated.cookies')\n\nexport function getModifiedCookieValues(\n cookies: ResponseCookies\n): ResponseCookie[] {\n const modified: ResponseCookie[] | undefined = (cookies as unknown as any)[\n SYMBOL_MODIFY_COOKIE_VALUES\n ]\n if (!modified || !Array.isArray(modified) || modified.length === 0) {\n return []\n }\n\n return modified\n}\n\ntype SetCookieArgs =\n | [key: string, value: string, cookie?: Partial]\n | [options: ResponseCookie]\n\nexport function appendMutableCookies(\n headers: Headers,\n mutableCookies: ResponseCookies\n): boolean {\n const modifiedCookieValues = getModifiedCookieValues(mutableCookies)\n if (modifiedCookieValues.length === 0) {\n return false\n }\n\n // Return a new response that extends the response with\n // the modified cookies as fallbacks. `res` cookies\n // will still take precedence.\n const resCookies = new ResponseCookies(headers)\n const returnedCookies = resCookies.getAll()\n\n // Set the modified cookies as fallbacks.\n for (const cookie of modifiedCookieValues) {\n resCookies.set(cookie)\n }\n\n // Set the original cookies as the final values.\n for (const cookie of returnedCookies) {\n resCookies.set(cookie)\n }\n\n return true\n}\n\ntype ResponseCookie = NonNullable<\n ReturnType['get']>\n>\n\nexport class MutableRequestCookiesAdapter {\n public static wrap(\n cookies: RequestCookies,\n onUpdateCookies?: (cookies: string[]) => void\n ): ResponseCookies {\n const responseCookies = new ResponseCookies(new Headers())\n for (const cookie of cookies.getAll()) {\n responseCookies.set(cookie)\n }\n\n let modifiedValues: ResponseCookie[] = []\n const modifiedCookies = new Set()\n const updateResponseCookies = () => {\n // TODO-APP: change method of getting workStore\n const workStore = workAsyncStorage.getStore()\n if (workStore) {\n workStore.pathWasRevalidated = true\n }\n\n const allCookies = responseCookies.getAll()\n modifiedValues = allCookies.filter((c) => modifiedCookies.has(c.name))\n if (onUpdateCookies) {\n const serializedCookies: string[] = []\n for (const cookie of modifiedValues) {\n const tempCookies = new ResponseCookies(new Headers())\n tempCookies.set(cookie)\n serializedCookies.push(tempCookies.toString())\n }\n\n onUpdateCookies(serializedCookies)\n }\n }\n\n const wrappedCookies = new Proxy(responseCookies, {\n get(target, prop, receiver) {\n switch (prop) {\n // A special symbol to get the modified cookie values\n case SYMBOL_MODIFY_COOKIE_VALUES:\n return modifiedValues\n\n // TODO: Throw error if trying to set a cookie after the response\n // headers have been set.\n case 'delete':\n return function (...args: [string] | [ResponseCookie]) {\n modifiedCookies.add(\n typeof args[0] === 'string' ? args[0] : args[0].name\n )\n try {\n target.delete(...args)\n return wrappedCookies\n } finally {\n updateResponseCookies()\n }\n }\n case 'set':\n return function (...args: SetCookieArgs) {\n modifiedCookies.add(\n typeof args[0] === 'string' ? args[0] : args[0].name\n )\n try {\n target.set(...args)\n return wrappedCookies\n } finally {\n updateResponseCookies()\n }\n }\n\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n\n return wrappedCookies\n }\n}\n\nexport function createCookiesWithMutableAccessCheck(\n requestStore: RequestStore\n): ResponseCookies {\n const wrappedCookies = new Proxy(requestStore.mutableCookies, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'delete':\n return function (...args: [string] | [ResponseCookie]) {\n ensureCookiesAreStillMutable(requestStore, 'cookies().delete')\n target.delete(...args)\n return wrappedCookies\n }\n case 'set':\n return function (...args: SetCookieArgs) {\n ensureCookiesAreStillMutable(requestStore, 'cookies().set')\n target.set(...args)\n return wrappedCookies\n }\n\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n return wrappedCookies\n}\n\nexport function areCookiesMutableInCurrentPhase(requestStore: RequestStore) {\n return requestStore.phase === 'action'\n}\n\n/** Ensure that cookies() starts throwing on mutation\n * if we changed phases and can no longer mutate.\n *\n * This can happen when going:\n * 'render' -> 'after'\n * 'action' -> 'render'\n * */\nfunction ensureCookiesAreStillMutable(\n requestStore: RequestStore,\n _callingExpression: string\n) {\n if (!areCookiesMutableInCurrentPhase(requestStore)) {\n // TODO: maybe we can give a more precise error message based on callingExpression?\n throw new ReadonlyRequestCookiesError()\n }\n}\n\nexport function responseCookiesToRequestCookies(\n responseCookies: ResponseCookies\n): RequestCookies {\n const requestCookies = new RequestCookies(new Headers())\n for (const cookie of responseCookies.getAll()) {\n requestCookies.set(cookie)\n }\n return requestCookies\n}\n"],"names":["MutableRequestCookiesAdapter","ReadonlyRequestCookiesError","RequestCookiesAdapter","appendMutableCookies","areCookiesMutableInCurrentPhase","createCookiesWithMutableAccessCheck","getModifiedCookieValues","responseCookiesToRequestCookies","Error","constructor","callable","seal","cookies","Proxy","get","target","prop","receiver","ReflectAdapter","SYMBOL_MODIFY_COOKIE_VALUES","Symbol","for","modified","Array","isArray","length","headers","mutableCookies","modifiedCookieValues","resCookies","ResponseCookies","returnedCookies","getAll","cookie","set","wrap","onUpdateCookies","responseCookies","Headers","modifiedValues","modifiedCookies","Set","updateResponseCookies","workStore","workAsyncStorage","getStore","pathWasRevalidated","allCookies","filter","c","has","name","serializedCookies","tempCookies","push","toString","wrappedCookies","args","add","delete","requestStore","ensureCookiesAreStillMutable","phase","_callingExpression","requestCookies","RequestCookies"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 14315, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/create-deduped-by-callsite-server-error-logger.ts"],"sourcesContent":["import * as React from 'react'\n\nconst errorRef: { current: null | Error } = { current: null }\n\n// React.cache is currently only available in canary/experimental React channels.\nconst cache =\n typeof React.cache === 'function'\n ? React.cache\n : (fn: (key: unknown) => void) => fn\n\n// When Cache Components is enabled, we record these as errors so that they\n// are captured by the dev overlay as it's more critical to fix these\n// when enabled.\nconst logErrorOrWarn = process.env.__NEXT_CACHE_COMPONENTS\n ? console.error\n : console.warn\n\n// We don't want to dedupe across requests.\n// The developer might've just attempted to fix the warning so we should warn again if it still happens.\nconst flushCurrentErrorIfNew = cache(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- cache key\n (key: unknown) => {\n try {\n logErrorOrWarn(errorRef.current)\n } finally {\n errorRef.current = null\n }\n }\n)\n\n/**\n * Creates a function that logs an error message that is deduped by the userland\n * callsite.\n * This requires no indirection between the call of this function and the userland\n * callsite i.e. there's only a single library frame above this.\n * Do not use on the Client where sourcemaps and ignore listing might be enabled.\n * Only use that for warnings need a fix independent of the callstack.\n *\n * @param getMessage\n * @returns\n */\nexport function createDedupedByCallsiteServerErrorLoggerDev(\n getMessage: (...args: Args) => Error\n) {\n return function logDedupedError(...args: Args) {\n const message = getMessage(...args)\n\n if (process.env.NODE_ENV !== 'production') {\n const callStackFrames = new Error().stack?.split('\\n')\n if (callStackFrames === undefined || callStackFrames.length < 4) {\n logErrorOrWarn(message)\n } else {\n // Error:\n // logDedupedError\n // asyncApiBeingAccessedSynchronously\n // \n // TODO: This breaks if sourcemaps with ignore lists are enabled.\n const key = callStackFrames[4]\n errorRef.current = message\n flushCurrentErrorIfNew(key)\n }\n } else {\n logErrorOrWarn(message)\n }\n }\n}\n"],"names":["createDedupedByCallsiteServerErrorLoggerDev","errorRef","current","cache","React","fn","logErrorOrWarn","process","env","__NEXT_CACHE_COMPONENTS","console","error","warn","flushCurrentErrorIfNew","key","getMessage","logDedupedError","args","message","NODE_ENV","callStackFrames","Error","stack","split","undefined","length"],"mappings":";;;+BAyCgBA,+CAAAA;;;eAAAA;;;+DAzCO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEvB,MAAMC,WAAsC;IAAEC,SAAS;AAAK;AAE5D,iFAAiF;AACjF,MAAMC,QACJ,OAAOC,OAAMD,KAAK,KAAK,aACnBC,OAAMD,KAAK,GACX,CAACE,KAA+BA;AAEtC,2EAA2E;AAC3E,qEAAqE;AACrE,gBAAgB;AAChB,MAAMC,iBAAiBC,QAAQC,GAAG,CAACC,uBAAuB,GACtDC,QAAQC,KAAK,aACbD,QAAQE,IAAI;AAEhB,2CAA2C;AAC3C,wGAAwG;AACxG,MAAMC,yBAAyBV,MAC7B,AACA,CAACW,yEADyE;IAExE,IAAI;QACFR,eAAeL,SAASC,OAAO;IACjC,SAAU;QACRD,SAASC,OAAO,GAAG;IACrB;AACF;AAcK,SAASF,4CACde,UAAoC;IAEpC,OAAO,SAASC,gBAAgB,GAAGC,IAAU;QAC3C,MAAMC,UAAUH,cAAcE;QAE9B,IAAIV,QAAQC,GAAG,CAACW,QAAQ,KAAK,WAAc;gBACjB;YAAxB,MAAMC,kBAAAA,CAAkB,SAAA,IAAIC,QAAQC,KAAK,KAAA,OAAA,KAAA,IAAjB,OAAmBC,KAAK,CAAC;YACjD,IAAIH,oBAAoBI,aAAaJ,gBAAgBK,MAAM,GAAG,GAAG;gBAC/DnB,eAAeY;YACjB,OAAO;gBACL,SAAS;gBACT,oBAAoB;gBACpB,uCAAuC;gBACvC,wBAAwB;gBACxB,iEAAiE;gBACjE,MAAMJ,MAAMM,eAAe,CAAC,EAAE;gBAC9BnB,SAASC,OAAO,GAAGgB;gBACnBL,uBAAuBC;YACzB;QACF,OAAO;;IAGT;AACF","ignoreList":[0]}}, + {"offset": {"line": 14410, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/request/cookies.ts"],"sourcesContent":["import {\n type ReadonlyRequestCookies,\n areCookiesMutableInCurrentPhase,\n RequestCookiesAdapter,\n} from '../web/spec-extension/adapters/request-cookies'\nimport { RequestCookies } from '../web/spec-extension/cookies'\nimport {\n workAsyncStorage,\n type WorkStore,\n} from '../app-render/work-async-storage.external'\nimport {\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n type PrerenderStoreModern,\n type RequestStore,\n} from '../app-render/work-unit-async-storage.external'\nimport {\n delayUntilRuntimeStage,\n postponeWithTracking,\n throwToInterruptStaticGeneration,\n trackDynamicDataInDynamicRender,\n} from '../app-render/dynamic-rendering'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n makeDevtoolsIOAwarePromise,\n makeHangingPromise,\n} from '../dynamic-rendering-utils'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { isRequestAPICallableInsideAfter } from './utils'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { RenderStage } from '../app-render/staged-rendering'\n\nexport function cookies(): Promise {\n const callingExpression = 'cookies'\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (workStore) {\n if (\n workUnitStore &&\n workUnitStore.phase === 'after' &&\n !isRequestAPICallableInsideAfter()\n ) {\n throw new Error(\n // TODO(after): clarify that this only applies to pages?\n `Route ${workStore.route} used \\`cookies()\\` inside \\`after()\\`. This is not supported. If you need this data inside an \\`after()\\` callback, use \\`cookies()\\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`\n )\n }\n\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // cookies object without tracking\n const underlyingCookies = createEmptyCookies()\n return makeUntrackedCookies(underlyingCookies)\n }\n\n if (workStore.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`cookies()\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n const error = new Error(\n `Route ${workStore.route} used \\`cookies()\\` inside \"use cache\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`cookies()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n Error.captureStackTrace(error, cookies)\n workStore.invalidDynamicUsageError ??= error\n throw error\n case 'unstable-cache':\n throw new Error(\n `Route ${workStore.route} used \\`cookies()\\` inside a function cached with \\`unstable_cache()\\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`cookies()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\n )\n case 'prerender':\n return makeHangingCookies(workStore, workUnitStore)\n case 'prerender-client':\n const exportName = '`cookies`'\n throw new InvariantError(\n `${exportName} must not be used within a Client Component. Next.js should be preventing ${exportName} from being included in Client Components statically, but did not in this case.`\n )\n case 'prerender-ppr':\n // We need track dynamic access here eagerly to keep continuity with\n // how cookies has worked in PPR without cacheComponents.\n return postponeWithTracking(\n workStore.route,\n callingExpression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n // We track dynamic access here so we don't need to wrap the cookies\n // in individual property access tracking.\n return throwToInterruptStaticGeneration(\n callingExpression,\n workStore,\n workUnitStore\n )\n case 'prerender-runtime':\n return delayUntilRuntimeStage(\n workUnitStore,\n makeUntrackedCookies(workUnitStore.cookies)\n )\n case 'private-cache':\n // Private caches are delayed until the runtime stage in use-cache-wrapper,\n // so we don't need an additional delay here.\n return makeUntrackedCookies(workUnitStore.cookies)\n case 'request':\n trackDynamicDataInDynamicRender(workUnitStore)\n\n let underlyingCookies: ReadonlyRequestCookies\n\n if (areCookiesMutableInCurrentPhase(workUnitStore)) {\n // We can't conditionally return different types here based on the context.\n // To avoid confusion, we always return the readonly type here.\n underlyingCookies =\n workUnitStore.userspaceMutableCookies as unknown as ReadonlyRequestCookies\n } else {\n underlyingCookies = workUnitStore.cookies\n }\n\n if (process.env.NODE_ENV === 'development') {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n return makeUntrackedCookiesWithDevWarnings(\n workUnitStore,\n underlyingCookies,\n workStore?.route\n )\n } else {\n return makeUntrackedCookies(underlyingCookies)\n }\n default:\n workUnitStore satisfies never\n }\n }\n }\n\n // If we end up here, there was no work store or work unit store present.\n throwForMissingRequestStore(callingExpression)\n}\n\nfunction createEmptyCookies(): ReadonlyRequestCookies {\n return RequestCookiesAdapter.seal(new RequestCookies(new Headers({})))\n}\n\ninterface CacheLifetime {}\nconst CachedCookies = new WeakMap<\n CacheLifetime,\n Promise\n>()\n\nfunction makeHangingCookies(\n workStore: WorkStore,\n prerenderStore: PrerenderStoreModern\n): Promise {\n const cachedPromise = CachedCookies.get(prerenderStore)\n if (cachedPromise) {\n return cachedPromise\n }\n\n const promise = makeHangingPromise(\n prerenderStore.renderSignal,\n workStore.route,\n '`cookies()`'\n )\n CachedCookies.set(prerenderStore, promise)\n\n return promise\n}\n\nfunction makeUntrackedCookies(\n underlyingCookies: ReadonlyRequestCookies\n): Promise {\n const cachedCookies = CachedCookies.get(underlyingCookies)\n if (cachedCookies) {\n return cachedCookies\n }\n\n const promise = Promise.resolve(underlyingCookies)\n CachedCookies.set(underlyingCookies, promise)\n\n return promise\n}\n\nfunction makeUntrackedCookiesWithDevWarnings(\n requestStore: RequestStore,\n underlyingCookies: ReadonlyRequestCookies,\n route?: string\n): Promise {\n if (requestStore.asyncApiPromises) {\n let promise: Promise\n if (underlyingCookies === requestStore.mutableCookies) {\n promise = requestStore.asyncApiPromises.mutableCookies\n } else if (underlyingCookies === requestStore.cookies) {\n promise = requestStore.asyncApiPromises.cookies\n } else {\n throw new InvariantError(\n 'Received an underlying cookies object that does not match either `cookies` or `mutableCookies`'\n )\n }\n return instrumentCookiesPromiseWithDevWarnings(promise, route)\n }\n\n const cachedCookies = CachedCookies.get(underlyingCookies)\n if (cachedCookies) {\n return cachedCookies\n }\n\n const promise = makeDevtoolsIOAwarePromise(\n underlyingCookies,\n requestStore,\n RenderStage.Runtime\n )\n\n const proxiedPromise = instrumentCookiesPromiseWithDevWarnings(promise, route)\n\n CachedCookies.set(underlyingCookies, proxiedPromise)\n\n return proxiedPromise\n}\n\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createCookiesAccessError\n)\n\nfunction instrumentCookiesPromiseWithDevWarnings(\n promise: Promise,\n route: string | undefined\n) {\n Object.defineProperties(promise, {\n [Symbol.iterator]: replaceableWarningDescriptorForSymbolIterator(\n promise,\n route\n ),\n size: replaceableWarningDescriptor(promise, 'size', route),\n get: replaceableWarningDescriptor(promise, 'get', route),\n getAll: replaceableWarningDescriptor(promise, 'getAll', route),\n has: replaceableWarningDescriptor(promise, 'has', route),\n set: replaceableWarningDescriptor(promise, 'set', route),\n delete: replaceableWarningDescriptor(promise, 'delete', route),\n clear: replaceableWarningDescriptor(promise, 'clear', route),\n toString: replaceableWarningDescriptor(promise, 'toString', route),\n })\n return promise\n}\n\nfunction replaceableWarningDescriptor(\n target: unknown,\n prop: string,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, `\\`cookies().${prop}\\``)\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction replaceableWarningDescriptorForSymbolIterator(\n target: unknown,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, '`...cookies()` or similar iteration')\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, Symbol.iterator, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction createCookiesAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`cookies()\\` returns a Promise and must be unwrapped with \\`await\\` or \\`React.use()\\` before accessing its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n"],"names":["cookies","callingExpression","workStore","workAsyncStorage","getStore","workUnitStore","workUnitAsyncStorage","phase","isRequestAPICallableInsideAfter","Error","route","forceStatic","underlyingCookies","createEmptyCookies","makeUntrackedCookies","dynamicShouldError","StaticGenBailoutError","type","error","captureStackTrace","invalidDynamicUsageError","makeHangingCookies","exportName","InvariantError","postponeWithTracking","dynamicTracking","throwToInterruptStaticGeneration","delayUntilRuntimeStage","trackDynamicDataInDynamicRender","areCookiesMutableInCurrentPhase","userspaceMutableCookies","process","env","NODE_ENV","makeUntrackedCookiesWithDevWarnings","throwForMissingRequestStore","RequestCookiesAdapter","seal","RequestCookies","Headers","CachedCookies","WeakMap","prerenderStore","cachedPromise","get","promise","makeHangingPromise","renderSignal","set","cachedCookies","Promise","resolve","requestStore","asyncApiPromises","mutableCookies","instrumentCookiesPromiseWithDevWarnings","makeDevtoolsIOAwarePromise","RenderStage","Runtime","proxiedPromise","warnForSyncAccess","createDedupedByCallsiteServerErrorLoggerDev","createCookiesAccessError","Object","defineProperties","Symbol","iterator","replaceableWarningDescriptorForSymbolIterator","size","replaceableWarningDescriptor","getAll","has","delete","clear","toString","target","prop","enumerable","undefined","value","defineProperty","writable","configurable","expression","prefix"],"mappings":";;;+BAgCgBA,WAAAA;;;eAAAA;;;gCA5BT;yBACwB;0CAIxB;8CAMA;kCAMA;yCAC+B;uCAI/B;0DACqD;uBACZ;gCACjB;iCACH;AAErB,SAASA;IACd,MAAMC,oBAAoB;IAC1B,MAAMC,YAAYC,0BAAAA,gBAAgB,CAACC,QAAQ;IAC3C,MAAMC,gBAAgBC,8BAAAA,oBAAoB,CAACF,QAAQ;IAEnD,IAAIF,WAAW;QACb,IACEG,iBACAA,cAAcE,KAAK,KAAK,WACxB,CAACC,CAAAA,GAAAA,OAAAA,+BAA+B,KAChC;YACA,MAAM,OAAA,cAGL,CAHK,IAAIC,MACR,AACA,CAAC,MAAM,EAAEP,UAAUQ,KAAK,CAAC,+BAD+B,qNACqN,CAAC,GAF1Q,qBAAA;uBAAA;4BAAA;8BAAA;YAGN;QACF;QAEA,IAAIR,UAAUS,WAAW,EAAE;YACzB,qFAAqF;YACrF,kCAAkC;YAClC,MAAMC,oBAAoBC;YAC1B,OAAOC,qBAAqBF;QAC9B;QAEA,IAAIV,UAAUa,kBAAkB,EAAE;YAChC,MAAM,OAAA,cAEL,CAFK,IAAIC,yBAAAA,qBAAqB,CAC7B,CAAC,MAAM,EAAEd,UAAUQ,KAAK,CAAC,mNAAmN,CAAC,GADzO,qBAAA;uBAAA;4BAAA;8BAAA;YAEN;QACF;QAEA,IAAIL,eAAe;YACjB,OAAQA,cAAcY,IAAI;gBACxB,KAAK;oBACH,MAAMC,QAAQ,OAAA,cAEb,CAFa,IAAIT,MAChB,CAAC,MAAM,EAAEP,UAAUQ,KAAK,CAAC,kVAAkV,CAAC,GADhW,qBAAA;+BAAA;oCAAA;sCAAA;oBAEd;oBACAD,MAAMU,iBAAiB,CAACD,OAAOlB;oBAC/BE,UAAUkB,wBAAwB,KAAKF;oBACvC,MAAMA;gBACR,KAAK;oBACH,MAAM,OAAA,cAEL,CAFK,IAAIT,MACR,CAAC,MAAM,EAAEP,UAAUQ,KAAK,CAAC,0XAA0X,CAAC,GADhZ,qBAAA;+BAAA;oCAAA;sCAAA;oBAEN;gBACF,KAAK;oBACH,OAAOW,mBAAmBnB,WAAWG;gBACvC,KAAK;oBACH,MAAMiB,aAAa;oBACnB,MAAM,OAAA,cAEL,CAFK,IAAIC,gBAAAA,cAAc,CACtB,GAAGD,WAAW,0EAA0E,EAAEA,WAAW,+EAA+E,CAAC,GADjL,qBAAA;+BAAA;oCAAA;sCAAA;oBAEN;gBACF,KAAK;oBACH,oEAAoE;oBACpE,yDAAyD;oBACzD,OAAOE,CAAAA,GAAAA,kBAAAA,oBAAoB,EACzBtB,UAAUQ,KAAK,EACfT,mBACAI,cAAcoB,eAAe;gBAEjC,KAAK;oBACH,oEAAoE;oBACpE,0CAA0C;oBAC1C,OAAOC,CAAAA,GAAAA,kBAAAA,gCAAgC,EACrCzB,mBACAC,WACAG;gBAEJ,KAAK;oBACH,OAAOsB,CAAAA,GAAAA,kBAAAA,sBAAsB,EAC3BtB,eACAS,qBAAqBT,cAAcL,OAAO;gBAE9C,KAAK;oBACH,2EAA2E;oBAC3E,6CAA6C;oBAC7C,OAAOc,qBAAqBT,cAAcL,OAAO;gBACnD,KAAK;oBACH4B,CAAAA,GAAAA,kBAAAA,+BAA+B,EAACvB;oBAEhC,IAAIO;oBAEJ,IAAIiB,CAAAA,GAAAA,gBAAAA,+BAA+B,EAACxB,gBAAgB;wBAClD,2EAA2E;wBAC3E,+DAA+D;wBAC/DO,oBACEP,cAAcyB,uBAAuB;oBACzC,OAAO;wBACLlB,oBAAoBP,cAAcL,OAAO;oBAC3C;oBAEA,IAAI+B,QAAQC,GAAG,CAACC,QAAQ,KAAK,WAAe;wBAC1C,wEAAwE;wBACxE,8EAA8E;wBAC9E,4EAA4E;wBAC5E,OAAOC,oCACL7B,eACAO,mBACAV,aAAAA,OAAAA,KAAAA,IAAAA,UAAWQ,KAAK;oBAEpB,OAAO;;gBAGT;oBACEL;YACJ;QACF;IACF;IAEA,yEAAyE;IACzE8B,CAAAA,GAAAA,8BAAAA,2BAA2B,EAAClC;AAC9B;AAEA,SAASY;IACP,OAAOuB,gBAAAA,qBAAqB,CAACC,IAAI,CAAC,IAAIC,SAAAA,cAAc,CAAC,IAAIC,QAAQ,CAAC;AACpE;AAGA,MAAMC,gBAAgB,IAAIC;AAK1B,SAASpB,mBACPnB,SAAoB,EACpBwC,cAAoC;IAEpC,MAAMC,gBAAgBH,cAAcI,GAAG,CAACF;IACxC,IAAIC,eAAe;QACjB,OAAOA;IACT;IAEA,MAAME,UAAUC,CAAAA,GAAAA,uBAAAA,kBAAkB,EAChCJ,eAAeK,YAAY,EAC3B7C,UAAUQ,KAAK,EACf;IAEF8B,cAAcQ,GAAG,CAACN,gBAAgBG;IAElC,OAAOA;AACT;AAEA,SAAS/B,qBACPF,iBAAyC;IAEzC,MAAMqC,gBAAgBT,cAAcI,GAAG,CAAChC;IACxC,IAAIqC,eAAe;QACjB,OAAOA;IACT;IAEA,MAAMJ,UAAUK,QAAQC,OAAO,CAACvC;IAChC4B,cAAcQ,GAAG,CAACpC,mBAAmBiC;IAErC,OAAOA;AACT;AAEA,SAASX,oCACPkB,YAA0B,EAC1BxC,iBAAyC,EACzCF,KAAc;IAEd,IAAI0C,aAAaC,gBAAgB,EAAE;QACjC,IAAIR;QACJ,IAAIjC,sBAAsBwC,aAAaE,cAAc,EAAE;YACrDT,UAAUO,aAAaC,gBAAgB,CAACC,cAAc;QACxD,OAAO,IAAI1C,sBAAsBwC,aAAapD,OAAO,EAAE;YACrD6C,UAAUO,aAAaC,gBAAgB,CAACrD,OAAO;QACjD,OAAO;YACL,MAAM,OAAA,cAEL,CAFK,IAAIuB,gBAAAA,cAAc,CACtB,mGADI,qBAAA;uBAAA;4BAAA;8BAAA;YAEN;QACF;QACA,OAAOgC,wCAAwCV,SAASnC;IAC1D;IAEA,MAAMuC,gBAAgBT,cAAcI,GAAG,CAAChC;IACxC,IAAIqC,eAAe;QACjB,OAAOA;IACT;IAEA,MAAMJ,UAAUW,CAAAA,GAAAA,uBAAAA,0BAA0B,EACxC5C,mBACAwC,cACAK,iBAAAA,WAAW,CAACC,OAAO;IAGrB,MAAMC,iBAAiBJ,wCAAwCV,SAASnC;IAExE8B,cAAcQ,GAAG,CAACpC,mBAAmB+C;IAErC,OAAOA;AACT;AAEA,MAAMC,oBAAoBC,CAAAA,GAAAA,0CAAAA,2CAA2C,EACnEC;AAGF,SAASP,wCACPV,OAAwC,EACxCnC,KAAyB;IAEzBqD,OAAOC,gBAAgB,CAACnB,SAAS;QAC/B,CAACoB,OAAOC,QAAQ,CAAC,EAAEC,8CACjBtB,SACAnC;QAEF0D,MAAMC,6BAA6BxB,SAAS,QAAQnC;QACpDkC,KAAKyB,6BAA6BxB,SAAS,OAAOnC;QAClD4D,QAAQD,6BAA6BxB,SAAS,UAAUnC;QACxD6D,KAAKF,6BAA6BxB,SAAS,OAAOnC;QAClDsC,KAAKqB,6BAA6BxB,SAAS,OAAOnC;QAClD8D,QAAQH,6BAA6BxB,SAAS,UAAUnC;QACxD+D,OAAOJ,6BAA6BxB,SAAS,SAASnC;QACtDgE,UAAUL,6BAA6BxB,SAAS,YAAYnC;IAC9D;IACA,OAAOmC;AACT;AAEA,SAASwB,6BACPM,MAAe,EACfC,IAAY,EACZlE,KAAyB;IAEzB,OAAO;QACLmE,YAAY;QACZjC;YACEgB,kBAAkBlD,OAAO,CAAC,YAAY,EAAEkE,KAAK,EAAE,CAAC;YAChD,OAAOE;QACT;QACA9B,KAAI+B,KAAc;YAChBhB,OAAOiB,cAAc,CAACL,QAAQC,MAAM;gBAClCG;gBACAE,UAAU;gBACVC,cAAc;YAChB;QACF;QACAA,cAAc;IAChB;AACF;AAEA,SAASf,8CACPQ,MAAe,EACfjE,KAAyB;IAEzB,OAAO;QACLmE,YAAY;QACZjC;YACEgB,kBAAkBlD,OAAO;YACzB,OAAOoE;QACT;QACA9B,KAAI+B,KAAc;YAChBhB,OAAOiB,cAAc,CAACL,QAAQV,OAAOC,QAAQ,EAAE;gBAC7Ca;gBACAE,UAAU;gBACVJ,YAAY;gBACZK,cAAc;YAChB;QACF;QACAA,cAAc;IAChB;AACF;AAEA,SAASpB,yBACPpD,KAAyB,EACzByE,UAAkB;IAElB,MAAMC,SAAS1E,QAAQ,CAAC,OAAO,EAAEA,MAAM,EAAE,CAAC,GAAG;IAC7C,OAAO,OAAA,cAIN,CAJM,IAAID,MACT,GAAG2E,OAAO,KAAK,EAAED,WAAW,EAAE,CAAC,GAC7B,CAAC,yHAAyH,CAAC,GAC3H,CAAC,8DAA8D,CAAC,GAH7D,qBAAA;eAAA;oBAAA;sBAAA;IAIP;AACF","ignoreList":[0]}}, + {"offset": {"line": 14629, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/web/spec-extension/adapters/headers.ts"],"sourcesContent":["import type { IncomingHttpHeaders } from 'http'\n\nimport { ReflectAdapter } from './reflect'\n\n/**\n * @internal\n */\nexport class ReadonlyHeadersError extends Error {\n constructor() {\n super(\n 'Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers'\n )\n }\n\n public static callable() {\n throw new ReadonlyHeadersError()\n }\n}\n\nexport type ReadonlyHeaders = Headers & {\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n append(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n set(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n delete(...args: any[]): void\n}\nexport class HeadersAdapter extends Headers {\n private readonly headers: IncomingHttpHeaders\n\n constructor(headers: IncomingHttpHeaders) {\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super()\n\n this.headers = new Proxy(headers, {\n get(target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === 'symbol') {\n return ReflectAdapter.get(target, prop, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return undefined.\n if (typeof original === 'undefined') return\n\n // If the original casing exists, return the value.\n return ReflectAdapter.get(target, original, receiver)\n },\n set(target, prop, value, receiver) {\n if (typeof prop === 'symbol') {\n return ReflectAdapter.set(target, prop, value, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, use the prop as the key.\n return ReflectAdapter.set(target, original ?? prop, value, receiver)\n },\n has(target, prop) {\n if (typeof prop === 'symbol') return ReflectAdapter.has(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return false.\n if (typeof original === 'undefined') return false\n\n // If the original casing exists, return true.\n return ReflectAdapter.has(target, original)\n },\n deleteProperty(target, prop) {\n if (typeof prop === 'symbol')\n return ReflectAdapter.deleteProperty(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return true.\n if (typeof original === 'undefined') return true\n\n // If the original casing exists, delete the property.\n return ReflectAdapter.deleteProperty(target, original)\n },\n })\n }\n\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n */\n public static seal(headers: Headers): ReadonlyHeaders {\n return new Proxy(headers, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'append':\n case 'delete':\n case 'set':\n return ReadonlyHeadersError.callable\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n }\n\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */\n private merge(value: string | string[]): string {\n if (Array.isArray(value)) return value.join(', ')\n\n return value\n }\n\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */\n public static from(headers: IncomingHttpHeaders | Headers): Headers {\n if (headers instanceof Headers) return headers\n\n return new HeadersAdapter(headers)\n }\n\n public append(name: string, value: string): void {\n const existing = this.headers[name]\n if (typeof existing === 'string') {\n this.headers[name] = [existing, value]\n } else if (Array.isArray(existing)) {\n existing.push(value)\n } else {\n this.headers[name] = value\n }\n }\n\n public delete(name: string): void {\n delete this.headers[name]\n }\n\n public get(name: string): string | null {\n const value = this.headers[name]\n if (typeof value !== 'undefined') return this.merge(value)\n\n return null\n }\n\n public has(name: string): boolean {\n return typeof this.headers[name] !== 'undefined'\n }\n\n public set(name: string, value: string): void {\n this.headers[name] = value\n }\n\n public forEach(\n callbackfn: (value: string, name: string, parent: Headers) => void,\n thisArg?: any\n ): void {\n for (const [name, value] of this.entries()) {\n callbackfn.call(thisArg, value, name, this)\n }\n }\n\n public *entries(): HeadersIterator<[string, string]> {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name) as string\n\n yield [name, value] as [string, string]\n }\n }\n\n public *keys(): HeadersIterator {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n yield name\n }\n }\n\n public *values(): HeadersIterator {\n for (const key of Object.keys(this.headers)) {\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key) as string\n\n yield value\n }\n }\n\n public [Symbol.iterator](): HeadersIterator<[string, string]> {\n return this.entries()\n }\n}\n"],"names":["HeadersAdapter","ReadonlyHeadersError","Error","constructor","callable","Headers","headers","Proxy","get","target","prop","receiver","ReflectAdapter","lowercased","toLowerCase","original","Object","keys","find","o","set","value","has","deleteProperty","seal","merge","Array","isArray","join","from","append","name","existing","push","delete","forEach","callbackfn","thisArg","entries","call","key","values","Symbol","iterator"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 14822, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/request/headers.ts"],"sourcesContent":["import {\n HeadersAdapter,\n type ReadonlyHeaders,\n} from '../web/spec-extension/adapters/headers'\nimport {\n workAsyncStorage,\n type WorkStore,\n} from '../app-render/work-async-storage.external'\nimport {\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n type PrerenderStoreModern,\n type RequestStore,\n} from '../app-render/work-unit-async-storage.external'\nimport {\n delayUntilRuntimeStage,\n postponeWithTracking,\n throwToInterruptStaticGeneration,\n trackDynamicDataInDynamicRender,\n} from '../app-render/dynamic-rendering'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n makeDevtoolsIOAwarePromise,\n makeHangingPromise,\n} from '../dynamic-rendering-utils'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { isRequestAPICallableInsideAfter } from './utils'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { RenderStage } from '../app-render/staged-rendering'\n\n/**\n * This function allows you to read the HTTP incoming request headers in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers) and\n * [Middleware](https://nextjs.org/docs/app/building-your-application/routing/middleware).\n *\n * Read more: [Next.js Docs: `headers`](https://nextjs.org/docs/app/api-reference/functions/headers)\n */\nexport function headers(): Promise {\n const callingExpression = 'headers'\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (workStore) {\n if (\n workUnitStore &&\n workUnitStore.phase === 'after' &&\n !isRequestAPICallableInsideAfter()\n ) {\n throw new Error(\n `Route ${workStore.route} used \\`headers()\\` inside \\`after()\\`. This is not supported. If you need this data inside an \\`after()\\` callback, use \\`headers()\\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`\n )\n }\n\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // headers object without tracking\n const underlyingHeaders = HeadersAdapter.seal(new Headers({}))\n return makeUntrackedHeaders(underlyingHeaders)\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache': {\n const error = new Error(\n `Route ${workStore.route} used \\`headers()\\` inside \"use cache\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`headers()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n Error.captureStackTrace(error, headers)\n workStore.invalidDynamicUsageError ??= error\n throw error\n }\n case 'unstable-cache':\n throw new Error(\n `Route ${workStore.route} used \\`headers()\\` inside a function cached with \\`unstable_cache()\\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`headers()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\n )\n case 'prerender':\n case 'prerender-client':\n case 'private-cache':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n if (workStore.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`headers()\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender':\n return makeHangingHeaders(workStore, workUnitStore)\n case 'prerender-client':\n const exportName = '`headers`'\n throw new InvariantError(\n `${exportName} must not be used within a client component. Next.js should be preventing ${exportName} from being included in client components statically, but did not in this case.`\n )\n case 'prerender-ppr':\n // PPR Prerender (no cacheComponents)\n // We are prerendering with PPR. We need track dynamic access here eagerly\n // to keep continuity with how headers has worked in PPR without cacheComponents.\n // TODO consider switching the semantic to throw on property access instead\n return postponeWithTracking(\n workStore.route,\n callingExpression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n // Legacy Prerender\n // We are in a legacy static generation mode while prerendering\n // We track dynamic access here so we don't need to wrap the headers in\n // individual property access tracking.\n return throwToInterruptStaticGeneration(\n callingExpression,\n workStore,\n workUnitStore\n )\n case 'prerender-runtime':\n return delayUntilRuntimeStage(\n workUnitStore,\n makeUntrackedHeaders(workUnitStore.headers)\n )\n case 'private-cache':\n // Private caches are delayed until the runtime stage in use-cache-wrapper,\n // so we don't need an additional delay here.\n return makeUntrackedHeaders(workUnitStore.headers)\n case 'request':\n trackDynamicDataInDynamicRender(workUnitStore)\n\n if (process.env.NODE_ENV === 'development') {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n return makeUntrackedHeadersWithDevWarnings(\n workUnitStore.headers,\n workStore?.route,\n workUnitStore\n )\n } else {\n return makeUntrackedHeaders(workUnitStore.headers)\n }\n break\n default:\n workUnitStore satisfies never\n }\n }\n }\n\n // If we end up here, there was no work store or work unit store present.\n throwForMissingRequestStore(callingExpression)\n}\n\ninterface CacheLifetime {}\nconst CachedHeaders = new WeakMap>()\n\nfunction makeHangingHeaders(\n workStore: WorkStore,\n prerenderStore: PrerenderStoreModern\n): Promise {\n const cachedHeaders = CachedHeaders.get(prerenderStore)\n if (cachedHeaders) {\n return cachedHeaders\n }\n\n const promise = makeHangingPromise(\n prerenderStore.renderSignal,\n workStore.route,\n '`headers()`'\n )\n CachedHeaders.set(prerenderStore, promise)\n\n return promise\n}\n\nfunction makeUntrackedHeaders(\n underlyingHeaders: ReadonlyHeaders\n): Promise {\n const cachedHeaders = CachedHeaders.get(underlyingHeaders)\n if (cachedHeaders) {\n return cachedHeaders\n }\n\n const promise = Promise.resolve(underlyingHeaders)\n CachedHeaders.set(underlyingHeaders, promise)\n\n return promise\n}\n\nfunction makeUntrackedHeadersWithDevWarnings(\n underlyingHeaders: ReadonlyHeaders,\n route: string | undefined,\n requestStore: RequestStore\n): Promise {\n if (requestStore.asyncApiPromises) {\n const promise = requestStore.asyncApiPromises.headers\n return instrumentHeadersPromiseWithDevWarnings(promise, route)\n }\n\n const cachedHeaders = CachedHeaders.get(underlyingHeaders)\n if (cachedHeaders) {\n return cachedHeaders\n }\n\n const promise = makeDevtoolsIOAwarePromise(\n underlyingHeaders,\n requestStore,\n RenderStage.Runtime\n )\n\n const proxiedPromise = instrumentHeadersPromiseWithDevWarnings(promise, route)\n\n CachedHeaders.set(underlyingHeaders, proxiedPromise)\n\n return proxiedPromise\n}\n\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createHeadersAccessError\n)\n\nfunction instrumentHeadersPromiseWithDevWarnings(\n promise: Promise,\n route: string | undefined\n) {\n Object.defineProperties(promise, {\n [Symbol.iterator]: replaceableWarningDescriptorForSymbolIterator(\n promise,\n route\n ),\n append: replaceableWarningDescriptor(promise, 'append', route),\n delete: replaceableWarningDescriptor(promise, 'delete', route),\n get: replaceableWarningDescriptor(promise, 'get', route),\n has: replaceableWarningDescriptor(promise, 'has', route),\n set: replaceableWarningDescriptor(promise, 'set', route),\n getSetCookie: replaceableWarningDescriptor(promise, 'getSetCookie', route),\n forEach: replaceableWarningDescriptor(promise, 'forEach', route),\n keys: replaceableWarningDescriptor(promise, 'keys', route),\n values: replaceableWarningDescriptor(promise, 'values', route),\n entries: replaceableWarningDescriptor(promise, 'entries', route),\n })\n return promise\n}\n\nfunction replaceableWarningDescriptor(\n target: unknown,\n prop: string,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, `\\`headers().${prop}\\``)\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction replaceableWarningDescriptorForSymbolIterator(\n target: unknown,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, '`...headers()` or similar iteration')\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, Symbol.iterator, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction createHeadersAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`headers()\\` returns a Promise and must be unwrapped with \\`await\\` or \\`React.use()\\` before accessing its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n"],"names":["headers","callingExpression","workStore","workAsyncStorage","getStore","workUnitStore","workUnitAsyncStorage","phase","isRequestAPICallableInsideAfter","Error","route","forceStatic","underlyingHeaders","HeadersAdapter","seal","Headers","makeUntrackedHeaders","type","error","captureStackTrace","invalidDynamicUsageError","dynamicShouldError","StaticGenBailoutError","makeHangingHeaders","exportName","InvariantError","postponeWithTracking","dynamicTracking","throwToInterruptStaticGeneration","delayUntilRuntimeStage","trackDynamicDataInDynamicRender","process","env","NODE_ENV","makeUntrackedHeadersWithDevWarnings","throwForMissingRequestStore","CachedHeaders","WeakMap","prerenderStore","cachedHeaders","get","promise","makeHangingPromise","renderSignal","set","Promise","resolve","requestStore","asyncApiPromises","instrumentHeadersPromiseWithDevWarnings","makeDevtoolsIOAwarePromise","RenderStage","Runtime","proxiedPromise","warnForSyncAccess","createDedupedByCallsiteServerErrorLoggerDev","createHeadersAccessError","Object","defineProperties","Symbol","iterator","replaceableWarningDescriptorForSymbolIterator","append","replaceableWarningDescriptor","delete","has","getSetCookie","forEach","keys","values","entries","target","prop","enumerable","undefined","value","defineProperty","writable","configurable","expression","prefix"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 15042, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/server/request/draft-mode.ts"],"sourcesContent":["import {\n getDraftModeProviderForCacheScope,\n throwForMissingRequestStore,\n} from '../app-render/work-unit-async-storage.external'\n\nimport type { DraftModeProvider } from '../async-storage/draft-mode-provider'\n\nimport {\n workAsyncStorage,\n type WorkStore,\n} from '../app-render/work-async-storage.external'\nimport { workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external'\nimport {\n abortAndThrowOnSynchronousRequestDataAccess,\n delayUntilRuntimeStage,\n postponeWithTracking,\n trackDynamicDataInDynamicRender,\n} from '../app-render/dynamic-rendering'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport { DynamicServerError } from '../../client/components/hooks-server-context'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { ReflectAdapter } from '../web/spec-extension/adapters/reflect'\n\nexport function draftMode(): Promise {\n const callingExpression = 'draftMode'\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (!workStore || !workUnitStore) {\n throwForMissingRequestStore(callingExpression)\n }\n\n switch (workUnitStore.type) {\n case 'prerender-runtime':\n // TODO(runtime-ppr): does it make sense to delay this? normally it's always microtasky\n return delayUntilRuntimeStage(\n workUnitStore,\n createOrGetCachedDraftMode(workUnitStore.draftMode, workStore)\n )\n case 'request':\n return createOrGetCachedDraftMode(workUnitStore.draftMode, workStore)\n\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n // Inside of `\"use cache\"` or `unstable_cache`, draft mode is available if\n // the outmost work unit store is a request store (or a runtime prerender),\n // and if draft mode is enabled.\n const draftModeProvider = getDraftModeProviderForCacheScope(\n workStore,\n workUnitStore\n )\n\n if (draftModeProvider) {\n return createOrGetCachedDraftMode(draftModeProvider, workStore)\n }\n\n // Otherwise, we fall through to providing an empty draft mode.\n // eslint-disable-next-line no-fallthrough\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n // Return empty draft mode\n return createOrGetCachedDraftMode(null, workStore)\n\n default:\n return workUnitStore satisfies never\n }\n}\n\nfunction createOrGetCachedDraftMode(\n draftModeProvider: DraftModeProvider | null,\n workStore: WorkStore | undefined\n): Promise {\n const cacheKey = draftModeProvider ?? NullDraftMode\n const cachedDraftMode = CachedDraftModes.get(cacheKey)\n\n if (cachedDraftMode) {\n return cachedDraftMode\n }\n\n if (process.env.NODE_ENV === 'development' && !workStore?.isPrefetchRequest) {\n const route = workStore?.route\n return createDraftModeWithDevWarnings(draftModeProvider, route)\n } else {\n return Promise.resolve(new DraftMode(draftModeProvider))\n }\n}\n\ninterface CacheLifetime {}\nconst NullDraftMode = {}\nconst CachedDraftModes = new WeakMap>()\n\nfunction createDraftModeWithDevWarnings(\n underlyingProvider: null | DraftModeProvider,\n route: undefined | string\n): Promise {\n const instance = new DraftMode(underlyingProvider)\n const promise = Promise.resolve(instance)\n\n const proxiedPromise = new Proxy(promise, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'isEnabled':\n warnForSyncAccess(route, `\\`draftMode().${prop}\\``)\n break\n case 'enable':\n case 'disable': {\n warnForSyncAccess(route, `\\`draftMode().${prop}()\\``)\n break\n }\n default: {\n // We only warn for well-defined properties of the draftMode object.\n }\n }\n\n return ReflectAdapter.get(target, prop, receiver)\n },\n })\n\n return proxiedPromise\n}\n\nclass DraftMode {\n /**\n * @internal - this declaration is stripped via `tsc --stripInternal`\n */\n private readonly _provider: null | DraftModeProvider\n\n constructor(provider: null | DraftModeProvider) {\n this._provider = provider\n }\n get isEnabled() {\n if (this._provider !== null) {\n return this._provider.isEnabled\n }\n return false\n }\n public enable() {\n // We have a store we want to track dynamic data access to ensure we\n // don't statically generate routes that manipulate draft mode.\n trackDynamicDraftMode('draftMode().enable()', this.enable)\n if (this._provider !== null) {\n this._provider.enable()\n }\n }\n public disable() {\n trackDynamicDraftMode('draftMode().disable()', this.disable)\n if (this._provider !== null) {\n this._provider.disable()\n }\n }\n}\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createDraftModeAccessError\n)\n\nfunction createDraftModeAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`draftMode()\\` returns a Promise and must be unwrapped with \\`await\\` or \\`React.use()\\` before accessing its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n\nfunction trackDynamicDraftMode(expression: string, constructorOpt: Function) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (workStore) {\n // We have a store we want to track dynamic data access to ensure we\n // don't statically generate routes that manipulate draft mode.\n if (workUnitStore?.phase === 'after') {\n throw new Error(\n `Route ${workStore.route} used \"${expression}\" inside \\`after()\\`. The enabled status of \\`draftMode()\\` can be read inside \\`after()\\` but you cannot enable or disable \\`draftMode()\\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`\n )\n }\n\n if (workStore.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'private-cache': {\n const error = new Error(\n `Route ${workStore.route} used \"${expression}\" inside \"use cache\". The enabled status of \\`draftMode()\\` can be read in caches but you must not enable or disable \\`draftMode()\\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n Error.captureStackTrace(error, constructorOpt)\n workStore.invalidDynamicUsageError ??= error\n throw error\n }\n case 'unstable-cache':\n throw new Error(\n `Route ${workStore.route} used \"${expression}\" inside a function cached with \\`unstable_cache()\\`. The enabled status of \\`draftMode()\\` can be read in caches but you must not enable or disable \\`draftMode()\\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\n )\n\n case 'prerender':\n case 'prerender-runtime': {\n const error = new Error(\n `Route ${workStore.route} used ${expression} without first calling \\`await connection()\\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`\n )\n return abortAndThrowOnSynchronousRequestDataAccess(\n workStore.route,\n expression,\n error,\n workUnitStore\n )\n }\n case 'prerender-client':\n const exportName = '`draftMode`'\n throw new InvariantError(\n `${exportName} must not be used within a Client Component. Next.js should be preventing ${exportName} from being included in Client Components statically, but did not in this case.`\n )\n case 'prerender-ppr':\n return postponeWithTracking(\n workStore.route,\n expression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n workUnitStore.revalidate = 0\n\n const err = new DynamicServerError(\n `Route ${workStore.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n workStore.dynamicUsageDescription = expression\n workStore.dynamicUsageStack = err.stack\n\n throw err\n case 'request':\n trackDynamicDataInDynamicRender(workUnitStore)\n break\n default:\n workUnitStore satisfies never\n }\n }\n }\n}\n"],"names":["draftMode","callingExpression","workStore","workAsyncStorage","getStore","workUnitStore","workUnitAsyncStorage","throwForMissingRequestStore","type","delayUntilRuntimeStage","createOrGetCachedDraftMode","draftModeProvider","getDraftModeProviderForCacheScope","cacheKey","NullDraftMode","cachedDraftMode","CachedDraftModes","get","process","env","NODE_ENV","isPrefetchRequest","route","createDraftModeWithDevWarnings","Promise","resolve","DraftMode","WeakMap","underlyingProvider","instance","promise","proxiedPromise","Proxy","target","prop","receiver","warnForSyncAccess","ReflectAdapter","constructor","provider","_provider","isEnabled","enable","trackDynamicDraftMode","disable","createDedupedByCallsiteServerErrorLoggerDev","createDraftModeAccessError","expression","prefix","Error","constructorOpt","phase","dynamicShouldError","StaticGenBailoutError","error","captureStackTrace","invalidDynamicUsageError","abortAndThrowOnSynchronousRequestDataAccess","exportName","InvariantError","postponeWithTracking","dynamicTracking","revalidate","err","DynamicServerError","dynamicUsageDescription","dynamicUsageStack","stack","trackDynamicDataInDynamicRender"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 15249, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/headers.js"],"sourcesContent":["module.exports.cookies = require('./dist/server/request/cookies').cookies\nmodule.exports.headers = require('./dist/server/request/headers').headers\nmodule.exports.draftMode = require('./dist/server/request/draft-mode').draftMode\n"],"names":[],"mappings":"AAAA,OAAO,OAAO,CAAC,OAAO,GAAG,+NAAyC,OAAO;AACzE,OAAO,OAAO,CAAC,OAAO,GAAG,+NAAyC,OAAO;AACzE,OAAO,OAAO,CAAC,SAAS,GAAG,kOAA4C,SAAS","ignoreList":[0]}}, + {"offset": {"line": 15256, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/src/build/templates/app-route.ts"],"sourcesContent":["import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport { addRequestMeta, getRequestMeta } from '../../server/request-meta'\nimport { getTracer, type Span, SpanKind } from '../../server/lib/trace/tracer'\nimport { setReferenceManifestsSingleton } from '../../server/app-render/encryption-utils'\nimport { createServerModuleMap } from '../../server/app-render/action-utils'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\n\nimport * as userland from 'VAR_USERLAND'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n userland,\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil: (prom: Promise) => void\n }\n) {\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] ||\n prerenderManifest.routes[resolvedPathname]\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname])\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n const supportsDynamicResponse: boolean =\n // If we're in development, we always support dynamic HTML\n routeModule.isDev === true ||\n // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr\n\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setReferenceManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n serverModuleMap: createServerModuleMap({\n serverActionsManifest,\n }),\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n\n const context: AppRouteRouteHandlerContext = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext) =>\n routeModule.onRequestError(\n req,\n error,\n errorContext,\n routerServerContext\n ),\n },\n sharedContext: {\n buildId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n try {\n const invokeRouteModule = async (span?: Span) => {\n return routeModule.handle(nextReq, context).finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route')\n if (route) {\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n } else {\n span.updateName(`${method} ${srcPage}`)\n }\n })\n }\n const isMinimalMode = Boolean(\n process.env.MINIMAL_MODE || getRequestMeta(req, 'minimalMode')\n )\n\n const handleResponse = async (currentSpan?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response = await invokeRouteModule(currentSpan)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n response,\n context.renderOpts.pendingWaitUntil\n )\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return null\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan)\n } else {\n await tracer.withPropagatedContext(req.headers, () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n )\n )\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n })\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response.\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n return null\n }\n}\n"],"names":["AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","getTracer","SpanKind","setReferenceManifestsSingleton","createServerModuleMap","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","CachedRouteKind","userland","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","workAsyncStorage","workUnitAsyncStorage","serverHooks","handler","req","res","ctx","isDev","hrtime","bigint","srcPage","TURBOPACK","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","Boolean","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","experimental","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","serverModuleMap","method","tracer","activeSpan","getActiveScopeSpan","context","renderOpts","authInterrupts","cacheComponents","incrementalCache","cacheLifeProfiles","cacheLife","onClose","cb","on","onAfterTaskError","undefined","onInstrumentationRequestError","error","_request","errorContext","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","invokeRouteModule","span","handle","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","get","handleRequest","console","warn","route","name","updateName","isMinimalMode","MINIMAL_MODE","handleResponse","currentSpan","cacheEntry","responseGenerator","previousCacheEntry","setHeader","response","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","type","revalidate","collectedRevalidate","expire","collectedExpire","value","status","body","Buffer","from","arrayBuffer","cacheControl","err","isStale","routerKind","routePath","routeType","revalidateReason","routeKind","isFallback","isRoutePPREnabled","Error","isMiss","delete","getHeader","set","Response","withPropagatedContext","trace","spanName","SERVER","attributes","url"],"mappings":"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","ignoreList":[0]}}] +} \ No newline at end of file diff --git a/.next/dev/server/chunks/54027_server_app_api_trees_[treeId]_collaborators_route_actions_9236bcfc.js b/.next/dev/server/chunks/54027_server_app_api_trees_[treeId]_collaborators_route_actions_9236bcfc.js new file mode 100644 index 00000000..a5de5fa9 --- /dev/null +++ b/.next/dev/server/chunks/54027_server_app_api_trees_[treeId]_collaborators_route_actions_9236bcfc.js @@ -0,0 +1,7 @@ +module.exports = [ +"[project]/Documents/go-new/chinese-family-tree/.next-internal/server/app/api/trees/[treeId]/collaborators/route/actions.js [app-rsc] (server actions loader, ecmascript)", ((__turbopack_context__, module, exports) => { + +}), +]; + +//# sourceMappingURL=54027_server_app_api_trees_%5BtreeId%5D_collaborators_route_actions_9236bcfc.js.map \ No newline at end of file diff --git a/.next/dev/server/chunks/54027_server_app_api_trees_[treeId]_collaborators_route_actions_9236bcfc.js.map b/.next/dev/server/chunks/54027_server_app_api_trees_[treeId]_collaborators_route_actions_9236bcfc.js.map new file mode 100644 index 00000000..f89d7b7e --- /dev/null +++ b/.next/dev/server/chunks/54027_server_app_api_trees_[treeId]_collaborators_route_actions_9236bcfc.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": [], + "sections": [ + {"offset": {"line": 3, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}] +} \ No newline at end of file diff --git a/.next/dev/server/chunks/[root-of-the-server]__586bf482._.js b/.next/dev/server/chunks/[root-of-the-server]__586bf482._.js new file mode 100644 index 00000000..2e900d0d --- /dev/null +++ b/.next/dev/server/chunks/[root-of-the-server]__586bf482._.js @@ -0,0 +1,344 @@ +module.exports = [ +"[externals]/next/dist/compiled/next-server/app-route-turbo.runtime.dev.js [external] (next/dist/compiled/next-server/app-route-turbo.runtime.dev.js, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("next/dist/compiled/next-server/app-route-turbo.runtime.dev.js", () => require("next/dist/compiled/next-server/app-route-turbo.runtime.dev.js")); + +module.exports = mod; +}), +"[externals]/next/dist/compiled/@opentelemetry/api [external] (next/dist/compiled/@opentelemetry/api, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("next/dist/compiled/@opentelemetry/api", () => require("next/dist/compiled/@opentelemetry/api")); + +module.exports = mod; +}), +"[externals]/next/dist/compiled/next-server/app-page-turbo.runtime.dev.js [external] (next/dist/compiled/next-server/app-page-turbo.runtime.dev.js, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("next/dist/compiled/next-server/app-page-turbo.runtime.dev.js", () => require("next/dist/compiled/next-server/app-page-turbo.runtime.dev.js")); + +module.exports = mod; +}), +"[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("next/dist/server/app-render/work-unit-async-storage.external.js", () => require("next/dist/server/app-render/work-unit-async-storage.external.js")); + +module.exports = mod; +}), +"[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("next/dist/server/app-render/work-async-storage.external.js", () => require("next/dist/server/app-render/work-async-storage.external.js")); + +module.exports = mod; +}), +"[externals]/next/dist/shared/lib/no-fallback-error.external.js [external] (next/dist/shared/lib/no-fallback-error.external.js, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("next/dist/shared/lib/no-fallback-error.external.js", () => require("next/dist/shared/lib/no-fallback-error.external.js")); + +module.exports = mod; +}), +"[externals]/next/dist/server/app-render/after-task-async-storage.external.js [external] (next/dist/server/app-render/after-task-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("next/dist/server/app-render/after-task-async-storage.external.js", () => require("next/dist/server/app-render/after-task-async-storage.external.js")); + +module.exports = mod; +}), +"[externals]/util [external] (util, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("util", () => require("util")); + +module.exports = mod; +}), +"[externals]/url [external] (url, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("url", () => require("url")); + +module.exports = mod; +}), +"[externals]/http [external] (http, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("http", () => require("http")); + +module.exports = mod; +}), +"[externals]/crypto [external] (crypto, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("crypto", () => require("crypto")); + +module.exports = mod; +}), +"[externals]/assert [external] (assert, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("assert", () => require("assert")); + +module.exports = mod; +}), +"[externals]/querystring [external] (querystring, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("querystring", () => require("querystring")); + +module.exports = mod; +}), +"[externals]/buffer [external] (buffer, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("buffer", () => require("buffer")); + +module.exports = mod; +}), +"[externals]/zlib [external] (zlib, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("zlib", () => require("zlib")); + +module.exports = mod; +}), +"[externals]/https [external] (https, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("https", () => require("https")); + +module.exports = mod; +}), +"[externals]/events [external] (events, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("events", () => require("events")); + +module.exports = mod; +}), +"[externals]/@prisma/client [external] (@prisma/client, cjs)", ((__turbopack_context__, module, exports) => { + +const mod = __turbopack_context__.x("@prisma/client", () => require("@prisma/client")); + +module.exports = mod; +}), +"[project]/Documents/go-new/chinese-family-tree/lib/prisma.ts [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "prisma", + ()=>prisma +]); +var __TURBOPACK__imported__module__$5b$externals$5d2f40$prisma$2f$client__$5b$external$5d$__$2840$prisma$2f$client$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/@prisma/client [external] (@prisma/client, cjs)"); +; +const globalForPrisma = globalThis; +const prisma = globalForPrisma.prisma ?? new __TURBOPACK__imported__module__$5b$externals$5d2f40$prisma$2f$client__$5b$external$5d$__$2840$prisma$2f$client$2c$__cjs$29$__["PrismaClient"](); +if ("TURBOPACK compile-time truthy", 1) globalForPrisma.prisma = prisma; +}), +"[project]/Documents/go-new/chinese-family-tree/lib/auth.ts [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "authOptions", + ()=>authOptions +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$2d$auth$40$4$2e$24$2e$13_next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0_$5f$nodemailer$40$7_3c43d6bc4ecce810d1d16651fe207b00$2f$node_modules$2f$next$2d$auth$2f$providers$2f$credentials$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next-auth@4.24.13_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__nodemailer@7_3c43d6bc4ecce810d1d16651fe207b00/node_modules/next-auth/providers/credentials.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/prisma.ts [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$bcryptjs$40$3$2e$0$2e$3$2f$node_modules$2f$bcryptjs$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/bcryptjs@3.0.3/node_modules/bcryptjs/index.js [app-route] (ecmascript)"); +; +; +; +const authOptions = { + providers: [ + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$2d$auth$40$4$2e$24$2e$13_next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0_$5f$nodemailer$40$7_3c43d6bc4ecce810d1d16651fe207b00$2f$node_modules$2f$next$2d$auth$2f$providers$2f$credentials$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"])({ + name: "credentials", + credentials: { + email: { + label: "Email", + type: "email" + }, + password: { + label: "Password", + type: "password" + } + }, + async authorize (credentials) { + if (!credentials?.email || !credentials?.password) { + throw new Error("请输入邮箱和密码"); + } + const user = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].user.findUnique({ + where: { + email: credentials.email + } + }); + if (!user || !user.password) { + throw new Error("用户不存在"); + } + const isValid = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$bcryptjs$40$3$2e$0$2e$3$2f$node_modules$2f$bcryptjs$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].compare(credentials.password, user.password); + if (!isValid) { + throw new Error("密码错误"); + } + return { + id: user.id, + email: user.email, + name: user.name + }; + } + }) + ], + session: { + strategy: "jwt" + }, + pages: { + signIn: "/auth/signin" + }, + callbacks: { + async jwt ({ token, user }) { + if (user) { + token.id = user.id; + } + return token; + }, + async session ({ session, token }) { + if (session.user) { + session.user.id = token.id; + } + return session; + } + } +}; +}), +"[project]/Documents/go-new/chinese-family-tree/app/api/trees/[treeId]/collaborators/route.ts [app-route] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "DELETE", + ()=>DELETE, + "GET", + ()=>GET +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/server.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$2d$auth$40$4$2e$24$2e$13_next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0_$5f$nodemailer$40$7_3c43d6bc4ecce810d1d16651fe207b00$2f$node_modules$2f$next$2d$auth$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next-auth@4.24.13_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__nodemailer@7_3c43d6bc4ecce810d1d16651fe207b00/node_modules/next-auth/index.js [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$auth$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/auth.ts [app-route] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/prisma.ts [app-route] (ecmascript)"); +; +; +; +; +async function GET(req, { params }) { + try { + const session = await (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$2d$auth$40$4$2e$24$2e$13_next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0_$5f$nodemailer$40$7_3c43d6bc4ecce810d1d16651fe207b00$2f$node_modules$2f$next$2d$auth$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getServerSession"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$auth$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["authOptions"]); + if (!session?.user?.id) { + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({ + error: "未授权" + }, { + status: 401 + }); + } + const { treeId } = await params; + // 检查权限(所有者或协作者都可以看) + const tree = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].familyTree.findFirst({ + where: { + id: treeId, + OR: [ + { + ownerId: session.user.id + }, + { + collaborators: { + some: { + userId: session.user.id + } + } + } + ] + } + }); + if (!tree) { + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({ + error: "家族树不存在或无权访问" + }, { + status: 404 + }); + } + // 获取协作者 + const collaborators = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].treeCollaborator.findMany({ + where: { + treeId + }, + include: { + user: { + select: { + id: true, + name: true, + email: true, + avatar: true + } + } + }, + orderBy: { + invitedAt: 'desc' + } + }); + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({ + collaborators + }); + } catch (error) { + console.error("获取协作者失败:", error); + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({ + error: "获取协作者失败" + }, { + status: 500 + }); + } +} +async function DELETE(req, { params }) { + try { + const session = await (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$2d$auth$40$4$2e$24$2e$13_next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0_$5f$nodemailer$40$7_3c43d6bc4ecce810d1d16651fe207b00$2f$node_modules$2f$next$2d$auth$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getServerSession"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$auth$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["authOptions"]); + if (!session?.user?.id) { + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({ + error: "未授权" + }, { + status: 401 + }); + } + const { treeId } = await params; + const { searchParams } = new URL(req.url); + const userId = searchParams.get('userId'); + if (!userId) { + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({ + error: "缺少用户ID" + }, { + status: 400 + }); + } + // 检查权限:只有所有者可以移除协作者,或者是协作者自己退出 + const tree = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].familyTree.findFirst({ + where: { + id: treeId + } + }); + if (!tree) { + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({ + error: "家族树不存在" + }, { + status: 404 + }); + } + const isOwner = tree.ownerId === session.user.id; + const isSelf = userId === session.user.id; + if (!isOwner && !isSelf) { + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({ + error: "无权移除此协作者" + }, { + status: 403 + }); + } + // 移除协作者 + await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].treeCollaborator.deleteMany({ + where: { + treeId, + userId + } + }); + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({ + success: true + }); + } catch (error) { + console.error("移除协作者失败:", error); + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({ + error: "移除协作者失败" + }, { + status: 500 + }); + } +} +}), +]; + +//# sourceMappingURL=%5Broot-of-the-server%5D__586bf482._.js.map \ No newline at end of file diff --git a/.next/dev/server/chunks/[root-of-the-server]__586bf482._.js.map b/.next/dev/server/chunks/[root-of-the-server]__586bf482._.js.map new file mode 100644 index 00000000..c1b60a42 --- /dev/null +++ b/.next/dev/server/chunks/[root-of-the-server]__586bf482._.js.map @@ -0,0 +1,8 @@ +{ + "version": 3, + "sources": [], + "sections": [ + {"offset": {"line": 112, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/prisma.ts"],"sourcesContent":["import { PrismaClient } from '@prisma/client'\n\nconst globalForPrisma = globalThis as unknown as {\n prisma: PrismaClient | undefined\n}\n\nexport const prisma = globalForPrisma.prisma ?? new PrismaClient()\n\nif (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma\n"],"names":[],"mappings":";;;;AAAA;;AAEA,MAAM,kBAAkB;AAIjB,MAAM,SAAS,gBAAgB,MAAM,IAAI,IAAI,6IAAY;AAEhE,wCAA2C,gBAAgB,MAAM,GAAG"}}, + {"offset": {"line": 125, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/lib/auth.ts"],"sourcesContent":["import type { NextAuthOptions } from \"next-auth\"\nimport CredentialsProvider from \"next-auth/providers/credentials\"\nimport { prisma } from \"./prisma\"\nimport bcrypt from \"bcryptjs\"\n\nexport const authOptions: NextAuthOptions = {\n providers: [\n CredentialsProvider({\n name: \"credentials\",\n credentials: {\n email: { label: \"Email\", type: \"email\" },\n password: { label: \"Password\", type: \"password\" }\n },\n async authorize(credentials) {\n if (!credentials?.email || !credentials?.password) {\n throw new Error(\"请输入邮箱和密码\")\n }\n\n const user = await prisma.user.findUnique({\n where: { email: credentials.email }\n })\n\n if (!user || !user.password) {\n throw new Error(\"用户不存在\")\n }\n\n const isValid = await bcrypt.compare(credentials.password, user.password)\n\n if (!isValid) {\n throw new Error(\"密码错误\")\n }\n\n return {\n id: user.id,\n email: user.email,\n name: user.name,\n }\n }\n })\n ],\n session: {\n strategy: \"jwt\"\n },\n pages: {\n signIn: \"/auth/signin\",\n },\n callbacks: {\n async jwt({ token, user }) {\n if (user) {\n token.id = user.id\n }\n return token\n },\n async session({ session, token }) {\n if (session.user) {\n session.user.id = token.id as string\n }\n return session\n }\n }\n}\n"],"names":[],"mappings":";;;;AACA;AACA;AACA;;;;AAEO,MAAM,cAA+B;IAC1C,WAAW;QACT,IAAA,8aAAmB,EAAC;YAClB,MAAM;YACN,aAAa;gBACX,OAAO;oBAAE,OAAO;oBAAS,MAAM;gBAAQ;gBACvC,UAAU;oBAAE,OAAO;oBAAY,MAAM;gBAAW;YAClD;YACA,MAAM,WAAU,WAAW;gBACzB,IAAI,CAAC,aAAa,SAAS,CAAC,aAAa,UAAU;oBACjD,MAAM,IAAI,MAAM;gBAClB;gBAEA,MAAM,OAAO,MAAM,gLAAM,CAAC,IAAI,CAAC,UAAU,CAAC;oBACxC,OAAO;wBAAE,OAAO,YAAY,KAAK;oBAAC;gBACpC;gBAEA,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE;oBAC3B,MAAM,IAAI,MAAM;gBAClB;gBAEA,MAAM,UAAU,MAAM,0PAAM,CAAC,OAAO,CAAC,YAAY,QAAQ,EAAE,KAAK,QAAQ;gBAExE,IAAI,CAAC,SAAS;oBACZ,MAAM,IAAI,MAAM;gBAClB;gBAEA,OAAO;oBACL,IAAI,KAAK,EAAE;oBACX,OAAO,KAAK,KAAK;oBACjB,MAAM,KAAK,IAAI;gBACjB;YACF;QACF;KACD;IACD,SAAS;QACP,UAAU;IACZ;IACA,OAAO;QACL,QAAQ;IACV;IACA,WAAW;QACT,MAAM,KAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YACvB,IAAI,MAAM;gBACR,MAAM,EAAE,GAAG,KAAK,EAAE;YACpB;YACA,OAAO;QACT;QACA,MAAM,SAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;YAC9B,IAAI,QAAQ,IAAI,EAAE;gBAChB,QAAQ,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE;YAC5B;YACA,OAAO;QACT;IACF;AACF"}}, + {"offset": {"line": 198, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/api/trees/%5BtreeId%5D/collaborators/route.ts"],"sourcesContent":["import { NextRequest, NextResponse } from \"next/server\"\nimport { getServerSession } from \"next-auth\"\nimport { authOptions } from \"@/lib/auth\"\nimport { prisma } from \"@/lib/prisma\"\n\n// 获取协作者列表\nexport async function GET(\n req: NextRequest,\n { params }: { params: Promise<{ treeId: string }> }\n) {\n try {\n const session = await getServerSession(authOptions)\n \n if (!session?.user?.id) {\n return NextResponse.json({ error: \"未授权\" }, { status: 401 })\n }\n\n const { treeId } = await params\n\n // 检查权限(所有者或协作者都可以看)\n const tree = await prisma.familyTree.findFirst({\n where: {\n id: treeId,\n OR: [\n { ownerId: session.user.id },\n {\n collaborators: {\n some: {\n userId: session.user.id\n }\n }\n }\n ]\n }\n })\n\n if (!tree) {\n return NextResponse.json({ error: \"家族树不存在或无权访问\" }, { status: 404 })\n }\n\n // 获取协作者\n const collaborators = await prisma.treeCollaborator.findMany({\n where: { treeId },\n include: {\n user: {\n select: {\n id: true,\n name: true,\n email: true,\n avatar: true\n }\n }\n },\n orderBy: {\n invitedAt: 'desc'\n }\n })\n\n return NextResponse.json({ collaborators })\n } catch (error) {\n console.error(\"获取协作者失败:\", error)\n return NextResponse.json(\n { error: \"获取协作者失败\" },\n { status: 500 }\n )\n }\n}\n\n// 移除协作者\nexport async function DELETE(\n req: NextRequest,\n { params }: { params: Promise<{ treeId: string }> }\n) {\n try {\n const session = await getServerSession(authOptions)\n \n if (!session?.user?.id) {\n return NextResponse.json({ error: \"未授权\" }, { status: 401 })\n }\n\n const { treeId } = await params\n const { searchParams } = new URL(req.url)\n const userId = searchParams.get('userId')\n\n if (!userId) {\n return NextResponse.json({ error: \"缺少用户ID\" }, { status: 400 })\n }\n\n // 检查权限:只有所有者可以移除协作者,或者是协作者自己退出\n const tree = await prisma.familyTree.findFirst({\n where: {\n id: treeId\n }\n })\n\n if (!tree) {\n return NextResponse.json({ error: \"家族树不存在\" }, { status: 404 })\n }\n\n const isOwner = tree.ownerId === session.user.id\n const isSelf = userId === session.user.id\n\n if (!isOwner && !isSelf) {\n return NextResponse.json({ error: \"无权移除此协作者\" }, { status: 403 })\n }\n\n // 移除协作者\n await prisma.treeCollaborator.deleteMany({\n where: {\n treeId,\n userId\n }\n })\n\n return NextResponse.json({ success: true })\n } catch (error) {\n console.error(\"移除协作者失败:\", error)\n return NextResponse.json(\n { error: \"移除协作者失败\" },\n { status: 500 }\n )\n }\n}\n"],"names":[],"mappings":"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"}}] +} \ No newline at end of file diff --git a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js index bfdb716d..46c8b6e3 100644 --- a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js +++ b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js @@ -2945,6 +2945,12 @@ function DashboardPage() { const stats = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useMemo"])(()=>{ const members = Object.values(treeData.members); const totalMembers = members.length; + // 在世和已故人数 + const livingMembers = members.filter((m)=>!m.deathDate).length; + const deceasedMembers = members.filter((m)=>m.deathDate).length; + // 性别统计 + const maleCount = members.filter((m)=>m.gender === 'MALE').length; + const femaleCount = members.filter((m)=>m.gender === 'FEMALE').length; // 计算最大代数(处理空数组的情况) const generations = members.map((m)=>m.generation || 0); const maxGeneration = generations.length > 0 ? Math.max(...generations) : 0; @@ -2952,11 +2958,24 @@ function DashboardPage() { const birthYears = members.map((m)=>m.birthDate ? new Date(m.birthDate).getFullYear() : null).filter((y)=>y !== null); const earliestYear = birthYears.length > 0 ? Math.min(...birthYears) : new Date().getFullYear(); const yearsSpan = birthYears.length > 0 ? new Date().getFullYear() - earliestYear : 0; + // 计算平均寿命(只统计已故成员) + const deceasedWithAge = members.filter((m)=>m.birthDate && m.deathDate); + const totalAge = deceasedWithAge.reduce((sum, m)=>{ + const birthYear = new Date(m.birthDate).getFullYear(); + const deathYear = new Date(m.deathDate).getFullYear(); + return sum + (deathYear - birthYear); + }, 0); + const averageLifespan = deceasedWithAge.length > 0 ? Math.round(totalAge / deceasedWithAge.length) : 0; return { totalMembers, + livingMembers, + deceasedMembers, + maleCount, + femaleCount, maxGeneration, yearsSpan, - earliestYear + earliestYear, + averageLifespan }; }, [ treeData @@ -3010,7 +3029,7 @@ function DashboardPage() { children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$site$2d$header$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["SiteHeader"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 139, + lineNumber: 163, columnNumber: 7 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("main", { @@ -3029,7 +3048,7 @@ function DashboardPage() { children: currentTree?.name || '家族族谱' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 145, + lineNumber: 169, columnNumber: 15 }, this), currentTree?.currentUserRole && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -3037,13 +3056,13 @@ function DashboardPage() { children: currentTree.currentUserRole === 'OWNER' ? '所有者' : currentTree.currentUserRole === 'EDITOR' ? '编辑者' : '查看者' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 149, + lineNumber: 173, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 144, + lineNumber: 168, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -3054,13 +3073,13 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 161, + lineNumber: 185, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 143, + lineNumber: 167, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3068,7 +3087,7 @@ function DashboardPage() { children: [ session && currentTree?.ownerId === session.user?.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$tree$2f$collaborator$2d$dialog$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CollaboratorDialog"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 168, + lineNumber: 192, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -3081,19 +3100,19 @@ function DashboardPage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 172, + lineNumber: 196, columnNumber: 17 }, this), "计算器" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 171, + lineNumber: 195, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 170, + lineNumber: 194, columnNumber: 13 }, this), (currentTree?.currentUserRole === "OWNER" || currentTree?.currentUserRole === "EDITOR") && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -3105,50 +3124,50 @@ function DashboardPage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 179, + lineNumber: 203, columnNumber: 19 }, this), "添加成员" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 178, + lineNumber: 202, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 177, + lineNumber: 201, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 166, + lineNumber: 190, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 142, + lineNumber: 166, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { - className: "grid grid-cols-1 md:grid-cols-3 gap-6 mb-8", + className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 mb-8", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { title: "家族成员", value: stats.totalMembers.toString(), - subtitle: `记录在册的家族成员`, + subtitle: `男 ${stats.maleCount} · 女 ${stats.femaleCount}`, icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Users$3e$__["Users"], { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 192, + lineNumber: 216, columnNumber: 19 }, void 0) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 188, + lineNumber: 212, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { @@ -3159,12 +3178,12 @@ function DashboardPage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 198, + lineNumber: 222, columnNumber: 19 }, void 0) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 194, + lineNumber: 218, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { @@ -3175,18 +3194,261 @@ function DashboardPage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 204, + lineNumber: 228, columnNumber: 19 }, void 0) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 200, + lineNumber: 224, + columnNumber: 11 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { + title: "在世 / 已故", + value: `${stats.livingMembers} / ${stats.deceasedMembers}`, + subtitle: `在世率 ${stats.totalMembers > 0 ? Math.round(stats.livingMembers / stats.totalMembers * 100) : 0}%`, + icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Users$3e$__["Users"], { + className: "h-4 w-4" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 234, + columnNumber: 19 + }, void 0) + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 230, + columnNumber: 11 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { + title: "平均寿命", + value: stats.averageLifespan > 0 ? `${stats.averageLifespan} 岁` : '暂无数据', + subtitle: `已统计 ${stats.deceasedMembers} 人`, + icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$clock$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Clock$3e$__["Clock"], { + className: "h-4 w-4" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 240, + columnNumber: 19 + }, void 0) + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 236, + columnNumber: 11 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Card"], { + className: "relative overflow-hidden border border-border/50 shadow-sm bg-gradient-to-br from-card to-card/50 backdrop-blur transition-all hover:shadow-lg hover:border-primary/30 group", + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], { + className: "p-6", + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "flex items-center justify-between mb-4", + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { + className: "text-sm font-semibold text-muted-foreground uppercase tracking-wide", + children: "性别比例" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 245, + columnNumber: 17 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "text-primary/70 bg-primary/10 p-2.5 rounded-lg group-hover:bg-primary/20 transition-colors", + children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Users$3e$__["Users"], { + className: "h-4 w-4" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 247, + columnNumber: 19 + }, this) + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 246, + columnNumber: 17 + }, this) + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 244, + columnNumber: 15 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "flex flex-col space-y-4", + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "flex items-center justify-center gap-3 py-2", + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-5xl font-serif font-bold text-blue-600 dark:text-blue-400 tracking-wider", + children: "1" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 252, + columnNumber: 19 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-4xl font-bold text-muted-foreground", + children: ":" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 255, + columnNumber: 19 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-5xl font-serif font-bold text-pink-600 dark:text-pink-400 tracking-wider", + children: stats.maleCount > 0 ? (stats.femaleCount / stats.maleCount).toFixed(2) : '0' + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 256, + columnNumber: 19 + }, this) + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 251, + columnNumber: 17 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "text-center text-xs text-muted-foreground/80 font-medium -mt-2", + children: "男性 : 女性" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 260, + columnNumber: 17 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "space-y-2", + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "flex items-center justify-between text-xs", + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-blue-600 dark:text-blue-400 font-medium flex items-center gap-1", + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "w-2 h-2 rounded-full bg-blue-500" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 268, + columnNumber: 23 + }, this), + "男性 ", + stats.maleCount + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 267, + columnNumber: 21 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-pink-600 dark:text-pink-400 font-medium flex items-center gap-1", + children: [ + "女性 ", + stats.femaleCount, + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "w-2 h-2 rounded-full bg-pink-500" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 273, + columnNumber: 23 + }, this) + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 271, + columnNumber: 21 + }, this) + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 266, + columnNumber: 19 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "h-3 bg-muted rounded-full overflow-hidden flex", + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "h-full bg-gradient-to-r from-blue-600 to-blue-500 transition-all duration-500 flex items-center justify-center", + style: { + width: `${stats.totalMembers > 0 ? stats.maleCount / stats.totalMembers * 100 : 0}%` + }, + children: stats.totalMembers > 0 && stats.maleCount > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-[10px] text-white font-bold px-1", + children: [ + Math.round(stats.maleCount / stats.totalMembers * 100), + "%" + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 282, + columnNumber: 25 + }, this) + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 277, + columnNumber: 21 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "h-full bg-gradient-to-r from-pink-500 to-pink-600 transition-all duration-500 flex items-center justify-center", + style: { + width: `${stats.totalMembers > 0 ? stats.femaleCount / stats.totalMembers * 100 : 0}%` + }, + children: stats.totalMembers > 0 && stats.femaleCount > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-[10px] text-white font-bold px-1", + children: [ + Math.round(stats.femaleCount / stats.totalMembers * 100), + "%" + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 292, + columnNumber: 25 + }, this) + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 287, + columnNumber: 21 + }, this) + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 276, + columnNumber: 19 + }, this) + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 265, + columnNumber: 17 + }, this) + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 250, + columnNumber: 15 + }, this) + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 243, + columnNumber: 13 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "absolute bottom-0 left-0 right-0 h-1 bg-gradient-to-r from-blue-500 via-purple-500 to-pink-500 opacity-0 group-hover:opacity-100 transition-opacity" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 301, + columnNumber: 13 + }, this) + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 242, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 187, + lineNumber: 211, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Tabs"], { @@ -3204,7 +3466,7 @@ function DashboardPage() { children: "最近更新" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 211, + lineNumber: 308, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsTrigger"], { @@ -3212,7 +3474,7 @@ function DashboardPage() { children: "近期纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 212, + lineNumber: 309, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsTrigger"], { @@ -3220,7 +3482,7 @@ function DashboardPage() { children: "统计图表" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 213, + lineNumber: 310, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsTrigger"], { @@ -3228,13 +3490,13 @@ function DashboardPage() { children: "迁徙记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 214, + lineNumber: 311, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 210, + lineNumber: 307, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -3249,24 +3511,24 @@ function DashboardPage() { className: "h-3 w-3" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 218, + lineNumber: 315, columnNumber: 22 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 217, + lineNumber: 314, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 216, + lineNumber: 313, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 209, + lineNumber: 306, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -3285,20 +3547,20 @@ function DashboardPage() { children: "近期修谱动态" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 227, + lineNumber: 324, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardDescription"], { children: "记录家族成员的最新变动与修订" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 228, + lineNumber: 325, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 226, + lineNumber: 323, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], { @@ -3316,20 +3578,20 @@ function DashboardPage() { className: "h-full w-px bg-border group-last:hidden" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 237, + lineNumber: 334, columnNumber: 31 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: `absolute top-2 h-2 w-2 rounded-full ring-4 ring-background ${activity.action === 'create' ? 'bg-green-500' : activity.action === 'update' ? 'bg-blue-500' : activity.action === 'delete' ? 'bg-red-500' : 'bg-purple-500'}` }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 238, + lineNumber: 335, columnNumber: 31 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 236, + lineNumber: 333, columnNumber: 29 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3343,7 +3605,7 @@ function DashboardPage() { children: activity.action === 'create' ? '创建' : activity.action === 'update' ? '更新' : activity.action === 'delete' ? '删除' : '导入' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 247, + lineNumber: 344, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -3351,7 +3613,7 @@ function DashboardPage() { children: activity.entityName || '未知' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 257, + lineNumber: 354, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -3359,13 +3621,13 @@ function DashboardPage() { children: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$date$2d$fns$40$4$2e$1$2e$0$2f$node_modules$2f$date$2d$fns$2f$format$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$locals$3e$__["format"])(new Date(activity.timestamp), 'MM-dd HH:mm') }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 258, + lineNumber: 355, columnNumber: 33 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 246, + lineNumber: 343, columnNumber: 31 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -3378,47 +3640,47 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 262, + lineNumber: 359, columnNumber: 31 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 245, + lineNumber: 342, columnNumber: 29 }, this) ] }, activity.id, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 235, + lineNumber: 332, columnNumber: 27 }, this)) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "text-center text-muted-foreground py-8", children: "暂无修谱记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 272, + lineNumber: 369, columnNumber: 25 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 232, + lineNumber: 329, columnNumber: 21 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 231, + lineNumber: 328, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 230, + lineNumber: 327, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 225, + lineNumber: 322, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3434,19 +3696,19 @@ function DashboardPage() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 285, + lineNumber: 382, columnNumber: 23 }, this), "本月祭祖/纪念" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 284, + lineNumber: 381, columnNumber: 21 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 283, + lineNumber: 380, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], { @@ -3469,7 +3731,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 297, + lineNumber: 394, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -3477,13 +3739,13 @@ function DashboardPage() { children: anniversary.day }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 300, + lineNumber: 397, columnNumber: 33 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 296, + lineNumber: 393, columnNumber: 31 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3498,7 +3760,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 303, + lineNumber: 400, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -3513,24 +3775,24 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 306, + lineNumber: 403, columnNumber: 33 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 302, + lineNumber: 399, columnNumber: 31 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 295, + lineNumber: 392, columnNumber: 29 }, this) }, `${anniversary.member.id}-${anniversary.type}`, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 294, + lineNumber: 391, columnNumber: 27 }, this); }) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3538,34 +3800,34 @@ function DashboardPage() { children: "本月暂无纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 316, + lineNumber: 413, columnNumber: 23 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 289, + lineNumber: 386, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 282, + lineNumber: 379, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 281, + lineNumber: 378, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 224, + lineNumber: 321, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 223, + lineNumber: 320, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -3581,20 +3843,20 @@ function DashboardPage() { children: "近期纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 330, + lineNumber: 427, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardDescription"], { children: "未来三个月内的生日和忌日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 331, + lineNumber: 428, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 329, + lineNumber: 426, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], { @@ -3656,7 +3918,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 387, + lineNumber: 484, columnNumber: 37 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -3664,13 +3926,13 @@ function DashboardPage() { children: event.date.getDate() }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 388, + lineNumber: 485, columnNumber: 37 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 386, + lineNumber: 483, columnNumber: 35 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3685,7 +3947,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 391, + lineNumber: 488, columnNumber: 37 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -3700,34 +3962,34 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 394, + lineNumber: 491, columnNumber: 37 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 390, + lineNumber: 487, columnNumber: 35 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 385, + lineNumber: 482, columnNumber: 33 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 384, + lineNumber: 481, columnNumber: 31 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 383, + lineNumber: 480, columnNumber: 29 }, this) }, `${event.member.id}-${event.type}-${index}`, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 382, + lineNumber: 479, columnNumber: 27 }, this); }) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3735,29 +3997,29 @@ function DashboardPage() { children: "未来三个月暂无纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 406, + lineNumber: 503, columnNumber: 23 }, this); })() }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 334, + lineNumber: 431, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 333, + lineNumber: 430, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 328, + lineNumber: 425, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 327, + lineNumber: 424, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -3767,12 +4029,12 @@ function DashboardPage() { members: Object.values(treeData.members) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 418, + lineNumber: 515, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 417, + lineNumber: 514, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -3788,20 +4050,20 @@ function DashboardPage() { children: "家族迁徙记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 425, + lineNumber: 522, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardDescription"], { children: "记录家族成员的籍贯分布" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 426, + lineNumber: 523, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 424, + lineNumber: 521, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], { @@ -3830,7 +4092,7 @@ function DashboardPage() { children: location }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 450, + lineNumber: 547, columnNumber: 29 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -3841,13 +4103,13 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 451, + lineNumber: 548, columnNumber: 29 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 449, + lineNumber: 546, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3862,7 +4124,7 @@ function DashboardPage() { children: member.fullName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 459, + lineNumber: 556, columnNumber: 35 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -3874,36 +4136,36 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 460, + lineNumber: 557, columnNumber: 35 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 458, + lineNumber: 555, columnNumber: 33 }, this) }, member.id, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 457, + lineNumber: 554, columnNumber: 31 }, this)) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 455, + lineNumber: 552, columnNumber: 27 }, this) ] }, location, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 448, + lineNumber: 545, columnNumber: 25 }, this)) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "text-center py-12 text-muted-foreground", children: "暂无迁徙记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 468, + lineNumber: 565, columnNumber: 23 }, this); }, [ @@ -3911,109 +4173,118 @@ function DashboardPage() { ]) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 429, + lineNumber: 526, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 428, + lineNumber: 525, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 423, + lineNumber: 520, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 422, + lineNumber: 519, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 208, + lineNumber: 305, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 141, + lineNumber: 165, columnNumber: 7 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 138, + lineNumber: 162, columnNumber: 5 }, this); } function StatCard({ title, value, subtitle, icon }) { return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Card"], { - className: "border-none shadow-sm bg-card/50 backdrop-blur transition-all hover:bg-card hover:shadow-md", - children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], { - className: "p-6", - children: [ - /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { - className: "flex items-center justify-between space-y-0 pb-2", - children: [ - /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { - className: "text-sm font-medium text-muted-foreground", - children: title - }, void 0, false, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 493, - columnNumber: 11 - }, this), - /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { - className: "text-muted-foreground bg-muted p-2 rounded-full", - children: icon - }, void 0, false, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 494, - columnNumber: 11 - }, this) - ] - }, void 0, true, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 492, - columnNumber: 9 - }, this), - /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { - className: "flex flex-col mt-2", - children: [ - /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-3xl font-serif font-bold text-foreground", - children: value - }, void 0, false, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 497, - columnNumber: 11 - }, this), - /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { - className: "text-xs text-muted-foreground mt-1", - children: subtitle - }, void 0, false, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 498, - columnNumber: 11 - }, this) - ] - }, void 0, true, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 496, - columnNumber: 9 - }, this) - ] - }, void 0, true, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 491, - columnNumber: 7 - }, this) - }, void 0, false, { + className: "relative overflow-hidden border border-border/50 shadow-sm bg-gradient-to-br from-card to-card/50 backdrop-blur transition-all hover:shadow-lg hover:border-primary/30 group", + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], { + className: "p-6", + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "flex items-center justify-between mb-4", + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { + className: "text-sm font-semibold text-muted-foreground uppercase tracking-wide", + children: title + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 590, + columnNumber: 11 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "text-primary/70 bg-primary/10 p-2.5 rounded-lg group-hover:bg-primary/20 transition-colors", + children: icon + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 591, + columnNumber: 11 + }, this) + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 589, + columnNumber: 9 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "flex flex-col space-y-1", + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-3xl font-serif font-bold text-foreground tracking-tight", + children: value + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 596, + columnNumber: 11 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { + className: "text-xs text-muted-foreground/80 font-medium", + children: subtitle + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 597, + columnNumber: 11 + }, this) + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 595, + columnNumber: 9 + }, this) + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 588, + columnNumber: 7 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { + className: "absolute bottom-0 left-0 right-0 h-1 bg-gradient-to-r from-primary/50 via-primary to-primary/50 opacity-0 group-hover:opacity-100 transition-opacity" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 600, + columnNumber: 7 + }, this) + ] + }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 490, + lineNumber: 587, columnNumber: 5 }, this); } diff --git a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js.map b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js.map index b59b9d03..21ade185 100644 --- a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js.map +++ b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js.map @@ -11,5 +11,5 @@ {"offset": {"line": 1898, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/dialog.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { XIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Dialog({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps & {\n showCloseButton?: boolean\n}) {\n return (\n \n \n \n {children}\n {showCloseButton && (\n \n \n Close\n \n )}\n \n \n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AAEA;AANA;;;;;AAQA,SAAS,OAAO,EACd,GAAG,OAC+C;IAClD,qBAAO,oaAAC,qbAAoB;QAAC,aAAU;QAAU,GAAG,KAAK;;;;;;AAC3D;AAEA,SAAS,cAAc,EACrB,GAAG,OACkD;IACrD,qBAAO,oaAAC,wbAAuB;QAAC,aAAU;QAAkB,GAAG,KAAK;;;;;;AACtE;AAEA,SAAS,aAAa,EACpB,GAAG,OACiD;IACpD,qBAAO,oaAAC,ubAAsB;QAAC,aAAU;QAAiB,GAAG,KAAK;;;;;;AACpE;AAEA,SAAS,YAAY,EACnB,GAAG,OACgD;IACnD,qBAAO,oaAAC,sbAAqB;QAAC,aAAU;QAAgB,GAAG,KAAK;;;;;;AAClE;AAEA,SAAS,cAAc,EACrB,SAAS,EACT,GAAG,OACkD;IACrD,qBACE,oaAAC,wbAAuB;QACtB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,0JACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,cAAc,EACrB,SAAS,EACT,QAAQ,EACR,kBAAkB,IAAI,EACtB,GAAG,OAGJ;IACC,qBACE,oaAAC;QAAa,aAAU;;0BACtB,oaAAC;;;;;0BACD,oaAAC,wbAAuB;gBACtB,aAAU;gBACV,WAAW,IAAA,yKAAE,EACX,+WACA;gBAED,GAAG,KAAK;;oBAER;oBACA,iCACC,oaAAC,sbAAqB;wBACpB,aAAU;wBACV,WAAU;;0CAEV,oaAAC,oVAAK;;;;;0CACN,oaAAC;gCAAK,WAAU;0CAAU;;;;;;;;;;;;;;;;;;;;;;;;AAMtC;AAEA,SAAS,aAAa,EAAE,SAAS,EAAE,GAAG,OAAoC;IACxE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,gDAAgD;QAC7D,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,aAAa,EAAE,SAAS,EAAE,GAAG,OAAoC;IACxE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,0DACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,sCAAsC;QACnD,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,kBAAkB,EACzB,SAAS,EACT,GAAG,OACsD;IACzD,qBACE,oaAAC,4bAA2B;QAC1B,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,iCAAiC;QAC9C,GAAG,KAAK;;;;;;AAGf"}}, {"offset": {"line": 2080, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/select.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as SelectPrimitive from '@radix-ui/react-select'\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Select({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps & {\n size?: 'sm' | 'default'\n}) {\n return (\n \n {children}\n \n \n \n \n )\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n {children}\n \n \n \n \n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AAAA;AAAA;AAEA;AANA;;;;;AAQA,SAAS,OAAO,EACd,GAAG,OAC+C;IAClD,qBAAO,oaAAC,qbAAoB;QAAC,aAAU;QAAU,GAAG,KAAK;;;;;;AAC3D;AAEA,SAAS,YAAY,EACnB,GAAG,OACgD;IACnD,qBAAO,oaAAC,sbAAqB;QAAC,aAAU;QAAgB,GAAG,KAAK;;;;;;AAClE;AAEA,SAAS,YAAY,EACnB,GAAG,OACgD;IACnD,qBAAO,oaAAC,sbAAqB;QAAC,aAAU;QAAgB,GAAG,KAAK;;;;;;AAClE;AAEA,SAAS,cAAc,EACrB,SAAS,EACT,OAAO,SAAS,EAChB,QAAQ,EACR,GAAG,OAGJ;IACC,qBACE,oaAAC,wbAAuB;QACtB,aAAU;QACV,aAAW;QACX,WAAW,IAAA,yKAAE,EACX,gzBACA;QAED,GAAG,KAAK;;YAER;0BACD,oaAAC,qbAAoB;gBAAC,OAAO;0BAC3B,cAAA,oaAAC,sXAAe;oBAAC,WAAU;;;;;;;;;;;;;;;;;AAInC;AAEA,SAAS,cAAc,EACrB,SAAS,EACT,QAAQ,EACR,WAAW,QAAQ,EACnB,GAAG,OACkD;IACrD,qBACE,oaAAC,ubAAsB;kBACrB,cAAA,oaAAC,wbAAuB;YACtB,aAAU;YACV,WAAW,IAAA,yKAAE,EACX,ijBACA,aAAa,YACX,mIACF;YAEF,UAAU;YACT,GAAG,KAAK;;8BAET,oaAAC;;;;;8BACD,oaAAC,ybAAwB;oBACvB,WAAW,IAAA,yKAAE,EACX,OACA,aAAa,YACX;8BAGH;;;;;;8BAEH,oaAAC;;;;;;;;;;;;;;;;AAIT;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,6CAA6C;QAC1D,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,OAC+C;IAClD,qBACE,oaAAC,qbAAoB;QACnB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,6aACA;QAED,GAAG,KAAK;;0BAET,oaAAC;gBAAK,WAAU;0BACd,cAAA,oaAAC,8bAA6B;8BAC5B,cAAA,oaAAC,gWAAS;wBAAC,WAAU;;;;;;;;;;;;;;;;0BAGzB,oaAAC,ybAAwB;0BAAE;;;;;;;;;;;;AAGjC;AAEA,SAAS,gBAAgB,EACvB,SAAS,EACT,GAAG,OACoD;IACvD,qBACE,oaAAC,0bAAyB;QACxB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,iDAAiD;QAC9D,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,qBAAqB,EAC5B,SAAS,EACT,GAAG,OACyD;IAC5D,qBACE,oaAAC,+bAA8B;QAC7B,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,wDACA;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,gXAAa;YAAC,WAAU;;;;;;;;;;;AAG/B;AAEA,SAAS,uBAAuB,EAC9B,SAAS,EACT,GAAG,OAC2D;IAC9D,qBACE,oaAAC,icAAgC;QAC/B,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,wDACA;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,sXAAe;YAAC,WAAU;;;;;;;;;;;AAGjC"}}, {"offset": {"line": 2313, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/tree/collaborator-dialog.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { useSession } from \"next-auth/react\"\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger } from \"@/components/ui/dialog\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\"\nimport { Avatar, AvatarFallback } from \"@/components/ui/avatar\"\nimport { Users, Mail, Trash2, Plus, Shield, Eye, Edit } from \"lucide-react\"\nimport { Alert, AlertDescription, AlertTitle } from \"@/components/ui/alert\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useDialog } from \"@/components/ui/alert-dialog-custom\"\n\ninterface Collaborator {\n id: string\n userId: string\n role: \"EDITOR\" | \"VIEWER\"\n invitedAt: string\n user: {\n id: string\n name: string | null\n email: string\n avatar: string | null\n }\n}\n\nexport function CollaboratorDialog() {\n const { data: session } = useSession()\n const { currentTree } = useFamily()\n const { showConfirm, showAlert } = useDialog()\n const [open, setOpen] = useState(false)\n const [collaborators, setCollaborators] = useState([])\n const [isInviting, setIsInviting] = useState(false)\n const [email, setEmail] = useState(\"\")\n const [role, setRole] = useState<\"EDITOR\" | \"VIEWER\">(\"VIEWER\")\n const [password, setPassword] = useState(\"\")\n const [error, setError] = useState(\"\")\n const [success, setSuccess] = useState(\"\")\n\n // 加载协作者\n useEffect(() => {\n if (open && currentTree?.id) {\n loadCollaborators()\n }\n }, [open, currentTree?.id])\n\n const loadCollaborators = async () => {\n if (!currentTree?.id) return\n \n try {\n const res = await fetch(`/api/trees/${currentTree.id}/collaborators`)\n if (res.ok) {\n const data = await res.json()\n setCollaborators(data.collaborators)\n }\n } catch (err) {\n console.error(\"加载协作者失败:\", err)\n }\n }\n\n const handleInvite = async (e: React.FormEvent) => {\n e.preventDefault()\n if (!currentTree?.id) return\n\n setIsInviting(true)\n setError(\"\")\n setSuccess(\"\")\n\n try {\n const res = await fetch(`/api/trees/${currentTree.id}/invite`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n email,\n role,\n password: password || undefined,\n }),\n })\n\n const data = await res.json()\n\n if (!res.ok) {\n throw new Error(data.error || \"邀请失败\")\n }\n\n setSuccess(data.message)\n setEmail(\"\")\n setPassword(\"\")\n loadCollaborators()\n } catch (err: any) {\n setError(err.message)\n } finally {\n setIsInviting(false)\n }\n }\n\n const handleRemove = async (userId: string) => {\n if (!currentTree?.id) return\n \n const confirmed = await showConfirm(\"确定要移除此协作者吗?\", \"移除协作者\")\n if (!confirmed) return\n\n try {\n const res = await fetch(`/api/trees/${currentTree.id}/collaborators?userId=${userId}`, {\n method: 'DELETE',\n })\n\n if (!res.ok) throw new Error('移除失败')\n\n loadCollaborators()\n } catch (err) {\n console.error(err)\n await showAlert(\"移除失败\", \"错误\")\n }\n }\n\n if (!currentTree) return null\n if (currentTree.ownerId !== session?.user?.id) return null\n\n return (\n \n \n \n \n \n \n 协作管理 - {currentTree.name}\n \n 邀请其他用户协作编辑或查看您的家族树。\n \n \n \n
\n {/* 邀请表单 */}\n
\n
\n
\n \n setEmail(e.target.value)}\n required\n />\n
\n
\n \n \n
\n
\n \n
\n setPassword(e.target.value)}\n minLength={6}\n className=\"flex-1\"\n />\n \n
\n

如果是现有用户,此密码将被忽略。

\n
\n
\n\n {error && (\n \n 错误\n {error}\n \n )}\n\n {success && (\n \n 成功\n {success}\n \n )}\n
\n\n {/* 协作者列表 */}\n
\n

现有协作者

\n {collaborators.length === 0 ? (\n
\n 暂无协作者\n
\n ) : (\n
\n {collaborators.map((collab) => (\n \n
\n \n \n {collab.user.name?.charAt(0).toUpperCase() || collab.user.email.charAt(0).toUpperCase()}\n \n \n
\n
{collab.user.name || \"用户\"}
\n
{collab.user.email}
\n
\n
\n
\n \n {collab.role === 'EDITOR' ? '编辑者' : '查看者'}\n \n handleRemove(collab.userId)}\n >\n \n \n
\n
\n ))}\n
\n )}\n
\n \n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 2877, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/page.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\nimport Link from \"next/link\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\nimport { UserPlus, Network, Map, Calendar, Users, ArrowRight, Clock, Search, BookOpen, BarChart3, Calculator } from \"lucide-react\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useMemo, useState, useEffect, useRef } from \"react\"\nimport { StatisticsCharts } from \"@/components/dashboard/statistics-charts\"\nimport { format } from \"date-fns\"\nimport { useSession } from \"next-auth/react\"\nimport { useSearchParams } from \"next/navigation\"\nimport { CollaboratorDialog } from \"@/components/tree/collaborator-dialog\"\n\ninterface ActivityLog {\n id: string\n action: string\n entityType: string\n entityId?: string | null\n entityName?: string | null\n timestamp: string\n user?: {\n name?: string | null\n email?: string | null\n }\n}\n\nexport default function DashboardPage() {\n const { treeData, isLoading, currentTree } = useFamily()\n const { data: session } = useSession()\n const [recentActivities, setRecentActivities] = useState([])\n \n // 加载最近的操作日志\n useEffect(() => {\n if (currentTree?.id && session?.user?.id) {\n fetch(`/api/trees/${currentTree.id}/activity-logs?limit=10`)\n .then(res => {\n if (!res.ok) {\n throw new Error('获取活动日志失败')\n }\n return res.json()\n })\n .then(data => {\n if (data.logs) {\n setRecentActivities(data.logs)\n }\n })\n .catch(err => {\n console.error('获取活动日志失败:', err)\n setRecentActivities([])\n })\n } else {\n setRecentActivities([])\n }\n }, [currentTree?.id, session?.user?.id])\n \n // 计算统计数据\n const stats = useMemo(() => {\n const members = Object.values(treeData.members)\n const totalMembers = members.length\n \n // 计算最大代数(处理空数组的情况)\n const generations = members.map(m => m.generation || 0)\n const maxGeneration = generations.length > 0 ? Math.max(...generations) : 0\n \n // 计算最早出生年份\n const birthYears = members\n .map(m => m.birthDate ? new Date(m.birthDate).getFullYear() : null)\n .filter(y => y !== null) as number[]\n const earliestYear = birthYears.length > 0 ? Math.min(...birthYears) : new Date().getFullYear()\n const yearsSpan = birthYears.length > 0 ? new Date().getFullYear() - earliestYear : 0\n \n return {\n totalMembers,\n maxGeneration,\n yearsSpan,\n earliestYear\n }\n }, [treeData])\n \n // 获取最近的成员(按ID排序,取最新的5个)\n const recentMembers = useMemo(() => {\n return Object.values(treeData.members)\n .sort((a, b) => parseInt(b.id) - parseInt(a.id))\n .slice(0, 5)\n }, [treeData])\n \n // 获取本月纪念日(生日和忌日)\n const monthlyAnniversaries = useMemo(() => {\n const currentMonth = new Date().getMonth() + 1\n const members = Object.values(treeData.members)\n \n const anniversaries: Array<{\n member: any\n type: 'birth' | 'death'\n date: string\n day: number\n }> = []\n \n members.forEach(member => {\n // 检查生日\n if (member.birthDate) {\n const birthMonth = new Date(member.birthDate).getMonth() + 1\n const birthDay = new Date(member.birthDate).getDate()\n if (birthMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'birth',\n date: member.birthDate,\n day: birthDay\n })\n }\n }\n \n // 检查忌日\n if (member.deathDate) {\n const deathMonth = new Date(member.deathDate).getMonth() + 1\n const deathDay = new Date(member.deathDate).getDate()\n if (deathMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'death',\n date: member.deathDate,\n day: deathDay\n })\n }\n }\n })\n \n // 按日期排序\n return anniversaries.sort((a, b) => a.day - b.day).slice(0, 5)\n }, [treeData])\n return (\n
\n \n\n
\n
\n
\n
\n

\n {currentTree?.name || '家族族谱'}\n

\n {currentTree?.currentUserRole && (\n \n {currentTree.currentUserRole === 'OWNER' ? '所有者' : \n currentTree.currentUserRole === 'EDITOR' ? '编辑者' : '查看者'}\n \n )}\n
\n

\n {currentTree?.description || '记录家族历史,传承家族文化'}\n {stats.maxGeneration > 0 && ` · 第 ${stats.maxGeneration} 代传人`}\n

\n
\n
\n {session && currentTree?.ownerId === session.user?.id && (\n \n )}\n \n \n \n {(currentTree?.currentUserRole === \"OWNER\" || currentTree?.currentUserRole === \"EDITOR\") && (\n \n \n \n )}\n
\n
\n\n
\n } \n />\n } \n />\n } \n />\n
\n\n \n
\n \n 最近更新\n 近期纪念日\n 统计图表\n 迁徙记录\n \n \n \n \n
\n\n \n
\n \n \n 近期修谱动态\n 记录家族成员的最新变动与修订\n \n \n \n
\n {recentActivities.length > 0 ? (\n recentActivities.map((activity, i) => (\n
\n
\n
\n
\n
\n
\n
\n \n {activity.action === 'create' ? '创建' :\n activity.action === 'update' ? '更新' :\n activity.action === 'delete' ? '删除' : '导入'}\n \n {activity.entityName || '未知'}\n \n {format(new Date(activity.timestamp), 'MM-dd HH:mm')}\n \n
\n

\n {activity.action === 'create' && '新增了家族成员'}\n {activity.action === 'update' && '更新了成员信息'}\n {activity.action === 'delete' && '删除了成员'}\n {activity.action === 'import' && '导入了家族数据'}\n

\n
\n
\n ))\n ) : (\n
\n 暂无修谱记录\n
\n )}\n
\n
\n
\n
\n\n
\n \n \n \n \n 本月祭祖/纪念\n \n \n \n {monthlyAnniversaries.length > 0 ? (\n monthlyAnniversaries.map((anniversary, index) => {\n const yearsAgo = new Date().getFullYear() - new Date(anniversary.date).getFullYear()\n return (\n \n
\n
\n \n {new Date(anniversary.date).getMonth() + 1}月\n \n {anniversary.day}\n
\n
\n

\n {anniversary.member.fullName} {anniversary.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {anniversary.member.generation} 世 · 距今 {yearsAgo} 年\n {anniversary.type === 'death' && ' · 已故'}\n

\n
\n
\n \n )\n })\n ) : (\n
\n 本月暂无纪念日\n
\n )}\n
\n
\n
\n
\n
\n\n {/* 近期纪念日标签页 */}\n \n \n \n 近期纪念日\n 未来三个月内的生日和忌日\n \n \n
\n {(() => {\n const now = new Date()\n const threeMonthsLater = new Date(now.getFullYear(), now.getMonth() + 3, now.getDate())\n const members = Object.values(treeData.members)\n const upcomingEvents: Array<{\n member: any\n type: 'birth' | 'death'\n date: Date\n originalDate: string\n }> = []\n\n members.forEach(member => {\n // 生日\n if (member.birthDate) {\n const birthDate = new Date(member.birthDate)\n const thisYearBirth = new Date(now.getFullYear(), birthDate.getMonth(), birthDate.getDate())\n if (thisYearBirth >= now && thisYearBirth <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'birth',\n date: thisYearBirth,\n originalDate: member.birthDate\n })\n }\n }\n\n // 忌日\n if (member.deathDate) {\n const deathDate = new Date(member.deathDate)\n const thisYearDeath = new Date(now.getFullYear(), deathDate.getMonth(), deathDate.getDate())\n if (thisYearDeath >= now && thisYearDeath <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'death',\n date: thisYearDeath,\n originalDate: member.deathDate\n })\n }\n }\n })\n\n upcomingEvents.sort((a, b) => a.date.getTime() - b.date.getTime())\n\n return upcomingEvents.length > 0 ? (\n upcomingEvents.map((event, index) => {\n const yearsAgo = now.getFullYear() - new Date(event.originalDate).getFullYear()\n return (\n \n \n \n
\n
\n {event.date.getMonth() + 1}月\n {event.date.getDate()}\n
\n
\n

\n {event.member.fullName} {event.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {event.member.generation} 世 · {yearsAgo} 年\n {event.type === 'death' && ' · 已故'}\n

\n
\n
\n
\n
\n \n )\n })\n ) : (\n
\n 未来三个月暂无纪念日\n
\n )\n })()}\n
\n
\n
\n
\n\n {/* 统计图表标签页 */}\n \n \n \n\n {/* 迁徙记录标签页 */}\n \n \n \n 家族迁徙记录\n 记录家族成员的籍贯分布\n \n \n
\n {useMemo(() => {\n const members = Object.values(treeData.members)\n const locationGroups: Record = {}\n\n members.forEach(member => {\n if (member.ancestralHome) {\n if (!locationGroups[member.ancestralHome]) {\n locationGroups[member.ancestralHome] = []\n }\n locationGroups[member.ancestralHome].push(member)\n }\n })\n\n const sortedLocations = Object.entries(locationGroups)\n .sort((a, b) => b[1].length - a[1].length)\n\n return sortedLocations.length > 0 ? (\n sortedLocations.map(([location, locationMembers]) => (\n
\n
\n

{location}

\n \n {locationMembers.length} 人\n \n
\n
\n {locationMembers.map((member: any) => (\n \n
\n

{member.fullName}

\n

第 {member.generation} 世

\n
\n \n ))}\n
\n
\n ))\n ) : (\n
\n 暂无迁徙记录\n
\n )\n }, [treeData])}\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction StatCard({\n title,\n value,\n subtitle,\n icon,\n}: { title: string; value: string; subtitle: string; icon: React.ReactNode }) {\n return (\n \n \n
\n

{title}

\n
{icon}
\n
\n
\n {value}\n

{subtitle}

\n
\n
\n
\n )\n}\n"],"names":[],"mappings":";;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAhBA;;;;;;;;;;;;;;;AA+Be,SAAS;IACtB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAA,iMAAS;IACtD,MAAM,EAAE,MAAM,OAAO,EAAE,GAAG,IAAA,qaAAU;IACpC,MAAM,CAAC,kBAAkB,oBAAoB,GAAG,IAAA,uYAAQ,EAAgB,EAAE;IAE1E,YAAY;IACZ,IAAA,wYAAS,EAAC;QACR,IAAI,aAAa,MAAM,SAAS,MAAM,IAAI;YACxC,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,CAAC,uBAAuB,CAAC,EACxD,IAAI,CAAC,CAAA;gBACJ,IAAI,CAAC,IAAI,EAAE,EAAE;oBACX,MAAM,IAAI,MAAM;gBAClB;gBACA,OAAO,IAAI,IAAI;YACjB,GACC,IAAI,CAAC,CAAA;gBACJ,IAAI,KAAK,IAAI,EAAE;oBACb,oBAAoB,KAAK,IAAI;gBAC/B;YACF,GACC,KAAK,CAAC,CAAA;gBACL,QAAQ,KAAK,CAAC,aAAa;gBAC3B,oBAAoB,EAAE;YACxB;QACJ,OAAO;YACL,oBAAoB,EAAE;QACxB;IACF,GAAG;QAAC,aAAa;QAAI,SAAS,MAAM;KAAG;IAEvC,SAAS;IACT,MAAM,QAAQ,IAAA,sYAAO,EAAC;QACpB,MAAM,UAAU,OAAO,MAAM,CAAC,SAAS,OAAO;QAC9C,MAAM,eAAe,QAAQ,MAAM;QAEnC,mBAAmB;QACnB,MAAM,cAAc,QAAQ,GAAG,CAAC,CAAA,IAAK,EAAE,UAAU,IAAI;QACrD,MAAM,gBAAgB,YAAY,MAAM,GAAG,IAAI,KAAK,GAAG,IAAI,eAAe;QAE1E,WAAW;QACX,MAAM,aAAa,QAChB,GAAG,CAAC,CAAA,IAAK,EAAE,SAAS,GAAG,IAAI,KAAK,EAAE,SAAS,EAAE,WAAW,KAAK,MAC7D,MAAM,CAAC,CAAA,IAAK,MAAM;QACrB,MAAM,eAAe,WAAW,MAAM,GAAG,IAAI,KAAK,GAAG,IAAI,cAAc,IAAI,OAAO,WAAW;QAC7F,MAAM,YAAY,WAAW,MAAM,GAAG,IAAI,IAAI,OAAO,WAAW,KAAK,eAAe;QAEpF,OAAO;YACL;YACA;YACA;YACA;QACF;IACF,GAAG;QAAC;KAAS;IAEb,wBAAwB;IACxB,MAAM,gBAAgB,IAAA,sYAAO,EAAC;QAC5B,OAAO,OAAO,MAAM,CAAC,SAAS,OAAO,EAClC,IAAI,CAAC,CAAC,GAAG,IAAM,SAAS,EAAE,EAAE,IAAI,SAAS,EAAE,EAAE,GAC7C,KAAK,CAAC,GAAG;IACd,GAAG;QAAC;KAAS;IAEb,iBAAiB;IACjB,MAAM,uBAAuB,IAAA,sYAAO,EAAC;QACnC,MAAM,eAAe,IAAI,OAAO,QAAQ,KAAK;QAC7C,MAAM,UAAU,OAAO,MAAM,CAAC,SAAS,OAAO;QAE9C,MAAM,gBAKD,EAAE;QAEP,QAAQ,OAAO,CAAC,CAAA;YACd,OAAO;YACP,IAAI,OAAO,SAAS,EAAE;gBACpB,MAAM,aAAa,IAAI,KAAK,OAAO,SAAS,EAAE,QAAQ,KAAK;gBAC3D,MAAM,WAAW,IAAI,KAAK,OAAO,SAAS,EAAE,OAAO;gBACnD,IAAI,eAAe,cAAc;oBAC/B,cAAc,IAAI,CAAC;wBACjB;wBACA,MAAM;wBACN,MAAM,OAAO,SAAS;wBACtB,KAAK;oBACP;gBACF;YACF;YAEA,OAAO;YACP,IAAI,OAAO,SAAS,EAAE;gBACpB,MAAM,aAAa,IAAI,KAAK,OAAO,SAAS,EAAE,QAAQ,KAAK;gBAC3D,MAAM,WAAW,IAAI,KAAK,OAAO,SAAS,EAAE,OAAO;gBACnD,IAAI,eAAe,cAAc;oBAC/B,cAAc,IAAI,CAAC;wBACjB;wBACA,MAAM;wBACN,MAAM,OAAO,SAAS;wBACtB,KAAK;oBACP;gBACF;YACF;QACF;QAEA,QAAQ;QACR,OAAO,cAAc,IAAI,CAAC,CAAC,GAAG,IAAM,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG;IAC9D,GAAG;QAAC;KAAS;IACb,qBACE,oaAAC;QAAI,WAAU;;0BACb,oaAAC,kMAAU;;;;;0BAEX,oaAAC;gBAAK,WAAU;;kCACd,oaAAC;wBAAI,WAAU;;0CACb,oaAAC;;kDACC,oaAAC;wCAAI,WAAU;;0DACb,oaAAC;gDAAG,WAAU;0DACX,aAAa,QAAQ;;;;;;4CAEvB,aAAa,iCACZ,oaAAC;gDAAK,WAAW,CAAC,8EAA8E,EAC9F,YAAY,eAAe,KAAK,UAC5B,oDACA,YAAY,eAAe,KAAK,WAChC,8CACA,6CACJ;0DACC,YAAY,eAAe,KAAK,UAAU,QAC1C,YAAY,eAAe,KAAK,WAAW,QAAQ;;;;;;;;;;;;kDAI1D,oaAAC;wCAAE,WAAU;;4CACV,aAAa,eAAe;4CAC5B,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC;;;;;;;;;;;;;0CAGjE,oaAAC;gCAAI,WAAU;;oCACZ,WAAW,aAAa,YAAY,QAAQ,IAAI,EAAE,oBACjD,oaAAC,0NAAkB;;;;;kDAErB,oaAAC,6VAAI;wCAAC,MAAK;kDACT,cAAA,oaAAC,4LAAM;4CAAC,SAAQ;4CAAU,WAAU;;8DAClC,oaAAC,uWAAU;oDAAC,WAAU;;;;;;gDAAY;;;;;;;;;;;;oCAIrC,CAAC,aAAa,oBAAoB,WAAW,aAAa,oBAAoB,QAAQ,mBACrF,oaAAC,6VAAI;wCAAC,MAAK;kDACT,cAAA,oaAAC,4LAAM;4CAAC,WAAU;;8DAChB,oaAAC,qWAAQ;oDAAC,WAAU;;;;;;gDAAY;;;;;;;;;;;;;;;;;;;;;;;;kCAQ1C,oaAAC;wBAAI,WAAU;;0CACb,oaAAC;gCACC,OAAM;gCACN,OAAO,MAAM,YAAY,CAAC,QAAQ;gCAClC,UAAU,CAAC,SAAS,CAAC;gCACrB,oBAAM,oaAAC,wVAAK;oCAAC,WAAU;;;;;;;;;;;0CAEzB,oaAAC;gCACC,OAAM;gCACN,OAAO,GAAG,MAAM,SAAS,CAAC,EAAE,CAAC;gCAC7B,UAAU,CAAC,GAAG,EAAE,MAAM,YAAY,CAAC,EAAE,CAAC;gCACtC,oBAAM,oaAAC,wVAAK;oCAAC,WAAU;;;;;;;;;;;0CAEzB,oaAAC;gCACC,OAAM;gCACN,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,CAAC;gCACjC,UAAU,CAAC,MAAM,CAAC;gCAClB,oBAAM,oaAAC,8VAAO;oCAAC,WAAU;;;;;;;;;;;;;;;;;kCAI7B,oaAAC,wLAAI;wBAAC,cAAa;wBAAS,WAAU;;0CACpC,oaAAC;gCAAI,WAAU;;kDACb,oaAAC,4LAAQ;wCAAC,WAAU;;0DAClB,oaAAC,+LAAW;gDAAC,OAAM;0DAAS;;;;;;0DAC5B,oaAAC,+LAAW;gDAAC,OAAM;0DAAgB;;;;;;0DACnC,oaAAC,+LAAW;gDAAC,OAAM;0DAAa;;;;;;0DAChC,oaAAC,+LAAW;gDAAC,OAAM;0DAAY;;;;;;;;;;;;kDAEjC,oaAAC,6VAAI;wCAAC,MAAK;kDACT,cAAA,oaAAC,4LAAM;4CAAC,SAAQ;4CAAQ,MAAK;4CAAK,WAAU;;gDAA8B;8DACnE,oaAAC,2WAAU;oDAAC,WAAU;;;;;;;;;;;;;;;;;;;;;;;0CAKjC,oaAAC,+LAAW;gCAAC,OAAM;gCAAS,WAAU;0CACpC,cAAA,oaAAC;oCAAI,WAAU;;sDACb,oaAAC,wLAAI;4CAAC,WAAU;;8DACd,oaAAC,8LAAU;;sEACT,oaAAC,6LAAS;4DAAC,WAAU;sEAAa;;;;;;sEAClC,oaAAC,mMAAe;sEAAC;;;;;;;;;;;;8DAEnB,oaAAC,+LAAW;8DACV,cAAA,oaAAC,wMAAU;wDAAC,WAAU;kEACpB,cAAA,oaAAC;4DAAI,WAAU;sEACZ,iBAAiB,MAAM,GAAG,IACzB,iBAAiB,GAAG,CAAC,CAAC,UAAU,kBAC9B,oaAAC;oEAAsB,WAAU;;sFAC/B,oaAAC;4EAAI,WAAU;;8FACb,oaAAC;oFAAI,WAAU;;;;;;8FACf,oaAAC;oFAAI,WAAW,CAAC,2DAA2D,EAC1E,SAAS,MAAM,KAAK,WAAW,iBAC/B,SAAS,MAAM,KAAK,WAAW,gBAC/B,SAAS,MAAM,KAAK,WAAW,eAC/B,iBACA;;;;;;;;;;;;sFAEJ,oaAAC;4EAAI,WAAU;;8FACb,oaAAC;oFAAI,WAAU;;sGACb,oaAAC;4FAAK,WAAW,CAAC,iCAAiC,EACjD,SAAS,MAAM,KAAK,WAAW,gCAC/B,SAAS,MAAM,KAAK,WAAW,8BAC/B,SAAS,MAAM,KAAK,WAAW,4BAC/B,iCACA;sGACC,SAAS,MAAM,KAAK,WAAW,OAC/B,SAAS,MAAM,KAAK,WAAW,OAC/B,SAAS,MAAM,KAAK,WAAW,OAAO;;;;;;sGAEzC,oaAAC;4FAAK,WAAU;sGAAe,SAAS,UAAU,IAAI;;;;;;sGACtD,oaAAC;4FAAK,WAAU;sGACb,IAAA,8QAAM,EAAC,IAAI,KAAK,SAAS,SAAS,GAAG;;;;;;;;;;;;8FAG1C,oaAAC;oFAAE,WAAU;;wFACV,SAAS,MAAM,KAAK,YAAY;wFAChC,SAAS,MAAM,KAAK,YAAY;wFAChC,SAAS,MAAM,KAAK,YAAY;wFAChC,SAAS,MAAM,KAAK,YAAY;;;;;;;;;;;;;;mEA/B7B,SAAS,EAAE;;;;0FAqCvB,oaAAC;gEAAI,WAAU;0EAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;sDASlE,oaAAC;4CAAI,WAAU;sDACb,cAAA,oaAAC,wLAAI;gDAAC,WAAU;;kEACd,oaAAC,8LAAU;kEACT,cAAA,oaAAC,6LAAS;4DAAC,WAAU;;8EACnB,oaAAC,iWAAQ;oEAAC,WAAU;;;;;;gEAAY;;;;;;;;;;;;kEAIpC,oaAAC,+LAAW;wDAAC,WAAU;kEACpB,qBAAqB,MAAM,GAAG,IAC7B,qBAAqB,GAAG,CAAC,CAAC,aAAa;4DACrC,MAAM,WAAW,IAAI,OAAO,WAAW,KAAK,IAAI,KAAK,YAAY,IAAI,EAAE,WAAW;4DAClF,qBACE,oaAAC,6VAAI;gEAAC,MAAM,CAAC,SAAS,EAAE,YAAY,MAAM,CAAC,EAAE,EAAE;0EAC7C,cAAA,oaAAC;oEAAI,WAAU;;sFACb,oaAAC;4EAAI,WAAU;;8FACb,oaAAC;oFAAK,WAAU;;wFACb,IAAI,KAAK,YAAY,IAAI,EAAE,QAAQ,KAAK;wFAAE;;;;;;;8FAE7C,oaAAC;oFAAK,WAAU;8FAAqB,YAAY,GAAG;;;;;;;;;;;;sFAEtD,oaAAC;4EAAI,WAAU;;8FACb,oaAAC;oFAAE,WAAU;;wFACV,YAAY,MAAM,CAAC,QAAQ;wFAAC;wFAAE,YAAY,IAAI,KAAK,UAAU,OAAO;;;;;;;8FAEvE,oaAAC;oFAAE,WAAU;;wFAAgC;wFACxC,YAAY,MAAM,CAAC,UAAU;wFAAC;wFAAS;wFAAS;wFAClD,YAAY,IAAI,KAAK,WAAW;;;;;;;;;;;;;;;;;;;+DAda,GAAG,YAAY,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,IAAI,EAAE;;;;;wDAoBxG,mBAEA,oaAAC;4DAAI,WAAU;sEAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAW5E,oaAAC,+LAAW;gCAAC,OAAM;gCAAgB,WAAU;0CAC3C,cAAA,oaAAC,wLAAI;oCAAC,WAAU;;sDACd,oaAAC,8LAAU;;8DACT,oaAAC,6LAAS;oDAAC,WAAU;8DAAa;;;;;;8DAClC,oaAAC,mMAAe;8DAAC;;;;;;;;;;;;sDAEnB,oaAAC,+LAAW;sDACV,cAAA,oaAAC;gDAAI,WAAU;0DACZ,CAAC;oDACA,MAAM,MAAM,IAAI;oDAChB,MAAM,mBAAmB,IAAI,KAAK,IAAI,WAAW,IAAI,IAAI,QAAQ,KAAK,GAAG,IAAI,OAAO;oDACpF,MAAM,UAAU,OAAO,MAAM,CAAC,SAAS,OAAO;oDAC9C,MAAM,iBAKD,EAAE;oDAEP,QAAQ,OAAO,CAAC,CAAA;wDACd,KAAK;wDACL,IAAI,OAAO,SAAS,EAAE;4DACpB,MAAM,YAAY,IAAI,KAAK,OAAO,SAAS;4DAC3C,MAAM,gBAAgB,IAAI,KAAK,IAAI,WAAW,IAAI,UAAU,QAAQ,IAAI,UAAU,OAAO;4DACzF,IAAI,iBAAiB,OAAO,iBAAiB,kBAAkB;gEAC7D,eAAe,IAAI,CAAC;oEAClB;oEACA,MAAM;oEACN,MAAM;oEACN,cAAc,OAAO,SAAS;gEAChC;4DACF;wDACF;wDAEA,KAAK;wDACL,IAAI,OAAO,SAAS,EAAE;4DACpB,MAAM,YAAY,IAAI,KAAK,OAAO,SAAS;4DAC3C,MAAM,gBAAgB,IAAI,KAAK,IAAI,WAAW,IAAI,UAAU,QAAQ,IAAI,UAAU,OAAO;4DACzF,IAAI,iBAAiB,OAAO,iBAAiB,kBAAkB;gEAC7D,eAAe,IAAI,CAAC;oEAClB;oEACA,MAAM;oEACN,MAAM;oEACN,cAAc,OAAO,SAAS;gEAChC;4DACF;wDACF;oDACF;oDAEA,eAAe,IAAI,CAAC,CAAC,GAAG,IAAM,EAAE,IAAI,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,OAAO;oDAE/D,OAAO,eAAe,MAAM,GAAG,IAC7B,eAAe,GAAG,CAAC,CAAC,OAAO;wDACzB,MAAM,WAAW,IAAI,WAAW,KAAK,IAAI,KAAK,MAAM,YAAY,EAAE,WAAW;wDAC7E,qBACE,oaAAC,6VAAI;4DAAC,MAAM,CAAC,SAAS,EAAE,MAAM,MAAM,CAAC,EAAE,EAAE;sEACvC,cAAA,oaAAC,wLAAI;gEAAC,WAAU;0EACd,cAAA,oaAAC,+LAAW;oEAAC,WAAU;8EACrB,cAAA,oaAAC;wEAAI,WAAU;;0FACb,oaAAC;gFAAI,WAAU;;kGACb,oaAAC;wFAAK,WAAU;;4FAAW,MAAM,IAAI,CAAC,QAAQ,KAAK;4FAAE;;;;;;;kGACrD,oaAAC;wFAAK,WAAU;kGAAqB,MAAM,IAAI,CAAC,OAAO;;;;;;;;;;;;0FAEzD,oaAAC;gFAAI,WAAU;;kGACb,oaAAC;wFAAE,WAAU;;4FACV,MAAM,MAAM,CAAC,QAAQ;4FAAC;4FAAE,MAAM,IAAI,KAAK,UAAU,OAAO;;;;;;;kGAE3D,oaAAC;wFAAE,WAAU;;4FAAgC;4FACxC,MAAM,MAAM,CAAC,UAAU;4FAAC;4FAAM;4FAAS;4FACzC,MAAM,IAAI,KAAK,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2DAdS,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,OAAO;;;;;oDAsB/F,mBAEA,oaAAC;wDAAI,WAAU;kEAAwD;;;;;;gDAI3E,CAAC;;;;;;;;;;;;;;;;;;;;;;0CAOT,oaAAC,+LAAW;gCAAC,OAAM;gCAAa,WAAU;0CACxC,cAAA,oaAAC,2NAAgB;oCAAC,SAAS,OAAO,MAAM,CAAC,SAAS,OAAO;;;;;;;;;;;0CAI3D,oaAAC,+LAAW;gCAAC,OAAM;gCAAY,WAAU;0CACvC,cAAA,oaAAC,wLAAI;oCAAC,WAAU;;sDACd,oaAAC,8LAAU;;8DACT,oaAAC,6LAAS;oDAAC,WAAU;8DAAa;;;;;;8DAClC,oaAAC,mMAAe;8DAAC;;;;;;;;;;;;sDAEnB,oaAAC,+LAAW;sDACV,cAAA,oaAAC;gDAAI,WAAU;0DACZ,IAAA,sYAAO,EAAC;oDACP,MAAM,UAAU,OAAO,MAAM,CAAC,SAAS,OAAO;oDAC9C,MAAM,iBAAwC,CAAC;oDAE/C,QAAQ,OAAO,CAAC,CAAA;wDACd,IAAI,OAAO,aAAa,EAAE;4DACxB,IAAI,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,EAAE;gEACzC,cAAc,CAAC,OAAO,aAAa,CAAC,GAAG,EAAE;4DAC3C;4DACA,cAAc,CAAC,OAAO,aAAa,CAAC,CAAC,IAAI,CAAC;wDAC5C;oDACF;oDAEA,MAAM,kBAAkB,OAAO,OAAO,CAAC,gBACpC,IAAI,CAAC,CAAC,GAAG,IAAM,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM;oDAE3C,OAAO,gBAAgB,MAAM,GAAG,IAC9B,gBAAgB,GAAG,CAAC,CAAC,CAAC,UAAU,gBAAgB,iBAC9C,oaAAC;4DAAmB,WAAU;;8EAC5B,oaAAC;oEAAI,WAAU;;sFACb,oaAAC;4EAAG,WAAU;sFAAgC;;;;;;sFAC9C,oaAAC;4EAAK,WAAU;;gFACb,gBAAgB,MAAM;gFAAC;;;;;;;;;;;;;8EAG5B,oaAAC;oEAAI,WAAU;8EACZ,gBAAgB,GAAG,CAAC,CAAC,uBACpB,oaAAC,6VAAI;4EAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;sFACjC,cAAA,oaAAC;gFAAI,WAAU;;kGACb,oaAAC;wFAAE,WAAU;kGAAgC,OAAO,QAAQ;;;;;;kGAC5D,oaAAC;wFAAE,WAAU;;4FAAgC;4FAAG,OAAO,UAAU;4FAAC;;;;;;;;;;;;;2EAH5B,OAAO,EAAE;;;;;;;;;;;2DAT/C;;;;kFAoBZ,oaAAC;wDAAI,WAAU;kEAA0C;;;;;;gDAI7D,GAAG;oDAAC;iDAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAS/B;AAEA,SAAS,SAAS,EAChB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACsE;IAC1E,qBACE,oaAAC,wLAAI;QAAC,WAAU;kBACd,cAAA,oaAAC,+LAAW;YAAC,WAAU;;8BACrB,oaAAC;oBAAI,WAAU;;sCACb,oaAAC;4BAAE,WAAU;sCAA6C;;;;;;sCAC1D,oaAAC;4BAAI,WAAU;sCAAmD;;;;;;;;;;;;8BAEpE,oaAAC;oBAAI,WAAU;;sCACb,oaAAC;4BAAK,WAAU;sCAAiD;;;;;;sCACjE,oaAAC;4BAAE,WAAU;sCAAsC;;;;;;;;;;;;;;;;;;;;;;;AAK7D"}}] + {"offset": {"line": 2877, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/page.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\nimport Link from \"next/link\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\nimport { UserPlus, Network, Map, Calendar, Users, ArrowRight, Clock, Search, BookOpen, BarChart3, Calculator } from \"lucide-react\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useMemo, useState, useEffect, useRef } from \"react\"\nimport { StatisticsCharts } from \"@/components/dashboard/statistics-charts\"\nimport { format } from \"date-fns\"\nimport { useSession } from \"next-auth/react\"\nimport { useSearchParams } from \"next/navigation\"\nimport { CollaboratorDialog } from \"@/components/tree/collaborator-dialog\"\n\ninterface ActivityLog {\n id: string\n action: string\n entityType: string\n entityId?: string | null\n entityName?: string | null\n timestamp: string\n user?: {\n name?: string | null\n email?: string | null\n }\n}\n\nexport default function DashboardPage() {\n const { treeData, isLoading, currentTree } = useFamily()\n const { data: session } = useSession()\n const [recentActivities, setRecentActivities] = useState([])\n \n // 加载最近的操作日志\n useEffect(() => {\n if (currentTree?.id && session?.user?.id) {\n fetch(`/api/trees/${currentTree.id}/activity-logs?limit=10`)\n .then(res => {\n if (!res.ok) {\n throw new Error('获取活动日志失败')\n }\n return res.json()\n })\n .then(data => {\n if (data.logs) {\n setRecentActivities(data.logs)\n }\n })\n .catch(err => {\n console.error('获取活动日志失败:', err)\n setRecentActivities([])\n })\n } else {\n setRecentActivities([])\n }\n }, [currentTree?.id, session?.user?.id])\n \n // 计算统计数据\n const stats = useMemo(() => {\n const members = Object.values(treeData.members)\n const totalMembers = members.length\n \n // 在世和已故人数\n const livingMembers = members.filter(m => !m.deathDate).length\n const deceasedMembers = members.filter(m => m.deathDate).length\n \n // 性别统计\n const maleCount = members.filter(m => m.gender === 'MALE').length\n const femaleCount = members.filter(m => m.gender === 'FEMALE').length\n \n // 计算最大代数(处理空数组的情况)\n const generations = members.map(m => m.generation || 0)\n const maxGeneration = generations.length > 0 ? Math.max(...generations) : 0\n \n // 计算最早出生年份\n const birthYears = members\n .map(m => m.birthDate ? new Date(m.birthDate).getFullYear() : null)\n .filter(y => y !== null) as number[]\n const earliestYear = birthYears.length > 0 ? Math.min(...birthYears) : new Date().getFullYear()\n const yearsSpan = birthYears.length > 0 ? new Date().getFullYear() - earliestYear : 0\n \n // 计算平均寿命(只统计已故成员)\n const deceasedWithAge = members.filter(m => m.birthDate && m.deathDate)\n const totalAge = deceasedWithAge.reduce((sum, m) => {\n const birthYear = new Date(m.birthDate!).getFullYear()\n const deathYear = new Date(m.deathDate!).getFullYear()\n return sum + (deathYear - birthYear)\n }, 0)\n const averageLifespan = deceasedWithAge.length > 0 \n ? Math.round(totalAge / deceasedWithAge.length) \n : 0\n \n return {\n totalMembers,\n livingMembers,\n deceasedMembers,\n maleCount,\n femaleCount,\n maxGeneration,\n yearsSpan,\n earliestYear,\n averageLifespan\n }\n }, [treeData])\n \n // 获取最近的成员(按ID排序,取最新的5个)\n const recentMembers = useMemo(() => {\n return Object.values(treeData.members)\n .sort((a, b) => parseInt(b.id) - parseInt(a.id))\n .slice(0, 5)\n }, [treeData])\n \n // 获取本月纪念日(生日和忌日)\n const monthlyAnniversaries = useMemo(() => {\n const currentMonth = new Date().getMonth() + 1\n const members = Object.values(treeData.members)\n \n const anniversaries: Array<{\n member: any\n type: 'birth' | 'death'\n date: string\n day: number\n }> = []\n \n members.forEach(member => {\n // 检查生日\n if (member.birthDate) {\n const birthMonth = new Date(member.birthDate).getMonth() + 1\n const birthDay = new Date(member.birthDate).getDate()\n if (birthMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'birth',\n date: member.birthDate,\n day: birthDay\n })\n }\n }\n \n // 检查忌日\n if (member.deathDate) {\n const deathMonth = new Date(member.deathDate).getMonth() + 1\n const deathDay = new Date(member.deathDate).getDate()\n if (deathMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'death',\n date: member.deathDate,\n day: deathDay\n })\n }\n }\n })\n \n // 按日期排序\n return anniversaries.sort((a, b) => a.day - b.day).slice(0, 5)\n }, [treeData])\n return (\n
\n \n\n
\n
\n
\n
\n

\n {currentTree?.name || '家族族谱'}\n

\n {currentTree?.currentUserRole && (\n \n {currentTree.currentUserRole === 'OWNER' ? '所有者' : \n currentTree.currentUserRole === 'EDITOR' ? '编辑者' : '查看者'}\n \n )}\n
\n

\n {currentTree?.description || '记录家族历史,传承家族文化'}\n {stats.maxGeneration > 0 && ` · 第 ${stats.maxGeneration} 代传人`}\n

\n
\n
\n {session && currentTree?.ownerId === session.user?.id && (\n \n )}\n \n \n \n {(currentTree?.currentUserRole === \"OWNER\" || currentTree?.currentUserRole === \"EDITOR\") && (\n \n \n \n )}\n
\n
\n\n
\n } \n />\n } \n />\n } \n />\n 0 ? Math.round(stats.livingMembers / stats.totalMembers * 100) : 0}%`} \n icon={} \n />\n 0 ? `${stats.averageLifespan} 岁` : '暂无数据'} \n subtitle={`已统计 ${stats.deceasedMembers} 人`} \n icon={} \n />\n \n \n
\n

性别比例

\n
\n \n
\n
\n
\n
\n \n 1\n \n :\n \n {stats.maleCount > 0 ? (stats.femaleCount / stats.maleCount).toFixed(2) : '0'}\n \n
\n
\n 男性 : 女性\n
\n \n {/* 双色进度条 */}\n
\n
\n \n \n 男性 {stats.maleCount}\n \n \n 女性 {stats.femaleCount}\n \n \n
\n
\n
0 ? (stats.maleCount / stats.totalMembers * 100) : 0}%` }}\n >\n {stats.totalMembers > 0 && stats.maleCount > 0 && (\n \n {Math.round(stats.maleCount / stats.totalMembers * 100)}%\n \n )}\n
\n
0 ? (stats.femaleCount / stats.totalMembers * 100) : 0}%` }}\n >\n {stats.totalMembers > 0 && stats.femaleCount > 0 && (\n \n {Math.round(stats.femaleCount / stats.totalMembers * 100)}%\n \n )}\n
\n
\n
\n
\n
\n
\n \n
\n\n \n
\n \n 最近更新\n 近期纪念日\n 统计图表\n 迁徙记录\n \n \n \n \n
\n\n \n
\n \n \n 近期修谱动态\n 记录家族成员的最新变动与修订\n \n \n \n
\n {recentActivities.length > 0 ? (\n recentActivities.map((activity, i) => (\n
\n
\n
\n
\n
\n
\n
\n \n {activity.action === 'create' ? '创建' :\n activity.action === 'update' ? '更新' :\n activity.action === 'delete' ? '删除' : '导入'}\n \n {activity.entityName || '未知'}\n \n {format(new Date(activity.timestamp), 'MM-dd HH:mm')}\n \n
\n

\n {activity.action === 'create' && '新增了家族成员'}\n {activity.action === 'update' && '更新了成员信息'}\n {activity.action === 'delete' && '删除了成员'}\n {activity.action === 'import' && '导入了家族数据'}\n

\n
\n
\n ))\n ) : (\n
\n 暂无修谱记录\n
\n )}\n
\n
\n
\n
\n\n
\n \n \n \n \n 本月祭祖/纪念\n \n \n \n {monthlyAnniversaries.length > 0 ? (\n monthlyAnniversaries.map((anniversary, index) => {\n const yearsAgo = new Date().getFullYear() - new Date(anniversary.date).getFullYear()\n return (\n \n
\n
\n \n {new Date(anniversary.date).getMonth() + 1}月\n \n {anniversary.day}\n
\n
\n

\n {anniversary.member.fullName} {anniversary.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {anniversary.member.generation} 世 · 距今 {yearsAgo} 年\n {anniversary.type === 'death' && ' · 已故'}\n

\n
\n
\n \n )\n })\n ) : (\n
\n 本月暂无纪念日\n
\n )}\n
\n
\n
\n
\n
\n\n {/* 近期纪念日标签页 */}\n \n \n \n 近期纪念日\n 未来三个月内的生日和忌日\n \n \n
\n {(() => {\n const now = new Date()\n const threeMonthsLater = new Date(now.getFullYear(), now.getMonth() + 3, now.getDate())\n const members = Object.values(treeData.members)\n const upcomingEvents: Array<{\n member: any\n type: 'birth' | 'death'\n date: Date\n originalDate: string\n }> = []\n\n members.forEach(member => {\n // 生日\n if (member.birthDate) {\n const birthDate = new Date(member.birthDate)\n const thisYearBirth = new Date(now.getFullYear(), birthDate.getMonth(), birthDate.getDate())\n if (thisYearBirth >= now && thisYearBirth <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'birth',\n date: thisYearBirth,\n originalDate: member.birthDate\n })\n }\n }\n\n // 忌日\n if (member.deathDate) {\n const deathDate = new Date(member.deathDate)\n const thisYearDeath = new Date(now.getFullYear(), deathDate.getMonth(), deathDate.getDate())\n if (thisYearDeath >= now && thisYearDeath <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'death',\n date: thisYearDeath,\n originalDate: member.deathDate\n })\n }\n }\n })\n\n upcomingEvents.sort((a, b) => a.date.getTime() - b.date.getTime())\n\n return upcomingEvents.length > 0 ? (\n upcomingEvents.map((event, index) => {\n const yearsAgo = now.getFullYear() - new Date(event.originalDate).getFullYear()\n return (\n \n \n \n
\n
\n {event.date.getMonth() + 1}月\n {event.date.getDate()}\n
\n
\n

\n {event.member.fullName} {event.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {event.member.generation} 世 · {yearsAgo} 年\n {event.type === 'death' && ' · 已故'}\n

\n
\n
\n
\n
\n \n )\n })\n ) : (\n
\n 未来三个月暂无纪念日\n
\n )\n })()}\n
\n
\n
\n
\n\n {/* 统计图表标签页 */}\n \n \n \n\n {/* 迁徙记录标签页 */}\n \n \n \n 家族迁徙记录\n 记录家族成员的籍贯分布\n \n \n
\n {useMemo(() => {\n const members = Object.values(treeData.members)\n const locationGroups: Record = {}\n\n members.forEach(member => {\n if (member.ancestralHome) {\n if (!locationGroups[member.ancestralHome]) {\n locationGroups[member.ancestralHome] = []\n }\n locationGroups[member.ancestralHome].push(member)\n }\n })\n\n const sortedLocations = Object.entries(locationGroups)\n .sort((a, b) => b[1].length - a[1].length)\n\n return sortedLocations.length > 0 ? (\n sortedLocations.map(([location, locationMembers]) => (\n
\n
\n

{location}

\n \n {locationMembers.length} 人\n \n
\n
\n {locationMembers.map((member: any) => (\n \n
\n

{member.fullName}

\n

第 {member.generation} 世

\n
\n \n ))}\n
\n
\n ))\n ) : (\n
\n 暂无迁徙记录\n
\n )\n }, [treeData])}\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction StatCard({\n title,\n value,\n subtitle,\n icon,\n}: { title: string; value: string; subtitle: string; icon: React.ReactNode }) {\n return (\n \n \n
\n

{title}

\n
\n {icon}\n
\n
\n
\n {value}\n

{subtitle}

\n
\n
\n
\n \n )\n}\n"],"names":[],"mappings":"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"}}] } \ No newline at end of file diff --git a/.next/dev/server/chunks/ssr/[root-of-the-server]__10b90bc2._.js b/.next/dev/server/chunks/ssr/[root-of-the-server]__10b90bc2._.js index 8d8d3877..67f20153 100644 --- a/.next/dev/server/chunks/ssr/[root-of-the-server]__10b90bc2._.js +++ b/.next/dev/server/chunks/ssr/[root-of-the-server]__10b90bc2._.js @@ -4606,6 +4606,7 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2d$user$2d$round$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__CircleUserRound$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle-user-round.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$images$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Images$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/images.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__BookOpen$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/book-open.js [app-ssr] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2d$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__UserPlus$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user-plus.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/db.ts [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$members$2f$photo$2d$gallery$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/members/photo-gallery.tsx [app-ssr] (ecmascript)"); @@ -4702,13 +4703,33 @@ function MemberProfilePage() { router.push("/members"); } }; + const handleQuickAddChild = ()=>{ + // 跳转到新增成员页面,并预填父母信息 + const params = new URLSearchParams(); + if (member.gender === 'MALE') { + params.set('fatherId', member.id); + } else { + params.set('motherId', member.id); + } + params.set('generation', (member.generation + 1).toString()); + router.push(`/members/new?${params.toString()}`); + }; + const handleQuickAddSpouse = ()=>{ + // 跳转到新增成员页面,并预填配偶信息 + const params = new URLSearchParams(); + params.set('spouseId', member.id); + params.set('generation', member.generation.toString()); + // 配偶性别与当前成员相反 + params.set('gender', member.gender === 'MALE' ? 'FEMALE' : 'MALE'); + router.push(`/members/new?${params.toString()}`); + }; if (isEditing) { return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "min-h-screen flex flex-col bg-background", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$site$2d$header$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["SiteHeader"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 72, + lineNumber: 94, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4725,14 +4746,14 @@ function MemberProfilePage() { className: "mr-2 h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 76, + lineNumber: 98, columnNumber: 15 }, this), " 返回" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 75, + lineNumber: 97, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("h1", { @@ -4743,13 +4764,13 @@ function MemberProfilePage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 78, + lineNumber: 100, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 74, + lineNumber: 96, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$members$2f$member$2d$form$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["MemberForm"], { @@ -4759,19 +4780,19 @@ function MemberProfilePage() { onCancel: ()=>setIsEditing(false) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 80, + lineNumber: 102, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 73, + lineNumber: 95, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 71, + lineNumber: 93, columnNumber: 7 }, this); } @@ -4780,7 +4801,7 @@ function MemberProfilePage() { children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$site$2d$header$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["SiteHeader"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 93, + lineNumber: 115, columnNumber: 7 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("main", { @@ -4800,24 +4821,24 @@ function MemberProfilePage() { className: "h-full w-full object-cover" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 100, + lineNumber: 122, columnNumber: 17 }, this) : member.gender === 'FEMALE' ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2d$user$2d$round$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__CircleUserRound$3e$__["CircleUserRound"], { className: "h-20 w-20 text-pink-400" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 107, + lineNumber: 129, columnNumber: 19 }, this) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2d$user$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__CircleUser$3e$__["CircleUser"], { className: "h-20 w-20 text-blue-400" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 109, + lineNumber: 131, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 98, + lineNumber: 120, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4830,7 +4851,7 @@ function MemberProfilePage() { children: member.fullName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 115, + lineNumber: 137, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -4841,13 +4862,13 @@ function MemberProfilePage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 116, + lineNumber: 138, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 114, + lineNumber: 136, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4861,13 +4882,13 @@ function MemberProfilePage() { children: member.courtesyName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 123, + lineNumber: 145, columnNumber: 23 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 122, + lineNumber: 144, columnNumber: 19 }, this), member.artName && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -4878,13 +4899,13 @@ function MemberProfilePage() { children: member.artName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 128, + lineNumber: 150, columnNumber: 23 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 127, + lineNumber: 149, columnNumber: 19 }, this), member.ancestralHome && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -4894,13 +4915,13 @@ function MemberProfilePage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 131, + lineNumber: 153, columnNumber: 42 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 120, + lineNumber: 142, columnNumber: 15 }, this), member.tags && member.tags.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4910,29 +4931,67 @@ function MemberProfilePage() { children: tag }, tag, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 136, + lineNumber: 158, columnNumber: 21 }, this)) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 134, + lineNumber: 156, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 113, + lineNumber: 135, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 97, + lineNumber: 119, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { - className: "flex gap-2", + className: "flex gap-2 flex-wrap", children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { + variant: "default", + onClick: handleQuickAddChild, + className: "gap-2", + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2d$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__UserPlus$3e$__["UserPlus"], { + className: "h-4 w-4" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", + lineNumber: 172, + columnNumber: 15 + }, this), + " 添加子女" + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", + lineNumber: 171, + columnNumber: 13 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { + variant: "secondary", + onClick: handleQuickAddSpouse, + className: "gap-2", + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2d$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__UserPlus$3e$__["UserPlus"], { + className: "h-4 w-4" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", + lineNumber: 175, + columnNumber: 15 + }, this), + " 添加配偶" + ] + }, void 0, true, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", + lineNumber: 174, + columnNumber: 13 + }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { variant: "outline", size: "icon", @@ -4941,12 +5000,12 @@ function MemberProfilePage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 150, + lineNumber: 178, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 149, + lineNumber: 177, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { @@ -4956,12 +5015,12 @@ function MemberProfilePage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 153, + lineNumber: 181, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 152, + lineNumber: 180, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { @@ -4973,14 +5032,14 @@ function MemberProfilePage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 156, + lineNumber: 184, columnNumber: 15 }, this), " 编辑" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 155, + lineNumber: 183, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { @@ -4991,24 +5050,24 @@ function MemberProfilePage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 159, + lineNumber: 187, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 158, + lineNumber: 186, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 148, + lineNumber: 170, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 96, + lineNumber: 118, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5026,14 +5085,14 @@ function MemberProfilePage() { className: "w-1 h-6 bg-primary rounded-full" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 170, + lineNumber: 198, columnNumber: 17 }, this), "生平事迹" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 169, + lineNumber: 197, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5043,25 +5102,25 @@ function MemberProfilePage() { children: member.bio }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 175, + lineNumber: 203, columnNumber: 19 }, this) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { className: "text-muted-foreground italic", children: "暂无生平记录..." }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 177, + lineNumber: 205, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 173, + lineNumber: 201, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 168, + lineNumber: 196, columnNumber: 13 }, this), member.photoIds && member.photoIds.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("section", { @@ -5073,14 +5132,14 @@ function MemberProfilePage() { className: "h-6 w-6 text-primary" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 186, + lineNumber: 214, columnNumber: 19 }, this), "照片墙" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 185, + lineNumber: 213, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5093,18 +5152,18 @@ function MemberProfilePage() { readonly: false }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 190, + lineNumber: 218, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 189, + lineNumber: 217, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 184, + lineNumber: 212, columnNumber: 15 }, this), member.stories && member.stories.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("section", { @@ -5116,14 +5175,14 @@ function MemberProfilePage() { className: "h-6 w-6 text-primary" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 203, + lineNumber: 231, columnNumber: 19 }, this), "家族故事" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 202, + lineNumber: 230, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5136,18 +5195,18 @@ function MemberProfilePage() { readonly: false }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 207, + lineNumber: 235, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 206, + lineNumber: 234, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 201, + lineNumber: 229, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("section", { @@ -5159,14 +5218,14 @@ function MemberProfilePage() { className: "w-1 h-6 bg-secondary rounded-full" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 218, + lineNumber: 246, columnNumber: 17 }, this), "家族关系" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 217, + lineNumber: 245, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5180,7 +5239,7 @@ function MemberProfilePage() { children: "父亲 (Father)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 223, + lineNumber: 251, columnNumber: 19 }, this), member.fatherId ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -5189,27 +5248,27 @@ function MemberProfilePage() { children: getMember(member.fatherId)?.fullName || member.fatherId }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 227, + lineNumber: 255, columnNumber: 21 }, this) : member.spouseFatherName ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { className: "text-lg font-serif font-bold text-foreground", children: member.spouseFatherName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 234, + lineNumber: 262, columnNumber: 21 }, this) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { className: "text-muted-foreground", children: "-" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 238, + lineNumber: 266, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 222, + lineNumber: 250, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5220,7 +5279,7 @@ function MemberProfilePage() { children: "母亲 (Mother)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 242, + lineNumber: 270, columnNumber: 19 }, this), member.motherId ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -5229,27 +5288,27 @@ function MemberProfilePage() { children: getMember(member.motherId)?.fullName || member.motherId }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 246, + lineNumber: 274, columnNumber: 21 }, this) : member.spouseMotherName ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { className: "text-lg font-serif font-bold text-foreground", children: member.spouseMotherName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 253, + lineNumber: 281, columnNumber: 21 }, this) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { className: "text-muted-foreground", children: "-" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 257, + lineNumber: 285, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 241, + lineNumber: 269, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5260,7 +5319,7 @@ function MemberProfilePage() { children: "配偶 (Spouse)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 261, + lineNumber: 289, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5271,25 +5330,25 @@ function MemberProfilePage() { children: getMember(spouseId)?.fullName || spouseId }, spouseId, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 267, + lineNumber: 295, columnNumber: 25 }, this)) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { className: "text-muted-foreground", children: "无记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 276, + lineNumber: 304, columnNumber: 23 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 264, + lineNumber: 292, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 260, + lineNumber: 288, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5300,7 +5359,7 @@ function MemberProfilePage() { children: "子女 (Children)" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 281, + lineNumber: 309, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5311,43 +5370,43 @@ function MemberProfilePage() { children: getMember(childId)?.fullName || childId }, childId, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 287, + lineNumber: 315, columnNumber: 25 }, this)) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { className: "text-muted-foreground", children: "无记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 296, + lineNumber: 324, columnNumber: 23 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 284, + lineNumber: 312, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 280, + lineNumber: 308, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 221, + lineNumber: 249, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 216, + lineNumber: 244, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 167, + lineNumber: 195, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5361,7 +5420,7 @@ function MemberProfilePage() { children: "详细信息" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 307, + lineNumber: 335, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("dl", { @@ -5374,7 +5433,7 @@ function MemberProfilePage() { children: "出生日期" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 310, + lineNumber: 338, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("dd", { @@ -5382,13 +5441,13 @@ function MemberProfilePage() { children: member.birthDate || "-" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 311, + lineNumber: 339, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 309, + lineNumber: 337, columnNumber: 17 }, this), member.deathDate && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], { @@ -5400,7 +5459,7 @@ function MemberProfilePage() { children: "逝世日期" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 316, + lineNumber: 344, columnNumber: 23 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("dd", { @@ -5408,13 +5467,13 @@ function MemberProfilePage() { children: member.deathDate }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 317, + lineNumber: 345, columnNumber: 23 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 315, + lineNumber: 343, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5424,7 +5483,7 @@ function MemberProfilePage() { children: "谥号" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 320, + lineNumber: 348, columnNumber: 23 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("dd", { @@ -5432,13 +5491,13 @@ function MemberProfilePage() { children: member.posthumousName || "-" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 321, + lineNumber: 349, columnNumber: 23 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 319, + lineNumber: 347, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5448,7 +5507,7 @@ function MemberProfilePage() { children: "墓地" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 324, + lineNumber: 352, columnNumber: 23 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("dd", { @@ -5456,13 +5515,13 @@ function MemberProfilePage() { children: member.burialPlace || "-" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 325, + lineNumber: 353, columnNumber: 23 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 323, + lineNumber: 351, columnNumber: 21 }, this) ] @@ -5474,7 +5533,7 @@ function MemberProfilePage() { children: "字辈" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 331, + lineNumber: 359, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("dd", { @@ -5482,25 +5541,25 @@ function MemberProfilePage() { children: member.generationName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 332, + lineNumber: 360, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 330, + lineNumber: 358, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 308, + lineNumber: 336, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 306, + lineNumber: 334, columnNumber: 13 }, this), (member.phone || member.telephone || member.email || member.address) && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5511,7 +5570,7 @@ function MemberProfilePage() { children: "联系方式" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 341, + lineNumber: 369, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("dl", { @@ -5524,7 +5583,7 @@ function MemberProfilePage() { children: "手机号" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 345, + lineNumber: 373, columnNumber: 23 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("dd", { @@ -5535,18 +5594,18 @@ function MemberProfilePage() { children: member.phone }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 347, + lineNumber: 375, columnNumber: 25 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 346, + lineNumber: 374, columnNumber: 23 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 344, + lineNumber: 372, columnNumber: 21 }, this), member.telephone && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5556,7 +5615,7 @@ function MemberProfilePage() { children: "固定电话" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 355, + lineNumber: 383, columnNumber: 23 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("dd", { @@ -5567,18 +5626,18 @@ function MemberProfilePage() { children: member.telephone }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 357, + lineNumber: 385, columnNumber: 25 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 356, + lineNumber: 384, columnNumber: 23 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 354, + lineNumber: 382, columnNumber: 21 }, this), member.email && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5588,7 +5647,7 @@ function MemberProfilePage() { children: "邮箱" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 365, + lineNumber: 393, columnNumber: 23 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("dd", { @@ -5599,18 +5658,18 @@ function MemberProfilePage() { children: member.email }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 367, + lineNumber: 395, columnNumber: 25 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 366, + lineNumber: 394, columnNumber: 23 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 364, + lineNumber: 392, columnNumber: 21 }, this), member.address && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -5620,7 +5679,7 @@ function MemberProfilePage() { children: "现居地址" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 375, + lineNumber: 403, columnNumber: 23 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("dd", { @@ -5628,49 +5687,49 @@ function MemberProfilePage() { children: member.address }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 376, + lineNumber: 404, columnNumber: 23 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 374, + lineNumber: 402, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 342, + lineNumber: 370, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 340, + lineNumber: 368, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 305, + lineNumber: 333, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 165, + lineNumber: 193, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 94, + lineNumber: 116, columnNumber: 7 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page.tsx", - lineNumber: 92, + lineNumber: 114, columnNumber: 5 }, this); } diff --git a/.next/dev/server/chunks/ssr/[root-of-the-server]__10b90bc2._.js.map b/.next/dev/server/chunks/ssr/[root-of-the-server]__10b90bc2._.js.map index d17c1764..ae1b8cbb 100644 --- a/.next/dev/server/chunks/ssr/[root-of-the-server]__10b90bc2._.js.map +++ b/.next/dev/server/chunks/ssr/[root-of-the-server]__10b90bc2._.js.map @@ -13,5 +13,5 @@ {"offset": {"line": 2066, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/members/photo-gallery.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { db } from \"@/lib/db\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card } from \"@/components/ui/card\"\nimport { Dialog, DialogContent, DialogHeader, DialogTitle } from \"@/components/ui/dialog\"\nimport { X, Upload, Image as ImageIcon, Plus, ZoomIn } from \"lucide-react\"\nimport { useDialog } from \"@/components/ui/alert-dialog-custom\"\nimport { v4 as uuidv4 } from \"uuid\"\nimport imageCompression from \"browser-image-compression\"\n\ninterface PhotoGalleryProps {\n photoIds?: string[]\n onChange: (photoIds: string[]) => void\n readonly?: boolean\n}\n\nexport function PhotoGallery({ photoIds = [], onChange, readonly = false }: PhotoGalleryProps) {\n const { showAlert, showConfirm } = useDialog()\n const [photos, setPhotos] = useState<{ id: string; url: string }[]>([])\n const [selectedPhoto, setSelectedPhoto] = useState(null)\n const [isUploading, setIsUploading] = useState(false)\n\n // 加载照片\n useEffect(() => {\n const loadPhotos = async () => {\n const loadedPhotos = await Promise.all(\n photoIds.map(async (id) => {\n try {\n const image = await db.images.get(id)\n if (image) {\n const url = URL.createObjectURL(image.blob)\n return { id, url }\n }\n } catch (error) {\n console.error('加载照片失败:', error)\n }\n return null\n })\n )\n setPhotos(loadedPhotos.filter(Boolean) as { id: string; url: string }[])\n }\n\n if (photoIds.length > 0) {\n loadPhotos()\n }\n\n // 清理 URL\n return () => {\n photos.forEach(photo => URL.revokeObjectURL(photo.url))\n }\n }, [photoIds])\n\n const handleUpload = async (e: React.ChangeEvent) => {\n const files = e.target.files\n if (!files || files.length === 0) return\n\n setIsUploading(true)\n try {\n const newPhotoIds: string[] = []\n\n for (const file of Array.from(files)) {\n if (!file.type.startsWith('image/')) continue\n\n // 压缩图片\n const options = {\n maxSizeMB: 2,\n maxWidthOrHeight: 1920,\n useWebWorker: true,\n }\n \n const compressedFile = await imageCompression(file, options)\n \n // 保存到数据库\n const imageId = uuidv4()\n await db.images.add({\n id: imageId,\n blob: compressedFile,\n mimeType: compressedFile.type,\n createdAt: new Date().toISOString(),\n })\n\n newPhotoIds.push(imageId)\n }\n\n // 更新照片列表\n onChange([...photoIds, ...newPhotoIds])\n } catch (error) {\n console.error('上传照片失败:', error)\n await showAlert('上传照片失败', '错误')\n } finally {\n setIsUploading(false)\n e.target.value = ''\n }\n }\n\n const handleDelete = async (photoId: string) => {\n const confirmed = await showConfirm('确定要删除这张照片吗?', '删除照片')\n if (confirmed) {\n onChange(photoIds.filter(id => id !== photoId))\n }\n }\n\n return (\n
\n
\n

照片墙 ({photos.length})

\n {!readonly && (\n \n )}\n
\n\n {photos.length > 0 ? (\n
\n {photos.map((photo) => (\n
\n setSelectedPhoto(photo.url)}\n />\n {!readonly && (\n handleDelete(photo.id)}\n >\n \n \n )}\n setSelectedPhoto(photo.url)}\n >\n \n \n
\n ))}\n
\n ) : (\n
\n 暂无照片\n
\n )}\n\n {/* 照片预览对话框 */}\n setSelectedPhoto(null)}>\n \n \n 照片预览\n \n {selectedPhoto && (\n \n )}\n \n \n
\n )\n}\n"],"names":[],"mappings":"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"}}, {"offset": {"line": 2360, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/members/story-manager.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState } from \"react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Textarea } from \"@/components/ui/textarea\"\nimport { Label } from \"@/components/ui/label\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from \"@/components/ui/dialog\"\nimport { Plus, Edit, Trash, BookOpen, Calendar } from \"lucide-react\"\nimport type { FamilyStory } from \"@/types/family\"\nimport { v4 as uuidv4 } from \"uuid\"\nimport { useDialog } from \"@/components/ui/alert-dialog-custom\"\n\ninterface StoryManagerProps {\n stories?: FamilyStory[]\n onChange: (stories: FamilyStory[]) => void\n readonly?: boolean\n}\n\nexport function StoryManager({ stories = [], onChange, readonly = false }: StoryManagerProps) {\n const { showAlert, showConfirm } = useDialog()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const [editingStory, setEditingStory] = useState(null)\n const [formData, setFormData] = useState>({\n title: \"\",\n content: \"\",\n date: \"\",\n })\n\n const handleAdd = () => {\n setEditingStory(null)\n setFormData({ title: \"\", content: \"\", date: \"\" })\n setIsDialogOpen(true)\n }\n\n const handleEdit = (story: FamilyStory) => {\n setEditingStory(story)\n setFormData(story)\n setIsDialogOpen(true)\n }\n\n const handleDelete = async (storyId: string) => {\n const confirmed = await showConfirm(\"确定要删除这个故事吗?\", \"删除故事\")\n if (confirmed) {\n onChange(stories.filter(s => s.id !== storyId))\n }\n }\n\n const handleSave = async () => {\n if (!formData.title || !formData.content) {\n await showAlert(\"请填写标题和内容\", \"提示\")\n return\n }\n\n const now = new Date().toISOString()\n \n if (editingStory) {\n // 更新现有故事\n onChange(\n stories.map(s =>\n s.id === editingStory.id\n ? { ...s, ...formData, updatedAt: now }\n : s\n )\n )\n } else {\n // 添加新故事\n const newStory: FamilyStory = {\n id: uuidv4(),\n title: formData.title!,\n content: formData.content!,\n date: formData.date,\n imageIds: formData.imageIds || [],\n createdAt: now,\n updatedAt: now,\n }\n onChange([...stories, newStory])\n }\n\n setIsDialogOpen(false)\n setFormData({ title: \"\", content: \"\", date: \"\" })\n }\n\n return (\n
\n
\n

\n \n 家族故事 ({stories.length})\n

\n {!readonly && (\n \n \n 添加故事\n \n )}\n
\n\n {stories.length > 0 ? (\n
\n {stories\n .sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime())\n .map((story) => (\n \n \n
\n
\n {story.title}\n {story.date && (\n
\n \n {story.date}\n
\n )}\n
\n {!readonly && (\n
\n handleEdit(story)}\n >\n \n \n handleDelete(story.id)}\n >\n \n \n
\n )}\n
\n
\n \n

\n {story.content}\n

\n
\n 创建于 {new Date(story.createdAt).toLocaleDateString('zh-CN')}\n
\n
\n
\n ))}\n
\n ) : (\n
\n 暂无家族故事\n
\n )}\n\n {/* 添加/编辑故事对话框 */}\n \n \n \n {editingStory ? \"编辑故事\" : \"添加故事\"}\n \n
\n
\n \n setFormData({ ...formData, title: e.target.value })}\n />\n
\n
\n \n setFormData({ ...formData, date: e.target.value })}\n />\n
\n
\n \n setFormData({ ...formData, content: e.target.value })}\n />\n
\n
\n \n \n \n \n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, {"offset": {"line": 2818, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/members/member-form.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\n\nimport { useState } from \"react\"\nimport type { FamilyMember } from \"@/types/family\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport { Textarea } from \"@/components/ui/textarea\"\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\"\nimport { CalendarIcon, User, Scroll, Users, Images, BookOpen } from \"lucide-react\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { ImageUpload } from \"@/components/ui/image-upload\"\nimport { PhotoGallery } from \"./photo-gallery\"\nimport { StoryManager } from \"./story-manager\"\n\ninterface MemberFormProps {\n initialData?: Partial\n existingMembers?: FamilyMember[]\n onSubmit: (data: FamilyMember) => void\n onCancel: () => void\n}\n\nexport function MemberForm({ initialData, existingMembers = [], onSubmit, onCancel }: MemberFormProps) {\n // 计算最大世系\n const maxGeneration = existingMembers.length > 0 \n ? Math.max(...existingMembers.map(m => m.generation || 1))\n : 1\n \n // 获取始祖的姓氏(第1世成员)\n const ancestorSurname = existingMembers.find(m => m.generation === 1)?.surname || \"\"\n \n // Initialize state with default values or initialData\n const [formData, setFormData] = useState>(() => {\n const defaults = {\n id: crypto.randomUUID(),\n surname: ancestorSurname,\n givenName: \"\",\n fullName: \"\",\n gender: \"MALE\" as \"MALE\" | \"FEMALE\",\n generation: maxGeneration,\n spouseIds: [],\n childrenIds: [],\n tags: [],\n }\n \n if (!initialData) return defaults\n \n return {\n ...defaults,\n ...initialData,\n gender: (initialData.gender || \"MALE\").toUpperCase() as \"MALE\" | \"FEMALE\",\n spouseIds: initialData.spouseIds || [],\n childrenIds: initialData.childrenIds || [],\n tags: initialData.tags || [],\n fatherId: initialData.fatherId || undefined,\n motherId: initialData.motherId || undefined,\n }\n })\n\n const [errors, setErrors] = useState([])\n\n const handleChange = (field: keyof FamilyMember, value: any) => {\n setFormData((prev) => {\n const newData = { ...prev, [field]: value }\n \n // Auto-update full name if surname or given name changes\n if (field === \"surname\" || field === \"givenName\") {\n newData.fullName = (newData.surname || \"\") + (newData.givenName || \"\")\n }\n \n // 选择父亲时自动带出母亲\n if (field === \"fatherId\" && value) {\n const father = existingMembers.find(m => m.id === value)\n if (father && father.spouseIds && father.spouseIds.length > 0) {\n // 找到父亲的配偶(母亲)\n const motherId = father.spouseIds[0]\n newData.motherId = motherId\n }\n }\n \n // 选择母亲时自动带出父亲\n if (field === \"motherId\" && value) {\n const mother = existingMembers.find(m => m.id === value)\n if (mother && mother.spouseIds && mother.spouseIds.length > 0) {\n // 找到母亲的配偶(父亲)\n const fatherId = mother.spouseIds[0]\n newData.fatherId = fatherId\n }\n }\n \n return newData\n })\n // Clear errors when user makes changes\n if (errors.length > 0) setErrors([])\n }\n\n const handleSpouseAdd = (spouseId: string) => {\n if (!spouseId || spouseId === \"none\") return\n \n setFormData((prev) => {\n const currentSpouses = prev.spouseIds || []\n // 避免重复添加\n if (currentSpouses.includes(spouseId)) return prev\n \n return {\n ...prev,\n spouseIds: [...currentSpouses, spouseId]\n }\n })\n }\n\n const handleSpouseRemove = (spouseId: string) => {\n setFormData((prev) => ({\n ...prev,\n spouseIds: (prev.spouseIds || []).filter(id => id !== spouseId)\n }))\n }\n\n const handleChildAdd = (childId: string) => {\n if (!childId || childId === \"none\") return\n \n setFormData((prev) => {\n const currentChildren = prev.childrenIds || []\n // 避免重复添加\n if (currentChildren.includes(childId)) return prev\n \n return {\n ...prev,\n childrenIds: [...currentChildren, childId]\n }\n })\n }\n\n const handleChildRemove = (childId: string) => {\n setFormData((prev) => ({\n ...prev,\n childrenIds: (prev.childrenIds || []).filter(id => id !== childId)\n }))\n }\n\n const validate = (): boolean => {\n const newErrors: string[] = []\n\n // 1. Date Validation\n if (formData.birthDate && formData.deathDate) {\n if (new Date(formData.birthDate) > new Date(formData.deathDate)) {\n newErrors.push(\"出生日期不能晚于逝世日期\")\n }\n }\n\n // 2. Parent Age Validation\n const birthYear = formData.birthDate ? new Date(formData.birthDate).getFullYear() : null\n\n if (birthYear) {\n if (formData.fatherId) {\n const father = existingMembers.find((m) => m.id === formData.fatherId)\n if (father?.birthDate) {\n const fatherBirthYear = new Date(father.birthDate).getFullYear()\n if (birthYear - fatherBirthYear < 15) {\n newErrors.push(`与父亲的年龄差过小 (${birthYear - fatherBirthYear}岁),请确认`)\n }\n if (birthYear < fatherBirthYear) {\n newErrors.push(\"出生日期不能早于父亲\")\n }\n }\n }\n\n if (formData.motherId) {\n const mother = existingMembers.find((m) => m.id === formData.motherId)\n if (mother?.birthDate) {\n const motherBirthYear = new Date(mother.birthDate).getFullYear()\n if (birthYear - motherBirthYear < 15) {\n newErrors.push(`与母亲的年龄差过小 (${birthYear - motherBirthYear}岁),请确认`)\n }\n if (birthYear < motherBirthYear) {\n newErrors.push(\"出生日期不能早于母亲\")\n }\n }\n }\n }\n\n // 3. Generation Validation\n if (formData.fatherId) {\n const father = existingMembers.find((m) => m.id === formData.fatherId)\n if (father && formData.generation !== father.generation + 1) {\n newErrors.push(`世系错误:父亲是第 ${father.generation} 世,子女应为第 ${father.generation + 1} 世`)\n }\n }\n\n // 4. Circular Reference Detection (循环引用检测)\n if (formData.fatherId || formData.motherId) {\n const visited = new Set()\n const checkCircular = (memberId: string): boolean => {\n if (memberId === formData.id) return true\n if (visited.has(memberId)) return false\n visited.add(memberId)\n\n const member = existingMembers.find((m) => m.id === memberId)\n if (!member) return false\n\n if (member.fatherId && checkCircular(member.fatherId)) return true\n if (member.motherId && checkCircular(member.motherId)) return true\n\n return false\n }\n\n if (formData.fatherId && checkCircular(formData.fatherId)) {\n newErrors.push(\"检测到循环引用:不能将自己的后代设置为父亲\")\n }\n if (formData.motherId && checkCircular(formData.motherId)) {\n newErrors.push(\"检测到循环引用:不能将自己的后代设置为母亲\")\n }\n }\n\n // 5. Self-Reference Detection (自我引用检测)\n if (formData.fatherId === formData.id) {\n newErrors.push(\"不能将自己设置为自己的父亲\")\n }\n if (formData.motherId === formData.id) {\n newErrors.push(\"不能将自己设置为自己的母亲\")\n }\n if (formData.spouseIds?.includes(formData.id || \"\")) {\n newErrors.push(\"不能将自己设置为自己的配偶\")\n }\n\n setErrors(newErrors)\n return newErrors.length === 0\n }\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault()\n if (validate()) {\n onSubmit(formData as FamilyMember)\n }\n }\n\n const potentialRelatives = existingMembers.filter((m) => m.id !== formData.id)\n\n return (\n
\n {errors.length > 0 && (\n
\n

请检查以下问题:

\n
    \n {errors.map((err, index) => (\n
  • {err}
  • \n ))}\n
\n
\n )}\n\n
\n {/* 基本信息和家庭关系 - 两列布局 */}\n
\n {/* 左列:基本信息 */}\n \n \n \n \n 基本信息 (Identity)\n \n \n \n
\n handleChange(\"avatarImageId\", imageId)}\n />\n
\n\n
\n
\n \n handleChange(\"surname\", e.target.value)}\n />\n
\n
\n \n handleChange(\"givenName\", e.target.value)}\n />\n
\n
\n\n
\n
\n \n \n
\n
\n \n handleChange(\"generation\", Number.parseInt(e.target.value))}\n />\n
\n
\n
\n
\n\n {/* 右列:家庭关系 */}\n \n \n \n \n 家庭关系 (Relationships)\n \n \n \n
\n \n
\n handleChange(\"fatherId\", val === \"none\" ? undefined : val)}\n >\n \n \n \n \n 无 (None)\n {potentialRelatives\n .filter((m) => m.gender === \"MALE\" && m.generation === (formData.generation || 1) - 1)\n .map((m) => (\n \n {m.fullName} ({m.generation}世)\n \n ))}\n \n \n {!formData.fatherId && (\n handleChange(\"spouseFatherName\", e.target.value)}\n className=\"flex-1\"\n />\n )}\n
\n
\n\n
\n \n
\n handleChange(\"motherId\", val === \"none\" ? undefined : val)}\n >\n \n \n \n \n 无 (None)\n {potentialRelatives\n .filter((m) => m.gender === \"FEMALE\" && m.generation === (formData.generation || 1) - 1)\n .map((m) => (\n \n {m.fullName} ({m.generation}世)\n \n ))}\n \n \n {!formData.motherId && (\n handleChange(\"spouseMotherName\", e.target.value)}\n className=\"flex-1\"\n />\n )}\n
\n
\n\n
\n \n \n \n {/* 已选配偶列表 */}\n {formData.spouseIds && formData.spouseIds.length > 0 && (\n
\n {formData.spouseIds.map((spouseId, index) => {\n const spouse = existingMembers.find(m => m.id === spouseId)\n if (!spouse) return null\n \n return (\n
\n \n {index + 1}. {spouse.fullName} (第{spouse.generation}世)\n \n handleSpouseRemove(spouseId)}\n className=\"h-6 w-6 p-0 hover:bg-destructive hover:text-destructive-foreground\"\n >\n ×\n \n
\n )\n })}\n
\n )}\n
\n\n
\n \n \n \n {/* 已选子女列表 */}\n {formData.childrenIds && formData.childrenIds.length > 0 && (\n
\n {formData.childrenIds.map((childId, index) => {\n const child = existingMembers.find(m => m.id === childId)\n if (!child) return null\n \n return (\n
\n \n {index + 1}. {child.fullName} (第{child.generation}世)\n \n handleChildRemove(childId)}\n className=\"h-6 w-6 p-0 hover:bg-destructive hover:text-destructive-foreground\"\n >\n ×\n \n
\n )\n })}\n
\n )}\n
\n
\n
\n
\n\n {/* Traditional Names */}\n \n \n \n \n 传统称谓 (Traditional Names)\n \n \n \n
\n
\n \n handleChange(\"courtesyName\", e.target.value)}\n placeholder=\"e.g. 伯虎\"\n />\n
\n
\n \n handleChange(\"artName\", e.target.value)}\n placeholder=\"e.g. 六如居士\"\n />\n
\n
\n
\n
\n \n handleChange(\"generationName\", e.target.value)}\n />\n
\n
\n \n handleChange(\"posthumousName\", e.target.value)}\n />\n
\n
\n
\n
\n\n {/* Dates & Places */}\n \n \n \n \n 生平与地点 (Life & Places)\n \n \n \n
\n
\n \n handleChange(\"birthDate\", e.target.value)}\n />\n
\n
\n \n handleChange(\"deathDate\", e.target.value)}\n />\n
\n
\n
\n \n handleChange(\"ancestralHome\", e.target.value)}\n placeholder=\"e.g. 福建省泉州市\"\n />\n
\n
\n \n handleChange(\"burialPlace\", e.target.value)}\n />\n
\n
\n
\n\n {/* Contact Information */}\n \n \n \n \n 联系方式 (Contact Information)\n \n 在世成员的联系方式\n \n \n
\n \n handleChange(\"phone\", e.target.value)}\n placeholder=\"e.g. 13800138000\"\n />\n
\n
\n \n handleChange(\"telephone\", e.target.value)}\n placeholder=\"e.g. 0592-1234567\"\n />\n
\n
\n \n handleChange(\"email\", e.target.value)}\n placeholder=\"e.g. example@email.com\"\n />\n
\n
\n \n handleChange(\"address\", e.target.value)}\n placeholder=\"e.g. 福建省厦门市思明区XX路XX号\"\n />\n
\n
\n
\n\n {/* Biography */}\n \n \n \n \n 生平事迹 (Biography)\n \n \n \n handleChange(\"bio\", e.target.value)}\n />\n \n \n\n {/* Tags */}\n \n \n \n \n 标签 (Tags)\n \n 添加标签以便分类和搜索(按回车添加)\n \n \n
\n
\n {\n if (e.key === 'Enter') {\n e.preventDefault()\n const input = e.currentTarget\n const value = input.value.trim()\n if (value && !(formData.tags || []).includes(value)) {\n handleChange('tags', [...(formData.tags || []), value])\n input.value = ''\n }\n }\n }}\n />\n
\n {formData.tags && formData.tags.length > 0 && (\n
\n {formData.tags.map((tag, index) => (\n \n {tag}\n {\n const newTags = formData.tags?.filter((_, i) => i !== index) || []\n handleChange('tags', newTags)\n }}\n className=\"ml-1 hover:text-destructive\"\n >\n ×\n \n \n ))}\n
\n )}\n
\n
\n
\n\n {/* Photo Gallery */}\n \n \n \n \n 照片墙 (Photo Gallery)\n \n 上传多张照片记录珍贵时刻\n \n \n handleChange(\"photoIds\", photoIds)}\n />\n \n \n\n {/* Family Stories */}\n \n \n \n \n 家族故事 (Family Stories)\n \n 记录与此成员相关的家族故事\n \n \n handleChange(\"stories\", stories)}\n />\n \n \n\n
\n\n
\n \n \n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 4588, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/members/%5Bid%5D/page.tsx"],"sourcesContent":["\"use client\"\n\nimport Link from \"next/link\"\n\nimport { useParams, useRouter } from \"next/navigation\"\nimport { useFamily } from \"@/context/family-context\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { MemberForm } from \"@/components/members/member-form\"\nimport { Button } from \"@/components/ui/button\"\nimport { ArrowLeft, Edit, Trash, Share2, Printer, CircleUser, CircleUserRound, Images, BookOpen } from \"lucide-react\"\nimport { useState, useEffect } from \"react\"\nimport type { FamilyMember } from \"@/types/family\"\nimport { db } from \"@/lib/db\"\nimport { PhotoGallery } from \"@/components/members/photo-gallery\"\nimport { StoryManager } from \"@/components/members/story-manager\"\nimport { useDialog } from \"@/components/ui/alert-dialog-custom\"\n\nexport default function MemberProfilePage() {\n const { id } = useParams()\n const { getMember, updateMember, deleteMember, treeData } = useFamily()\n const { showConfirm } = useDialog()\n const router = useRouter()\n const [isEditing, setIsEditing] = useState(false)\n const [avatarBlobUrl, setAvatarBlobUrl] = useState(undefined)\n\n const member = getMember(id as string)\n const allMembers = Object.values(treeData.members)\n\n // Load avatar blob if exists\n useEffect(() => {\n if (member?.avatarImageId) {\n db.images.get(member.avatarImageId).then((image) => {\n if (image) {\n const url = URL.createObjectURL(image.blob)\n setAvatarBlobUrl(url)\n return () => URL.revokeObjectURL(url)\n }\n })\n } else {\n setAvatarBlobUrl(undefined)\n }\n }, [member?.avatarImageId])\n\n if (!member) {\n return (\n
\n \n
\n

Member not found

\n \n
\n
\n )\n }\n\n const handleSave = (updatedMember: FamilyMember) => {\n updateMember(updatedMember.id, updatedMember)\n setIsEditing(false)\n }\n\n const handleDelete = async () => {\n const confirmed = await showConfirm(\"确定要删除这位成员吗?这将同时删除其关联关系。\", \"删除成员\", \"destructive\")\n if (confirmed) {\n deleteMember(member.id)\n router.push(\"/members\")\n }\n }\n\n if (isEditing) {\n return (\n
\n \n
\n
\n \n

编辑成员: {member.fullName}

\n
\n setIsEditing(false)} \n />\n
\n
\n )\n }\n\n return (\n
\n \n
\n {/* Header Section */}\n
\n
\n
\n {avatarBlobUrl ? (\n \n ) : (\n member.gender === 'FEMALE' ? (\n \n ) : (\n \n )\n )}\n
\n
\n
\n

{member.fullName}

\n \n {member.generation}世\n \n
\n
\n {member.courtesyName && (\n

\n 字:{member.courtesyName}\n

\n )}\n {member.artName && (\n

\n 号:{member.artName}\n

\n )}\n {member.ancestralHome &&

籍贯:{member.ancestralHome}

}\n
\n {member.tags && member.tags.length > 0 && (\n
\n {member.tags.map((tag) => (\n \n {tag}\n \n ))}\n
\n )}\n
\n
\n\n
\n \n \n \n \n
\n
\n\n {/* Content Grid */}\n
\n {/* Main Biography */}\n
\n
\n

\n \n 生平事迹\n

\n
\n {member.bio ? (\n

{member.bio}

\n ) : (\n

暂无生平记录...

\n )}\n
\n
\n\n {/* Photo Gallery */}\n {member.photoIds && member.photoIds.length > 0 && (\n
\n

\n \n 照片墙\n

\n
\n updateMember(member.id, { photoIds })}\n readonly={false}\n />\n
\n
\n )}\n\n {/* Family Stories */}\n {member.stories && member.stories.length > 0 && (\n
\n

\n \n 家族故事\n

\n
\n updateMember(member.id, { stories })}\n readonly={false}\n />\n
\n
\n )}\n\n
\n

\n \n 家族关系\n

\n
\n
\n

\n 父亲 (Father)\n

\n {member.fatherId ? (\n \n {getMember(member.fatherId)?.fullName || member.fatherId}\n \n ) : member.spouseFatherName ? (\n \n {member.spouseFatherName}\n \n ) : (\n -\n )}\n
\n
\n

\n 母亲 (Mother)\n

\n {member.motherId ? (\n \n {getMember(member.motherId)?.fullName || member.motherId}\n \n ) : member.spouseMotherName ? (\n \n {member.spouseMotherName}\n \n ) : (\n -\n )}\n
\n
\n

\n 配偶 (Spouse)\n

\n
\n {member.spouseIds?.length > 0 ? (\n member.spouseIds.map((spouseId) => (\n \n {getMember(spouseId)?.fullName || spouseId}\n \n ))\n ) : (\n 无记录\n )}\n
\n
\n
\n

\n 子女 (Children)\n

\n
\n {member.childrenIds?.length > 0 ? (\n member.childrenIds.map((childId) => (\n \n {getMember(childId)?.fullName || childId}\n \n ))\n ) : (\n 无记录\n )}\n
\n
\n
\n
\n
\n\n {/* Sidebar Info */}\n
\n
\n

详细信息

\n
\n
\n
出生日期
\n
{member.birthDate || \"-\"}
\n
\n {member.deathDate && (\n <>\n
\n
逝世日期
\n
{member.deathDate}
\n
\n
\n
谥号
\n
{member.posthumousName || \"-\"}
\n
\n
\n
墓地
\n
{member.burialPlace || \"-\"}
\n
\n \n )}\n {member.generationName && (\n
\n
字辈
\n
{member.generationName}
\n
\n )}\n
\n
\n \n {/* 联系方式 */}\n {(member.phone || member.telephone || member.email || member.address) && (\n
\n

联系方式

\n
\n {member.phone && (\n
\n
手机号
\n
\n \n {member.phone}\n \n
\n
\n )}\n {member.telephone && (\n
\n
固定电话
\n
\n \n {member.telephone}\n \n
\n
\n )}\n {member.email && (\n
\n
邮箱
\n
\n \n {member.email}\n \n
\n
\n )}\n {member.address && (\n
\n
现居地址
\n
{member.address}
\n
\n )}\n
\n
\n )}\n
\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}] + {"offset": {"line": 4588, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/members/%5Bid%5D/page.tsx"],"sourcesContent":["\"use client\"\n\nimport Link from \"next/link\"\n\nimport { useParams, useRouter } from \"next/navigation\"\nimport { useFamily } from \"@/context/family-context\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { MemberForm } from \"@/components/members/member-form\"\nimport { Button } from \"@/components/ui/button\"\nimport { ArrowLeft, Edit, Trash, Share2, Printer, CircleUser, CircleUserRound, Images, BookOpen, UserPlus } from \"lucide-react\"\nimport { useState, useEffect } from \"react\"\nimport type { FamilyMember } from \"@/types/family\"\nimport { db } from \"@/lib/db\"\nimport { PhotoGallery } from \"@/components/members/photo-gallery\"\nimport { StoryManager } from \"@/components/members/story-manager\"\nimport { useDialog } from \"@/components/ui/alert-dialog-custom\"\n\nexport default function MemberProfilePage() {\n const { id } = useParams()\n const { getMember, updateMember, deleteMember, treeData } = useFamily()\n const { showConfirm } = useDialog()\n const router = useRouter()\n const [isEditing, setIsEditing] = useState(false)\n const [avatarBlobUrl, setAvatarBlobUrl] = useState(undefined)\n\n const member = getMember(id as string)\n const allMembers = Object.values(treeData.members)\n\n // Load avatar blob if exists\n useEffect(() => {\n if (member?.avatarImageId) {\n db.images.get(member.avatarImageId).then((image) => {\n if (image) {\n const url = URL.createObjectURL(image.blob)\n setAvatarBlobUrl(url)\n return () => URL.revokeObjectURL(url)\n }\n })\n } else {\n setAvatarBlobUrl(undefined)\n }\n }, [member?.avatarImageId])\n\n if (!member) {\n return (\n
\n \n
\n

Member not found

\n \n
\n
\n )\n }\n\n const handleSave = (updatedMember: FamilyMember) => {\n updateMember(updatedMember.id, updatedMember)\n setIsEditing(false)\n }\n\n const handleDelete = async () => {\n const confirmed = await showConfirm(\"确定要删除这位成员吗?这将同时删除其关联关系。\", \"删除成员\", \"destructive\")\n if (confirmed) {\n deleteMember(member.id)\n router.push(\"/members\")\n }\n }\n\n const handleQuickAddChild = () => {\n // 跳转到新增成员页面,并预填父母信息\n const params = new URLSearchParams()\n if (member.gender === 'MALE') {\n params.set('fatherId', member.id)\n } else {\n params.set('motherId', member.id)\n }\n params.set('generation', (member.generation + 1).toString())\n router.push(`/members/new?${params.toString()}`)\n }\n\n const handleQuickAddSpouse = () => {\n // 跳转到新增成员页面,并预填配偶信息\n const params = new URLSearchParams()\n params.set('spouseId', member.id)\n params.set('generation', member.generation.toString())\n // 配偶性别与当前成员相反\n params.set('gender', member.gender === 'MALE' ? 'FEMALE' : 'MALE')\n router.push(`/members/new?${params.toString()}`)\n }\n\n if (isEditing) {\n return (\n
\n \n
\n
\n \n

编辑成员: {member.fullName}

\n
\n setIsEditing(false)} \n />\n
\n
\n )\n }\n\n return (\n
\n \n
\n {/* Header Section */}\n
\n
\n
\n {avatarBlobUrl ? (\n \n ) : (\n member.gender === 'FEMALE' ? (\n \n ) : (\n \n )\n )}\n
\n
\n
\n

{member.fullName}

\n \n {member.generation}世\n \n
\n
\n {member.courtesyName && (\n

\n 字:{member.courtesyName}\n

\n )}\n {member.artName && (\n

\n 号:{member.artName}\n

\n )}\n {member.ancestralHome &&

籍贯:{member.ancestralHome}

}\n
\n {member.tags && member.tags.length > 0 && (\n
\n {member.tags.map((tag) => (\n \n {tag}\n \n ))}\n
\n )}\n
\n
\n\n
\n \n \n \n \n \n \n
\n
\n\n {/* Content Grid */}\n
\n {/* Main Biography */}\n
\n
\n

\n \n 生平事迹\n

\n
\n {member.bio ? (\n

{member.bio}

\n ) : (\n

暂无生平记录...

\n )}\n
\n
\n\n {/* Photo Gallery */}\n {member.photoIds && member.photoIds.length > 0 && (\n
\n

\n \n 照片墙\n

\n
\n updateMember(member.id, { photoIds })}\n readonly={false}\n />\n
\n
\n )}\n\n {/* Family Stories */}\n {member.stories && member.stories.length > 0 && (\n
\n

\n \n 家族故事\n

\n
\n updateMember(member.id, { stories })}\n readonly={false}\n />\n
\n
\n )}\n\n
\n

\n \n 家族关系\n

\n
\n
\n

\n 父亲 (Father)\n

\n {member.fatherId ? (\n \n {getMember(member.fatherId)?.fullName || member.fatherId}\n \n ) : member.spouseFatherName ? (\n \n {member.spouseFatherName}\n \n ) : (\n -\n )}\n
\n
\n

\n 母亲 (Mother)\n

\n {member.motherId ? (\n \n {getMember(member.motherId)?.fullName || member.motherId}\n \n ) : member.spouseMotherName ? (\n \n {member.spouseMotherName}\n \n ) : (\n -\n )}\n
\n
\n

\n 配偶 (Spouse)\n

\n
\n {member.spouseIds?.length > 0 ? (\n member.spouseIds.map((spouseId) => (\n \n {getMember(spouseId)?.fullName || spouseId}\n \n ))\n ) : (\n 无记录\n )}\n
\n
\n
\n

\n 子女 (Children)\n

\n
\n {member.childrenIds?.length > 0 ? (\n member.childrenIds.map((childId) => (\n \n {getMember(childId)?.fullName || childId}\n \n ))\n ) : (\n 无记录\n )}\n
\n
\n
\n
\n
\n\n {/* Sidebar Info */}\n
\n
\n

详细信息

\n
\n
\n
出生日期
\n
{member.birthDate || \"-\"}
\n
\n {member.deathDate && (\n <>\n
\n
逝世日期
\n
{member.deathDate}
\n
\n
\n
谥号
\n
{member.posthumousName || \"-\"}
\n
\n
\n
墓地
\n
{member.burialPlace || \"-\"}
\n
\n \n )}\n {member.generationName && (\n
\n
字辈
\n
{member.generationName}
\n
\n )}\n
\n
\n \n {/* 联系方式 */}\n {(member.phone || member.telephone || member.email || member.address) && (\n
\n

联系方式

\n
\n {member.phone && (\n
\n
手机号
\n
\n \n {member.phone}\n \n
\n
\n )}\n {member.telephone && (\n
\n
固定电话
\n
\n \n {member.telephone}\n \n
\n
\n )}\n {member.email && (\n
\n
邮箱
\n
\n \n {member.email}\n \n
\n
\n )}\n {member.address && (\n
\n
现居地址
\n
{member.address}
\n
\n )}\n
\n
\n )}\n
\n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}] } \ No newline at end of file diff --git a/.next/dev/server/chunks/ssr/[root-of-the-server]__3f095049._.js b/.next/dev/server/chunks/ssr/[root-of-the-server]__3f095049._.js index ce2a017b..9c67aa40 100644 --- a/.next/dev/server/chunks/ssr/[root-of-the-server]__3f095049._.js +++ b/.next/dev/server/chunks/ssr/[root-of-the-server]__3f095049._.js @@ -4597,6 +4597,7 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$members$2f$member$2d$form$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/members/member-form.tsx [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$arrow$2d$left$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ArrowLeft$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/arrow-left.js [app-ssr] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); "use client"; ; ; @@ -4605,10 +4606,57 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch ; ; ; +; function NewMemberPage() { - const { addMember, treeData } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useFamily"])(); const router = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRouter"])(); + const searchParams = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useSearchParams"])(); + const { addMember, treeData, getMember } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useFamily"])(); const existingMembers = Object.values(treeData.members); + // 从URL参数获取预填信息 + const initialData = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useMemo"])(()=>{ + const fatherId = searchParams.get('fatherId'); + const motherId = searchParams.get('motherId'); + const spouseId = searchParams.get('spouseId'); + const generation = searchParams.get('generation'); + const gender = searchParams.get('gender'); + if (!fatherId && !motherId && !spouseId && !generation && !gender) return undefined; + const data = {}; + // 处理父母信息 + if (fatherId) { + data.fatherId = fatherId; + // 如果有父亲,尝试获取母亲(父亲的配偶) + const father = getMember(fatherId); + if (father?.spouseIds && father.spouseIds.length > 0) { + data.motherId = father.spouseIds[0]; + } + } + if (motherId) { + data.motherId = motherId; + // 如果有母亲,尝试获取父亲(母亲的配偶) + const mother = getMember(motherId); + if (mother?.spouseIds && mother.spouseIds.length > 0) { + data.fatherId = mother.spouseIds[0]; + } + } + // 处理配偶信息 + if (spouseId) { + data.spouseIds = [ + spouseId + ]; + } + // 处理世代 + if (generation) { + data.generation = parseInt(generation); + } + // 处理性别 + if (gender) { + data.gender = gender.toUpperCase(); + } + return data; + }, [ + searchParams, + getMember + ]); const handleSave = async (newMember)=>{ try { await addMember({ @@ -4628,7 +4676,7 @@ function NewMemberPage() { children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$site$2d$header$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["SiteHeader"], {}, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/new/page.tsx", - lineNumber: 34, + lineNumber: 85, columnNumber: 7 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4645,14 +4693,14 @@ function NewMemberPage() { className: "mr-2 h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/new/page.tsx", - lineNumber: 38, + lineNumber: 89, columnNumber: 13 }, this), " 返回" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/new/page.tsx", - lineNumber: 37, + lineNumber: 88, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("h1", { @@ -4660,34 +4708,35 @@ function NewMemberPage() { children: "新增家族成员" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/new/page.tsx", - lineNumber: 40, + lineNumber: 91, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/new/page.tsx", - lineNumber: 36, + lineNumber: 87, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$members$2f$member$2d$form$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["MemberForm"], { + initialData: initialData, existingMembers: existingMembers, onSubmit: handleSave, onCancel: ()=>router.back() }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/new/page.tsx", - lineNumber: 42, + lineNumber: 93, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/new/page.tsx", - lineNumber: 35, + lineNumber: 86, columnNumber: 7 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/new/page.tsx", - lineNumber: 33, + lineNumber: 84, columnNumber: 5 }, this); } diff --git a/.next/dev/server/chunks/ssr/[root-of-the-server]__3f095049._.js.map b/.next/dev/server/chunks/ssr/[root-of-the-server]__3f095049._.js.map index a3e493d5..617c32d8 100644 --- a/.next/dev/server/chunks/ssr/[root-of-the-server]__3f095049._.js.map +++ b/.next/dev/server/chunks/ssr/[root-of-the-server]__3f095049._.js.map @@ -13,5 +13,5 @@ {"offset": {"line": 2066, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/members/photo-gallery.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { db } from \"@/lib/db\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card } from \"@/components/ui/card\"\nimport { Dialog, DialogContent, DialogHeader, DialogTitle } from \"@/components/ui/dialog\"\nimport { X, Upload, Image as ImageIcon, Plus, ZoomIn } from \"lucide-react\"\nimport { useDialog } from \"@/components/ui/alert-dialog-custom\"\nimport { v4 as uuidv4 } from \"uuid\"\nimport imageCompression from \"browser-image-compression\"\n\ninterface PhotoGalleryProps {\n photoIds?: string[]\n onChange: (photoIds: string[]) => void\n readonly?: boolean\n}\n\nexport function PhotoGallery({ photoIds = [], onChange, readonly = false }: PhotoGalleryProps) {\n const { showAlert, showConfirm } = useDialog()\n const [photos, setPhotos] = useState<{ id: string; url: string }[]>([])\n const [selectedPhoto, setSelectedPhoto] = useState(null)\n const [isUploading, setIsUploading] = useState(false)\n\n // 加载照片\n useEffect(() => {\n const loadPhotos = async () => {\n const loadedPhotos = await Promise.all(\n photoIds.map(async (id) => {\n try {\n const image = await db.images.get(id)\n if (image) {\n const url = URL.createObjectURL(image.blob)\n return { id, url }\n }\n } catch (error) {\n console.error('加载照片失败:', error)\n }\n return null\n })\n )\n setPhotos(loadedPhotos.filter(Boolean) as { id: string; url: string }[])\n }\n\n if (photoIds.length > 0) {\n loadPhotos()\n }\n\n // 清理 URL\n return () => {\n photos.forEach(photo => URL.revokeObjectURL(photo.url))\n }\n }, [photoIds])\n\n const handleUpload = async (e: React.ChangeEvent) => {\n const files = e.target.files\n if (!files || files.length === 0) return\n\n setIsUploading(true)\n try {\n const newPhotoIds: string[] = []\n\n for (const file of Array.from(files)) {\n if (!file.type.startsWith('image/')) continue\n\n // 压缩图片\n const options = {\n maxSizeMB: 2,\n maxWidthOrHeight: 1920,\n useWebWorker: true,\n }\n \n const compressedFile = await imageCompression(file, options)\n \n // 保存到数据库\n const imageId = uuidv4()\n await db.images.add({\n id: imageId,\n blob: compressedFile,\n mimeType: compressedFile.type,\n createdAt: new Date().toISOString(),\n })\n\n newPhotoIds.push(imageId)\n }\n\n // 更新照片列表\n onChange([...photoIds, ...newPhotoIds])\n } catch (error) {\n console.error('上传照片失败:', error)\n await showAlert('上传照片失败', '错误')\n } finally {\n setIsUploading(false)\n e.target.value = ''\n }\n }\n\n const handleDelete = async (photoId: string) => {\n const confirmed = await showConfirm('确定要删除这张照片吗?', '删除照片')\n if (confirmed) {\n onChange(photoIds.filter(id => id !== photoId))\n }\n }\n\n return (\n
\n
\n

照片墙 ({photos.length})

\n {!readonly && (\n \n )}\n
\n\n {photos.length > 0 ? (\n
\n {photos.map((photo) => (\n
\n setSelectedPhoto(photo.url)}\n />\n {!readonly && (\n handleDelete(photo.id)}\n >\n \n \n )}\n setSelectedPhoto(photo.url)}\n >\n \n \n
\n ))}\n
\n ) : (\n
\n 暂无照片\n
\n )}\n\n {/* 照片预览对话框 */}\n setSelectedPhoto(null)}>\n \n \n 照片预览\n \n {selectedPhoto && (\n \n )}\n \n \n
\n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAVA;;;;;;;;;;AAkBO,SAAS,aAAa,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,WAAW,KAAK,EAAqB;IAC3F,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAA,kNAAS;IAC5C,MAAM,CAAC,QAAQ,UAAU,GAAG,IAAA,uYAAQ,EAAgC,EAAE;IACtE,MAAM,CAAC,eAAe,iBAAiB,GAAG,IAAA,uYAAQ,EAAgB;IAClE,MAAM,CAAC,aAAa,eAAe,GAAG,IAAA,uYAAQ,EAAC;IAE/C,OAAO;IACP,IAAA,wYAAS,EAAC;QACR,MAAM,aAAa;YACjB,MAAM,eAAe,MAAM,QAAQ,GAAG,CACpC,SAAS,GAAG,CAAC,OAAO;gBAClB,IAAI;oBACF,MAAM,QAAQ,MAAM,sKAAE,CAAC,MAAM,CAAC,GAAG,CAAC;oBAClC,IAAI,OAAO;wBACT,MAAM,MAAM,IAAI,eAAe,CAAC,MAAM,IAAI;wBAC1C,OAAO;4BAAE;4BAAI;wBAAI;oBACnB;gBACF,EAAE,OAAO,OAAO;oBACd,QAAQ,KAAK,CAAC,WAAW;gBAC3B;gBACA,OAAO;YACT;YAEF,UAAU,aAAa,MAAM,CAAC;QAChC;QAEA,IAAI,SAAS,MAAM,GAAG,GAAG;YACvB;QACF;QAEA,SAAS;QACT,OAAO;YACL,OAAO,OAAO,CAAC,CAAA,QAAS,IAAI,eAAe,CAAC,MAAM,GAAG;QACvD;IACF,GAAG;QAAC;KAAS;IAEb,MAAM,eAAe,OAAO;QAC1B,MAAM,QAAQ,EAAE,MAAM,CAAC,KAAK;QAC5B,IAAI,CAAC,SAAS,MAAM,MAAM,KAAK,GAAG;QAElC,eAAe;QACf,IAAI;YACF,MAAM,cAAwB,EAAE;YAEhC,KAAK,MAAM,QAAQ,MAAM,IAAI,CAAC,OAAQ;gBACpC,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,WAAW;gBAErC,OAAO;gBACP,MAAM,UAAU;oBACd,WAAW;oBACX,kBAAkB;oBAClB,cAAc;gBAChB;gBAEA,MAAM,iBAAiB,MAAM,IAAA,yUAAgB,EAAC,MAAM;gBAEpD,SAAS;gBACT,MAAM,UAAU,IAAA,0RAAM;gBACtB,MAAM,sKAAE,CAAC,MAAM,CAAC,GAAG,CAAC;oBAClB,IAAI;oBACJ,MAAM;oBACN,UAAU,eAAe,IAAI;oBAC7B,WAAW,IAAI,OAAO,WAAW;gBACnC;gBAEA,YAAY,IAAI,CAAC;YACnB;YAEA,SAAS;YACT,SAAS;mBAAI;mBAAa;aAAY;QACxC,EAAE,OAAO,OAAO;YACd,QAAQ,KAAK,CAAC,WAAW;YACzB,MAAM,UAAU,UAAU;QAC5B,SAAU;YACR,eAAe;YACf,EAAE,MAAM,CAAC,KAAK,GAAG;QACnB;IACF;IAEA,MAAM,eAAe,OAAO;QAC1B,MAAM,YAAY,MAAM,YAAY,eAAe;QACnD,IAAI,WAAW;YACb,SAAS,SAAS,MAAM,CAAC,CAAA,KAAM,OAAO;QACxC;IACF;IAEA,qBACE,oaAAC;QAAI,WAAU;;0BACb,oaAAC;gBAAI,WAAU;;kCACb,oaAAC;wBAAG,WAAU;;4BAAsB;4BAAM,OAAO,MAAM;4BAAC;;;;;;;oBACvD,CAAC,0BACA,oaAAC;;0CACC,oaAAC;gCACC,MAAK;gCACL,QAAQ;gCACR,QAAO;gCACP,WAAU;gCACV,UAAU;gCACV,UAAU;;;;;;0CAEZ,oaAAC,4LAAM;gCACL,MAAK;gCACL,SAAQ;gCACR,MAAK;gCACL,UAAU;gCACV,OAAO;0CAEP,cAAA,oaAAC;;sDACC,oaAAC,qVAAI;4CAAC,WAAU;;;;;;wCACf,cAAc,WAAW;;;;;;;;;;;;;;;;;;;;;;;;YAOnC,OAAO,MAAM,GAAG,kBACf,oaAAC;gBAAI,WAAU;0BACZ,OAAO,GAAG,CAAC,CAAC,sBACX,oaAAC;wBAAmB,WAAU;;0CAC5B,oaAAC;gCACC,KAAK,MAAM,GAAG;gCACd,KAAI;gCACJ,WAAU;gCACV,SAAS,IAAM,iBAAiB,MAAM,GAAG;;;;;;4BAE1C,CAAC,0BACA,oaAAC,4LAAM;gCACL,MAAK;gCACL,SAAQ;gCACR,MAAK;gCACL,WAAU;gCACV,SAAS,IAAM,aAAa,MAAM,EAAE;0CAEpC,cAAA,oaAAC,4UAAC;oCAAC,WAAU;;;;;;;;;;;0CAGjB,oaAAC,4LAAM;gCACL,MAAK;gCACL,SAAQ;gCACR,MAAK;gCACL,WAAU;gCACV,SAAS,IAAM,iBAAiB,MAAM,GAAG;0CAEzC,cAAA,oaAAC,+VAAM;oCAAC,WAAU;;;;;;;;;;;;uBAzBZ,MAAM,EAAE;;;;;;;;;qCA+BtB,oaAAC;gBAAI,WAAU;0BAAiF;;;;;;0BAMlG,oaAAC,4LAAM;gBAAC,MAAM,CAAC,CAAC;gBAAe,cAAc,IAAM,iBAAiB;0BAClE,cAAA,oaAAC,mMAAa;oBAAC,WAAU;;sCACvB,oaAAC,kMAAY;sCACX,cAAA,oaAAC,iMAAW;0CAAC;;;;;;;;;;;wBAEd,+BACC,oaAAC;4BACC,KAAK;4BACL,KAAI;4BACJ,WAAU;;;;;;;;;;;;;;;;;;;;;;;AAOxB"}}, {"offset": {"line": 2360, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/members/story-manager.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState } from \"react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Textarea } from \"@/components/ui/textarea\"\nimport { Label } from \"@/components/ui/label\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from \"@/components/ui/dialog\"\nimport { Plus, Edit, Trash, BookOpen, Calendar } from \"lucide-react\"\nimport type { FamilyStory } from \"@/types/family\"\nimport { v4 as uuidv4 } from \"uuid\"\nimport { useDialog } from \"@/components/ui/alert-dialog-custom\"\n\ninterface StoryManagerProps {\n stories?: FamilyStory[]\n onChange: (stories: FamilyStory[]) => void\n readonly?: boolean\n}\n\nexport function StoryManager({ stories = [], onChange, readonly = false }: StoryManagerProps) {\n const { showAlert, showConfirm } = useDialog()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const [editingStory, setEditingStory] = useState(null)\n const [formData, setFormData] = useState>({\n title: \"\",\n content: \"\",\n date: \"\",\n })\n\n const handleAdd = () => {\n setEditingStory(null)\n setFormData({ title: \"\", content: \"\", date: \"\" })\n setIsDialogOpen(true)\n }\n\n const handleEdit = (story: FamilyStory) => {\n setEditingStory(story)\n setFormData(story)\n setIsDialogOpen(true)\n }\n\n const handleDelete = async (storyId: string) => {\n const confirmed = await showConfirm(\"确定要删除这个故事吗?\", \"删除故事\")\n if (confirmed) {\n onChange(stories.filter(s => s.id !== storyId))\n }\n }\n\n const handleSave = async () => {\n if (!formData.title || !formData.content) {\n await showAlert(\"请填写标题和内容\", \"提示\")\n return\n }\n\n const now = new Date().toISOString()\n \n if (editingStory) {\n // 更新现有故事\n onChange(\n stories.map(s =>\n s.id === editingStory.id\n ? { ...s, ...formData, updatedAt: now }\n : s\n )\n )\n } else {\n // 添加新故事\n const newStory: FamilyStory = {\n id: uuidv4(),\n title: formData.title!,\n content: formData.content!,\n date: formData.date,\n imageIds: formData.imageIds || [],\n createdAt: now,\n updatedAt: now,\n }\n onChange([...stories, newStory])\n }\n\n setIsDialogOpen(false)\n setFormData({ title: \"\", content: \"\", date: \"\" })\n }\n\n return (\n
\n
\n

\n \n 家族故事 ({stories.length})\n

\n {!readonly && (\n \n \n 添加故事\n \n )}\n
\n\n {stories.length > 0 ? (\n
\n {stories\n .sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime())\n .map((story) => (\n \n \n
\n
\n {story.title}\n {story.date && (\n
\n \n {story.date}\n
\n )}\n
\n {!readonly && (\n
\n handleEdit(story)}\n >\n \n \n handleDelete(story.id)}\n >\n \n \n
\n )}\n
\n
\n \n

\n {story.content}\n

\n
\n 创建于 {new Date(story.createdAt).toLocaleDateString('zh-CN')}\n
\n
\n
\n ))}\n
\n ) : (\n
\n 暂无家族故事\n
\n )}\n\n {/* 添加/编辑故事对话框 */}\n \n \n \n {editingStory ? \"编辑故事\" : \"添加故事\"}\n \n
\n
\n \n setFormData({ ...formData, title: e.target.value })}\n />\n
\n
\n \n setFormData({ ...formData, date: e.target.value })}\n />\n
\n
\n \n setFormData({ ...formData, content: e.target.value })}\n />\n
\n
\n \n \n \n \n
\n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, {"offset": {"line": 2818, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/members/member-form.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\n\nimport { useState } from \"react\"\nimport type { FamilyMember } from \"@/types/family\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport { Textarea } from \"@/components/ui/textarea\"\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\"\nimport { CalendarIcon, User, Scroll, Users, Images, BookOpen } from \"lucide-react\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { ImageUpload } from \"@/components/ui/image-upload\"\nimport { PhotoGallery } from \"./photo-gallery\"\nimport { StoryManager } from \"./story-manager\"\n\ninterface MemberFormProps {\n initialData?: Partial\n existingMembers?: FamilyMember[]\n onSubmit: (data: FamilyMember) => void\n onCancel: () => void\n}\n\nexport function MemberForm({ initialData, existingMembers = [], onSubmit, onCancel }: MemberFormProps) {\n // 计算最大世系\n const maxGeneration = existingMembers.length > 0 \n ? Math.max(...existingMembers.map(m => m.generation || 1))\n : 1\n \n // 获取始祖的姓氏(第1世成员)\n const ancestorSurname = existingMembers.find(m => m.generation === 1)?.surname || \"\"\n \n // Initialize state with default values or initialData\n const [formData, setFormData] = useState>(() => {\n const defaults = {\n id: crypto.randomUUID(),\n surname: ancestorSurname,\n givenName: \"\",\n fullName: \"\",\n gender: \"MALE\" as \"MALE\" | \"FEMALE\",\n generation: maxGeneration,\n spouseIds: [],\n childrenIds: [],\n tags: [],\n }\n \n if (!initialData) return defaults\n \n return {\n ...defaults,\n ...initialData,\n gender: (initialData.gender || \"MALE\").toUpperCase() as \"MALE\" | \"FEMALE\",\n spouseIds: initialData.spouseIds || [],\n childrenIds: initialData.childrenIds || [],\n tags: initialData.tags || [],\n fatherId: initialData.fatherId || undefined,\n motherId: initialData.motherId || undefined,\n }\n })\n\n const [errors, setErrors] = useState([])\n\n const handleChange = (field: keyof FamilyMember, value: any) => {\n setFormData((prev) => {\n const newData = { ...prev, [field]: value }\n \n // Auto-update full name if surname or given name changes\n if (field === \"surname\" || field === \"givenName\") {\n newData.fullName = (newData.surname || \"\") + (newData.givenName || \"\")\n }\n \n // 选择父亲时自动带出母亲\n if (field === \"fatherId\" && value) {\n const father = existingMembers.find(m => m.id === value)\n if (father && father.spouseIds && father.spouseIds.length > 0) {\n // 找到父亲的配偶(母亲)\n const motherId = father.spouseIds[0]\n newData.motherId = motherId\n }\n }\n \n // 选择母亲时自动带出父亲\n if (field === \"motherId\" && value) {\n const mother = existingMembers.find(m => m.id === value)\n if (mother && mother.spouseIds && mother.spouseIds.length > 0) {\n // 找到母亲的配偶(父亲)\n const fatherId = mother.spouseIds[0]\n newData.fatherId = fatherId\n }\n }\n \n return newData\n })\n // Clear errors when user makes changes\n if (errors.length > 0) setErrors([])\n }\n\n const handleSpouseAdd = (spouseId: string) => {\n if (!spouseId || spouseId === \"none\") return\n \n setFormData((prev) => {\n const currentSpouses = prev.spouseIds || []\n // 避免重复添加\n if (currentSpouses.includes(spouseId)) return prev\n \n return {\n ...prev,\n spouseIds: [...currentSpouses, spouseId]\n }\n })\n }\n\n const handleSpouseRemove = (spouseId: string) => {\n setFormData((prev) => ({\n ...prev,\n spouseIds: (prev.spouseIds || []).filter(id => id !== spouseId)\n }))\n }\n\n const handleChildAdd = (childId: string) => {\n if (!childId || childId === \"none\") return\n \n setFormData((prev) => {\n const currentChildren = prev.childrenIds || []\n // 避免重复添加\n if (currentChildren.includes(childId)) return prev\n \n return {\n ...prev,\n childrenIds: [...currentChildren, childId]\n }\n })\n }\n\n const handleChildRemove = (childId: string) => {\n setFormData((prev) => ({\n ...prev,\n childrenIds: (prev.childrenIds || []).filter(id => id !== childId)\n }))\n }\n\n const validate = (): boolean => {\n const newErrors: string[] = []\n\n // 1. Date Validation\n if (formData.birthDate && formData.deathDate) {\n if (new Date(formData.birthDate) > new Date(formData.deathDate)) {\n newErrors.push(\"出生日期不能晚于逝世日期\")\n }\n }\n\n // 2. Parent Age Validation\n const birthYear = formData.birthDate ? new Date(formData.birthDate).getFullYear() : null\n\n if (birthYear) {\n if (formData.fatherId) {\n const father = existingMembers.find((m) => m.id === formData.fatherId)\n if (father?.birthDate) {\n const fatherBirthYear = new Date(father.birthDate).getFullYear()\n if (birthYear - fatherBirthYear < 15) {\n newErrors.push(`与父亲的年龄差过小 (${birthYear - fatherBirthYear}岁),请确认`)\n }\n if (birthYear < fatherBirthYear) {\n newErrors.push(\"出生日期不能早于父亲\")\n }\n }\n }\n\n if (formData.motherId) {\n const mother = existingMembers.find((m) => m.id === formData.motherId)\n if (mother?.birthDate) {\n const motherBirthYear = new Date(mother.birthDate).getFullYear()\n if (birthYear - motherBirthYear < 15) {\n newErrors.push(`与母亲的年龄差过小 (${birthYear - motherBirthYear}岁),请确认`)\n }\n if (birthYear < motherBirthYear) {\n newErrors.push(\"出生日期不能早于母亲\")\n }\n }\n }\n }\n\n // 3. Generation Validation\n if (formData.fatherId) {\n const father = existingMembers.find((m) => m.id === formData.fatherId)\n if (father && formData.generation !== father.generation + 1) {\n newErrors.push(`世系错误:父亲是第 ${father.generation} 世,子女应为第 ${father.generation + 1} 世`)\n }\n }\n\n // 4. Circular Reference Detection (循环引用检测)\n if (formData.fatherId || formData.motherId) {\n const visited = new Set()\n const checkCircular = (memberId: string): boolean => {\n if (memberId === formData.id) return true\n if (visited.has(memberId)) return false\n visited.add(memberId)\n\n const member = existingMembers.find((m) => m.id === memberId)\n if (!member) return false\n\n if (member.fatherId && checkCircular(member.fatherId)) return true\n if (member.motherId && checkCircular(member.motherId)) return true\n\n return false\n }\n\n if (formData.fatherId && checkCircular(formData.fatherId)) {\n newErrors.push(\"检测到循环引用:不能将自己的后代设置为父亲\")\n }\n if (formData.motherId && checkCircular(formData.motherId)) {\n newErrors.push(\"检测到循环引用:不能将自己的后代设置为母亲\")\n }\n }\n\n // 5. Self-Reference Detection (自我引用检测)\n if (formData.fatherId === formData.id) {\n newErrors.push(\"不能将自己设置为自己的父亲\")\n }\n if (formData.motherId === formData.id) {\n newErrors.push(\"不能将自己设置为自己的母亲\")\n }\n if (formData.spouseIds?.includes(formData.id || \"\")) {\n newErrors.push(\"不能将自己设置为自己的配偶\")\n }\n\n setErrors(newErrors)\n return newErrors.length === 0\n }\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault()\n if (validate()) {\n onSubmit(formData as FamilyMember)\n }\n }\n\n const potentialRelatives = existingMembers.filter((m) => m.id !== formData.id)\n\n return (\n
\n {errors.length > 0 && (\n
\n

请检查以下问题:

\n
    \n {errors.map((err, index) => (\n
  • {err}
  • \n ))}\n
\n
\n )}\n\n
\n {/* 基本信息和家庭关系 - 两列布局 */}\n
\n {/* 左列:基本信息 */}\n \n \n \n \n 基本信息 (Identity)\n \n \n \n
\n handleChange(\"avatarImageId\", imageId)}\n />\n
\n\n
\n
\n \n handleChange(\"surname\", e.target.value)}\n />\n
\n
\n \n handleChange(\"givenName\", e.target.value)}\n />\n
\n
\n\n
\n
\n \n \n
\n
\n \n handleChange(\"generation\", Number.parseInt(e.target.value))}\n />\n
\n
\n
\n
\n\n {/* 右列:家庭关系 */}\n \n \n \n \n 家庭关系 (Relationships)\n \n \n \n
\n \n
\n handleChange(\"fatherId\", val === \"none\" ? undefined : val)}\n >\n \n \n \n \n 无 (None)\n {potentialRelatives\n .filter((m) => m.gender === \"MALE\" && m.generation === (formData.generation || 1) - 1)\n .map((m) => (\n \n {m.fullName} ({m.generation}世)\n \n ))}\n \n \n {!formData.fatherId && (\n handleChange(\"spouseFatherName\", e.target.value)}\n className=\"flex-1\"\n />\n )}\n
\n
\n\n
\n \n
\n handleChange(\"motherId\", val === \"none\" ? undefined : val)}\n >\n \n \n \n \n 无 (None)\n {potentialRelatives\n .filter((m) => m.gender === \"FEMALE\" && m.generation === (formData.generation || 1) - 1)\n .map((m) => (\n \n {m.fullName} ({m.generation}世)\n \n ))}\n \n \n {!formData.motherId && (\n handleChange(\"spouseMotherName\", e.target.value)}\n className=\"flex-1\"\n />\n )}\n
\n
\n\n
\n \n \n \n {/* 已选配偶列表 */}\n {formData.spouseIds && formData.spouseIds.length > 0 && (\n
\n {formData.spouseIds.map((spouseId, index) => {\n const spouse = existingMembers.find(m => m.id === spouseId)\n if (!spouse) return null\n \n return (\n
\n \n {index + 1}. {spouse.fullName} (第{spouse.generation}世)\n \n handleSpouseRemove(spouseId)}\n className=\"h-6 w-6 p-0 hover:bg-destructive hover:text-destructive-foreground\"\n >\n ×\n \n
\n )\n })}\n
\n )}\n
\n\n
\n \n \n \n {/* 已选子女列表 */}\n {formData.childrenIds && formData.childrenIds.length > 0 && (\n
\n {formData.childrenIds.map((childId, index) => {\n const child = existingMembers.find(m => m.id === childId)\n if (!child) return null\n \n return (\n
\n \n {index + 1}. {child.fullName} (第{child.generation}世)\n \n handleChildRemove(childId)}\n className=\"h-6 w-6 p-0 hover:bg-destructive hover:text-destructive-foreground\"\n >\n ×\n \n
\n )\n })}\n
\n )}\n
\n
\n
\n
\n\n {/* Traditional Names */}\n \n \n \n \n 传统称谓 (Traditional Names)\n \n \n \n
\n
\n \n handleChange(\"courtesyName\", e.target.value)}\n placeholder=\"e.g. 伯虎\"\n />\n
\n
\n \n handleChange(\"artName\", e.target.value)}\n placeholder=\"e.g. 六如居士\"\n />\n
\n
\n
\n
\n \n handleChange(\"generationName\", e.target.value)}\n />\n
\n
\n \n handleChange(\"posthumousName\", e.target.value)}\n />\n
\n
\n
\n
\n\n {/* Dates & Places */}\n \n \n \n \n 生平与地点 (Life & Places)\n \n \n \n
\n
\n \n handleChange(\"birthDate\", e.target.value)}\n />\n
\n
\n \n handleChange(\"deathDate\", e.target.value)}\n />\n
\n
\n
\n \n handleChange(\"ancestralHome\", e.target.value)}\n placeholder=\"e.g. 福建省泉州市\"\n />\n
\n
\n \n handleChange(\"burialPlace\", e.target.value)}\n />\n
\n
\n
\n\n {/* Contact Information */}\n \n \n \n \n 联系方式 (Contact Information)\n \n 在世成员的联系方式\n \n \n
\n \n handleChange(\"phone\", e.target.value)}\n placeholder=\"e.g. 13800138000\"\n />\n
\n
\n \n handleChange(\"telephone\", e.target.value)}\n placeholder=\"e.g. 0592-1234567\"\n />\n
\n
\n \n handleChange(\"email\", e.target.value)}\n placeholder=\"e.g. example@email.com\"\n />\n
\n
\n \n handleChange(\"address\", e.target.value)}\n placeholder=\"e.g. 福建省厦门市思明区XX路XX号\"\n />\n
\n
\n
\n\n {/* Biography */}\n \n \n \n \n 生平事迹 (Biography)\n \n \n \n handleChange(\"bio\", e.target.value)}\n />\n \n \n\n {/* Tags */}\n \n \n \n \n 标签 (Tags)\n \n 添加标签以便分类和搜索(按回车添加)\n \n \n
\n
\n {\n if (e.key === 'Enter') {\n e.preventDefault()\n const input = e.currentTarget\n const value = input.value.trim()\n if (value && !(formData.tags || []).includes(value)) {\n handleChange('tags', [...(formData.tags || []), value])\n input.value = ''\n }\n }\n }}\n />\n
\n {formData.tags && formData.tags.length > 0 && (\n
\n {formData.tags.map((tag, index) => (\n \n {tag}\n {\n const newTags = formData.tags?.filter((_, i) => i !== index) || []\n handleChange('tags', newTags)\n }}\n className=\"ml-1 hover:text-destructive\"\n >\n ×\n \n \n ))}\n
\n )}\n
\n
\n
\n\n {/* Photo Gallery */}\n \n \n \n \n 照片墙 (Photo Gallery)\n \n 上传多张照片记录珍贵时刻\n \n \n handleChange(\"photoIds\", photoIds)}\n />\n \n \n\n {/* Family Stories */}\n \n \n \n \n 家族故事 (Family Stories)\n \n 记录与此成员相关的家族故事\n \n \n handleChange(\"stories\", stories)}\n />\n \n \n\n
\n\n
\n \n \n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 4588, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/members/new/page.tsx"],"sourcesContent":["\"use client\"\n\nimport { useRouter } from \"next/navigation\"\nimport { useFamily } from \"@/context/family-context\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { MemberForm } from \"@/components/members/member-form\"\nimport { Button } from \"@/components/ui/button\"\nimport { ArrowLeft } from \"lucide-react\"\nimport type { FamilyMember } from \"@/types/family\"\n\nexport default function NewMemberPage() {\n const { addMember, treeData } = useFamily()\n const router = useRouter()\n\n const existingMembers = Object.values(treeData.members)\n\n const handleSave = async (newMember: FamilyMember) => {\n try {\n await addMember({\n ...newMember,\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n })\n // 跳转到成员列表页\n router.push('/members')\n } catch (error) {\n console.error('添加成员失败:', error)\n alert('添加成员失败: ' + (error as Error).message)\n }\n }\n\n return (\n
\n \n
\n
\n \n

新增家族成员

\n
\n router.back()} />\n
\n
\n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAPA;;;;;;;;AAUe,SAAS;IACtB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAA,iMAAS;IACzC,MAAM,SAAS,IAAA,qUAAS;IAExB,MAAM,kBAAkB,OAAO,MAAM,CAAC,SAAS,OAAO;IAEtD,MAAM,aAAa,OAAO;QACxB,IAAI;YACF,MAAM,UAAU;gBACd,GAAG,SAAS;gBACZ,WAAW,IAAI,OAAO,WAAW;gBACjC,WAAW,IAAI,OAAO,WAAW;YACnC;YACA,WAAW;YACX,OAAO,IAAI,CAAC;QACd,EAAE,OAAO,OAAO;YACd,QAAQ,KAAK,CAAC,WAAW;YACzB,MAAM,aAAa,AAAC,MAAgB,OAAO;QAC7C;IACF;IAEA,qBACE,oaAAC;QAAI,WAAU;;0BACb,oaAAC,kMAAU;;;;;0BACX,oaAAC;gBAAI,WAAU;;kCACb,oaAAC;wBAAI,WAAU;;0CACb,oaAAC,4LAAM;gCAAC,SAAQ;gCAAQ,SAAS,IAAM,OAAO,IAAI;;kDAChD,oaAAC,wWAAS;wCAAC,WAAU;;;;;;oCAAiB;;;;;;;0CAExC,oaAAC;gCAAG,WAAU;0CAAgC;;;;;;;;;;;;kCAEhD,oaAAC,6MAAU;wBAAC,iBAAiB;wBAAiB,UAAU;wBAAY,UAAU,IAAM,OAAO,IAAI;;;;;;;;;;;;;;;;;;AAIvG"}}] + {"offset": {"line": 4588, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/members/new/page.tsx"],"sourcesContent":["\"use client\"\n\nimport { useRouter, useSearchParams } from \"next/navigation\"\nimport { useFamily } from \"@/context/family-context\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { MemberForm } from \"@/components/members/member-form\"\nimport { Button } from \"@/components/ui/button\"\nimport { ArrowLeft } from \"lucide-react\"\nimport type { FamilyMember } from \"@/types/family\"\nimport { useMemo } from \"react\"\n\nexport default function NewMemberPage() {\n const router = useRouter()\n const searchParams = useSearchParams()\n const { addMember, treeData, getMember } = useFamily()\n\n const existingMembers = Object.values(treeData.members)\n \n // 从URL参数获取预填信息\n const initialData = useMemo(() => {\n const fatherId = searchParams.get('fatherId')\n const motherId = searchParams.get('motherId')\n const spouseId = searchParams.get('spouseId')\n const generation = searchParams.get('generation')\n const gender = searchParams.get('gender')\n \n if (!fatherId && !motherId && !spouseId && !generation && !gender) return undefined\n \n const data: Partial = {}\n \n // 处理父母信息\n if (fatherId) {\n data.fatherId = fatherId\n // 如果有父亲,尝试获取母亲(父亲的配偶)\n const father = getMember(fatherId)\n if (father?.spouseIds && father.spouseIds.length > 0) {\n data.motherId = father.spouseIds[0]\n }\n }\n \n if (motherId) {\n data.motherId = motherId\n // 如果有母亲,尝试获取父亲(母亲的配偶)\n const mother = getMember(motherId)\n if (mother?.spouseIds && mother.spouseIds.length > 0) {\n data.fatherId = mother.spouseIds[0]\n }\n }\n \n // 处理配偶信息\n if (spouseId) {\n data.spouseIds = [spouseId]\n }\n \n // 处理世代\n if (generation) {\n data.generation = parseInt(generation)\n }\n \n // 处理性别\n if (gender) {\n data.gender = gender.toUpperCase() as 'MALE' | 'FEMALE'\n }\n \n return data\n }, [searchParams, getMember])\n\n const handleSave = async (newMember: FamilyMember) => {\n try {\n await addMember({\n ...newMember,\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n })\n // 跳转到成员列表页\n router.push('/members')\n } catch (error) {\n console.error('添加成员失败:', error)\n alert('添加成员失败: ' + (error as Error).message)\n }\n }\n\n return (\n
\n \n
\n
\n \n

新增家族成员

\n
\n router.back()} />\n
\n
\n )\n}\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AATA;;;;;;;;;AAWe,SAAS;IACtB,MAAM,SAAS,IAAA,qUAAS;IACxB,MAAM,eAAe,IAAA,2UAAe;IACpC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAA,iMAAS;IAEpD,MAAM,kBAAkB,OAAO,MAAM,CAAC,SAAS,OAAO;IAEtD,eAAe;IACf,MAAM,cAAc,IAAA,sYAAO,EAAC;QAC1B,MAAM,WAAW,aAAa,GAAG,CAAC;QAClC,MAAM,WAAW,aAAa,GAAG,CAAC;QAClC,MAAM,WAAW,aAAa,GAAG,CAAC;QAClC,MAAM,aAAa,aAAa,GAAG,CAAC;QACpC,MAAM,SAAS,aAAa,GAAG,CAAC;QAEhC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,OAAO;QAE1E,MAAM,OAA8B,CAAC;QAErC,SAAS;QACT,IAAI,UAAU;YACZ,KAAK,QAAQ,GAAG;YAChB,sBAAsB;YACtB,MAAM,SAAS,UAAU;YACzB,IAAI,QAAQ,aAAa,OAAO,SAAS,CAAC,MAAM,GAAG,GAAG;gBACpD,KAAK,QAAQ,GAAG,OAAO,SAAS,CAAC,EAAE;YACrC;QACF;QAEA,IAAI,UAAU;YACZ,KAAK,QAAQ,GAAG;YAChB,sBAAsB;YACtB,MAAM,SAAS,UAAU;YACzB,IAAI,QAAQ,aAAa,OAAO,SAAS,CAAC,MAAM,GAAG,GAAG;gBACpD,KAAK,QAAQ,GAAG,OAAO,SAAS,CAAC,EAAE;YACrC;QACF;QAEA,SAAS;QACT,IAAI,UAAU;YACZ,KAAK,SAAS,GAAG;gBAAC;aAAS;QAC7B;QAEA,OAAO;QACP,IAAI,YAAY;YACd,KAAK,UAAU,GAAG,SAAS;QAC7B;QAEA,OAAO;QACP,IAAI,QAAQ;YACV,KAAK,MAAM,GAAG,OAAO,WAAW;QAClC;QAEA,OAAO;IACT,GAAG;QAAC;QAAc;KAAU;IAE5B,MAAM,aAAa,OAAO;QACxB,IAAI;YACF,MAAM,UAAU;gBACd,GAAG,SAAS;gBACZ,WAAW,IAAI,OAAO,WAAW;gBACjC,WAAW,IAAI,OAAO,WAAW;YACnC;YACA,WAAW;YACX,OAAO,IAAI,CAAC;QACd,EAAE,OAAO,OAAO;YACd,QAAQ,KAAK,CAAC,WAAW;YACzB,MAAM,aAAa,AAAC,MAAgB,OAAO;QAC7C;IACF;IAEA,qBACE,oaAAC;QAAI,WAAU;;0BACb,oaAAC,kMAAU;;;;;0BACX,oaAAC;gBAAI,WAAU;;kCACb,oaAAC;wBAAI,WAAU;;0CACb,oaAAC,4LAAM;gCAAC,SAAQ;gCAAQ,SAAS,IAAM,OAAO,IAAI;;kDAChD,oaAAC,wWAAS;wCAAC,WAAU;;;;;;oCAAiB;;;;;;;0CAExC,oaAAC;gCAAG,WAAU;0CAAgC;;;;;;;;;;;;kCAEhD,oaAAC,6MAAU;wBAAC,aAAa;wBAAa,iBAAiB;wBAAiB,UAAU;wBAAY,UAAU,IAAM,OAAO,IAAI;;;;;;;;;;;;;;;;;;AAIjI"}}] } \ No newline at end of file diff --git a/.next/dev/server/chunks/ssr/a0629__pnpm_9ad89ea1._.js b/.next/dev/server/chunks/ssr/a0629__pnpm_9ad89ea1._.js new file mode 100644 index 00000000..689a1b88 --- /dev/null +++ b/.next/dev/server/chunks/ssr/a0629__pnpm_9ad89ea1._.js @@ -0,0 +1,9727 @@ +module.exports = [ +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/book-open.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>BookOpen +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const BookOpen = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("BookOpen", [ + [ + "path", + { + d: "M12 7v14", + key: "1akyts" + } + ], + [ + "path", + { + d: "M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z", + key: "ruj8y" + } + ] +]); +; + //# sourceMappingURL=book-open.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/book-open.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "BookOpen", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/book-open.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/search.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Search +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Search = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Search", [ + [ + "circle", + { + cx: "11", + cy: "11", + r: "8", + key: "4ej97u" + } + ], + [ + "path", + { + d: "m21 21-4.3-4.3", + key: "1qie3q" + } + ] +]); +; + //# sourceMappingURL=search.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/search.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Search", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$search$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$search$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/search.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/bell.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Bell +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Bell = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Bell", [ + [ + "path", + { + d: "M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9", + key: "1qo2s2" + } + ], + [ + "path", + { + d: "M10.3 21a1.94 1.94 0 0 0 3.4 0", + key: "qgo35s" + } + ] +]); +; + //# sourceMappingURL=bell.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/bell.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Bell", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$bell$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$bell$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/bell.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/settings.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Settings +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Settings = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Settings", [ + [ + "path", + { + d: "M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z", + key: "1qme2f" + } + ], + [ + "circle", + { + cx: "12", + cy: "12", + r: "3", + key: "1v7zrd" + } + ] +]); +; + //# sourceMappingURL=settings.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/settings.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Settings", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$settings$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$settings$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/settings.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/log-out.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>LogOut +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const LogOut = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("LogOut", [ + [ + "path", + { + d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4", + key: "1uf3rs" + } + ], + [ + "polyline", + { + points: "16 17 21 12 16 7", + key: "1gabdz" + } + ], + [ + "line", + { + x1: "21", + x2: "9", + y1: "12", + y2: "12", + key: "1uyos4" + } + ] +]); +; + //# sourceMappingURL=log-out.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/log-out.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "LogOut", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$log$2d$out$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$log$2d$out$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/log-out.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>ChevronDown +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const ChevronDown = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("ChevronDown", [ + [ + "path", + { + d: "m6 9 6 6 6-6", + key: "qrunsl" + } + ] +]); +; + //# sourceMappingURL=chevron-down.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "ChevronDown", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Plus +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Plus = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Plus", [ + [ + "path", + { + d: "M5 12h14", + key: "1ays0h" + } + ], + [ + "path", + { + d: "M12 5v14", + key: "s699le" + } + ] +]); +; + //# sourceMappingURL=plus.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Plus", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/trash-2.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Trash2 +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Trash2 = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Trash2", [ + [ + "path", + { + d: "M3 6h18", + key: "d0wm0j" + } + ], + [ + "path", + { + d: "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6", + key: "4alrt4" + } + ], + [ + "path", + { + d: "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2", + key: "v07s0e" + } + ], + [ + "line", + { + x1: "10", + x2: "10", + y1: "11", + y2: "17", + key: "1uufr5" + } + ], + [ + "line", + { + x1: "14", + x2: "14", + y1: "11", + y2: "17", + key: "xtxkd" + } + ] +]); +; + //# sourceMappingURL=trash-2.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/trash-2.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Trash2", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/trash-2.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/calculator.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Calculator +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Calculator = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Calculator", [ + [ + "rect", + { + width: "16", + height: "20", + x: "4", + y: "2", + rx: "2", + key: "1nb95v" + } + ], + [ + "line", + { + x1: "8", + x2: "16", + y1: "6", + y2: "6", + key: "x4nwl0" + } + ], + [ + "line", + { + x1: "16", + x2: "16", + y1: "14", + y2: "18", + key: "wjye3r" + } + ], + [ + "path", + { + d: "M16 10h.01", + key: "1m94wz" + } + ], + [ + "path", + { + d: "M12 10h.01", + key: "1nrarc" + } + ], + [ + "path", + { + d: "M8 10h.01", + key: "19clt8" + } + ], + [ + "path", + { + d: "M12 14h.01", + key: "1etili" + } + ], + [ + "path", + { + d: "M8 14h.01", + key: "6423bh" + } + ], + [ + "path", + { + d: "M12 18h.01", + key: "mhygvu" + } + ], + [ + "path", + { + d: "M8 18h.01", + key: "lrp35t" + } + ] +]); +; + //# sourceMappingURL=calculator.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/calculator.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Calculator", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$calculator$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$calculator$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/calculator.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/check.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Check +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Check = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Check", [ + [ + "path", + { + d: "M20 6 9 17l-5-5", + key: "1gmf2c" + } + ] +]); +; + //# sourceMappingURL=check.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/check.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "CheckIcon", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$check$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$check$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/check.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-right.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>ChevronRight +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const ChevronRight = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("ChevronRight", [ + [ + "path", + { + d: "m9 18 6-6-6-6", + key: "mthhwq" + } + ] +]); +; + //# sourceMappingURL=chevron-right.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-right.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "ChevronRightIcon", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$right$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$right$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-right.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Circle +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Circle = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Circle", [ + [ + "circle", + { + cx: "12", + cy: "12", + r: "10", + key: "1mglay" + } + ] +]); +; + //# sourceMappingURL=circle.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "CircleIcon", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "ChevronDownIcon", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-up.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>ChevronUp +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const ChevronUp = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("ChevronUp", [ + [ + "path", + { + d: "m18 15-6-6-6 6", + key: "153udz" + } + ] +]); +; + //# sourceMappingURL=chevron-up.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-up.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "ChevronUpIcon", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$up$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$up$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/chevron-up.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/calendar.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Calendar +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Calendar = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Calendar", [ + [ + "path", + { + d: "M8 2v4", + key: "1cmpym" + } + ], + [ + "path", + { + d: "M16 2v4", + key: "4m81vk" + } + ], + [ + "rect", + { + width: "18", + height: "18", + x: "3", + y: "4", + rx: "2", + key: "1hopcy" + } + ], + [ + "path", + { + d: "M3 10h18", + key: "8toen8" + } + ] +]); +; + //# sourceMappingURL=calendar.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/calendar.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "CalendarIcon", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$calendar$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$calendar$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/calendar.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>User +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const User = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("User", [ + [ + "path", + { + d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", + key: "975kel" + } + ], + [ + "circle", + { + cx: "12", + cy: "7", + r: "4", + key: "17ys0d" + } + ] +]); +; + //# sourceMappingURL=user.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "User", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/scroll.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Scroll +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Scroll = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Scroll", [ + [ + "path", + { + d: "M19 17V5a2 2 0 0 0-2-2H4", + key: "zz82l3" + } + ], + [ + "path", + { + d: "M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3", + key: "1ph1d7" + } + ] +]); +; + //# sourceMappingURL=scroll.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/scroll.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Scroll", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$scroll$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$scroll$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/scroll.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/users.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Users +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Users = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Users", [ + [ + "path", + { + d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", + key: "1yyitq" + } + ], + [ + "circle", + { + cx: "9", + cy: "7", + r: "4", + key: "nufk8" + } + ], + [ + "path", + { + d: "M22 21v-2a4 4 0 0 0-3-3.87", + key: "kshegd" + } + ], + [ + "path", + { + d: "M16 3.13a4 4 0 0 1 0 7.75", + key: "1da9ce" + } + ] +]); +; + //# sourceMappingURL=users.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/users.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Users", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/users.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/images.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Images +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Images = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Images", [ + [ + "path", + { + d: "M18 22H4a2 2 0 0 1-2-2V6", + key: "pblm9e" + } + ], + [ + "path", + { + d: "m22 13-1.296-1.296a2.41 2.41 0 0 0-3.408 0L11 18", + key: "nf6bnh" + } + ], + [ + "circle", + { + cx: "12", + cy: "8", + r: "2", + key: "1822b1" + } + ], + [ + "rect", + { + width: "16", + height: "16", + x: "6", + y: "2", + rx: "2", + key: "12espp" + } + ] +]); +; + //# sourceMappingURL=images.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/images.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Images", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$images$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$images$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/images.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/x.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "XIcon", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$x$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$x$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/x.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/upload.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Upload +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Upload = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Upload", [ + [ + "path", + { + d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", + key: "ih7n3h" + } + ], + [ + "polyline", + { + points: "17 8 12 3 7 8", + key: "t8dd8p" + } + ], + [ + "line", + { + x1: "12", + x2: "12", + y1: "3", + y2: "15", + key: "widbto" + } + ] +]); +; + //# sourceMappingURL=upload.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/upload.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Upload", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$upload$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$upload$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/upload.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/loader-circle.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>LoaderCircle +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const LoaderCircle = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("LoaderCircle", [ + [ + "path", + { + d: "M21 12a9 9 0 1 1-6.219-8.56", + key: "13zald" + } + ] +]); +; + //# sourceMappingURL=loader-circle.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/loader-circle.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Loader2", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$loader$2d$circle$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$loader$2d$circle$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/loader-circle.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/crop.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Crop +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Crop = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Crop", [ + [ + "path", + { + d: "M6 2v14a2 2 0 0 0 2 2h14", + key: "ron5a4" + } + ], + [ + "path", + { + d: "M18 22V8a2 2 0 0 0-2-2H2", + key: "7s9ehn" + } + ] +]); +; + //# sourceMappingURL=crop.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/crop.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Crop", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$crop$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$crop$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/crop.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/zoom-in.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>ZoomIn +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const ZoomIn = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("ZoomIn", [ + [ + "circle", + { + cx: "11", + cy: "11", + r: "8", + key: "4ej97u" + } + ], + [ + "line", + { + x1: "21", + x2: "16.65", + y1: "21", + y2: "16.65", + key: "13gj7c" + } + ], + [ + "line", + { + x1: "11", + x2: "11", + y1: "8", + y2: "14", + key: "1vmskp" + } + ], + [ + "line", + { + x1: "8", + x2: "14", + y1: "11", + y2: "11", + key: "durymu" + } + ] +]); +; + //# sourceMappingURL=zoom-in.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/zoom-in.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "ZoomIn", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$zoom$2d$in$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$zoom$2d$in$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/zoom-in.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/square-pen.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>SquarePen +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const SquarePen = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("SquarePen", [ + [ + "path", + { + d: "M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7", + key: "1m0v6g" + } + ], + [ + "path", + { + d: "M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z", + key: "ohrbg2" + } + ] +]); +; + //# sourceMappingURL=square-pen.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/square-pen.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Edit", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$square$2d$pen$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$square$2d$pen$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/square-pen.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/trash.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Trash +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Trash = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Trash", [ + [ + "path", + { + d: "M3 6h18", + key: "d0wm0j" + } + ], + [ + "path", + { + d: "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6", + key: "4alrt4" + } + ], + [ + "path", + { + d: "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2", + key: "v07s0e" + } + ] +]); +; + //# sourceMappingURL=trash.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/trash.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Trash", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/trash.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/calendar.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Calendar", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$calendar$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$calendar$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/calendar.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/arrow-left.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>ArrowLeft +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const ArrowLeft = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("ArrowLeft", [ + [ + "path", + { + d: "m12 19-7-7 7-7", + key: "1l729n" + } + ], + [ + "path", + { + d: "M19 12H5", + key: "x3x0zl" + } + ] +]); +; + //# sourceMappingURL=arrow-left.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/arrow-left.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "ArrowLeft", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$arrow$2d$left$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$arrow$2d$left$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/arrow-left.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/share-2.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Share2 +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Share2 = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Share2", [ + [ + "circle", + { + cx: "18", + cy: "5", + r: "3", + key: "gq8acd" + } + ], + [ + "circle", + { + cx: "6", + cy: "12", + r: "3", + key: "w7nqdw" + } + ], + [ + "circle", + { + cx: "18", + cy: "19", + r: "3", + key: "1xt0gg" + } + ], + [ + "line", + { + x1: "8.59", + x2: "15.42", + y1: "13.51", + y2: "17.49", + key: "47mynk" + } + ], + [ + "line", + { + x1: "15.41", + x2: "8.59", + y1: "6.51", + y2: "10.49", + key: "1n3mei" + } + ] +]); +; + //# sourceMappingURL=share-2.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/share-2.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Share2", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$share$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$share$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/share-2.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/printer.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>Printer +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const Printer = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Printer", [ + [ + "path", + { + d: "M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2", + key: "143wyd" + } + ], + [ + "path", + { + d: "M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6", + key: "1itne7" + } + ], + [ + "rect", + { + x: "6", + y: "14", + width: "12", + height: "8", + rx: "1", + key: "1ue0tg" + } + ] +]); +; + //# sourceMappingURL=printer.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/printer.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Printer", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$printer$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$printer$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/printer.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle-user.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>CircleUser +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const CircleUser = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("CircleUser", [ + [ + "circle", + { + cx: "12", + cy: "12", + r: "10", + key: "1mglay" + } + ], + [ + "circle", + { + cx: "12", + cy: "10", + r: "3", + key: "ilqhr7" + } + ], + [ + "path", + { + d: "M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662", + key: "154egf" + } + ] +]); +; + //# sourceMappingURL=circle-user.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle-user.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "CircleUser", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2d$user$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2d$user$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle-user.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle-user-round.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>CircleUserRound +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const CircleUserRound = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("CircleUserRound", [ + [ + "path", + { + d: "M18 20a6 6 0 0 0-12 0", + key: "1qehca" + } + ], + [ + "circle", + { + cx: "12", + cy: "10", + r: "4", + key: "1h16sb" + } + ], + [ + "circle", + { + cx: "12", + cy: "12", + r: "10", + key: "1mglay" + } + ] +]); +; + //# sourceMappingURL=circle-user-round.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle-user-round.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "CircleUserRound", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2d$user$2d$round$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2d$user$2d$round$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/circle-user-round.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user-plus.js [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * @license lucide-react v0.454.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */ __turbopack_context__.s([ + "default", + ()=>UserPlus +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)"); +; +const UserPlus = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("UserPlus", [ + [ + "path", + { + d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", + key: "1yyitq" + } + ], + [ + "circle", + { + cx: "9", + cy: "7", + r: "4", + key: "nufk8" + } + ], + [ + "line", + { + x1: "19", + x2: "19", + y1: "8", + y2: "14", + key: "1bvyxn" + } + ], + [ + "line", + { + x1: "22", + x2: "16", + y1: "11", + y2: "11", + key: "1shjgl" + } + ] +]); +; + //# sourceMappingURL=user-plus.js.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user-plus.js [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "UserPlus", + ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2d$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2d$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/user-plus.js [app-ssr] (ecmascript)"); +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-avatar@1.1.2_@types+react-dom@19.2.3_@types+react@19.2.6__@types+react@_3ee3dafa662d71951c1a3d5b289c96d1/node_modules/@radix-ui/react-avatar/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "Avatar", + ()=>Avatar, + "AvatarFallback", + ()=>AvatarFallback, + "AvatarImage", + ()=>AvatarImage, + "Fallback", + ()=>Fallback, + "Image", + ()=>Image, + "Root", + ()=>Root, + "createAvatarScope", + ()=>createAvatarScope +]); +// packages/react/avatar/src/Avatar.tsx +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$context$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$context$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-context/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$callback$2d$ref$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$callback$2d$ref$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$layout$2d$effect$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$layout$2d$effect$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$primitive$40$2$2e$0$2e$1_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$rea_4f53963f71a6eb8b0116fe0dd1078946$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-primitive@2.0.1_@types+react-dom@19.2.3_@types+react@19.2.6__@types+rea_4f53963f71a6eb8b0116fe0dd1078946/node_modules/@radix-ui/react-primitive/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)"); +"use client"; +; +; +; +; +; +; +var AVATAR_NAME = "Avatar"; +var [createAvatarContext, createAvatarScope] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$context$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$context$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createContextScope"])(AVATAR_NAME); +var [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME); +var Avatar = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"]((props, forwardedRef)=>{ + const { __scopeAvatar, ...avatarProps } = props; + const [imageLoadingStatus, setImageLoadingStatus] = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"]("idle"); + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(AvatarProvider, { + scope: __scopeAvatar, + imageLoadingStatus, + onImageLoadingStatusChange: setImageLoadingStatus, + children: /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$primitive$40$2$2e$0$2e$1_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$rea_4f53963f71a6eb8b0116fe0dd1078946$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Primitive"].span, { + ...avatarProps, + ref: forwardedRef + }) + }); +}); +Avatar.displayName = AVATAR_NAME; +var IMAGE_NAME = "AvatarImage"; +var AvatarImage = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"]((props, forwardedRef)=>{ + const { __scopeAvatar, src, onLoadingStatusChange = ()=>{}, ...imageProps } = props; + const context = useAvatarContext(IMAGE_NAME, __scopeAvatar); + const imageLoadingStatus = useImageLoadingStatus(src, imageProps.referrerPolicy); + const handleLoadingStatusChange = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$callback$2d$ref$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$callback$2d$ref$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallbackRef"])((status)=>{ + onLoadingStatusChange(status); + context.onImageLoadingStatusChange(status); + }); + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$layout$2d$effect$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$layout$2d$effect$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useLayoutEffect"])(()=>{ + if (imageLoadingStatus !== "idle") { + handleLoadingStatusChange(imageLoadingStatus); + } + }, [ + imageLoadingStatus, + handleLoadingStatusChange + ]); + return imageLoadingStatus === "loaded" ? /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$primitive$40$2$2e$0$2e$1_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$rea_4f53963f71a6eb8b0116fe0dd1078946$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Primitive"].img, { + ...imageProps, + ref: forwardedRef, + src + }) : null; +}); +AvatarImage.displayName = IMAGE_NAME; +var FALLBACK_NAME = "AvatarFallback"; +var AvatarFallback = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"]((props, forwardedRef)=>{ + const { __scopeAvatar, delayMs, ...fallbackProps } = props; + const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar); + const [canRender, setCanRender] = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"](delayMs === void 0); + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"](()=>{ + if (delayMs !== void 0) { + const timerId = window.setTimeout(()=>setCanRender(true), delayMs); + return ()=>window.clearTimeout(timerId); + } + }, [ + delayMs + ]); + return canRender && context.imageLoadingStatus !== "loaded" ? /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$primitive$40$2$2e$0$2e$1_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$rea_4f53963f71a6eb8b0116fe0dd1078946$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$primitive$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Primitive"].span, { + ...fallbackProps, + ref: forwardedRef + }) : null; +}); +AvatarFallback.displayName = FALLBACK_NAME; +function useImageLoadingStatus(src, referrerPolicy) { + const [loadingStatus, setLoadingStatus] = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"]("idle"); + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$use$2d$layout$2d$effect$40$1$2e$1$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$use$2d$layout$2d$effect$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useLayoutEffect"])(()=>{ + if (!src) { + setLoadingStatus("error"); + return; + } + let isMounted = true; + const image = new window.Image(); + const updateStatus = (status)=>()=>{ + if (!isMounted) return; + setLoadingStatus(status); + }; + setLoadingStatus("loading"); + image.onload = updateStatus("loaded"); + image.onerror = updateStatus("error"); + image.src = src; + if (referrerPolicy) { + image.referrerPolicy = referrerPolicy; + } + return ()=>{ + isMounted = false; + }; + }, [ + src, + referrerPolicy + ]); + return loadingStatus; +} +var Root = Avatar; +var Image = AvatarImage; +var Fallback = AvatarFallback; +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-collection@1.1.1_@types+react-dom@19.2.3_@types+react@19.2.6__@types+re_1ad17166111274b6b451c5ad4817bfc8/node_modules/@radix-ui/react-collection/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "createCollection", + ()=>createCollection +]); +// packages/react/collection/src/Collection.tsx +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$context$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$context$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-context/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$compose$2d$refs$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$compose$2d$refs$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$slot$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$slot$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-slot@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-slot/dist/index.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)"); +"use client"; +; +; +; +; +; +function createCollection(name) { + const PROVIDER_NAME = name + "CollectionProvider"; + const [createCollectionContext, createCollectionScope] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$context$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$context$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createContextScope"])(PROVIDER_NAME); + const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, { + collectionRef: { + current: null + }, + itemMap: /* @__PURE__ */ new Map() + }); + const CollectionProvider = (props)=>{ + const { scope, children } = props; + const ref = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useRef(null); + const itemMap = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useRef(/* @__PURE__ */ new Map()).current; + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(CollectionProviderImpl, { + scope, + itemMap, + collectionRef: ref, + children + }); + }; + CollectionProvider.displayName = PROVIDER_NAME; + const COLLECTION_SLOT_NAME = name + "CollectionSlot"; + const CollectionSlot = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].forwardRef((props, forwardedRef)=>{ + const { scope, children } = props; + const context = useCollectionContext(COLLECTION_SLOT_NAME, scope); + const composedRefs = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$compose$2d$refs$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$compose$2d$refs$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useComposedRefs"])(forwardedRef, context.collectionRef); + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$slot$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$slot$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Slot"], { + ref: composedRefs, + children + }); + }); + CollectionSlot.displayName = COLLECTION_SLOT_NAME; + const ITEM_SLOT_NAME = name + "CollectionItemSlot"; + const ITEM_DATA_ATTR = "data-radix-collection-item"; + const CollectionItemSlot = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].forwardRef((props, forwardedRef)=>{ + const { scope, children, ...itemData } = props; + const ref = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useRef(null); + const composedRefs = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$compose$2d$refs$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$compose$2d$refs$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useComposedRefs"])(forwardedRef, ref); + const context = useCollectionContext(ITEM_SLOT_NAME, scope); + __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useEffect(()=>{ + context.itemMap.set(ref, { + ref, + ...itemData + }); + return ()=>void context.itemMap.delete(ref); + }); + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$slot$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$slot$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Slot"], { + ...{ + [ITEM_DATA_ATTR]: "" + }, + ref: composedRefs, + children + }); + }); + CollectionItemSlot.displayName = ITEM_SLOT_NAME; + function useCollection(scope) { + const context = useCollectionContext(name + "CollectionConsumer", scope); + const getItems = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useCallback(()=>{ + const collectionNode = context.collectionRef.current; + if (!collectionNode) return []; + const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`)); + const items = Array.from(context.itemMap.values()); + const orderedItems = items.sort((a, b)=>orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)); + return orderedItems; + }, [ + context.collectionRef, + context.itemMap + ]); + return getItems; + } + return [ + { + Provider: CollectionProvider, + Slot: CollectionSlot, + ItemSlot: CollectionItemSlot + }, + useCollection, + createCollectionScope + ]; +} +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-direction@1.1.0_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-direction/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +// packages/react/direction/src/Direction.tsx +__turbopack_context__.s([ + "DirectionProvider", + ()=>DirectionProvider, + "Provider", + ()=>Provider, + "useDirection", + ()=>useDirection +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)"); +; +; +var DirectionContext = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createContext"](void 0); +var DirectionProvider = (props)=>{ + const { dir, children } = props; + return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(DirectionContext.Provider, { + value: dir, + children + }); +}; +function useDirection(localDir) { + const globalDir = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"](DirectionContext); + return localDir || globalDir || "ltr"; +} +var Provider = DirectionProvider; +; + //# sourceMappingURL=index.mjs.map +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +/** + * Custom positioning reference element. + * @see https://floating-ui.com/docs/virtual-elements + */ __turbopack_context__.s([ + "alignments", + ()=>alignments, + "clamp", + ()=>clamp, + "createCoords", + ()=>createCoords, + "evaluate", + ()=>evaluate, + "expandPaddingObject", + ()=>expandPaddingObject, + "floor", + ()=>floor, + "getAlignment", + ()=>getAlignment, + "getAlignmentAxis", + ()=>getAlignmentAxis, + "getAlignmentSides", + ()=>getAlignmentSides, + "getAxisLength", + ()=>getAxisLength, + "getExpandedPlacements", + ()=>getExpandedPlacements, + "getOppositeAlignmentPlacement", + ()=>getOppositeAlignmentPlacement, + "getOppositeAxis", + ()=>getOppositeAxis, + "getOppositeAxisPlacements", + ()=>getOppositeAxisPlacements, + "getOppositePlacement", + ()=>getOppositePlacement, + "getPaddingObject", + ()=>getPaddingObject, + "getSide", + ()=>getSide, + "getSideAxis", + ()=>getSideAxis, + "max", + ()=>max, + "min", + ()=>min, + "placements", + ()=>placements, + "rectToClientRect", + ()=>rectToClientRect, + "round", + ()=>round, + "sides", + ()=>sides +]); +const sides = [ + 'top', + 'right', + 'bottom', + 'left' +]; +const alignments = [ + 'start', + 'end' +]; +const placements = /*#__PURE__*/ sides.reduce((acc, side)=>acc.concat(side, side + "-" + alignments[0], side + "-" + alignments[1]), []); +const min = Math.min; +const max = Math.max; +const round = Math.round; +const floor = Math.floor; +const createCoords = (v)=>({ + x: v, + y: v + }); +const oppositeSideMap = { + left: 'right', + right: 'left', + bottom: 'top', + top: 'bottom' +}; +const oppositeAlignmentMap = { + start: 'end', + end: 'start' +}; +function clamp(start, value, end) { + return max(start, min(value, end)); +} +function evaluate(value, param) { + return typeof value === 'function' ? value(param) : value; +} +function getSide(placement) { + return placement.split('-')[0]; +} +function getAlignment(placement) { + return placement.split('-')[1]; +} +function getOppositeAxis(axis) { + return axis === 'x' ? 'y' : 'x'; +} +function getAxisLength(axis) { + return axis === 'y' ? 'height' : 'width'; +} +const yAxisSides = /*#__PURE__*/ new Set([ + 'top', + 'bottom' +]); +function getSideAxis(placement) { + return yAxisSides.has(getSide(placement)) ? 'y' : 'x'; +} +function getAlignmentAxis(placement) { + return getOppositeAxis(getSideAxis(placement)); +} +function getAlignmentSides(placement, rects, rtl) { + if (rtl === void 0) { + rtl = false; + } + const alignment = getAlignment(placement); + const alignmentAxis = getAlignmentAxis(placement); + const length = getAxisLength(alignmentAxis); + let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top'; + if (rects.reference[length] > rects.floating[length]) { + mainAlignmentSide = getOppositePlacement(mainAlignmentSide); + } + return [ + mainAlignmentSide, + getOppositePlacement(mainAlignmentSide) + ]; +} +function getExpandedPlacements(placement) { + const oppositePlacement = getOppositePlacement(placement); + return [ + getOppositeAlignmentPlacement(placement), + oppositePlacement, + getOppositeAlignmentPlacement(oppositePlacement) + ]; +} +function getOppositeAlignmentPlacement(placement) { + return placement.replace(/start|end/g, (alignment)=>oppositeAlignmentMap[alignment]); +} +const lrPlacement = [ + 'left', + 'right' +]; +const rlPlacement = [ + 'right', + 'left' +]; +const tbPlacement = [ + 'top', + 'bottom' +]; +const btPlacement = [ + 'bottom', + 'top' +]; +function getSideList(side, isStart, rtl) { + switch(side){ + case 'top': + case 'bottom': + if (rtl) return isStart ? rlPlacement : lrPlacement; + return isStart ? lrPlacement : rlPlacement; + case 'left': + case 'right': + return isStart ? tbPlacement : btPlacement; + default: + return []; + } +} +function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) { + const alignment = getAlignment(placement); + let list = getSideList(getSide(placement), direction === 'start', rtl); + if (alignment) { + list = list.map((side)=>side + "-" + alignment); + if (flipAlignment) { + list = list.concat(list.map(getOppositeAlignmentPlacement)); + } + } + return list; +} +function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, (side)=>oppositeSideMap[side]); +} +function expandPaddingObject(padding) { + return { + top: 0, + right: 0, + bottom: 0, + left: 0, + ...padding + }; +} +function getPaddingObject(padding) { + return typeof padding !== 'number' ? expandPaddingObject(padding) : { + top: padding, + right: padding, + bottom: padding, + left: padding + }; +} +function rectToClientRect(rect) { + const { x, y, width, height } = rect; + return { + width, + height, + top: y, + left: x, + right: x + width, + bottom: y + height, + x, + y + }; +} +; +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "getComputedStyle", + ()=>getComputedStyle, + "getContainingBlock", + ()=>getContainingBlock, + "getDocumentElement", + ()=>getDocumentElement, + "getFrameElement", + ()=>getFrameElement, + "getNearestOverflowAncestor", + ()=>getNearestOverflowAncestor, + "getNodeName", + ()=>getNodeName, + "getNodeScroll", + ()=>getNodeScroll, + "getOverflowAncestors", + ()=>getOverflowAncestors, + "getParentNode", + ()=>getParentNode, + "getWindow", + ()=>getWindow, + "isContainingBlock", + ()=>isContainingBlock, + "isElement", + ()=>isElement, + "isHTMLElement", + ()=>isHTMLElement, + "isLastTraversableNode", + ()=>isLastTraversableNode, + "isNode", + ()=>isNode, + "isOverflowElement", + ()=>isOverflowElement, + "isShadowRoot", + ()=>isShadowRoot, + "isTableElement", + ()=>isTableElement, + "isTopLayer", + ()=>isTopLayer, + "isWebKit", + ()=>isWebKit +]); +function hasWindow() { + return ("TURBOPACK compile-time value", "undefined") !== 'undefined'; +} +function getNodeName(node) { + if (isNode(node)) { + return (node.nodeName || '').toLowerCase(); + } + // Mocked nodes in testing environments may not be instances of Node. By + // returning `#document` an infinite loop won't occur. + // https://github.com/floating-ui/floating-ui/issues/2317 + return '#document'; +} +function getWindow(node) { + var _node$ownerDocument; + return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window; +} +function getDocumentElement(node) { + var _ref; + return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement; +} +function isNode(value) { + if (!hasWindow()) { + return false; + } + //TURBOPACK unreachable + ; +} +function isElement(value) { + if (!hasWindow()) { + return false; + } + //TURBOPACK unreachable + ; +} +function isHTMLElement(value) { + if (!hasWindow()) { + return false; + } + //TURBOPACK unreachable + ; +} +function isShadowRoot(value) { + if (!hasWindow() || typeof ShadowRoot === 'undefined') { + return false; + } + //TURBOPACK unreachable + ; +} +const invalidOverflowDisplayValues = /*#__PURE__*/ new Set([ + 'inline', + 'contents' +]); +function isOverflowElement(element) { + const { overflow, overflowX, overflowY, display } = getComputedStyle(element); + return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display); +} +const tableElements = /*#__PURE__*/ new Set([ + 'table', + 'td', + 'th' +]); +function isTableElement(element) { + return tableElements.has(getNodeName(element)); +} +const topLayerSelectors = [ + ':popover-open', + ':modal' +]; +function isTopLayer(element) { + return topLayerSelectors.some((selector)=>{ + try { + return element.matches(selector); + } catch (_e) { + return false; + } + }); +} +const transformProperties = [ + 'transform', + 'translate', + 'scale', + 'rotate', + 'perspective' +]; +const willChangeValues = [ + 'transform', + 'translate', + 'scale', + 'rotate', + 'perspective', + 'filter' +]; +const containValues = [ + 'paint', + 'layout', + 'strict', + 'content' +]; +function isContainingBlock(elementOrCss) { + const webkit = isWebKit(); + const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss; + // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block + // https://drafts.csswg.org/css-transforms-2/#individual-transforms + return transformProperties.some((value)=>css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some((value)=>(css.willChange || '').includes(value)) || containValues.some((value)=>(css.contain || '').includes(value)); +} +function getContainingBlock(element) { + let currentNode = getParentNode(element); + while(isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)){ + if (isContainingBlock(currentNode)) { + return currentNode; + } else if (isTopLayer(currentNode)) { + return null; + } + currentNode = getParentNode(currentNode); + } + return null; +} +function isWebKit() { + if (typeof CSS === 'undefined' || !CSS.supports) return false; + return CSS.supports('-webkit-backdrop-filter', 'none'); +} +const lastTraversableNodeNames = /*#__PURE__*/ new Set([ + 'html', + 'body', + '#document' +]); +function isLastTraversableNode(node) { + return lastTraversableNodeNames.has(getNodeName(node)); +} +function getComputedStyle(element) { + return getWindow(element).getComputedStyle(element); +} +function getNodeScroll(element) { + if (isElement(element)) { + return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; + } + return { + scrollLeft: element.scrollX, + scrollTop: element.scrollY + }; +} +function getParentNode(node) { + if (getNodeName(node) === 'html') { + return node; + } + const result = // Step into the shadow DOM of the parent of a slotted node. + node.assignedSlot || // DOM Element detected. + node.parentNode || // ShadowRoot detected. + isShadowRoot(node) && node.host || // Fallback. + getDocumentElement(node); + return isShadowRoot(result) ? result.host : result; +} +function getNearestOverflowAncestor(node) { + const parentNode = getParentNode(node); + if (isLastTraversableNode(parentNode)) { + return node.ownerDocument ? node.ownerDocument.body : node.body; + } + if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) { + return parentNode; + } + return getNearestOverflowAncestor(parentNode); +} +function getOverflowAncestors(node, list, traverseIframes) { + var _node$ownerDocument2; + if (list === void 0) { + list = []; + } + if (traverseIframes === void 0) { + traverseIframes = true; + } + const scrollableAncestor = getNearestOverflowAncestor(node); + const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body); + const win = getWindow(scrollableAncestor); + if (isBody) { + const frameElement = getFrameElement(win); + return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []); + } + return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes)); +} +function getFrameElement(win) { + return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null; +} +; +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "arrow", + ()=>arrow, + "autoPlacement", + ()=>autoPlacement, + "computePosition", + ()=>computePosition, + "detectOverflow", + ()=>detectOverflow, + "flip", + ()=>flip, + "hide", + ()=>hide, + "inline", + ()=>inline, + "limitShift", + ()=>limitShift, + "offset", + ()=>offset, + "shift", + ()=>shift, + "size", + ()=>size +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs [app-ssr] (ecmascript)"); +; +; +function computeCoordsFromPlacement(_ref, placement, rtl) { + let { reference, floating } = _ref; + const sideAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(placement); + const alignmentAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignmentAxis"])(placement); + const alignLength = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAxisLength"])(alignmentAxis); + const side = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement); + const isVertical = sideAxis === 'y'; + const commonX = reference.x + reference.width / 2 - floating.width / 2; + const commonY = reference.y + reference.height / 2 - floating.height / 2; + const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2; + let coords; + switch(side){ + case 'top': + coords = { + x: commonX, + y: reference.y - floating.height + }; + break; + case 'bottom': + coords = { + x: commonX, + y: reference.y + reference.height + }; + break; + case 'right': + coords = { + x: reference.x + reference.width, + y: commonY + }; + break; + case 'left': + coords = { + x: reference.x - floating.width, + y: commonY + }; + break; + default: + coords = { + x: reference.x, + y: reference.y + }; + } + switch((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(placement)){ + case 'start': + coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1); + break; + case 'end': + coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1); + break; + } + return coords; +} +/** + * Computes the `x` and `y` coordinates that will place the floating element + * next to a given reference element. + * + * This export does not have any `platform` interface logic. You will need to + * write one for the platform you are using Floating UI with. + */ const computePosition = async (reference, floating, config)=>{ + const { placement = 'bottom', strategy = 'absolute', middleware = [], platform } = config; + const validMiddleware = middleware.filter(Boolean); + const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating)); + let rects = await platform.getElementRects({ + reference, + floating, + strategy + }); + let { x, y } = computeCoordsFromPlacement(rects, placement, rtl); + let statefulPlacement = placement; + let middlewareData = {}; + let resetCount = 0; + for(let i = 0; i < validMiddleware.length; i++){ + const { name, fn } = validMiddleware[i]; + const { x: nextX, y: nextY, data, reset } = await fn({ + x, + y, + initialPlacement: placement, + placement: statefulPlacement, + strategy, + middlewareData, + rects, + platform, + elements: { + reference, + floating + } + }); + x = nextX != null ? nextX : x; + y = nextY != null ? nextY : y; + middlewareData = { + ...middlewareData, + [name]: { + ...middlewareData[name], + ...data + } + }; + if (reset && resetCount <= 50) { + resetCount++; + if (typeof reset === 'object') { + if (reset.placement) { + statefulPlacement = reset.placement; + } + if (reset.rects) { + rects = reset.rects === true ? await platform.getElementRects({ + reference, + floating, + strategy + }) : reset.rects; + } + ({ x, y } = computeCoordsFromPlacement(rects, statefulPlacement, rtl)); + } + i = -1; + } + } + return { + x, + y, + placement: statefulPlacement, + strategy, + middlewareData + }; +}; +/** + * Resolves with an object of overflow side offsets that determine how much the + * element is overflowing a given clipping boundary on each side. + * - positive = overflowing the boundary by that number of pixels + * - negative = how many pixels left before it will overflow + * - 0 = lies flush with the boundary + * @see https://floating-ui.com/docs/detectOverflow + */ async function detectOverflow(state, options) { + var _await$platform$isEle; + if (options === void 0) { + options = {}; + } + const { x, y, platform, rects, elements, strategy } = state; + const { boundary = 'clippingAncestors', rootBoundary = 'viewport', elementContext = 'floating', altBoundary = false, padding = 0 } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + const paddingObject = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getPaddingObject"])(padding); + const altContext = elementContext === 'floating' ? 'reference' : 'floating'; + const element = elements[altBoundary ? altContext : elementContext]; + const clippingClientRect = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["rectToClientRect"])(await platform.getClippingRect({ + element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating)), + boundary, + rootBoundary, + strategy + })); + const rect = elementContext === 'floating' ? { + x, + y, + width: rects.floating.width, + height: rects.floating.height + } : rects.reference; + const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)); + const offsetScale = await (platform.isElement == null ? void 0 : platform.isElement(offsetParent)) ? await (platform.getScale == null ? void 0 : platform.getScale(offsetParent)) || { + x: 1, + y: 1 + } : { + x: 1, + y: 1 + }; + const elementClientRect = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["rectToClientRect"])(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({ + elements, + rect, + offsetParent, + strategy + }) : rect); + return { + top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y, + bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y, + left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x, + right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x + }; +} +/** + * Provides data to position an inner element of the floating element so that it + * appears centered to the reference element. + * @see https://floating-ui.com/docs/arrow + */ const arrow = (options)=>({ + name: 'arrow', + options, + async fn (state) { + const { x, y, placement, rects, platform, elements, middlewareData } = state; + // Since `element` is required, we don't Partial<> the type. + const { element, padding = 0 } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state) || {}; + if (element == null) { + return {}; + } + const paddingObject = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getPaddingObject"])(padding); + const coords = { + x, + y + }; + const axis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignmentAxis"])(placement); + const length = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAxisLength"])(axis); + const arrowDimensions = await platform.getDimensions(element); + const isYAxis = axis === 'y'; + const minProp = isYAxis ? 'top' : 'left'; + const maxProp = isYAxis ? 'bottom' : 'right'; + const clientProp = isYAxis ? 'clientHeight' : 'clientWidth'; + const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length]; + const startDiff = coords[axis] - rects.reference[axis]; + const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element)); + let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0; + // DOM platform can return `window` as the `offsetParent`. + if (!clientSize || !await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent))) { + clientSize = elements.floating[clientProp] || rects.floating[length]; + } + const centerToReference = endDiff / 2 - startDiff / 2; + // If the padding is large enough that it causes the arrow to no longer be + // centered, modify the padding so that it is centered. + const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1; + const minPadding = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(paddingObject[minProp], largestPossiblePadding); + const maxPadding = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(paddingObject[maxProp], largestPossiblePadding); + // Make sure the arrow doesn't overflow the floating element if the center + // point is outside the floating element's bounds. + const min$1 = minPadding; + const max = clientSize - arrowDimensions[length] - maxPadding; + const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference; + const offset = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["clamp"])(min$1, center, max); + // If the reference is small enough that the arrow's padding causes it to + // to point to nothing for an aligned placement, adjust the offset of the + // floating element itself. To ensure `shift()` continues to take action, + // a single reset is performed when this is true. + const shouldAddOffset = !middlewareData.arrow && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0; + const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0; + return { + [axis]: coords[axis] + alignmentOffset, + data: { + [axis]: offset, + centerOffset: center - offset - alignmentOffset, + ...shouldAddOffset && { + alignmentOffset + } + }, + reset: shouldAddOffset + }; + } + }); +function getPlacementList(alignment, autoAlignment, allowedPlacements) { + const allowedPlacementsSortedByAlignment = alignment ? [ + ...allowedPlacements.filter((placement)=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(placement) === alignment), + ...allowedPlacements.filter((placement)=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(placement) !== alignment) + ] : allowedPlacements.filter((placement)=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement) === placement); + return allowedPlacementsSortedByAlignment.filter((placement)=>{ + if (alignment) { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(placement) === alignment || (autoAlignment ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getOppositeAlignmentPlacement"])(placement) !== placement : false); + } + return true; + }); +} +/** + * Optimizes the visibility of the floating element by choosing the placement + * that has the most space available automatically, without needing to specify a + * preferred placement. Alternative to `flip`. + * @see https://floating-ui.com/docs/autoPlacement + */ const autoPlacement = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: 'autoPlacement', + options, + async fn (state) { + var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE; + const { rects, middlewareData, placement, platform, elements } = state; + const { crossAxis = false, alignment, allowedPlacements = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["placements"], autoAlignment = true, ...detectOverflowOptions } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + const placements$1 = alignment !== undefined || allowedPlacements === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["placements"] ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements; + const overflow = await detectOverflow(state, detectOverflowOptions); + const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0; + const currentPlacement = placements$1[currentIndex]; + if (currentPlacement == null) { + return {}; + } + const alignmentSides = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignmentSides"])(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))); + // Make `computeCoords` start from the right place. + if (placement !== currentPlacement) { + return { + reset: { + placement: placements$1[0] + } + }; + } + const currentOverflows = [ + overflow[(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(currentPlacement)], + overflow[alignmentSides[0]], + overflow[alignmentSides[1]] + ]; + const allOverflows = [ + ...((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || [], + { + placement: currentPlacement, + overflows: currentOverflows + } + ]; + const nextPlacement = placements$1[currentIndex + 1]; + // There are more placements to check. + if (nextPlacement) { + return { + data: { + index: currentIndex + 1, + overflows: allOverflows + }, + reset: { + placement: nextPlacement + } + }; + } + const placementsSortedByMostSpace = allOverflows.map((d)=>{ + const alignment = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(d.placement); + return [ + d.placement, + alignment && crossAxis ? // Check along the mainAxis and main crossAxis side. + d.overflows.slice(0, 2).reduce((acc, v)=>acc + v, 0) : // Check only the mainAxis. + d.overflows[0], + d.overflows + ]; + }).sort((a, b)=>a[1] - b[1]); + const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter((d)=>d[2].slice(0, // Aligned placements should not check their opposite crossAxis + // side. + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(d[0]) ? 2 : 3).every((v)=>v <= 0)); + const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0]; + if (resetPlacement !== placement) { + return { + data: { + index: currentIndex + 1, + overflows: allOverflows + }, + reset: { + placement: resetPlacement + } + }; + } + return {}; + } + }; +}; +/** + * Optimizes the visibility of the floating element by flipping the `placement` + * in order to keep it in view when the preferred placement(s) will overflow the + * clipping boundary. Alternative to `autoPlacement`. + * @see https://floating-ui.com/docs/flip + */ const flip = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: 'flip', + options, + async fn (state) { + var _middlewareData$arrow, _middlewareData$flip; + const { placement, middlewareData, rects, initialPlacement, platform, elements } = state; + const { mainAxis: checkMainAxis = true, crossAxis: checkCrossAxis = true, fallbackPlacements: specifiedFallbackPlacements, fallbackStrategy = 'bestFit', fallbackAxisSideDirection = 'none', flipAlignment = true, ...detectOverflowOptions } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + // If a reset by the arrow was caused due to an alignment offset being + // added, we should skip any logic now since `flip()` has already done its + // work. + // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643 + if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) { + return {}; + } + const side = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement); + const initialSideAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(initialPlacement); + const isBasePlacement = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(initialPlacement) === initialPlacement; + const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)); + const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [ + (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getOppositePlacement"])(initialPlacement) + ] : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getExpandedPlacements"])(initialPlacement)); + const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none'; + if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) { + fallbackPlacements.push(...(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getOppositeAxisPlacements"])(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl)); + } + const placements = [ + initialPlacement, + ...fallbackPlacements + ]; + const overflow = await detectOverflow(state, detectOverflowOptions); + const overflows = []; + let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || []; + if (checkMainAxis) { + overflows.push(overflow[side]); + } + if (checkCrossAxis) { + const sides = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignmentSides"])(placement, rects, rtl); + overflows.push(overflow[sides[0]], overflow[sides[1]]); + } + overflowsData = [ + ...overflowsData, + { + placement, + overflows + } + ]; + // One or more sides is overflowing. + if (!overflows.every((side)=>side <= 0)) { + var _middlewareData$flip2, _overflowsData$filter; + const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1; + const nextPlacement = placements[nextIndex]; + if (nextPlacement) { + const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(nextPlacement) : false; + if (!ignoreCrossAxisOverflow || // We leave the current main axis only if every placement on that axis + // overflows the main axis. + overflowsData.every((d)=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) { + // Try next placement and re-run the lifecycle. + return { + data: { + index: nextIndex, + overflows: overflowsData + }, + reset: { + placement: nextPlacement + } + }; + } + } + // First, find the candidates that fit on the mainAxis side of overflow, + // then find the placement that fits the best on the main crossAxis side. + let resetPlacement = (_overflowsData$filter = overflowsData.filter((d)=>d.overflows[0] <= 0).sort((a, b)=>a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement; + // Otherwise fallback. + if (!resetPlacement) { + switch(fallbackStrategy){ + case 'bestFit': + { + var _overflowsData$filter2; + const placement = (_overflowsData$filter2 = overflowsData.filter((d)=>{ + if (hasFallbackAxisSideDirection) { + const currentSideAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(d.placement); + return currentSideAxis === initialSideAxis || // Create a bias to the `y` side axis due to horizontal + // reading directions favoring greater width. + currentSideAxis === 'y'; + } + return true; + }).map((d)=>[ + d.placement, + d.overflows.filter((overflow)=>overflow > 0).reduce((acc, overflow)=>acc + overflow, 0) + ]).sort((a, b)=>a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0]; + if (placement) { + resetPlacement = placement; + } + break; + } + case 'initialPlacement': + resetPlacement = initialPlacement; + break; + } + } + if (placement !== resetPlacement) { + return { + reset: { + placement: resetPlacement + } + }; + } + } + return {}; + } + }; +}; +function getSideOffsets(overflow, rect) { + return { + top: overflow.top - rect.height, + right: overflow.right - rect.width, + bottom: overflow.bottom - rect.height, + left: overflow.left - rect.width + }; +} +function isAnySideFullyClipped(overflow) { + return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["sides"].some((side)=>overflow[side] >= 0); +} +/** + * Provides data to hide the floating element in applicable situations, such as + * when it is not in the same clipping context as the reference element. + * @see https://floating-ui.com/docs/hide + */ const hide = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: 'hide', + options, + async fn (state) { + const { rects } = state; + const { strategy = 'referenceHidden', ...detectOverflowOptions } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + switch(strategy){ + case 'referenceHidden': + { + const overflow = await detectOverflow(state, { + ...detectOverflowOptions, + elementContext: 'reference' + }); + const offsets = getSideOffsets(overflow, rects.reference); + return { + data: { + referenceHiddenOffsets: offsets, + referenceHidden: isAnySideFullyClipped(offsets) + } + }; + } + case 'escaped': + { + const overflow = await detectOverflow(state, { + ...detectOverflowOptions, + altBoundary: true + }); + const offsets = getSideOffsets(overflow, rects.floating); + return { + data: { + escapedOffsets: offsets, + escaped: isAnySideFullyClipped(offsets) + } + }; + } + default: + { + return {}; + } + } + } + }; +}; +function getBoundingRect(rects) { + const minX = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(...rects.map((rect)=>rect.left)); + const minY = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(...rects.map((rect)=>rect.top)); + const maxX = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(...rects.map((rect)=>rect.right)); + const maxY = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(...rects.map((rect)=>rect.bottom)); + return { + x: minX, + y: minY, + width: maxX - minX, + height: maxY - minY + }; +} +function getRectsByLine(rects) { + const sortedRects = rects.slice().sort((a, b)=>a.y - b.y); + const groups = []; + let prevRect = null; + for(let i = 0; i < sortedRects.length; i++){ + const rect = sortedRects[i]; + if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) { + groups.push([ + rect + ]); + } else { + groups[groups.length - 1].push(rect); + } + prevRect = rect; + } + return groups.map((rect)=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["rectToClientRect"])(getBoundingRect(rect))); +} +/** + * Provides improved positioning for inline reference elements that can span + * over multiple lines, such as hyperlinks or range selections. + * @see https://floating-ui.com/docs/inline + */ const inline = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: 'inline', + options, + async fn (state) { + const { placement, elements, rects, platform, strategy } = state; + // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a + // ClientRect's bounds, despite the event listener being triggered. A + // padding of 2 seems to handle this issue. + const { padding = 2, x, y } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + const nativeClientRects = Array.from(await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference)) || []); + const clientRects = getRectsByLine(nativeClientRects); + const fallback = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["rectToClientRect"])(getBoundingRect(nativeClientRects)); + const paddingObject = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getPaddingObject"])(padding); + function getBoundingClientRect() { + // There are two rects and they are disjoined. + if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) { + // Find the first rect in which the point is fully inside. + return clientRects.find((rect)=>x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback; + } + // There are 2 or more connected rects. + if (clientRects.length >= 2) { + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(placement) === 'y') { + const firstRect = clientRects[0]; + const lastRect = clientRects[clientRects.length - 1]; + const isTop = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement) === 'top'; + const top = firstRect.top; + const bottom = lastRect.bottom; + const left = isTop ? firstRect.left : lastRect.left; + const right = isTop ? firstRect.right : lastRect.right; + const width = right - left; + const height = bottom - top; + return { + top, + bottom, + left, + right, + width, + height, + x: left, + y: top + }; + } + const isLeftSide = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement) === 'left'; + const maxRight = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(...clientRects.map((rect)=>rect.right)); + const minLeft = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(...clientRects.map((rect)=>rect.left)); + const measureRects = clientRects.filter((rect)=>isLeftSide ? rect.left === minLeft : rect.right === maxRight); + const top = measureRects[0].top; + const bottom = measureRects[measureRects.length - 1].bottom; + const left = minLeft; + const right = maxRight; + const width = right - left; + const height = bottom - top; + return { + top, + bottom, + left, + right, + width, + height, + x: left, + y: top + }; + } + return fallback; + } + const resetRects = await platform.getElementRects({ + reference: { + getBoundingClientRect + }, + floating: elements.floating, + strategy + }); + if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) { + return { + reset: { + rects: resetRects + } + }; + } + return {}; + } + }; +}; +const originSides = /*#__PURE__*/ new Set([ + 'left', + 'top' +]); +// For type backwards-compatibility, the `OffsetOptions` type was also +// Derivable. +async function convertValueToCoords(state, options) { + const { placement, platform, elements } = state; + const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)); + const side = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement); + const alignment = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(placement); + const isVertical = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(placement) === 'y'; + const mainAxisMulti = originSides.has(side) ? -1 : 1; + const crossAxisMulti = rtl && isVertical ? -1 : 1; + const rawValue = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + // eslint-disable-next-line prefer-const + let { mainAxis, crossAxis, alignmentAxis } = typeof rawValue === 'number' ? { + mainAxis: rawValue, + crossAxis: 0, + alignmentAxis: null + } : { + mainAxis: rawValue.mainAxis || 0, + crossAxis: rawValue.crossAxis || 0, + alignmentAxis: rawValue.alignmentAxis + }; + if (alignment && typeof alignmentAxis === 'number') { + crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis; + } + return isVertical ? { + x: crossAxis * crossAxisMulti, + y: mainAxis * mainAxisMulti + } : { + x: mainAxis * mainAxisMulti, + y: crossAxis * crossAxisMulti + }; +} +/** + * Modifies the placement by translating the floating element along the + * specified axes. + * A number (shorthand for `mainAxis` or distance), or an axes configuration + * object may be passed. + * @see https://floating-ui.com/docs/offset + */ const offset = function(options) { + if (options === void 0) { + options = 0; + } + return { + name: 'offset', + options, + async fn (state) { + var _middlewareData$offse, _middlewareData$arrow; + const { x, y, placement, middlewareData } = state; + const diffCoords = await convertValueToCoords(state, options); + // If the placement is the same and the arrow caused an alignment offset + // then we don't need to change the positioning coordinates. + if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) { + return {}; + } + return { + x: x + diffCoords.x, + y: y + diffCoords.y, + data: { + ...diffCoords, + placement + } + }; + } + }; +}; +/** + * Optimizes the visibility of the floating element by shifting it in order to + * keep it in view when it will overflow the clipping boundary. + * @see https://floating-ui.com/docs/shift + */ const shift = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: 'shift', + options, + async fn (state) { + const { x, y, placement } = state; + const { mainAxis: checkMainAxis = true, crossAxis: checkCrossAxis = false, limiter = { + fn: (_ref)=>{ + let { x, y } = _ref; + return { + x, + y + }; + } + }, ...detectOverflowOptions } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + const coords = { + x, + y + }; + const overflow = await detectOverflow(state, detectOverflowOptions); + const crossAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement)); + const mainAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getOppositeAxis"])(crossAxis); + let mainAxisCoord = coords[mainAxis]; + let crossAxisCoord = coords[crossAxis]; + if (checkMainAxis) { + const minSide = mainAxis === 'y' ? 'top' : 'left'; + const maxSide = mainAxis === 'y' ? 'bottom' : 'right'; + const min = mainAxisCoord + overflow[minSide]; + const max = mainAxisCoord - overflow[maxSide]; + mainAxisCoord = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["clamp"])(min, mainAxisCoord, max); + } + if (checkCrossAxis) { + const minSide = crossAxis === 'y' ? 'top' : 'left'; + const maxSide = crossAxis === 'y' ? 'bottom' : 'right'; + const min = crossAxisCoord + overflow[minSide]; + const max = crossAxisCoord - overflow[maxSide]; + crossAxisCoord = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["clamp"])(min, crossAxisCoord, max); + } + const limitedCoords = limiter.fn({ + ...state, + [mainAxis]: mainAxisCoord, + [crossAxis]: crossAxisCoord + }); + return { + ...limitedCoords, + data: { + x: limitedCoords.x - x, + y: limitedCoords.y - y, + enabled: { + [mainAxis]: checkMainAxis, + [crossAxis]: checkCrossAxis + } + } + }; + } + }; +}; +/** + * Built-in `limiter` that will stop `shift()` at a certain point. + */ const limitShift = function(options) { + if (options === void 0) { + options = {}; + } + return { + options, + fn (state) { + const { x, y, placement, rects, middlewareData } = state; + const { offset = 0, mainAxis: checkMainAxis = true, crossAxis: checkCrossAxis = true } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + const coords = { + x, + y + }; + const crossAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(placement); + const mainAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getOppositeAxis"])(crossAxis); + let mainAxisCoord = coords[mainAxis]; + let crossAxisCoord = coords[crossAxis]; + const rawOffset = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(offset, state); + const computedOffset = typeof rawOffset === 'number' ? { + mainAxis: rawOffset, + crossAxis: 0 + } : { + mainAxis: 0, + crossAxis: 0, + ...rawOffset + }; + if (checkMainAxis) { + const len = mainAxis === 'y' ? 'height' : 'width'; + const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis; + const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis; + if (mainAxisCoord < limitMin) { + mainAxisCoord = limitMin; + } else if (mainAxisCoord > limitMax) { + mainAxisCoord = limitMax; + } + } + if (checkCrossAxis) { + var _middlewareData$offse, _middlewareData$offse2; + const len = mainAxis === 'y' ? 'width' : 'height'; + const isOriginSide = originSides.has((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement)); + const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis); + const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0); + if (crossAxisCoord < limitMin) { + crossAxisCoord = limitMin; + } else if (crossAxisCoord > limitMax) { + crossAxisCoord = limitMax; + } + } + return { + [mainAxis]: mainAxisCoord, + [crossAxis]: crossAxisCoord + }; + } + }; +}; +/** + * Provides data that allows you to change the size of the floating element — + * for instance, prevent it from overflowing the clipping boundary or match the + * width of the reference element. + * @see https://floating-ui.com/docs/size + */ const size = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: 'size', + options, + async fn (state) { + var _state$middlewareData, _state$middlewareData2; + const { placement, rects, platform, elements } = state; + const { apply = ()=>{}, ...detectOverflowOptions } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["evaluate"])(options, state); + const overflow = await detectOverflow(state, detectOverflowOptions); + const side = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSide"])(placement); + const alignment = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAlignment"])(placement); + const isYAxis = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSideAxis"])(placement) === 'y'; + const { width, height } = rects.floating; + let heightSide; + let widthSide; + if (side === 'top' || side === 'bottom') { + heightSide = side; + widthSide = alignment === (await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)) ? 'start' : 'end') ? 'left' : 'right'; + } else { + widthSide = side; + heightSide = alignment === 'end' ? 'top' : 'bottom'; + } + const maximumClippingHeight = height - overflow.top - overflow.bottom; + const maximumClippingWidth = width - overflow.left - overflow.right; + const overflowAvailableHeight = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(height - overflow[heightSide], maximumClippingHeight); + const overflowAvailableWidth = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(width - overflow[widthSide], maximumClippingWidth); + const noShift = !state.middlewareData.shift; + let availableHeight = overflowAvailableHeight; + let availableWidth = overflowAvailableWidth; + if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) { + availableWidth = maximumClippingWidth; + } + if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) { + availableHeight = maximumClippingHeight; + } + if (noShift && !alignment) { + const xMin = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(overflow.left, 0); + const xMax = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(overflow.right, 0); + const yMin = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(overflow.top, 0); + const yMax = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(overflow.bottom, 0); + if (isYAxis) { + availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(overflow.left, overflow.right)); + } else { + availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(overflow.top, overflow.bottom)); + } + } + await apply({ + ...state, + availableWidth, + availableHeight + }); + const nextDimensions = await platform.getDimensions(elements.floating); + if (width !== nextDimensions.width || height !== nextDimensions.height) { + return { + reset: { + rects: true + } + }; + } + return {}; + } + }; +}; +; +}), +"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs [app-ssr] (ecmascript) ", ((__turbopack_context__) => { +"use strict"; + +__turbopack_context__.s([ + "arrow", + ()=>arrow, + "autoPlacement", + ()=>autoPlacement, + "autoUpdate", + ()=>autoUpdate, + "computePosition", + ()=>computePosition, + "detectOverflow", + ()=>detectOverflow, + "flip", + ()=>flip, + "hide", + ()=>hide, + "inline", + ()=>inline, + "limitShift", + ()=>limitShift, + "offset", + ()=>offset, + "platform", + ()=>platform, + "shift", + ()=>shift, + "size", + ()=>size +]); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs [app-ssr] (ecmascript)"); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$core$40$1$2e$7$2e$3$2f$node_modules$2f40$floating$2d$ui$2f$core$2f$dist$2f$floating$2d$ui$2e$core$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$locals$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs [app-ssr] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs [app-ssr] (ecmascript)"); +; +; +; +; +function getCssDimensions(element) { + const css = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(element); + // In testing environments, the `width` and `height` properties are empty + // strings for SVG elements, returning NaN. Fallback to `0` in this case. + let width = parseFloat(css.width) || 0; + let height = parseFloat(css.height) || 0; + const hasOffset = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(element); + const offsetWidth = hasOffset ? element.offsetWidth : width; + const offsetHeight = hasOffset ? element.offsetHeight : height; + const shouldFallback = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["round"])(width) !== offsetWidth || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["round"])(height) !== offsetHeight; + if (shouldFallback) { + width = offsetWidth; + height = offsetHeight; + } + return { + width, + height, + $: shouldFallback + }; +} +function unwrapElement(element) { + return !(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(element) ? element.contextElement : element; +} +function getScale(element) { + const domElement = unwrapElement(element); + if (!(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(domElement)) { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(1); + } + const rect = domElement.getBoundingClientRect(); + const { width, height, $ } = getCssDimensions(domElement); + let x = ($ ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["round"])(rect.width) : rect.width) / width; + let y = ($ ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["round"])(rect.height) : rect.height) / height; + // 0, NaN, or Infinity should always fallback to 1. + if (!x || !Number.isFinite(x)) { + x = 1; + } + if (!y || !Number.isFinite(y)) { + y = 1; + } + return { + x, + y + }; +} +const noOffsets = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(0); +function getVisualOffsets(element) { + const win = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getWindow"])(element); + if (!(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isWebKit"])() || !win.visualViewport) { + return noOffsets; + } + return { + x: win.visualViewport.offsetLeft, + y: win.visualViewport.offsetTop + }; +} +function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) { + if (isFixed === void 0) { + isFixed = false; + } + if (!floatingOffsetParent || isFixed && floatingOffsetParent !== (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getWindow"])(element)) { + return false; + } + return isFixed; +} +function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) { + if (includeScale === void 0) { + includeScale = false; + } + if (isFixedStrategy === void 0) { + isFixedStrategy = false; + } + const clientRect = element.getBoundingClientRect(); + const domElement = unwrapElement(element); + let scale = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(1); + if (includeScale) { + if (offsetParent) { + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(offsetParent)) { + scale = getScale(offsetParent); + } + } else { + scale = getScale(element); + } + } + const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(0); + let x = (clientRect.left + visualOffsets.x) / scale.x; + let y = (clientRect.top + visualOffsets.y) / scale.y; + let width = clientRect.width / scale.x; + let height = clientRect.height / scale.y; + if (domElement) { + const win = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getWindow"])(domElement); + const offsetWin = offsetParent && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(offsetParent) ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getWindow"])(offsetParent) : offsetParent; + let currentWin = win; + let currentIFrame = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getFrameElement"])(currentWin); + while(currentIFrame && offsetParent && offsetWin !== currentWin){ + const iframeScale = getScale(currentIFrame); + const iframeRect = currentIFrame.getBoundingClientRect(); + const css = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(currentIFrame); + const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x; + const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y; + x *= iframeScale.x; + y *= iframeScale.y; + width *= iframeScale.x; + height *= iframeScale.y; + x += left; + y += top; + currentWin = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getWindow"])(currentIFrame); + currentIFrame = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getFrameElement"])(currentWin); + } + } + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["rectToClientRect"])({ + width, + height, + x, + y + }); +} +// If has a CSS width greater than the viewport, then this will be +// incorrect for RTL. +function getWindowScrollBarX(element, rect) { + const leftScroll = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getNodeScroll"])(element).scrollLeft; + if (!rect) { + return getBoundingClientRect((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(element)).left + leftScroll; + } + return rect.left + leftScroll; +} +function getHTMLOffset(documentElement, scroll) { + const htmlRect = documentElement.getBoundingClientRect(); + const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect); + const y = htmlRect.top + scroll.scrollTop; + return { + x, + y + }; +} +function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) { + let { elements, rect, offsetParent, strategy } = _ref; + const isFixed = strategy === 'fixed'; + const documentElement = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(offsetParent); + const topLayer = elements ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isTopLayer"])(elements.floating) : false; + if (offsetParent === documentElement || topLayer && isFixed) { + return rect; + } + let scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + let scale = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(1); + const offsets = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(0); + const isOffsetParentAnElement = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(offsetParent); + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getNodeName"])(offsetParent) !== 'body' || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isOverflowElement"])(documentElement)) { + scroll = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getNodeScroll"])(offsetParent); + } + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(offsetParent)) { + const offsetRect = getBoundingClientRect(offsetParent); + scale = getScale(offsetParent); + offsets.x = offsetRect.x + offsetParent.clientLeft; + offsets.y = offsetRect.y + offsetParent.clientTop; + } + } + const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(0); + return { + width: rect.width * scale.x, + height: rect.height * scale.y, + x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x, + y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y + }; +} +function getClientRects(element) { + return Array.from(element.getClientRects()); +} +// Gets the entire size of the scrollable document area, even extending outside +// of the `` and `` rect bounds if horizontally scrollable. +function getDocumentRect(element) { + const html = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(element); + const scroll = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getNodeScroll"])(element); + const body = element.ownerDocument.body; + const width = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth); + const height = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight); + let x = -scroll.scrollLeft + getWindowScrollBarX(element); + const y = -scroll.scrollTop; + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(body).direction === 'rtl') { + x += (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(html.clientWidth, body.clientWidth) - width; + } + return { + width, + height, + x, + y + }; +} +// Safety check: ensure the scrollbar space is reasonable in case this +// calculation is affected by unusual styles. +// Most scrollbars leave 15-18px of space. +const SCROLLBAR_MAX = 25; +function getViewportRect(element, strategy) { + const win = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getWindow"])(element); + const html = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(element); + const visualViewport = win.visualViewport; + let width = html.clientWidth; + let height = html.clientHeight; + let x = 0; + let y = 0; + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; + const visualViewportBased = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isWebKit"])(); + if (!visualViewportBased || visualViewportBased && strategy === 'fixed') { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + const windowScrollbarX = getWindowScrollBarX(html); + // `overflow: hidden` + `scrollbar-gutter: stable` reduces the + // visual width of the but this is not considered in the size + // of `html.clientWidth`. + if (windowScrollbarX <= 0) { + const doc = html.ownerDocument; + const body = doc.body; + const bodyStyles = getComputedStyle(body); + const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0; + const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline); + if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) { + width -= clippingStableScrollbarWidth; + } + } else if (windowScrollbarX <= SCROLLBAR_MAX) { + // If the scrollbar is on the left, the width needs to be extended + // by the scrollbar amount so there isn't extra space on the right. + width += windowScrollbarX; + } + return { + width, + height, + x, + y + }; +} +const absoluteOrFixed = /*#__PURE__*/ new Set([ + 'absolute', + 'fixed' +]); +// Returns the inner client rect, subtracting scrollbars if present. +function getInnerBoundingClientRect(element, strategy) { + const clientRect = getBoundingClientRect(element, true, strategy === 'fixed'); + const top = clientRect.top + element.clientTop; + const left = clientRect.left + element.clientLeft; + const scale = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(element) ? getScale(element) : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(1); + const width = element.clientWidth * scale.x; + const height = element.clientHeight * scale.y; + const x = left * scale.x; + const y = top * scale.y; + return { + width, + height, + x, + y + }; +} +function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) { + let rect; + if (clippingAncestor === 'viewport') { + rect = getViewportRect(element, strategy); + } else if (clippingAncestor === 'document') { + rect = getDocumentRect((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(element)); + } else if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(clippingAncestor)) { + rect = getInnerBoundingClientRect(clippingAncestor, strategy); + } else { + const visualOffsets = getVisualOffsets(element); + rect = { + x: clippingAncestor.x - visualOffsets.x, + y: clippingAncestor.y - visualOffsets.y, + width: clippingAncestor.width, + height: clippingAncestor.height + }; + } + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["rectToClientRect"])(rect); +} +function hasFixedPositionAncestor(element, stopNode) { + const parentNode = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getParentNode"])(element); + if (parentNode === stopNode || !(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(parentNode) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isLastTraversableNode"])(parentNode)) { + return false; + } + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode); +} +// A "clipping ancestor" is an `overflow` element with the characteristic of +// clipping (or hiding) child elements. This returns all clipping ancestors +// of the given element up the tree. +function getClippingElementAncestors(element, cache) { + const cachedResult = cache.get(element); + if (cachedResult) { + return cachedResult; + } + let result = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getOverflowAncestors"])(element, [], false).filter((el)=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(el) && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getNodeName"])(el) !== 'body'); + let currentContainingBlockComputedStyle = null; + const elementIsFixed = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(element).position === 'fixed'; + let currentNode = elementIsFixed ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getParentNode"])(element) : element; + // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block + while((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(currentNode) && !(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isLastTraversableNode"])(currentNode)){ + const computedStyle = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(currentNode); + const currentNodeIsContaining = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isContainingBlock"])(currentNode); + if (!currentNodeIsContaining && computedStyle.position === 'fixed') { + currentContainingBlockComputedStyle = null; + } + const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isOverflowElement"])(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode); + if (shouldDropCurrentNode) { + // Drop non-containing blocks. + result = result.filter((ancestor)=>ancestor !== currentNode); + } else { + // Record last containing block for next iteration. + currentContainingBlockComputedStyle = computedStyle; + } + currentNode = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getParentNode"])(currentNode); + } + cache.set(element, result); + return result; +} +// Gets the maximum area that the element is visible in due to any number of +// clipping ancestors. +function getClippingRect(_ref) { + let { element, boundary, rootBoundary, strategy } = _ref; + const elementClippingAncestors = boundary === 'clippingAncestors' ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isTopLayer"])(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary); + const clippingAncestors = [ + ...elementClippingAncestors, + rootBoundary + ]; + const firstClippingAncestor = clippingAncestors[0]; + const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor)=>{ + const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy); + accRect.top = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(rect.top, accRect.top); + accRect.right = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(rect.right, accRect.right); + accRect.bottom = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(rect.bottom, accRect.bottom); + accRect.left = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(rect.left, accRect.left); + return accRect; + }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy)); + return { + width: clippingRect.right - clippingRect.left, + height: clippingRect.bottom - clippingRect.top, + x: clippingRect.left, + y: clippingRect.top + }; +} +function getDimensions(element) { + const { width, height } = getCssDimensions(element); + return { + width, + height + }; +} +function getRectRelativeToOffsetParent(element, offsetParent, strategy) { + const isOffsetParentAnElement = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(offsetParent); + const documentElement = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(offsetParent); + const isFixed = strategy === 'fixed'; + const rect = getBoundingClientRect(element, true, isFixed, offsetParent); + let scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + const offsets = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(0); + // If the scrollbar appears on the left (e.g. RTL systems). Use + // Firefox with layout.scrollbar.side = 3 in about:config to test this. + function setLeftRTLScrollbarOffset() { + offsets.x = getWindowScrollBarX(documentElement); + } + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getNodeName"])(offsetParent) !== 'body' || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isOverflowElement"])(documentElement)) { + scroll = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getNodeScroll"])(offsetParent); + } + if (isOffsetParentAnElement) { + const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent); + offsets.x = offsetRect.x + offsetParent.clientLeft; + offsets.y = offsetRect.y + offsetParent.clientTop; + } else if (documentElement) { + setLeftRTLScrollbarOffset(); + } + } + if (isFixed && !isOffsetParentAnElement && documentElement) { + setLeftRTLScrollbarOffset(); + } + const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createCoords"])(0); + const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x; + const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y; + return { + x, + y, + width: rect.width, + height: rect.height + }; +} +function isStaticPositioned(element) { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(element).position === 'static'; +} +function getTrueOffsetParent(element, polyfill) { + if (!(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(element) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(element).position === 'fixed') { + return null; + } + if (polyfill) { + return polyfill(element); + } + let rawOffsetParent = element.offsetParent; + // Firefox returns the element as the offsetParent if it's non-static, + // while Chrome and Safari return the element. The element must + // be used to perform the correct calculations even if the element is + // non-static. + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(element) === rawOffsetParent) { + rawOffsetParent = rawOffsetParent.ownerDocument.body; + } + return rawOffsetParent; +} +// Gets the closest ancestor positioned element. Handles some edge cases, +// such as table ancestors and cross browser bugs. +function getOffsetParent(element, polyfill) { + const win = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getWindow"])(element); + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isTopLayer"])(element)) { + return win; + } + if (!(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTMLElement"])(element)) { + let svgOffsetParent = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getParentNode"])(element); + while(svgOffsetParent && !(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isLastTraversableNode"])(svgOffsetParent)){ + if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"])(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) { + return svgOffsetParent; + } + svgOffsetParent = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getParentNode"])(svgOffsetParent); + } + return win; + } + let offsetParent = getTrueOffsetParent(element, polyfill); + while(offsetParent && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isTableElement"])(offsetParent) && isStaticPositioned(offsetParent)){ + offsetParent = getTrueOffsetParent(offsetParent, polyfill); + } + if (offsetParent && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isLastTraversableNode"])(offsetParent) && isStaticPositioned(offsetParent) && !(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isContainingBlock"])(offsetParent)) { + return win; + } + return offsetParent || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getContainingBlock"])(element) || win; +} +const getElementRects = async function(data) { + const getOffsetParentFn = this.getOffsetParent || getOffsetParent; + const getDimensionsFn = this.getDimensions; + const floatingDimensions = await getDimensionsFn(data.floating); + return { + reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy), + floating: { + x: 0, + y: 0, + width: floatingDimensions.width, + height: floatingDimensions.height + } + }; +}; +function isRTL(element) { + return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getComputedStyle"])(element).direction === 'rtl'; +} +const platform = { + convertOffsetParentRelativeRectToViewportRelativeRect, + getDocumentElement: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"], + getClippingRect, + getOffsetParent, + getElementRects, + getClientRects, + getDimensions, + getScale, + isElement: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isElement"], + isRTL +}; +function rectsAreEqual(a, b) { + return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height; +} +// https://samthor.au/2021/observing-dom/ +function observeMove(element, onMove) { + let io = null; + let timeoutId; + const root = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$dom$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getDocumentElement"])(element); + function cleanup() { + var _io; + clearTimeout(timeoutId); + (_io = io) == null || _io.disconnect(); + io = null; + } + function refresh(skip, threshold) { + if (skip === void 0) { + skip = false; + } + if (threshold === void 0) { + threshold = 1; + } + cleanup(); + const elementRectForRootMargin = element.getBoundingClientRect(); + const { left, top, width, height } = elementRectForRootMargin; + if (!skip) { + onMove(); + } + if (!width || !height) { + return; + } + const insetTop = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["floor"])(top); + const insetRight = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["floor"])(root.clientWidth - (left + width)); + const insetBottom = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["floor"])(root.clientHeight - (top + height)); + const insetLeft = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["floor"])(left); + const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px"; + const options = { + rootMargin, + threshold: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["max"])(0, (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$floating$2d$ui$2b$utils$40$0$2e$2$2e$10$2f$node_modules$2f40$floating$2d$ui$2f$utils$2f$dist$2f$floating$2d$ui$2e$utils$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["min"])(1, threshold)) || 1 + }; + let isFirstUpdate = true; + function handleObserve(entries) { + const ratio = entries[0].intersectionRatio; + if (ratio !== threshold) { + if (!isFirstUpdate) { + return refresh(); + } + if (!ratio) { + // If the reference is clipped, the ratio is 0. Throttle the refresh + // to prevent an infinite loop of updates. + timeoutId = setTimeout(()=>{ + refresh(false, 1e-7); + }, 1000); + } else { + refresh(false, ratio); + } + } + if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) { + // It's possible that even though the ratio is reported as 1, the + // element is not actually fully within the IntersectionObserver's root + // area anymore. This can happen under performance constraints. This may + // be a bug in the browser's IntersectionObserver implementation. To + // work around this, we compare the element's bounding rect now with + // what it was at the time we created the IntersectionObserver. If they + // are not equal then the element moved, so we refresh. + refresh(); + } + isFirstUpdate = false; + } + // Older browsers don't support a `document` as the root and will throw an + // error. + try { + io = new IntersectionObserver(handleObserve, { + ...options, + // Handle