Compare commits

...

10 Commits

Author SHA1 Message Date
selfrelease 639344dc45 0.9.0.1 2025-12-22 16:49:58 +08:00
freedakgmail e9822f5c92 0.9.0.0 2025-12-22 07:52:55 +08:00
freedakgmail c2b890994d 0.8.4.0 2025-12-22 00:38:20 +08:00
freedakgmail 5a604e89f9 0.8.3.0 2025-12-21 22:42:39 +08:00
freedakgmail 5983f13282 0.8.2.0 2025-12-21 19:59:57 +08:00
freedakgmail 3489a10807 0.8.1.0 2025-12-21 19:24:52 +08:00
freedakgmail a5145d4d60 0.8.0.1 2025-12-21 18:07:15 +08:00
freedakgmail 1491fed6f6 禁用登录页面浏览器自动填充密码 2025-12-21 18:01:06 +08:00
freedakgmail 5c8c70097c 0.8.0.0 2025-12-21 17:32:33 +08:00
freedakgmail cffdd75e96 0.7.0.1 2025-12-21 13:57:32 +08:00
645 changed files with 5727 additions and 17045 deletions
@@ -0,0 +1,321 @@
# Design Document: 为始祖添加父母时的代数重新计算提醒
## Overview
本设计文档描述了在家族树应用中,当用户尝试给始祖(第1代成员)添加父母时,显示确认对话框的功能实现。该功能旨在提醒用户此操作将导致全族代数重新计算,确保用户了解操作的影响后再执行。
### 设计目标
1. 在所有添加父母的入口点(成员页面、族谱页面、添加关系对话框)统一实现确认提醒
2. 提供清晰的信息说明代数变化的影响
3. 保持与现有 UI 组件风格一致
4. 不影响非始祖成员的正常添加父母操作
## Architecture
### 组件架构
```
┌─────────────────────────────────────────────────────────────┐
│ 用户界面层 │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ MemberCard │ │ D3OrgChart │ │ AddRelationDialog │ │
│ │ (成员页面) │ │ (族谱页面) │ │ (添加关系对话框) │ │
│ └──────┬──────┘ └──────┬──────┘ └──────────┬──────────┘ │
│ │ │ │ │
│ └────────────────┼─────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ GenerationWarningDialog (新组件) │ │
│ │ - 显示代数重新计算警告 │ │
│ │ - 提供确认/取消操作 │ │
│ └───────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 工具函数层 │
├─────────────────────────────────────────────────────────────┤
│ ┌───────────────────────────────────────────────────────┐ │
│ │ isFirstGenerationMember() (新函数) │ │
│ │ - 检查成员是否为第1代 │ │
│ │ - 判断是否需要显示警告 │ │
│ └───────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
```
### 数据流
```mermaid
sequenceDiagram
participant User as 用户
participant UI as UI组件
participant Check as 检查函数
participant Dialog as 警告对话框
participant Nav as 导航
User->>UI: 右键点击成员 → 添加父母
UI->>Check: isFirstGenerationMember(member)
Check-->>UI: true/false
alt 是第1代成员
UI->>Dialog: 显示警告对话框
Dialog-->>User: 展示代数变化说明
alt 用户确认
User->>Dialog: 点击"确认添加"
Dialog->>Nav: 跳转到新增成员页面
else 用户取消
User->>Dialog: 点击"取消"
Dialog->>UI: 关闭对话框
end
else 不是第1代成员
UI->>Nav: 直接跳转到新增成员页面
end
```
## Components and Interfaces
### 1. GenerationWarningDialog 组件
新建确认对话框组件,用于显示代数重新计算警告。
```typescript
// components/tree/generation-warning-dialog.tsx
interface GenerationWarningDialogProps {
open: boolean
onOpenChange: (open: boolean) => void
memberName: string
relationType: 'father' | 'mother'
onConfirm: () => void
}
export function GenerationWarningDialog({
open,
onOpenChange,
memberName,
relationType,
onConfirm,
}: GenerationWarningDialogProps) {
// 实现对话框内容
}
```
### 2. isFirstGenerationMember 工具函数
检查成员是否为第1代成员的工具函数。
```typescript
// lib/generation-utils.ts (扩展现有文件)
/**
* 检查成员是否为第1代成员(需要显示代数重新计算警告)
* @param member 家族成员对象
* @returns 是否为第1代成员
*/
export function isFirstGenerationMember(member: FamilyMember): boolean {
return member.generation === 1
}
/**
* 检查添加父母操作是否需要显示警告
* @param member 目标成员
* @param relationType 关系类型
* @returns 是否需要显示警告
*/
export function shouldShowGenerationWarning(
member: FamilyMember,
relationType: 'father' | 'mother'
): boolean {
return isFirstGenerationMember(member)
}
```
### 3. 组件集成接口
#### MemberCard 组件修改
```typescript
// 在 MemberCard 组件中添加状态管理
const [showWarningDialog, setShowWarningDialog] = useState(false)
const [pendingRelationType, setPendingRelationType] = useState<'father' | 'mother' | null>(null)
// 修改 handleAddMember 函数
const handleAddMember = (type: RelationType) => {
if ((type === 'father' || type === 'mother') && isFirstGenerationMember(member)) {
setPendingRelationType(type)
setShowWarningDialog(true)
} else {
onOpenAddDialog(member, type)
}
}
```
#### D3OrgChartFlow 组件修改
```typescript
// 在 D3OrgChartFlow 组件中添加状态管理
const [showWarningDialog, setShowWarningDialog] = useState(false)
const [pendingAction, setPendingAction] = useState<{
type: 'father' | 'mother'
member: FamilyMember
} | null>(null)
// 修改 handleAddMember 函数
const handleAddMember = (type: 'father' | 'mother' | 'spouse' | 'child', member: FamilyMember) => {
if ((type === 'father' || type === 'mother') && isFirstGenerationMember(member)) {
setPendingAction({ type, member })
setShowWarningDialog(true)
} else {
// 原有逻辑
const url = buildAddUrl(type, member)
window.location.href = url
}
}
```
## Data Models
本功能不需要新增数据模型,使用现有的 `FamilyMember` 类型:
```typescript
interface FamilyMember {
id: string
generation: number // 用于判断是否为第1代
fullName: string
fatherId?: string
motherId?: string
// ... 其他字段
}
```
## Correctness Properties
*A property is a characteristic or behavior that should hold true across all valid executions of a system—essentially, a formal statement about what the system should do. Properties serve as the bridge between human-readable specifications and machine-verifiable correctness guarantees.*
### Property 1: 第1代成员检测正确性
*For any* 家族成员,`isFirstGenerationMember` 函数返回 `true` 当且仅当该成员的 `generation` 值等于 1。
**Validates: Requirements 1.1, 1.2, 1.3, 1.4**
### Property 2: 警告显示条件正确性
*For any* 添加父母操作,`shouldShowGenerationWarning` 函数返回 `true` 当且仅当目标成员是第1代成员且关系类型为 'father' 或 'mother'。
**Validates: Requirements 1.3, 2.1**
### Property 3: 非第1代成员不触发警告
*For any* 成员,如果其 `generation` 值大于 1,则添加父母操作不应触发警告对话框。
**Validates: Requirements 1.4**
## Error Handling
### 错误场景
1. **成员数据缺失**
- 场景:成员对象缺少 `generation` 字段
- 处理:默认不显示警告,允许操作继续
2. **对话框状态异常**
- 场景:对话框打开时成员数据变化
- 处理:关闭对话框,提示用户重新操作
3. **导航失败**
- 场景:确认后跳转失败
- 处理:显示错误提示,保持对话框打开状态
### 错误处理代码示例
```typescript
const handleConfirm = () => {
try {
if (!pendingAction) {
console.error('No pending action')
return
}
const url = buildAddUrl(pendingAction.type, pendingAction.member)
setShowWarningDialog(false)
setPendingAction(null)
// 使用 setTimeout 确保对话框关闭后再跳转
setTimeout(() => {
window.location.href = url
}, 100)
} catch (error) {
console.error('Navigation failed:', error)
toast({
title: '操作失败',
description: '无法跳转到新增成员页面,请重试',
variant: 'destructive'
})
}
}
```
## Testing Strategy
### 单元测试
1. **isFirstGenerationMember 函数测试**
- 测试 generation = 1 返回 true
- 测试 generation > 1 返回 false
- 测试边界值(generation = 0, 负数等)
2. **shouldShowGenerationWarning 函数测试**
- 测试第1代成员 + father/mother 返回 true
- 测试非第1代成员返回 false
- 测试其他关系类型(spouse, child)返回 false
### 属性测试
使用 fast-check 进行属性测试:
```typescript
import fc from 'fast-check'
// Property 1: 第1代成员检测
fc.assert(
fc.property(
fc.integer({ min: 1, max: 100 }),
(generation) => {
const member = { generation } as FamilyMember
return isFirstGenerationMember(member) === (generation === 1)
}
),
{ numRuns: 100 }
)
// Property 2: 警告显示条件
fc.assert(
fc.property(
fc.integer({ min: 1, max: 100 }),
fc.constantFrom('father', 'mother', 'spouse', 'child'),
(generation, relationType) => {
const member = { generation } as FamilyMember
const shouldShow = shouldShowGenerationWarning(member, relationType as any)
const expected = generation === 1 && (relationType === 'father' || relationType === 'mother')
return shouldShow === expected
}
),
{ numRuns: 100 }
)
```
### 集成测试
1. **成员页面右键菜单测试**
- 验证第1代成员右键添加父母显示对话框
- 验证非第1代成员右键添加父母直接跳转
2. **族谱页面右键菜单测试**
- 验证第1代成员右键添加父母显示对话框
- 验证确认后正确跳转
3. **对话框交互测试**
- 验证对话框内容正确显示
- 验证确认按钮触发跳转
- 验证取消按钮关闭对话框
@@ -0,0 +1,85 @@
# Requirements Document
## Introduction
本功能为家族树应用添加"为始祖添加父母时的代数重新计算提醒"功能。当用户尝试给始祖(第1代成员)添加父母时,系统需要先显示确认对话框,提醒用户此操作将导致全族代数重新计算,确保用户了解操作的影响后再执行。
## Glossary
- **Family_Tree_System**: 家族树管理系统,负责管理家族成员和关系
- **Generation_Calculator**: 代数计算器,负责计算和调整成员的世代数
- **Founder**: 始祖,指家族树中第1代且没有父母的成员
- **Root_Member**: 根成员,家族树的起始成员,通常是始祖
- **Generation_Offset**: 代数偏移量,用于批量调整所有成员的世代数
- **Confirmation_Dialog**: 确认对话框,用于在执行重要操作前获取用户确认
## Requirements
### Requirement 1: 检测始祖添加父母操作
**User Story:** As a 家族树编辑者, I want 系统能够检测我是否正在给始祖添加父母, so that 我能在操作前收到提醒。
#### Acceptance Criteria
1. WHEN 用户在成员页面右键点击一个成员并选择"添加父亲"或"添加母亲" THEN THE Family_Tree_System SHALL 检查该成员是否为第1代成员
2. WHEN 用户在族谱页面右键点击一个成员并选择"添加父亲"或"添加母亲" THEN THE Family_Tree_System SHALL 检查该成员是否为第1代成员
3. WHEN 被操作的成员是第1代成员 THEN THE Family_Tree_System SHALL 标记此操作为"需要代数重新计算"
4. WHEN 被操作的成员不是第1代成员 THEN THE Family_Tree_System SHALL 正常执行添加父母操作
### Requirement 2: 显示代数重新计算确认对话框
**User Story:** As a 家族树编辑者, I want 在给始祖添加父母前看到确认对话框, so that 我能了解此操作对整个家族树的影响。
#### Acceptance Criteria
1. WHEN 用户尝试给第1代成员添加父母 THEN THE Confirmation_Dialog SHALL 显示警告信息
2. THE Confirmation_Dialog SHALL 包含以下信息:操作说明、影响范围、代数变化示例
3. THE Confirmation_Dialog SHALL 提供"确认"和"取消"两个操作按钮
4. WHEN 用户点击"确认"按钮 THEN THE Family_Tree_System SHALL 继续执行添加父母操作
5. WHEN 用户点击"取消"按钮 THEN THE Family_Tree_System SHALL 取消操作并关闭对话框
### Requirement 3: 确认对话框内容展示
**User Story:** As a 家族树编辑者, I want 确认对话框清晰展示代数变化的影响, so that 我能做出明智的决定。
#### Acceptance Criteria
1. THE Confirmation_Dialog SHALL 显示标题"全族代数将重新计算"
2. THE Confirmation_Dialog SHALL 显示说明文字"您正在给始祖添加父母,这将导致全族代数重新计算"
3. THE Confirmation_Dialog SHALL 显示代数变化说明"原第1代将变为第2代,以此类推"
4. THE Confirmation_Dialog SHALL 使用警告样式(黄色/橙色)突出显示重要信息
5. THE Confirmation_Dialog SHALL 在确认按钮上显示"确认添加"文字
6. THE Confirmation_Dialog SHALL 在取消按钮上显示"取消"文字
### Requirement 4: 成员页面右键菜单集成
**User Story:** As a 家族树编辑者, I want 在成员页面通过右键菜单添加父母时收到提醒, so that 我不会意外触发全族代数重新计算。
#### Acceptance Criteria
1. WHEN 用户在成员页面右键点击第1代成员并选择"添加父亲" THEN THE Family_Tree_System SHALL 显示确认对话框
2. WHEN 用户在成员页面右键点击第1代成员并选择"添加母亲" THEN THE Family_Tree_System SHALL 显示确认对话框
3. WHEN 用户确认操作后 THEN THE Family_Tree_System SHALL 跳转到新增成员页面并预填相关信息
4. WHEN 用户取消操作后 THEN THE Family_Tree_System SHALL 保持在当前页面不做任何改变
### Requirement 5: 族谱页面右键菜单集成
**User Story:** As a 家族树编辑者, I want 在族谱页面通过右键菜单添加父母时收到提醒, so that 我不会意外触发全族代数重新计算。
#### Acceptance Criteria
1. WHEN 用户在族谱页面右键点击第1代成员并选择"添加父亲" THEN THE Family_Tree_System SHALL 显示确认对话框
2. WHEN 用户在族谱页面右键点击第1代成员并选择"添加母亲" THEN THE Family_Tree_System SHALL 显示确认对话框
3. WHEN 用户确认操作后 THEN THE Family_Tree_System SHALL 跳转到新增成员页面并预填相关信息
4. WHEN 用户取消操作后 THEN THE Family_Tree_System SHALL 关闭右键菜单并保持在当前页面
### Requirement 6: 添加关系对话框集成
**User Story:** As a 家族树编辑者, I want 在使用添加关系对话框添加父母时收到提醒, so that 所有添加父母的入口都有一致的提醒体验。
#### Acceptance Criteria
1. WHEN 用户通过 AddRelationDialog 组件为第1代成员添加父亲 THEN THE Family_Tree_System SHALL 显示确认对话框
2. WHEN 用户通过 AddRelationDialog 组件为第1代成员添加母亲 THEN THE Family_Tree_System SHALL 显示确认对话框
3. WHEN 用户在对话框中关联已有成员作为父母 THEN THE Family_Tree_System SHALL 在关联前显示确认对话框
4. WHEN 用户在对话框中创建新成员作为父母 THEN THE Family_Tree_System SHALL 在创建前显示确认对话框
@@ -0,0 +1,71 @@
# Implementation Plan: 为始祖添加父母时的代数重新计算提醒
## Overview
本实现计划将分步骤实现代数重新计算警告功能,从工具函数开始,然后创建对话框组件,最后集成到各个入口点。
## Tasks
- [x] 1. 扩展代数工具函数
- [x] 1.1 在 lib/generation-utils.ts 中添加 isFirstGenerationMember 函数
- 实现检查成员是否为第1代的逻辑
- 处理边界情况(generation 为 undefined 或无效值)
- _Requirements: 1.1, 1.2, 1.3, 1.4_
- [x] 1.2 在 lib/generation-utils.ts 中添加 shouldShowGenerationWarning 函数
- 实现判断是否需要显示警告的逻辑
- 只对 father/mother 关系类型返回 true
- _Requirements: 1.3, 2.1_
- [ ]* 1.3 编写属性测试验证第1代成员检测
- **Property 1: 第1代成员检测正确性**
- **Validates: Requirements 1.1, 1.2, 1.3, 1.4**
- [x] 2. 创建 GenerationWarningDialog 组件
- [x] 2.1 创建 components/tree/generation-warning-dialog.tsx 文件
- 使用 AlertDialog 组件作为基础
- 实现警告内容展示
- 实现确认和取消按钮
- _Requirements: 2.1, 2.2, 2.3, 2.4, 2.5, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6_
- [x] 3. Checkpoint - 确保基础组件完成
- 确保所有测试通过,如有问题请询问用户
- [x] 4. 集成到成员页面
- [x] 4.1 修改 app/members/page.tsx 中的 MemberCard 组件
- 添加警告对话框状态管理
- 修改 handleAddMember 函数添加第1代检测
- 集成 GenerationWarningDialog 组件
- _Requirements: 4.1, 4.2, 4.3, 4.4_
- [x] 5. 集成到族谱页面
- [x] 5.1 修改 components/tree/d3-org-chart-flow.tsx 组件
- 添加警告对话框状态管理
- 修改右键菜单的 handleAddMember 函数
- 集成 GenerationWarningDialog 组件
- _Requirements: 5.1, 5.2, 5.3, 5.4_
- [x] 5.2 修改 components/tree/family-node.tsx 组件
- 添加警告对话框状态管理
- 修改右键菜单的添加父母逻辑
- 集成 GenerationWarningDialog 组件
- _Requirements: 5.1, 5.2, 5.3, 5.4_
- [x] 6. 集成到添加关系对话框
- [x] 6.1 修改 components/tree/add-relation-dialog.tsx 组件
- 添加警告对话框状态管理
- 在关联已有成员前检测是否需要警告
- 在创建新成员前检测是否需要警告
- _Requirements: 6.1, 6.2, 6.3, 6.4_
- [x] 7. Final Checkpoint - 确保所有集成完成
- 确保所有测试通过,如有问题请询问用户
- 验证成员页面、族谱页面、添加关系对话框三个入口点都能正确显示警告
## Notes
- Tasks marked with `*` are optional and can be skipped for faster MVP
- Each task references specific requirements for traceability
- Checkpoints ensure incremental validation
- Property tests validate universal correctness properties
- 本功能主要是前端 UI 改动,后端 API 已经实现了代数重新计算逻辑
-1
View File
@@ -1 +0,0 @@
WbYR2XE95Gc5XXVQ7W0XS
-38
View File
@@ -1,38 +0,0 @@
{
"/_global-error/page": "/_global-error",
"/_not-found/page": "/_not-found",
"/admin/page": "/admin",
"/api/admin/login-logs/route": "/api/admin/login-logs",
"/api/admin/users/[userId]/route": "/api/admin/users/[userId]",
"/api/admin/users/route": "/api/admin/users",
"/api/auth/[...nextauth]/route": "/api/auth/[...nextauth]",
"/api/auth/register/route": "/api/auth/register",
"/api/trees/[treeId]/activity-logs/route": "/api/trees/[treeId]/activity-logs",
"/api/trees/[treeId]/collaborators/route": "/api/trees/[treeId]/collaborators",
"/api/trees/[treeId]/import/route": "/api/trees/[treeId]/import",
"/api/trees/[treeId]/invite/route": "/api/trees/[treeId]/invite",
"/api/trees/[treeId]/members/[memberId]/history/route": "/api/trees/[treeId]/members/[memberId]/history",
"/api/trees/[treeId]/members/[memberId]/route": "/api/trees/[treeId]/members/[memberId]",
"/api/trees/[treeId]/members/route": "/api/trees/[treeId]/members",
"/api/trees/[treeId]/relationship/route": "/api/trees/[treeId]/relationship",
"/api/trees/[treeId]/route": "/api/trees/[treeId]",
"/api/trees/route": "/api/trees",
"/api/upload/route": "/api/upload",
"/api/user/activity-logs/route": "/api/user/activity-logs",
"/api/user/change-password/route": "/api/user/change-password",
"/api/user/profile/route": "/api/user/profile",
"/api/users/me/seen-help/route": "/api/users/me/seen-help",
"/auth/register/page": "/auth/register",
"/auth/signin/page": "/auth/signin",
"/help/page": "/help",
"/members/[id]/page": "/members/[id]",
"/members/new/page": "/members/new",
"/members/page": "/members",
"/page": "/",
"/relationship/page": "/relationship",
"/settings/page": "/settings",
"/timeline/page": "/timeline",
"/tree/page": "/tree",
"/trees/new/page": "/trees/new",
"/uploads/[filename]/route": "/uploads/[filename]"
}
-21
View File
@@ -1,21 +0,0 @@
{
"pages": {
"/_app": []
},
"devFiles": [],
"polyfillFiles": [
"static/chunks/a6dad97d9634a72d.js"
],
"lowPriorityFiles": [
"static/WbYR2XE95Gc5XXVQ7W0XS/_ssgManifest.js",
"static/WbYR2XE95Gc5XXVQ7W0XS/_buildManifest.js"
],
"rootMainFiles": [
"static/chunks/c6c183fbdeff129e.js",
"static/chunks/3af7c987a6c28caf.js",
"static/chunks/9e02b7100d6e6270.js",
"static/chunks/0eaa8682593f715a.js",
"static/chunks/ca4429dea6d39825.js",
"static/chunks/turbopack-23d2945b770f49d2.js"
]
}
@@ -1,206 +0,0 @@
module.exports = [
"[externals]/path [external] (path, cjs)", ((__turbopack_context__, module, exports) => {
const mod = __turbopack_context__.x("path", () => require("path"));
module.exports = mod;
}),
"[externals]/url [external] (url, cjs)", ((__turbopack_context__, module, exports) => {
const mod = __turbopack_context__.x("url", () => require("url"));
module.exports = mod;
}),
"[externals]/fs [external] (fs, cjs)", ((__turbopack_context__, module, exports) => {
const mod = __turbopack_context__.x("fs", () => require("fs"));
module.exports = mod;
}),
"[project]/Documents/go-new/chinese-family-tree/postcss.config.mjs [postcss] (ecmascript)", ((__turbopack_context__) => {
"use strict";
/** @type {import('postcss-load-config').Config} */ __turbopack_context__.s([
"default",
()=>__TURBOPACK__default__export__
]);
const config = {
plugins: {
'@tailwindcss/postcss': {}
}
};
const __TURBOPACK__default__export__ = config;
}),
"[turbopack-node]/transforms/transforms.ts [postcss] (ecmascript)", ((__turbopack_context__) => {
"use strict";
/**
* Shared utilities for our 2 transform implementations.
*/ __turbopack_context__.s([
"fromPath",
()=>fromPath,
"getReadEnvVariables",
()=>getReadEnvVariables,
"toPath",
()=>toPath
]);
var __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/path [external] (path, cjs)");
;
const contextDir = process.cwd();
const toPath = (file)=>{
const relPath = (0, __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["relative"])(contextDir, file);
if ((0, __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["isAbsolute"])(relPath)) {
throw new Error(`Cannot depend on path (${file}) outside of root directory (${contextDir})`);
}
return __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["sep"] !== '/' ? relPath.replaceAll(__TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["sep"], '/') : relPath;
};
const fromPath = (path)=>{
return (0, __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["join"])(/* turbopackIgnore: true */ contextDir, __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["sep"] !== '/' ? path.replaceAll('/', __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["sep"]) : path);
};
// Patch process.env to track which env vars are read
const originalEnv = process.env;
const readEnvVars = new Set();
process.env = new Proxy(originalEnv, {
get (target, prop) {
if (typeof prop === 'string') {
// We register the env var as dependency on the
// current transform and all future transforms
// since the env var might be cached in module scope
// and influence them all
readEnvVars.add(prop);
}
return Reflect.get(target, prop);
},
set (target, prop, value) {
return Reflect.set(target, prop, value);
}
});
function getReadEnvVariables() {
return Array.from(readEnvVars);
}
}),
"[turbopack-node]/transforms/postcss.ts { CONFIG => \"[project]/Documents/go-new/chinese-family-tree/postcss.config.mjs [postcss] (ecmascript)\" } [postcss] (ecmascript)", ((__turbopack_context__) => {
"use strict";
__turbopack_context__.s([
"default",
()=>transform,
"init",
()=>init
]);
// @ts-ignore
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$postcss$40$8$2e$5$2e$6$2f$node_modules$2f$postcss$2f$lib$2f$postcss$2e$mjs__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/postcss.mjs [postcss] (ecmascript)");
// @ts-ignore
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$postcss$2e$config$2e$mjs__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/postcss.config.mjs [postcss] (ecmascript)");
var __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[turbopack-node]/transforms/transforms.ts [postcss] (ecmascript)");
;
;
;
let processor;
const init = async (ipc)=>{
let config = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$postcss$2e$config$2e$mjs__$5b$postcss$5d$__$28$ecmascript$29$__["default"];
if (typeof config === 'function') {
config = await config({
env: 'development'
});
}
if (typeof config === 'undefined') {
throw new Error('PostCSS config is undefined (make sure to export an function or object from config file)');
}
let plugins;
if (Array.isArray(config.plugins)) {
plugins = config.plugins.map((plugin)=>{
if (Array.isArray(plugin)) {
return plugin;
} else if (typeof plugin === 'string') {
return [
plugin,
{}
];
} else {
return plugin;
}
});
} else if (typeof config.plugins === 'object') {
plugins = Object.entries(config.plugins).filter(([, options])=>options);
} else {
plugins = [];
}
const loadedPlugins = plugins.map((plugin)=>{
if (Array.isArray(plugin)) {
const [arg, options] = plugin;
let pluginFactory = arg;
if (typeof pluginFactory === 'string') {
pluginFactory = require(/* turbopackIgnore: true */ pluginFactory);
}
if (pluginFactory.default) {
pluginFactory = pluginFactory.default;
}
return pluginFactory(options);
}
return plugin;
});
processor = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$postcss$40$8$2e$5$2e$6$2f$node_modules$2f$postcss$2f$lib$2f$postcss$2e$mjs__$5b$postcss$5d$__$28$ecmascript$29$__["default"])(loadedPlugins);
};
async function transform(ipc, cssContent, name, sourceMap) {
const { css, map, messages } = await processor.process(cssContent, {
from: name,
to: name,
map: sourceMap ? {
inline: false,
annotation: false
} : undefined
});
const assets = [];
const filePaths = [];
const buildFilePaths = [];
const directories = [];
for (const msg of messages){
switch(msg.type){
case 'asset':
assets.push({
file: msg.file,
content: msg.content,
sourceMap: !sourceMap ? undefined : typeof msg.sourceMap === 'string' ? msg.sourceMap : JSON.stringify(msg.sourceMap)
});
break;
case 'dependency':
case 'missing-dependency':
filePaths.push((0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["toPath"])(msg.file));
break;
case 'build-dependency':
buildFilePaths.push((0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["toPath"])(msg.file));
break;
case 'dir-dependency':
directories.push([
(0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["toPath"])(msg.dir),
msg.glob
]);
break;
case 'context-dependency':
directories.push([
(0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["toPath"])(msg.dir),
'**'
]);
break;
default:
break;
}
}
ipc.sendInfo({
type: 'dependencies',
filePaths,
directories,
buildFilePaths,
envVariables: (0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["getReadEnvVariables"])()
});
return {
css,
map: sourceMap ? JSON.stringify(map) : undefined,
assets
};
}
}),
];
//# sourceMappingURL=%5Broot-of-the-server%5D__30c99858._.js.map
File diff suppressed because one or more lines are too long
@@ -1,500 +0,0 @@
module.exports = [
"[turbopack-node]/globals.ts [postcss] (ecmascript)", ((__turbopack_context__, module, exports) => {
// @ts-ignore
process.turbopack = {};
}),
"[externals]/node:net [external] (node:net, cjs)", ((__turbopack_context__, module, exports) => {
const mod = __turbopack_context__.x("node:net", () => require("node:net"));
module.exports = mod;
}),
"[externals]/node:stream [external] (node:stream, cjs)", ((__turbopack_context__, module, exports) => {
const mod = __turbopack_context__.x("node:stream", () => require("node:stream"));
module.exports = mod;
}),
"[turbopack-node]/compiled/stacktrace-parser/index.js [postcss] (ecmascript)", ((__turbopack_context__) => {
"use strict";
__turbopack_context__.s([
"parse",
()=>parse
]);
if (typeof __nccwpck_require__ !== "undefined") __nccwpck_require__.ab = ("TURBOPACK compile-time value", "/ROOT/compiled/stacktrace-parser") + "/";
var n = "<unknown>";
function parse(e) {
var r = e.split("\n");
return r.reduce(function(e, r) {
var n = parseChrome(r) || parseWinjs(r) || parseGecko(r) || parseNode(r) || parseJSC(r);
if (n) {
e.push(n);
}
return e;
}, []);
}
var a = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
var l = /\((\S*)(?::(\d+))(?::(\d+))\)/;
function parseChrome(e) {
var r = a.exec(e);
if (!r) {
return null;
}
var u = r[2] && r[2].indexOf("native") === 0;
var t = r[2] && r[2].indexOf("eval") === 0;
var i = l.exec(r[2]);
if (t && i != null) {
r[2] = i[1];
r[3] = i[2];
r[4] = i[3];
}
return {
file: !u ? r[2] : null,
methodName: r[1] || n,
arguments: u ? [
r[2]
] : [],
lineNumber: r[3] ? +r[3] : null,
column: r[4] ? +r[4] : null
};
}
var u = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;
function parseWinjs(e) {
var r = u.exec(e);
if (!r) {
return null;
}
return {
file: r[2],
methodName: r[1] || n,
arguments: [],
lineNumber: +r[3],
column: r[4] ? +r[4] : null
};
}
var t = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i;
var i = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
function parseGecko(e) {
var r = t.exec(e);
if (!r) {
return null;
}
var a = r[3] && r[3].indexOf(" > eval") > -1;
var l = i.exec(r[3]);
if (a && l != null) {
r[3] = l[1];
r[4] = l[2];
r[5] = null;
}
return {
file: r[3],
methodName: r[1] || n,
arguments: r[2] ? r[2].split(",") : [],
lineNumber: r[4] ? +r[4] : null,
column: r[5] ? +r[5] : null
};
}
var s = /^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i;
function parseJSC(e) {
var r = s.exec(e);
if (!r) {
return null;
}
return {
file: r[3],
methodName: r[1] || n,
arguments: [],
lineNumber: +r[4],
column: r[5] ? +r[5] : null
};
}
var o = /^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;
function parseNode(e) {
var r = o.exec(e);
if (!r) {
return null;
}
return {
file: r[2],
methodName: r[1] || n,
arguments: [],
lineNumber: +r[3],
column: r[4] ? +r[4] : null
};
}
}),
"[turbopack-node]/ipc/error.ts [postcss] (ecmascript)", ((__turbopack_context__) => {
"use strict";
// merged from next.js
// https://github.com/vercel/next.js/blob/e657741b9908cf0044aaef959c0c4defb19ed6d8/packages/next/src/lib/is-error.ts
// https://github.com/vercel/next.js/blob/e657741b9908cf0044aaef959c0c4defb19ed6d8/packages/next/src/shared/lib/is-plain-object.ts
__turbopack_context__.s([
"default",
()=>isError,
"getProperError",
()=>getProperError
]);
function isError(err) {
return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;
}
function getProperError(err) {
if (isError(err)) {
return err;
}
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
;
return new Error(isPlainObject(err) ? JSON.stringify(err) : err + '');
}
function getObjectClassLabel(value) {
return Object.prototype.toString.call(value);
}
function isPlainObject(value) {
if (getObjectClassLabel(value) !== '[object Object]') {
return false;
}
const prototype = Object.getPrototypeOf(value);
/**
* this used to be previously:
*
* `return prototype === null || prototype === Object.prototype`
*
* but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.
*
* It was changed to the current implementation since it's resilient to serialization.
*/ return prototype === null || prototype.hasOwnProperty('isPrototypeOf');
}
}),
"[turbopack-node]/ipc/index.ts [postcss] (ecmascript)", ((__turbopack_context__) => {
"use strict";
__turbopack_context__.s([
"IPC",
()=>IPC,
"structuredError",
()=>structuredError
]);
var __TURBOPACK__imported__module__$5b$externals$5d2f$node$3a$net__$5b$external$5d$__$28$node$3a$net$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/node:net [external] (node:net, cjs)");
var __TURBOPACK__imported__module__$5b$externals$5d2f$node$3a$stream__$5b$external$5d$__$28$node$3a$stream$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/node:stream [external] (node:stream, cjs)");
var __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$compiled$2f$stacktrace$2d$parser$2f$index$2e$js__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[turbopack-node]/compiled/stacktrace-parser/index.js [postcss] (ecmascript)");
var __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$ipc$2f$error$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[turbopack-node]/ipc/error.ts [postcss] (ecmascript)");
;
;
;
;
function structuredError(e) {
e = (0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$ipc$2f$error$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["getProperError"])(e);
return {
name: e.name,
message: e.message,
stack: typeof e.stack === 'string' ? (0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$compiled$2f$stacktrace$2d$parser$2f$index$2e$js__$5b$postcss$5d$__$28$ecmascript$29$__["parse"])(e.stack) : [],
cause: e.cause ? structuredError((0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$ipc$2f$error$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["getProperError"])(e.cause)) : undefined
};
}
function createIpc(port) {
const socket = (0, __TURBOPACK__imported__module__$5b$externals$5d2f$node$3a$net__$5b$external$5d$__$28$node$3a$net$2c$__cjs$29$__["createConnection"])({
port,
host: '127.0.0.1'
});
/**
* A writable stream that writes to the socket.
* We don't write directly to the socket because we need to
* handle backpressure and wait for the socket to be drained
* before writing more data.
*/ const socketWritable = new __TURBOPACK__imported__module__$5b$externals$5d2f$node$3a$stream__$5b$external$5d$__$28$node$3a$stream$2c$__cjs$29$__["Writable"]({
write (chunk, _enc, cb) {
if (socket.write(chunk)) {
cb();
} else {
socket.once('drain', cb);
}
},
final (cb) {
socket.end(cb);
}
});
const packetQueue = [];
const recvPromiseResolveQueue = [];
function pushPacket(packet) {
const recvPromiseResolve = recvPromiseResolveQueue.shift();
if (recvPromiseResolve != null) {
recvPromiseResolve(JSON.parse(packet.toString('utf8')));
} else {
packetQueue.push(packet);
}
}
let state = {
type: 'waiting'
};
let buffer = Buffer.alloc(0);
socket.once('connect', ()=>{
socket.setNoDelay(true);
socket.on('data', (chunk)=>{
buffer = Buffer.concat([
buffer,
chunk
]);
loop: while(true){
switch(state.type){
case 'waiting':
{
if (buffer.length >= 4) {
const length = buffer.readUInt32BE(0);
buffer = buffer.subarray(4);
state = {
type: 'packet',
length
};
} else {
break loop;
}
break;
}
case 'packet':
{
if (buffer.length >= state.length) {
const packet = buffer.subarray(0, state.length);
buffer = buffer.subarray(state.length);
state = {
type: 'waiting'
};
pushPacket(packet);
} else {
break loop;
}
break;
}
default:
invariant(state, (state)=>`Unknown state type: ${state?.type}`);
}
}
});
});
// When the socket is closed, this process is no longer needed.
// This might happen e. g. when parent process is killed or
// node.js pool is garbage collected.
socket.once('close', ()=>{
process.exit(0);
});
// TODO(lukesandberg): some of the messages being sent are very large and contain lots
// of redundant information. Consider adding gzip compression to our stream.
function doSend(message) {
return new Promise((resolve, reject)=>{
// Reserve 4 bytes for our length prefix, we will over-write after encoding.
const packet = Buffer.from('0000' + message, 'utf8');
packet.writeUInt32BE(packet.length - 4, 0);
socketWritable.write(packet, (err)=>{
process.stderr.write(`TURBOPACK_OUTPUT_D\n`);
process.stdout.write(`TURBOPACK_OUTPUT_D\n`);
if (err != null) {
reject(err);
} else {
resolve();
}
});
});
}
function send(message) {
return doSend(JSON.stringify(message));
}
function sendReady() {
return doSend('');
}
return {
async recv () {
const packet = packetQueue.shift();
if (packet != null) {
return JSON.parse(packet.toString('utf8'));
}
const result = await new Promise((resolve)=>{
recvPromiseResolveQueue.push((result)=>{
resolve(result);
});
});
return result;
},
send (message) {
return send(message);
},
sendReady,
async sendError (error) {
let failed = false;
try {
await send({
type: 'error',
...structuredError(error)
});
} catch (err) {
// There's nothing we can do about errors that happen after this point, we can't tell anyone
// about them.
console.error('failed to send error back to rust:', err);
failed = true;
}
await new Promise((res)=>socket.end(()=>res()));
process.exit(failed ? 1 : 0);
}
};
}
const PORT = process.argv[2];
const IPC = createIpc(parseInt(PORT, 10));
process.on('uncaughtException', (err)=>{
IPC.sendError(err);
});
const improveConsole = (name, stream, addStack)=>{
// @ts-ignore
const original = console[name];
// @ts-ignore
const stdio = process[stream];
// @ts-ignore
console[name] = (...args)=>{
stdio.write(`TURBOPACK_OUTPUT_B\n`);
original(...args);
if (addStack) {
const stack = new Error().stack?.replace(/^.+\n.+\n/, '') + '\n';
stdio.write('TURBOPACK_OUTPUT_S\n');
stdio.write(stack);
}
stdio.write('TURBOPACK_OUTPUT_E\n');
};
};
improveConsole('error', 'stderr', true);
improveConsole('warn', 'stderr', true);
improveConsole('count', 'stdout', true);
improveConsole('trace', 'stderr', false);
improveConsole('log', 'stdout', true);
improveConsole('group', 'stdout', true);
improveConsole('groupCollapsed', 'stdout', true);
improveConsole('table', 'stdout', true);
improveConsole('debug', 'stdout', true);
improveConsole('info', 'stdout', true);
improveConsole('dir', 'stdout', true);
improveConsole('dirxml', 'stdout', true);
improveConsole('timeEnd', 'stdout', true);
improveConsole('timeLog', 'stdout', true);
improveConsole('timeStamp', 'stdout', true);
improveConsole('assert', 'stderr', true);
/**
* Utility function to ensure all variants of an enum are handled.
*/ function invariant(never, computeMessage) {
throw new Error(`Invariant: ${computeMessage(never)}`);
}
}),
"[turbopack-node]/ipc/evaluate.ts [postcss] (ecmascript)", ((__turbopack_context__) => {
"use strict";
__turbopack_context__.s([
"run",
()=>run
]);
var __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$ipc$2f$index$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[turbopack-node]/ipc/index.ts [postcss] (ecmascript)");
;
const ipc = __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$ipc$2f$index$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["IPC"];
const queue = [];
const run = async (moduleFactory)=>{
let nextId = 1;
const requests = new Map();
const internalIpc = {
sendInfo: (message)=>ipc.send({
type: 'info',
data: message
}),
sendRequest: (message)=>{
const id = nextId++;
let resolve, reject;
const promise = new Promise((res, rej)=>{
resolve = res;
reject = rej;
});
requests.set(id, {
resolve,
reject
});
return ipc.send({
type: 'request',
id,
data: message
}).then(()=>promise);
},
sendError: (error)=>{
return ipc.sendError(error);
}
};
// Initialize module and send ready message
let getValue;
try {
const module = await moduleFactory();
if (typeof module.init === 'function') {
await module.init();
}
getValue = module.default;
await ipc.sendReady();
} catch (err) {
await ipc.sendReady();
await ipc.sendError(err);
}
// Queue handling
let isRunning = false;
const run = async ()=>{
while(queue.length > 0){
const args = queue.shift();
try {
const value = await getValue(internalIpc, ...args);
await ipc.send({
type: 'end',
data: value === undefined ? undefined : JSON.stringify(value, null, 2),
duration: 0
});
} catch (e) {
await ipc.sendError(e);
}
}
isRunning = false;
};
// Communication handling
while(true){
const msg = await ipc.recv();
switch(msg.type){
case 'evaluate':
{
queue.push(msg.args);
if (!isRunning) {
isRunning = true;
run();
}
break;
}
case 'result':
{
const request = requests.get(msg.id);
if (request) {
requests.delete(msg.id);
if (msg.error) {
request.reject(new Error(msg.error));
} else {
request.resolve(msg.data);
}
}
break;
}
default:
{
console.error('unexpected message type', msg.type);
process.exit(1);
}
}
}
};
}),
"[turbopack-node]/ipc/evaluate.ts/evaluate.js { INNER => \"[turbopack-node]/transforms/postcss.ts { CONFIG => \\\"[project]/Documents/go-new/chinese-family-tree/postcss.config.mjs [postcss] (ecmascript)\\\" } [postcss] (ecmascript)\", RUNTIME => \"[turbopack-node]/ipc/evaluate.ts [postcss] (ecmascript)\" } [postcss] (ecmascript)", ((__turbopack_context__) => {
"use strict";
__turbopack_context__.s([]);
var __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$ipc$2f$evaluate$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[turbopack-node]/ipc/evaluate.ts [postcss] (ecmascript)");
;
(0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$ipc$2f$evaluate$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["run"])(()=>__turbopack_context__.A('[turbopack-node]/transforms/postcss.ts { CONFIG => "[project]/Documents/go-new/chinese-family-tree/postcss.config.mjs [postcss] (ecmascript)" } [postcss] (ecmascript, async loader)'));
}),
];
//# sourceMappingURL=%5Broot-of-the-server%5D__b44e5d07._.js.map
File diff suppressed because one or more lines are too long
@@ -1,13 +0,0 @@
module.exports = [
"[turbopack-node]/transforms/postcss.ts { CONFIG => \"[project]/Documents/go-new/chinese-family-tree/postcss.config.mjs [postcss] (ecmascript)\" } [postcss] (ecmascript, async loader)", ((__turbopack_context__) => {
__turbopack_context__.v((parentImport) => {
return Promise.all([
"chunks/a0629__pnpm_f434751e._.js",
"chunks/[root-of-the-server]__30c99858._.js"
].map((chunk) => __turbopack_context__.l(chunk))).then(() => {
return parentImport("[turbopack-node]/transforms/postcss.ts { CONFIG => \"[project]/Documents/go-new/chinese-family-tree/postcss.config.mjs [postcss] (ecmascript)\" } [postcss] (ecmascript)");
});
});
}),
];
@@ -1,5 +0,0 @@
{
"version": 3,
"sources": [],
"sections": []
}
-770
View File
@@ -1,770 +0,0 @@
const RUNTIME_PUBLIC_PATH = "chunks/[turbopack]_runtime.js";
const RELATIVE_ROOT_PATH = "../../../..";
const ASSET_PREFIX = "/";
/**
* This file contains runtime types and functions that are shared between all
* TurboPack ECMAScript runtimes.
*
* It will be prepended to the runtime code of each runtime.
*/ /* eslint-disable @typescript-eslint/no-unused-vars */ /// <reference path="./runtime-types.d.ts" />
const REEXPORTED_OBJECTS = new WeakMap();
/**
* Constructs the `__turbopack_context__` object for a module.
*/ function Context(module, exports) {
this.m = module;
// We need to store this here instead of accessing it from the module object to:
// 1. Make it available to factories directly, since we rewrite `this` to
// `__turbopack_context__.e` in CJS modules.
// 2. Support async modules which rewrite `module.exports` to a promise, so we
// can still access the original exports object from functions like
// `esmExport`
// Ideally we could find a new approach for async modules and drop this property altogether.
this.e = exports;
}
const contextPrototype = Context.prototype;
const hasOwnProperty = Object.prototype.hasOwnProperty;
const toStringTag = typeof Symbol !== 'undefined' && Symbol.toStringTag;
function defineProp(obj, name, options) {
if (!hasOwnProperty.call(obj, name)) Object.defineProperty(obj, name, options);
}
function getOverwrittenModule(moduleCache, id) {
let module = moduleCache[id];
if (!module) {
// This is invoked when a module is merged into another module, thus it wasn't invoked via
// instantiateModule and the cache entry wasn't created yet.
module = createModuleObject(id);
moduleCache[id] = module;
}
return module;
}
/**
* Creates the module object. Only done here to ensure all module objects have the same shape.
*/ function createModuleObject(id) {
return {
exports: {},
error: undefined,
id,
namespaceObject: undefined
};
}
const BindingTag_Value = 0;
/**
* Adds the getters to the exports object.
*/ function esm(exports, bindings) {
defineProp(exports, '__esModule', {
value: true
});
if (toStringTag) defineProp(exports, toStringTag, {
value: 'Module'
});
let i = 0;
while(i < bindings.length){
const propName = bindings[i++];
const tagOrFunction = bindings[i++];
if (typeof tagOrFunction === 'number') {
if (tagOrFunction === BindingTag_Value) {
defineProp(exports, propName, {
value: bindings[i++],
enumerable: true,
writable: false
});
} else {
throw new Error(`unexpected tag: ${tagOrFunction}`);
}
} else {
const getterFn = tagOrFunction;
if (typeof bindings[i] === 'function') {
const setterFn = bindings[i++];
defineProp(exports, propName, {
get: getterFn,
set: setterFn,
enumerable: true
});
} else {
defineProp(exports, propName, {
get: getterFn,
enumerable: true
});
}
}
}
Object.seal(exports);
}
/**
* Makes the module an ESM with exports
*/ function esmExport(bindings, id) {
let module;
let exports;
if (id != null) {
module = getOverwrittenModule(this.c, id);
exports = module.exports;
} else {
module = this.m;
exports = this.e;
}
module.namespaceObject = exports;
esm(exports, bindings);
}
contextPrototype.s = esmExport;
function ensureDynamicExports(module, exports) {
let reexportedObjects = REEXPORTED_OBJECTS.get(module);
if (!reexportedObjects) {
REEXPORTED_OBJECTS.set(module, reexportedObjects = []);
module.exports = module.namespaceObject = new Proxy(exports, {
get (target, prop) {
if (hasOwnProperty.call(target, prop) || prop === 'default' || prop === '__esModule') {
return Reflect.get(target, prop);
}
for (const obj of reexportedObjects){
const value = Reflect.get(obj, prop);
if (value !== undefined) return value;
}
return undefined;
},
ownKeys (target) {
const keys = Reflect.ownKeys(target);
for (const obj of reexportedObjects){
for (const key of Reflect.ownKeys(obj)){
if (key !== 'default' && !keys.includes(key)) keys.push(key);
}
}
return keys;
}
});
}
return reexportedObjects;
}
/**
* Dynamically exports properties from an object
*/ function dynamicExport(object, id) {
let module;
let exports;
if (id != null) {
module = getOverwrittenModule(this.c, id);
exports = module.exports;
} else {
module = this.m;
exports = this.e;
}
const reexportedObjects = ensureDynamicExports(module, exports);
if (typeof object === 'object' && object !== null) {
reexportedObjects.push(object);
}
}
contextPrototype.j = dynamicExport;
function exportValue(value, id) {
let module;
if (id != null) {
module = getOverwrittenModule(this.c, id);
} else {
module = this.m;
}
module.exports = value;
}
contextPrototype.v = exportValue;
function exportNamespace(namespace, id) {
let module;
if (id != null) {
module = getOverwrittenModule(this.c, id);
} else {
module = this.m;
}
module.exports = module.namespaceObject = namespace;
}
contextPrototype.n = exportNamespace;
function createGetter(obj, key) {
return ()=>obj[key];
}
/**
* @returns prototype of the object
*/ const getProto = Object.getPrototypeOf ? (obj)=>Object.getPrototypeOf(obj) : (obj)=>obj.__proto__;
/** Prototypes that are not expanded for exports */ const LEAF_PROTOTYPES = [
null,
getProto({}),
getProto([]),
getProto(getProto)
];
/**
* @param raw
* @param ns
* @param allowExportDefault
* * `false`: will have the raw module as default export
* * `true`: will have the default property as default export
*/ function interopEsm(raw, ns, allowExportDefault) {
const bindings = [];
let defaultLocation = -1;
for(let current = raw; (typeof current === 'object' || typeof current === 'function') && !LEAF_PROTOTYPES.includes(current); current = getProto(current)){
for (const key of Object.getOwnPropertyNames(current)){
bindings.push(key, createGetter(raw, key));
if (defaultLocation === -1 && key === 'default') {
defaultLocation = bindings.length - 1;
}
}
}
// this is not really correct
// we should set the `default` getter if the imported module is a `.cjs file`
if (!(allowExportDefault && defaultLocation >= 0)) {
// Replace the binding with one for the namespace itself in order to preserve iteration order.
if (defaultLocation >= 0) {
// Replace the getter with the value
bindings.splice(defaultLocation, 1, BindingTag_Value, raw);
} else {
bindings.push('default', BindingTag_Value, raw);
}
}
esm(ns, bindings);
return ns;
}
function createNS(raw) {
if (typeof raw === 'function') {
return function(...args) {
return raw.apply(this, args);
};
} else {
return Object.create(null);
}
}
function esmImport(id) {
const module = getOrInstantiateModuleFromParent(id, this.m);
// any ES module has to have `module.namespaceObject` defined.
if (module.namespaceObject) return module.namespaceObject;
// only ESM can be an async module, so we don't need to worry about exports being a promise here.
const raw = module.exports;
return module.namespaceObject = interopEsm(raw, createNS(raw), raw && raw.__esModule);
}
contextPrototype.i = esmImport;
function asyncLoader(moduleId) {
const loader = this.r(moduleId);
return loader(esmImport.bind(this));
}
contextPrototype.A = asyncLoader;
// Add a simple runtime require so that environments without one can still pass
// `typeof require` CommonJS checks so that exports are correctly registered.
const runtimeRequire = // @ts-ignore
typeof require === 'function' ? require : function require1() {
throw new Error('Unexpected use of runtime require');
};
contextPrototype.t = runtimeRequire;
function commonJsRequire(id) {
return getOrInstantiateModuleFromParent(id, this.m).exports;
}
contextPrototype.r = commonJsRequire;
/**
* `require.context` and require/import expression runtime.
*/ function moduleContext(map) {
function moduleContext(id) {
if (hasOwnProperty.call(map, id)) {
return map[id].module();
}
const e = new Error(`Cannot find module '${id}'`);
e.code = 'MODULE_NOT_FOUND';
throw e;
}
moduleContext.keys = ()=>{
return Object.keys(map);
};
moduleContext.resolve = (id)=>{
if (hasOwnProperty.call(map, id)) {
return map[id].id();
}
const e = new Error(`Cannot find module '${id}'`);
e.code = 'MODULE_NOT_FOUND';
throw e;
};
moduleContext.import = async (id)=>{
return await moduleContext(id);
};
return moduleContext;
}
contextPrototype.f = moduleContext;
/**
* Returns the path of a chunk defined by its data.
*/ function getChunkPath(chunkData) {
return typeof chunkData === 'string' ? chunkData : chunkData.path;
}
function isPromise(maybePromise) {
return maybePromise != null && typeof maybePromise === 'object' && 'then' in maybePromise && typeof maybePromise.then === 'function';
}
function isAsyncModuleExt(obj) {
return turbopackQueues in obj;
}
function createPromise() {
let resolve;
let reject;
const promise = new Promise((res, rej)=>{
reject = rej;
resolve = res;
});
return {
promise,
resolve: resolve,
reject: reject
};
}
// Load the CompressedmoduleFactories of a chunk into the `moduleFactories` Map.
// The CompressedModuleFactories format is
// - 1 or more module ids
// - a module factory function
// So walking this is a little complex but the flat structure is also fast to
// traverse, we can use `typeof` operators to distinguish the two cases.
function installCompressedModuleFactories(chunkModules, offset, moduleFactories, newModuleId) {
let i = offset;
while(i < chunkModules.length){
let moduleId = chunkModules[i];
let end = i + 1;
// Find our factory function
while(end < chunkModules.length && typeof chunkModules[end] !== 'function'){
end++;
}
if (end === chunkModules.length) {
throw new Error('malformed chunk format, expected a factory function');
}
// Each chunk item has a 'primary id' and optional additional ids. If the primary id is already
// present we know all the additional ids are also present, so we don't need to check.
if (!moduleFactories.has(moduleId)) {
const moduleFactoryFn = chunkModules[end];
applyModuleFactoryName(moduleFactoryFn);
newModuleId?.(moduleId);
for(; i < end; i++){
moduleId = chunkModules[i];
moduleFactories.set(moduleId, moduleFactoryFn);
}
}
i = end + 1; // end is pointing at the last factory advance to the next id or the end of the array.
}
}
// everything below is adapted from webpack
// https://github.com/webpack/webpack/blob/6be4065ade1e252c1d8dcba4af0f43e32af1bdc1/lib/runtime/AsyncModuleRuntimeModule.js#L13
const turbopackQueues = Symbol('turbopack queues');
const turbopackExports = Symbol('turbopack exports');
const turbopackError = Symbol('turbopack error');
function resolveQueue(queue) {
if (queue && queue.status !== 1) {
queue.status = 1;
queue.forEach((fn)=>fn.queueCount--);
queue.forEach((fn)=>fn.queueCount-- ? fn.queueCount++ : fn());
}
}
function wrapDeps(deps) {
return deps.map((dep)=>{
if (dep !== null && typeof dep === 'object') {
if (isAsyncModuleExt(dep)) return dep;
if (isPromise(dep)) {
const queue = Object.assign([], {
status: 0
});
const obj = {
[turbopackExports]: {},
[turbopackQueues]: (fn)=>fn(queue)
};
dep.then((res)=>{
obj[turbopackExports] = res;
resolveQueue(queue);
}, (err)=>{
obj[turbopackError] = err;
resolveQueue(queue);
});
return obj;
}
}
return {
[turbopackExports]: dep,
[turbopackQueues]: ()=>{}
};
});
}
function asyncModule(body, hasAwait) {
const module = this.m;
const queue = hasAwait ? Object.assign([], {
status: -1
}) : undefined;
const depQueues = new Set();
const { resolve, reject, promise: rawPromise } = createPromise();
const promise = Object.assign(rawPromise, {
[turbopackExports]: module.exports,
[turbopackQueues]: (fn)=>{
queue && fn(queue);
depQueues.forEach(fn);
promise['catch'](()=>{});
}
});
const attributes = {
get () {
return promise;
},
set (v) {
// Calling `esmExport` leads to this.
if (v !== promise) {
promise[turbopackExports] = v;
}
}
};
Object.defineProperty(module, 'exports', attributes);
Object.defineProperty(module, 'namespaceObject', attributes);
function handleAsyncDependencies(deps) {
const currentDeps = wrapDeps(deps);
const getResult = ()=>currentDeps.map((d)=>{
if (d[turbopackError]) throw d[turbopackError];
return d[turbopackExports];
});
const { promise, resolve } = createPromise();
const fn = Object.assign(()=>resolve(getResult), {
queueCount: 0
});
function fnQueue(q) {
if (q !== queue && !depQueues.has(q)) {
depQueues.add(q);
if (q && q.status === 0) {
fn.queueCount++;
q.push(fn);
}
}
}
currentDeps.map((dep)=>dep[turbopackQueues](fnQueue));
return fn.queueCount ? promise : getResult();
}
function asyncResult(err) {
if (err) {
reject(promise[turbopackError] = err);
} else {
resolve(promise[turbopackExports]);
}
resolveQueue(queue);
}
body(handleAsyncDependencies, asyncResult);
if (queue && queue.status === -1) {
queue.status = 0;
}
}
contextPrototype.a = asyncModule;
/**
* A pseudo "fake" URL object to resolve to its relative path.
*
* When UrlRewriteBehavior is set to relative, calls to the `new URL()` will construct url without base using this
* runtime function to generate context-agnostic urls between different rendering context, i.e ssr / client to avoid
* hydration mismatch.
*
* This is based on webpack's existing implementation:
* https://github.com/webpack/webpack/blob/87660921808566ef3b8796f8df61bd79fc026108/lib/runtime/RelativeUrlRuntimeModule.js
*/ const relativeURL = function relativeURL(inputUrl) {
const realUrl = new URL(inputUrl, 'x:/');
const values = {};
for(const key in realUrl)values[key] = realUrl[key];
values.href = inputUrl;
values.pathname = inputUrl.replace(/[?#].*/, '');
values.origin = values.protocol = '';
values.toString = values.toJSON = (..._args)=>inputUrl;
for(const key in values)Object.defineProperty(this, key, {
enumerable: true,
configurable: true,
value: values[key]
});
};
relativeURL.prototype = URL.prototype;
contextPrototype.U = relativeURL;
/**
* Utility function to ensure all variants of an enum are handled.
*/ function invariant(never, computeMessage) {
throw new Error(`Invariant: ${computeMessage(never)}`);
}
/**
* A stub function to make `require` available but non-functional in ESM.
*/ function requireStub(_moduleId) {
throw new Error('dynamic usage of require is not supported');
}
contextPrototype.z = requireStub;
// Make `globalThis` available to the module in a way that cannot be shadowed by a local variable.
contextPrototype.g = globalThis;
function applyModuleFactoryName(factory) {
// Give the module factory a nice name to improve stack traces.
Object.defineProperty(factory, 'name', {
value: 'module evaluation'
});
}
/// <reference path="../shared/runtime-utils.ts" />
/// A 'base' utilities to support runtime can have externals.
/// Currently this is for node.js / edge runtime both.
/// If a fn requires node.js specific behavior, it should be placed in `node-external-utils` instead.
async function externalImport(id) {
let raw;
try {
raw = await import(id);
} catch (err) {
// TODO(alexkirsz) This can happen when a client-side module tries to load
// an external module we don't provide a shim for (e.g. querystring, url).
// For now, we fail semi-silently, but in the future this should be a
// compilation error.
throw new Error(`Failed to load external module ${id}: ${err}`);
}
if (raw && raw.__esModule && raw.default && 'default' in raw.default) {
return interopEsm(raw.default, createNS(raw), true);
}
return raw;
}
contextPrototype.y = externalImport;
function externalRequire(id, thunk, esm = false) {
let raw;
try {
raw = thunk();
} catch (err) {
// TODO(alexkirsz) This can happen when a client-side module tries to load
// an external module we don't provide a shim for (e.g. querystring, url).
// For now, we fail semi-silently, but in the future this should be a
// compilation error.
throw new Error(`Failed to load external module ${id}: ${err}`);
}
if (!esm || raw.__esModule) {
return raw;
}
return interopEsm(raw, createNS(raw), true);
}
externalRequire.resolve = (id, options)=>{
return require.resolve(id, options);
};
contextPrototype.x = externalRequire;
/* eslint-disable @typescript-eslint/no-unused-vars */ const path = require('path');
const relativePathToRuntimeRoot = path.relative(RUNTIME_PUBLIC_PATH, '.');
// Compute the relative path to the `distDir`.
const relativePathToDistRoot = path.join(relativePathToRuntimeRoot, RELATIVE_ROOT_PATH);
const RUNTIME_ROOT = path.resolve(__filename, relativePathToRuntimeRoot);
// Compute the absolute path to the root, by stripping distDir from the absolute path to this file.
const ABSOLUTE_ROOT = path.resolve(__filename, relativePathToDistRoot);
/**
* Returns an absolute path to the given module path.
* Module path should be relative, either path to a file or a directory.
*
* This fn allows to calculate an absolute path for some global static values, such as
* `__dirname` or `import.meta.url` that Turbopack will not embeds in compile time.
* See ImportMetaBinding::code_generation for the usage.
*/ function resolveAbsolutePath(modulePath) {
if (modulePath) {
return path.join(ABSOLUTE_ROOT, modulePath);
}
return ABSOLUTE_ROOT;
}
Context.prototype.P = resolveAbsolutePath;
/* eslint-disable @typescript-eslint/no-unused-vars */ /// <reference path="../shared/runtime-utils.ts" />
function readWebAssemblyAsResponse(path) {
const { createReadStream } = require('fs');
const { Readable } = require('stream');
const stream = createReadStream(path);
// @ts-ignore unfortunately there's a slight type mismatch with the stream.
return new Response(Readable.toWeb(stream), {
headers: {
'content-type': 'application/wasm'
}
});
}
async function compileWebAssemblyFromPath(path) {
const response = readWebAssemblyAsResponse(path);
return await WebAssembly.compileStreaming(response);
}
async function instantiateWebAssemblyFromPath(path, importsObj) {
const response = readWebAssemblyAsResponse(path);
const { instance } = await WebAssembly.instantiateStreaming(response, importsObj);
return instance.exports;
}
/* eslint-disable @typescript-eslint/no-unused-vars */ /// <reference path="../shared/runtime-utils.ts" />
/// <reference path="../shared-node/base-externals-utils.ts" />
/// <reference path="../shared-node/node-externals-utils.ts" />
/// <reference path="../shared-node/node-wasm-utils.ts" />
var SourceType = /*#__PURE__*/ function(SourceType) {
/**
* The module was instantiated because it was included in an evaluated chunk's
* runtime.
* SourceData is a ChunkPath.
*/ SourceType[SourceType["Runtime"] = 0] = "Runtime";
/**
* The module was instantiated because a parent module imported it.
* SourceData is a ModuleId.
*/ SourceType[SourceType["Parent"] = 1] = "Parent";
return SourceType;
}(SourceType || {});
process.env.TURBOPACK = '1';
const nodeContextPrototype = Context.prototype;
const url = require('url');
const moduleFactories = new Map();
nodeContextPrototype.M = moduleFactories;
const moduleCache = Object.create(null);
nodeContextPrototype.c = moduleCache;
/**
* Returns an absolute path to the given module's id.
*/ function resolvePathFromModule(moduleId) {
const exported = this.r(moduleId);
const exportedPath = exported?.default ?? exported;
if (typeof exportedPath !== 'string') {
return exported;
}
const strippedAssetPrefix = exportedPath.slice(ASSET_PREFIX.length);
const resolved = path.resolve(RUNTIME_ROOT, strippedAssetPrefix);
return url.pathToFileURL(resolved).href;
}
nodeContextPrototype.R = resolvePathFromModule;
function loadRuntimeChunk(sourcePath, chunkData) {
if (typeof chunkData === 'string') {
loadRuntimeChunkPath(sourcePath, chunkData);
} else {
loadRuntimeChunkPath(sourcePath, chunkData.path);
}
}
const loadedChunks = new Set();
const unsupportedLoadChunk = Promise.resolve(undefined);
const loadedChunk = Promise.resolve(undefined);
const chunkCache = new Map();
function clearChunkCache() {
chunkCache.clear();
}
function loadRuntimeChunkPath(sourcePath, chunkPath) {
if (!isJs(chunkPath)) {
// We only support loading JS chunks in Node.js.
// This branch can be hit when trying to load a CSS chunk.
return;
}
if (loadedChunks.has(chunkPath)) {
return;
}
try {
const resolved = path.resolve(RUNTIME_ROOT, chunkPath);
const chunkModules = require(resolved);
installCompressedModuleFactories(chunkModules, 0, moduleFactories);
loadedChunks.add(chunkPath);
} catch (e) {
let errorMessage = `Failed to load chunk ${chunkPath}`;
if (sourcePath) {
errorMessage += ` from runtime for chunk ${sourcePath}`;
}
throw new Error(errorMessage, {
cause: e
});
}
}
function loadChunkAsync(chunkData) {
const chunkPath = typeof chunkData === 'string' ? chunkData : chunkData.path;
if (!isJs(chunkPath)) {
// We only support loading JS chunks in Node.js.
// This branch can be hit when trying to load a CSS chunk.
return unsupportedLoadChunk;
}
let entry = chunkCache.get(chunkPath);
if (entry === undefined) {
try {
// resolve to an absolute path to simplify `require` handling
const resolved = path.resolve(RUNTIME_ROOT, chunkPath);
// TODO: consider switching to `import()` to enable concurrent chunk loading and async file io
// However this is incompatible with hot reloading (since `import` doesn't use the require cache)
const chunkModules = require(resolved);
installCompressedModuleFactories(chunkModules, 0, moduleFactories);
entry = loadedChunk;
} catch (e) {
const errorMessage = `Failed to load chunk ${chunkPath} from module ${this.m.id}`;
// Cache the failure promise, future requests will also get this same rejection
entry = Promise.reject(new Error(errorMessage, {
cause: e
}));
}
chunkCache.set(chunkPath, entry);
}
// TODO: Return an instrumented Promise that React can use instead of relying on referential equality.
return entry;
}
contextPrototype.l = loadChunkAsync;
function loadChunkAsyncByUrl(chunkUrl) {
const path1 = url.fileURLToPath(new URL(chunkUrl, RUNTIME_ROOT));
return loadChunkAsync.call(this, path1);
}
contextPrototype.L = loadChunkAsyncByUrl;
function loadWebAssembly(chunkPath, _edgeModule, imports) {
const resolved = path.resolve(RUNTIME_ROOT, chunkPath);
return instantiateWebAssemblyFromPath(resolved, imports);
}
contextPrototype.w = loadWebAssembly;
function loadWebAssemblyModule(chunkPath, _edgeModule) {
const resolved = path.resolve(RUNTIME_ROOT, chunkPath);
return compileWebAssemblyFromPath(resolved);
}
contextPrototype.u = loadWebAssemblyModule;
function getWorkerBlobURL(_chunks) {
throw new Error('Worker blobs are not implemented yet for Node.js');
}
nodeContextPrototype.b = getWorkerBlobURL;
function instantiateModule(id, sourceType, sourceData) {
const moduleFactory = moduleFactories.get(id);
if (typeof moduleFactory !== 'function') {
// This can happen if modules incorrectly handle HMR disposes/updates,
// e.g. when they keep a `setTimeout` around which still executes old code
// and contains e.g. a `require("something")` call.
let instantiationReason;
switch(sourceType){
case 0:
instantiationReason = `as a runtime entry of chunk ${sourceData}`;
break;
case 1:
instantiationReason = `because it was required from module ${sourceData}`;
break;
default:
invariant(sourceType, (sourceType)=>`Unknown source type: ${sourceType}`);
}
throw new Error(`Module ${id} was instantiated ${instantiationReason}, but the module factory is not available.`);
}
const module1 = createModuleObject(id);
const exports = module1.exports;
moduleCache[id] = module1;
const context = new Context(module1, exports);
// NOTE(alexkirsz) This can fail when the module encounters a runtime error.
try {
moduleFactory(context, module1, exports);
} catch (error) {
module1.error = error;
throw error;
}
module1.loaded = true;
if (module1.namespaceObject && module1.exports !== module1.namespaceObject) {
// in case of a circular dependency: cjs1 -> esm2 -> cjs1
interopEsm(module1.exports, module1.namespaceObject);
}
return module1;
}
/**
* Retrieves a module from the cache, or instantiate it if it is not cached.
*/ // @ts-ignore
function getOrInstantiateModuleFromParent(id, sourceModule) {
const module1 = moduleCache[id];
if (module1) {
if (module1.error) {
throw module1.error;
}
return module1;
}
return instantiateModule(id, 1, sourceModule.id);
}
/**
* Instantiates a runtime module.
*/ function instantiateRuntimeModule(chunkPath, moduleId) {
return instantiateModule(moduleId, 0, chunkPath);
}
/**
* Retrieves a module from the cache, or instantiate it as a runtime module if it is not cached.
*/ // @ts-ignore TypeScript doesn't separate this module space from the browser runtime
function getOrInstantiateRuntimeModule(chunkPath, moduleId) {
const module1 = moduleCache[moduleId];
if (module1) {
if (module1.error) {
throw module1.error;
}
return module1;
}
return instantiateRuntimeModule(chunkPath, moduleId);
}
const regexJsUrl = /\.js(?:\?[^#]*)?(?:#.*)?$/;
/**
* Checks if a given path/URL ends with .js, optionally followed by ?query or #fragment.
*/ function isJs(chunkUrlOrPath) {
return regexJsUrl.test(chunkUrlOrPath);
}
module.exports = (sourcePath)=>({
m: (id)=>getOrInstantiateRuntimeModule(sourcePath, id),
c: (chunkData)=>loadRuntimeChunk(sourcePath, chunkData)
});
//# sourceMappingURL=%5Bturbopack%5D_runtime.js.map
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
{"type": "commonjs"}
-6
View File
@@ -1,6 +0,0 @@
var R=require("./chunks/[turbopack]_runtime.js")("postcss.js")
R.c("chunks/[turbopack-node]_transforms_postcss_ts_b8ef3b2b._.js")
R.c("chunks/[root-of-the-server]__b44e5d07._.js")
R.m("[turbopack-node]/globals.ts [postcss] (ecmascript)")
R.m("[turbopack-node]/ipc/evaluate.ts/evaluate.js { INNER => \"[turbopack-node]/transforms/postcss.ts { CONFIG => \\\"[project]/Documents/go-new/chinese-family-tree/postcss.config.mjs [postcss] (ecmascript)\\\" } [postcss] (ecmascript)\", RUNTIME => \"[turbopack-node]/ipc/evaluate.ts [postcss] (ecmascript)\" } [postcss] (ecmascript)")
module.exports=R.m("[turbopack-node]/ipc/evaluate.ts/evaluate.js { INNER => \"[turbopack-node]/transforms/postcss.ts { CONFIG => \\\"[project]/Documents/go-new/chinese-family-tree/postcss.config.mjs [postcss] (ecmascript)\\\" } [postcss] (ecmascript)\", RUNTIME => \"[turbopack-node]/ipc/evaluate.ts [postcss] (ecmascript)\" } [postcss] (ecmascript)").exports
-5
View File
@@ -1,5 +0,0 @@
{
"version": 3,
"sources": [],
"sections": []
}
+1 -1
View File
@@ -1 +1 @@
{"previewModeId":"df0c28f6c249467c561bc25e71689e7b","previewModeSigningKey":"bddde3c40ce4638d09f7c56a3fdc83d02d52e600bb0f92baf908b211a6018a78","previewModeEncryptionKey":"62ff57dff349baabcb1e8057b174f631546df3df3b71c273c8ff524d273a650b","expireAt":1765690745124}
{"previewModeId":"ea7964c16eec6c9ee4e299f204a0ff70","previewModeSigningKey":"24de15c8709760f9e1f34f9fb8ddc539fe8105942633a3ae0c27984834add664","previewModeEncryptionKey":"a70f83da5fcf69c6b304251087bcb6325dc800254eddd4006a8884b2f2c6d7b2","expireAt":1767499210188}
+1 -1
View File
@@ -1 +1 @@
{"encryption.key":"vb0BvbCrWI5Uknxu5mz5ngYKzYPue+9+OY1SB0ojj2Q=","encryption.expire_at":1765690745112}
{"encryption.key":"Km6ocjWH8+67quJFu62HB8kYa21Nj6aOU+U5It/qg4A=","encryption.expire_at":1767499210177}
+1 -1
View File
File diff suppressed because one or more lines are too long
-6
View File
@@ -1,6 +0,0 @@
{
"version": 1,
"hasExportPathMap": false,
"exportTrailingSlash": false,
"isNextImageImported": false
}
-12
View File
@@ -1,12 +0,0 @@
{
"pages": {
"/_app": []
},
"devFiles": [],
"polyfillFiles": [],
"lowPriorityFiles": [
"static/WbYR2XE95Gc5XXVQ7W0XS/_ssgManifest.js",
"static/WbYR2XE95Gc5XXVQ7W0XS/_buildManifest.js"
],
"rootMainFiles": []
}
-69
View File
@@ -1,69 +0,0 @@
{
"version": 1,
"images": {
"deviceSizes": [
640,
750,
828,
1080,
1200,
1920
],
"imageSizes": [
16,
32,
48,
64,
96,
128,
256
],
"path": "/_next/image",
"loader": "default",
"loaderFile": "",
"domains": [],
"disableStaticImages": false,
"minimumCacheTTL": 14400,
"formats": [
"image/avif",
"image/webp"
],
"maximumRedirects": 3,
"dangerouslyAllowLocalIP": false,
"dangerouslyAllowSVG": false,
"contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;",
"contentDispositionType": "attachment",
"localPatterns": [
{
"pathname": "^(?:(?!(?:^|\\/)\\.{1,2}(?:\\/|$))(?:(?:(?!(?:^|\\/)\\.{1,2}(?:\\/|$)).)*?)\\/?)$",
"search": ""
}
],
"remotePatterns": [
{
"protocol": "https",
"hostname": "^(?:(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)\\/?)$",
"pathname": "^(?:(?!(?:^|\\/)\\.{1,2}(?:\\/|$))(?:(?:(?!(?:^|\\/)\\.{1,2}(?:\\/|$)).)*?)\\/?)$"
}
],
"qualities": [
75
],
"unoptimized": false,
"sizes": [
640,
750,
828,
1080,
1200,
1920,
16,
32,
48,
64,
96,
128,
256
]
}
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-363
View File
@@ -1,363 +0,0 @@
{
"version": 4,
"routes": {
"/_global-error": {
"experimentalBypassFor": [
{
"type": "header",
"key": "next-action"
},
{
"type": "header",
"key": "content-type",
"value": "multipart/form-data;.*"
}
],
"initialRevalidateSeconds": false,
"srcRoute": "/_global-error",
"dataRoute": "/_global-error.rsc",
"prefetchDataRoute": null,
"allowHeader": [
"host",
"x-matched-path",
"x-prerender-revalidate",
"x-prerender-revalidate-if-generated",
"x-next-revalidated-tags",
"x-next-revalidate-tag-token"
]
},
"/_not-found": {
"initialStatus": 404,
"experimentalBypassFor": [
{
"type": "header",
"key": "next-action"
},
{
"type": "header",
"key": "content-type",
"value": "multipart/form-data;.*"
}
],
"initialRevalidateSeconds": false,
"srcRoute": "/_not-found",
"dataRoute": "/_not-found.rsc",
"prefetchDataRoute": null,
"allowHeader": [
"host",
"x-matched-path",
"x-prerender-revalidate",
"x-prerender-revalidate-if-generated",
"x-next-revalidated-tags",
"x-next-revalidate-tag-token"
]
},
"/admin": {
"experimentalBypassFor": [
{
"type": "header",
"key": "next-action"
},
{
"type": "header",
"key": "content-type",
"value": "multipart/form-data;.*"
}
],
"initialRevalidateSeconds": false,
"srcRoute": "/admin",
"dataRoute": "/admin.rsc",
"prefetchDataRoute": null,
"allowHeader": [
"host",
"x-matched-path",
"x-prerender-revalidate",
"x-prerender-revalidate-if-generated",
"x-next-revalidated-tags",
"x-next-revalidate-tag-token"
]
},
"/auth/register": {
"experimentalBypassFor": [
{
"type": "header",
"key": "next-action"
},
{
"type": "header",
"key": "content-type",
"value": "multipart/form-data;.*"
}
],
"initialRevalidateSeconds": false,
"srcRoute": "/auth/register",
"dataRoute": "/auth/register.rsc",
"prefetchDataRoute": null,
"allowHeader": [
"host",
"x-matched-path",
"x-prerender-revalidate",
"x-prerender-revalidate-if-generated",
"x-next-revalidated-tags",
"x-next-revalidate-tag-token"
]
},
"/auth/signin": {
"experimentalBypassFor": [
{
"type": "header",
"key": "next-action"
},
{
"type": "header",
"key": "content-type",
"value": "multipart/form-data;.*"
}
],
"initialRevalidateSeconds": false,
"srcRoute": "/auth/signin",
"dataRoute": "/auth/signin.rsc",
"prefetchDataRoute": null,
"allowHeader": [
"host",
"x-matched-path",
"x-prerender-revalidate",
"x-prerender-revalidate-if-generated",
"x-next-revalidated-tags",
"x-next-revalidate-tag-token"
]
},
"/help": {
"experimentalBypassFor": [
{
"type": "header",
"key": "next-action"
},
{
"type": "header",
"key": "content-type",
"value": "multipart/form-data;.*"
}
],
"initialRevalidateSeconds": false,
"srcRoute": "/help",
"dataRoute": "/help.rsc",
"prefetchDataRoute": null,
"allowHeader": [
"host",
"x-matched-path",
"x-prerender-revalidate",
"x-prerender-revalidate-if-generated",
"x-next-revalidated-tags",
"x-next-revalidate-tag-token"
]
},
"/members/new": {
"experimentalBypassFor": [
{
"type": "header",
"key": "next-action"
},
{
"type": "header",
"key": "content-type",
"value": "multipart/form-data;.*"
}
],
"initialRevalidateSeconds": false,
"srcRoute": "/members/new",
"dataRoute": "/members/new.rsc",
"prefetchDataRoute": null,
"allowHeader": [
"host",
"x-matched-path",
"x-prerender-revalidate",
"x-prerender-revalidate-if-generated",
"x-next-revalidated-tags",
"x-next-revalidate-tag-token"
]
},
"/members": {
"experimentalBypassFor": [
{
"type": "header",
"key": "next-action"
},
{
"type": "header",
"key": "content-type",
"value": "multipart/form-data;.*"
}
],
"initialRevalidateSeconds": false,
"srcRoute": "/members",
"dataRoute": "/members.rsc",
"prefetchDataRoute": null,
"allowHeader": [
"host",
"x-matched-path",
"x-prerender-revalidate",
"x-prerender-revalidate-if-generated",
"x-next-revalidated-tags",
"x-next-revalidate-tag-token"
]
},
"/": {
"experimentalBypassFor": [
{
"type": "header",
"key": "next-action"
},
{
"type": "header",
"key": "content-type",
"value": "multipart/form-data;.*"
}
],
"initialRevalidateSeconds": false,
"srcRoute": "/",
"dataRoute": "/index.rsc",
"prefetchDataRoute": null,
"allowHeader": [
"host",
"x-matched-path",
"x-prerender-revalidate",
"x-prerender-revalidate-if-generated",
"x-next-revalidated-tags",
"x-next-revalidate-tag-token"
]
},
"/relationship": {
"experimentalBypassFor": [
{
"type": "header",
"key": "next-action"
},
{
"type": "header",
"key": "content-type",
"value": "multipart/form-data;.*"
}
],
"initialRevalidateSeconds": false,
"srcRoute": "/relationship",
"dataRoute": "/relationship.rsc",
"prefetchDataRoute": null,
"allowHeader": [
"host",
"x-matched-path",
"x-prerender-revalidate",
"x-prerender-revalidate-if-generated",
"x-next-revalidated-tags",
"x-next-revalidate-tag-token"
]
},
"/settings": {
"experimentalBypassFor": [
{
"type": "header",
"key": "next-action"
},
{
"type": "header",
"key": "content-type",
"value": "multipart/form-data;.*"
}
],
"initialRevalidateSeconds": false,
"srcRoute": "/settings",
"dataRoute": "/settings.rsc",
"prefetchDataRoute": null,
"allowHeader": [
"host",
"x-matched-path",
"x-prerender-revalidate",
"x-prerender-revalidate-if-generated",
"x-next-revalidated-tags",
"x-next-revalidate-tag-token"
]
},
"/timeline": {
"experimentalBypassFor": [
{
"type": "header",
"key": "next-action"
},
{
"type": "header",
"key": "content-type",
"value": "multipart/form-data;.*"
}
],
"initialRevalidateSeconds": false,
"srcRoute": "/timeline",
"dataRoute": "/timeline.rsc",
"prefetchDataRoute": null,
"allowHeader": [
"host",
"x-matched-path",
"x-prerender-revalidate",
"x-prerender-revalidate-if-generated",
"x-next-revalidated-tags",
"x-next-revalidate-tag-token"
]
},
"/tree": {
"experimentalBypassFor": [
{
"type": "header",
"key": "next-action"
},
{
"type": "header",
"key": "content-type",
"value": "multipart/form-data;.*"
}
],
"initialRevalidateSeconds": false,
"srcRoute": "/tree",
"dataRoute": "/tree.rsc",
"prefetchDataRoute": null,
"allowHeader": [
"host",
"x-matched-path",
"x-prerender-revalidate",
"x-prerender-revalidate-if-generated",
"x-next-revalidated-tags",
"x-next-revalidate-tag-token"
]
},
"/trees/new": {
"experimentalBypassFor": [
{
"type": "header",
"key": "next-action"
},
{
"type": "header",
"key": "content-type",
"value": "multipart/form-data;.*"
}
],
"initialRevalidateSeconds": false,
"srcRoute": "/trees/new",
"dataRoute": "/trees/new.rsc",
"prefetchDataRoute": null,
"allowHeader": [
"host",
"x-matched-path",
"x-prerender-revalidate",
"x-prerender-revalidate-if-generated",
"x-next-revalidated-tags",
"x-next-revalidate-tag-token"
]
}
},
"dynamicRoutes": {},
"notFoundRoutes": [],
"preview": {
"previewModeId": "df0c28f6c249467c561bc25e71689e7b",
"previewModeSigningKey": "bddde3c40ce4638d09f7c56a3fdc83d02d52e600bb0f92baf908b211a6018a78",
"previewModeEncryptionKey": "62ff57dff349baabcb1e8057b174f631546df3df3b71c273c8ff524d273a650b"
}
}
-330
View File
@@ -1,330 +0,0 @@
{
"version": 1,
"config": {
"env": {},
"webpack": null,
"typescript": {
"ignoreBuildErrors": false
},
"typedRoutes": false,
"distDir": ".next",
"cleanDistDir": true,
"assetPrefix": "/",
"cacheMaxMemorySize": 52428800,
"configOrigin": "next.config.mjs",
"useFileSystemPublicRoutes": true,
"generateEtags": true,
"pageExtensions": [
"tsx",
"ts",
"jsx",
"js"
],
"poweredByHeader": false,
"compress": true,
"images": {
"deviceSizes": [
640,
750,
828,
1080,
1200,
1920
],
"imageSizes": [
16,
32,
48,
64,
96,
128,
256
],
"path": "/_next/image",
"loader": "default",
"loaderFile": "",
"domains": [],
"disableStaticImages": false,
"minimumCacheTTL": 14400,
"formats": [
"image/avif",
"image/webp"
],
"maximumRedirects": 3,
"dangerouslyAllowLocalIP": false,
"dangerouslyAllowSVG": false,
"contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;",
"contentDispositionType": "attachment",
"localPatterns": [
{
"pathname": "**",
"search": ""
}
],
"remotePatterns": [
{
"protocol": "https",
"hostname": "**"
}
],
"qualities": [
75
],
"unoptimized": false
},
"devIndicators": {
"position": "bottom-left"
},
"onDemandEntries": {
"maxInactiveAge": 60000,
"pagesBufferLength": 5
},
"basePath": "",
"sassOptions": {},
"trailingSlash": false,
"i18n": null,
"productionBrowserSourceMaps": false,
"excludeDefaultMomentLocales": true,
"reactProductionProfiling": false,
"reactStrictMode": null,
"reactMaxHeadersLength": 6000,
"httpAgentOptions": {
"keepAlive": true
},
"logging": {},
"compiler": {
"removeConsole": {
"exclude": [
"error",
"warn"
]
}
},
"expireTime": 31536000,
"staticPageGenerationTimeout": 120,
"modularizeImports": {
"@mui/icons-material": {
"transform": "@mui/icons-material/{{member}}"
},
"lodash": {
"transform": "lodash/{{member}}"
}
},
"outputFileTracingRoot": "/Users/freedak",
"cacheComponents": false,
"cacheLife": {
"default": {
"stale": 300,
"revalidate": 900,
"expire": 4294967294
},
"seconds": {
"stale": 30,
"revalidate": 1,
"expire": 60
},
"minutes": {
"stale": 300,
"revalidate": 60,
"expire": 3600
},
"hours": {
"stale": 300,
"revalidate": 3600,
"expire": 86400
},
"days": {
"stale": 300,
"revalidate": 86400,
"expire": 604800
},
"weeks": {
"stale": 300,
"revalidate": 604800,
"expire": 2592000
},
"max": {
"stale": 300,
"revalidate": 2592000,
"expire": 31536000
}
},
"cacheHandlers": {},
"experimental": {
"useSkewCookie": false,
"cssChunking": true,
"multiZoneDraftMode": false,
"appNavFailHandling": false,
"prerenderEarlyExit": true,
"serverMinification": true,
"serverSourceMaps": false,
"linkNoTouchStart": false,
"caseSensitiveRoutes": false,
"dynamicOnHover": false,
"preloadEntriesOnStart": true,
"clientRouterFilter": true,
"clientRouterFilterRedirects": false,
"fetchCacheKeyPrefix": "",
"proxyPrefetch": "flexible",
"optimisticClientCache": true,
"manualClientBasePath": false,
"cpus": 9,
"memoryBasedWorkersCount": false,
"imgOptConcurrency": null,
"imgOptTimeoutInSeconds": 7,
"imgOptMaxInputPixels": 268402689,
"imgOptSequentialRead": null,
"imgOptSkipMetadata": null,
"isrFlushToDisk": true,
"workerThreads": false,
"optimizeCss": false,
"nextScriptWorkers": false,
"scrollRestoration": false,
"externalDir": false,
"disableOptimizedLoading": false,
"gzipSize": true,
"craCompat": false,
"esmExternals": true,
"fullySpecified": false,
"swcTraceProfiling": false,
"forceSwcTransforms": false,
"largePageDataBytes": 128000,
"typedEnv": false,
"parallelServerCompiles": false,
"parallelServerBuildTraces": false,
"ppr": false,
"authInterrupts": false,
"webpackMemoryOptimizations": false,
"optimizeServerReact": true,
"viewTransition": false,
"removeUncaughtErrorAndRejectionListeners": false,
"validateRSCRequestHeaders": false,
"staleTimes": {
"dynamic": 0,
"static": 300
},
"reactDebugChannel": false,
"serverComponentsHmrCache": true,
"staticGenerationMaxConcurrency": 8,
"staticGenerationMinPagesPerWorker": 25,
"inlineCss": false,
"useCache": false,
"globalNotFound": false,
"browserDebugInfoInTerminal": false,
"lockDistDir": true,
"isolatedDevBuild": true,
"proxyClientMaxBodySize": 10485760,
"hideLogsAfterAbort": false,
"mcpServer": true,
"optimizePackageImports": [
"lucide-react",
"@radix-ui/react-icons",
"date-fns",
"d3",
"echarts",
"recharts",
"lodash-es",
"ramda",
"antd",
"react-bootstrap",
"ahooks",
"@ant-design/icons",
"@headlessui/react",
"@headlessui-float/react",
"@heroicons/react/20/solid",
"@heroicons/react/24/solid",
"@heroicons/react/24/outline",
"@visx/visx",
"@tremor/react",
"rxjs",
"@mui/material",
"@mui/icons-material",
"react-use",
"effect",
"@effect/schema",
"@effect/platform",
"@effect/platform-node",
"@effect/platform-browser",
"@effect/platform-bun",
"@effect/sql",
"@effect/sql-mssql",
"@effect/sql-mysql2",
"@effect/sql-pg",
"@effect/sql-sqlite-node",
"@effect/sql-sqlite-bun",
"@effect/sql-sqlite-wasm",
"@effect/sql-sqlite-react-native",
"@effect/rpc",
"@effect/rpc-http",
"@effect/typeclass",
"@effect/experimental",
"@effect/opentelemetry",
"@material-ui/core",
"@material-ui/icons",
"@tabler/icons-react",
"mui-core",
"react-icons/ai",
"react-icons/bi",
"react-icons/bs",
"react-icons/cg",
"react-icons/ci",
"react-icons/di",
"react-icons/fa",
"react-icons/fa6",
"react-icons/fc",
"react-icons/fi",
"react-icons/gi",
"react-icons/go",
"react-icons/gr",
"react-icons/hi",
"react-icons/hi2",
"react-icons/im",
"react-icons/io",
"react-icons/io5",
"react-icons/lia",
"react-icons/lib",
"react-icons/lu",
"react-icons/md",
"react-icons/pi",
"react-icons/ri",
"react-icons/rx",
"react-icons/si",
"react-icons/sl",
"react-icons/tb",
"react-icons/tfi",
"react-icons/ti",
"react-icons/vsc",
"react-icons/wi"
],
"trustHostHeader": false,
"isExperimentalCompile": false
},
"htmlLimitedBots": "[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight",
"bundlePagesRouterDependencies": false,
"configFileName": "next.config.mjs",
"turbopack": {
"root": "/Users/freedak"
},
"distDirRoot": ".next"
},
"appDir": "/Users/freedak/Documents/go-new/chinese-family-tree",
"relativeAppDir": "Documents/go-new/chinese-family-tree",
"files": [
".next/routes-manifest.json",
".next/server/pages-manifest.json",
".next/build-manifest.json",
".next/prerender-manifest.json",
".next/server/functions-config-manifest.json",
".next/server/middleware-manifest.json",
".next/server/middleware-build-manifest.js",
".next/server/app-paths-manifest.json",
".next/app-path-routes-manifest.json",
".next/server/server-reference-manifest.js",
".next/server/server-reference-manifest.json",
".next/BUILD_ID",
".next/server/next-font-manifest.js",
".next/server/next-font-manifest.json",
".next/required-server-files.json"
],
"ignore": []
}
-289
View File
@@ -1,289 +0,0 @@
{
"version": 3,
"pages404": true,
"caseSensitive": false,
"basePath": "",
"redirects": [
{
"source": "/:path+/",
"destination": "/:path+",
"internal": true,
"priority": true,
"statusCode": 308,
"regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"
}
],
"headers": [],
"rewrites": {
"beforeFiles": [],
"afterFiles": [],
"fallback": []
},
"dynamicRoutes": [
{
"page": "/api/admin/users/[userId]",
"regex": "^/api/admin/users/([^/]+?)(?:/)?$",
"routeKeys": {
"nxtPuserId": "nxtPuserId"
},
"namedRegex": "^/api/admin/users/(?<nxtPuserId>[^/]+?)(?:/)?$"
},
{
"page": "/api/auth/[...nextauth]",
"regex": "^/api/auth/(.+?)(?:/)?$",
"routeKeys": {
"nxtPnextauth": "nxtPnextauth"
},
"namedRegex": "^/api/auth/(?<nxtPnextauth>.+?)(?:/)?$"
},
{
"page": "/api/trees/[treeId]",
"regex": "^/api/trees/([^/]+?)(?:/)?$",
"routeKeys": {
"nxtPtreeId": "nxtPtreeId"
},
"namedRegex": "^/api/trees/(?<nxtPtreeId>[^/]+?)(?:/)?$"
},
{
"page": "/api/trees/[treeId]/activity-logs",
"regex": "^/api/trees/([^/]+?)/activity\\-logs(?:/)?$",
"routeKeys": {
"nxtPtreeId": "nxtPtreeId"
},
"namedRegex": "^/api/trees/(?<nxtPtreeId>[^/]+?)/activity\\-logs(?:/)?$"
},
{
"page": "/api/trees/[treeId]/collaborators",
"regex": "^/api/trees/([^/]+?)/collaborators(?:/)?$",
"routeKeys": {
"nxtPtreeId": "nxtPtreeId"
},
"namedRegex": "^/api/trees/(?<nxtPtreeId>[^/]+?)/collaborators(?:/)?$"
},
{
"page": "/api/trees/[treeId]/import",
"regex": "^/api/trees/([^/]+?)/import(?:/)?$",
"routeKeys": {
"nxtPtreeId": "nxtPtreeId"
},
"namedRegex": "^/api/trees/(?<nxtPtreeId>[^/]+?)/import(?:/)?$"
},
{
"page": "/api/trees/[treeId]/invite",
"regex": "^/api/trees/([^/]+?)/invite(?:/)?$",
"routeKeys": {
"nxtPtreeId": "nxtPtreeId"
},
"namedRegex": "^/api/trees/(?<nxtPtreeId>[^/]+?)/invite(?:/)?$"
},
{
"page": "/api/trees/[treeId]/members",
"regex": "^/api/trees/([^/]+?)/members(?:/)?$",
"routeKeys": {
"nxtPtreeId": "nxtPtreeId"
},
"namedRegex": "^/api/trees/(?<nxtPtreeId>[^/]+?)/members(?:/)?$"
},
{
"page": "/api/trees/[treeId]/members/[memberId]",
"regex": "^/api/trees/([^/]+?)/members/([^/]+?)(?:/)?$",
"routeKeys": {
"nxtPtreeId": "nxtPtreeId",
"nxtPmemberId": "nxtPmemberId"
},
"namedRegex": "^/api/trees/(?<nxtPtreeId>[^/]+?)/members/(?<nxtPmemberId>[^/]+?)(?:/)?$"
},
{
"page": "/api/trees/[treeId]/members/[memberId]/history",
"regex": "^/api/trees/([^/]+?)/members/([^/]+?)/history(?:/)?$",
"routeKeys": {
"nxtPtreeId": "nxtPtreeId",
"nxtPmemberId": "nxtPmemberId"
},
"namedRegex": "^/api/trees/(?<nxtPtreeId>[^/]+?)/members/(?<nxtPmemberId>[^/]+?)/history(?:/)?$"
},
{
"page": "/api/trees/[treeId]/relationship",
"regex": "^/api/trees/([^/]+?)/relationship(?:/)?$",
"routeKeys": {
"nxtPtreeId": "nxtPtreeId"
},
"namedRegex": "^/api/trees/(?<nxtPtreeId>[^/]+?)/relationship(?:/)?$"
},
{
"page": "/members/[id]",
"regex": "^/members/([^/]+?)(?:/)?$",
"routeKeys": {
"nxtPid": "nxtPid"
},
"namedRegex": "^/members/(?<nxtPid>[^/]+?)(?:/)?$"
},
{
"page": "/uploads/[filename]",
"regex": "^/uploads/([^/]+?)(?:/)?$",
"routeKeys": {
"nxtPfilename": "nxtPfilename"
},
"namedRegex": "^/uploads/(?<nxtPfilename>[^/]+?)(?:/)?$"
}
],
"staticRoutes": [
{
"page": "/",
"regex": "^/(?:/)?$",
"routeKeys": {},
"namedRegex": "^/(?:/)?$"
},
{
"page": "/_global-error",
"regex": "^/_global\\-error(?:/)?$",
"routeKeys": {},
"namedRegex": "^/_global\\-error(?:/)?$"
},
{
"page": "/_not-found",
"regex": "^/_not\\-found(?:/)?$",
"routeKeys": {},
"namedRegex": "^/_not\\-found(?:/)?$"
},
{
"page": "/admin",
"regex": "^/admin(?:/)?$",
"routeKeys": {},
"namedRegex": "^/admin(?:/)?$"
},
{
"page": "/api/admin/login-logs",
"regex": "^/api/admin/login\\-logs(?:/)?$",
"routeKeys": {},
"namedRegex": "^/api/admin/login\\-logs(?:/)?$"
},
{
"page": "/api/admin/users",
"regex": "^/api/admin/users(?:/)?$",
"routeKeys": {},
"namedRegex": "^/api/admin/users(?:/)?$"
},
{
"page": "/api/auth/register",
"regex": "^/api/auth/register(?:/)?$",
"routeKeys": {},
"namedRegex": "^/api/auth/register(?:/)?$"
},
{
"page": "/api/trees",
"regex": "^/api/trees(?:/)?$",
"routeKeys": {},
"namedRegex": "^/api/trees(?:/)?$"
},
{
"page": "/api/upload",
"regex": "^/api/upload(?:/)?$",
"routeKeys": {},
"namedRegex": "^/api/upload(?:/)?$"
},
{
"page": "/api/user/activity-logs",
"regex": "^/api/user/activity\\-logs(?:/)?$",
"routeKeys": {},
"namedRegex": "^/api/user/activity\\-logs(?:/)?$"
},
{
"page": "/api/user/change-password",
"regex": "^/api/user/change\\-password(?:/)?$",
"routeKeys": {},
"namedRegex": "^/api/user/change\\-password(?:/)?$"
},
{
"page": "/api/user/profile",
"regex": "^/api/user/profile(?:/)?$",
"routeKeys": {},
"namedRegex": "^/api/user/profile(?:/)?$"
},
{
"page": "/api/users/me/seen-help",
"regex": "^/api/users/me/seen\\-help(?:/)?$",
"routeKeys": {},
"namedRegex": "^/api/users/me/seen\\-help(?:/)?$"
},
{
"page": "/auth/register",
"regex": "^/auth/register(?:/)?$",
"routeKeys": {},
"namedRegex": "^/auth/register(?:/)?$"
},
{
"page": "/auth/signin",
"regex": "^/auth/signin(?:/)?$",
"routeKeys": {},
"namedRegex": "^/auth/signin(?:/)?$"
},
{
"page": "/help",
"regex": "^/help(?:/)?$",
"routeKeys": {},
"namedRegex": "^/help(?:/)?$"
},
{
"page": "/members",
"regex": "^/members(?:/)?$",
"routeKeys": {},
"namedRegex": "^/members(?:/)?$"
},
{
"page": "/members/new",
"regex": "^/members/new(?:/)?$",
"routeKeys": {},
"namedRegex": "^/members/new(?:/)?$"
},
{
"page": "/relationship",
"regex": "^/relationship(?:/)?$",
"routeKeys": {},
"namedRegex": "^/relationship(?:/)?$"
},
{
"page": "/settings",
"regex": "^/settings(?:/)?$",
"routeKeys": {},
"namedRegex": "^/settings(?:/)?$"
},
{
"page": "/timeline",
"regex": "^/timeline(?:/)?$",
"routeKeys": {},
"namedRegex": "^/timeline(?:/)?$"
},
{
"page": "/tree",
"regex": "^/tree(?:/)?$",
"routeKeys": {},
"namedRegex": "^/tree(?:/)?$"
},
{
"page": "/trees/new",
"regex": "^/trees/new(?:/)?$",
"routeKeys": {},
"namedRegex": "^/trees/new(?:/)?$"
}
],
"dataRoutes": [],
"rsc": {
"header": "rsc",
"varyHeader": "rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch",
"prefetchHeader": "next-router-prefetch",
"didPostponeHeader": "x-nextjs-postponed",
"contentTypeHeader": "text/x-component",
"suffix": ".rsc",
"prefetchSuffix": ".prefetch.rsc",
"prefetchSegmentHeader": "next-router-segment-prefetch",
"prefetchSegmentSuffix": ".segment.rsc",
"prefetchSegmentDirSuffix": ".segments",
"clientParamParsing": false,
"dynamicRSCPrerender": false
},
"rewriteHeaders": {
"pathHeader": "x-nextjs-rewritten-path",
"queryHeader": "x-nextjs-rewritten-query"
}
}
-38
View File
@@ -1,38 +0,0 @@
{
"/_global-error/page": "app/_global-error/page.js",
"/_not-found/page": "app/_not-found/page.js",
"/admin/page": "app/admin/page.js",
"/api/admin/login-logs/route": "app/api/admin/login-logs/route.js",
"/api/admin/users/[userId]/route": "app/api/admin/users/[userId]/route.js",
"/api/admin/users/route": "app/api/admin/users/route.js",
"/api/auth/[...nextauth]/route": "app/api/auth/[...nextauth]/route.js",
"/api/auth/register/route": "app/api/auth/register/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]/import/route": "app/api/trees/[treeId]/import/route.js",
"/api/trees/[treeId]/invite/route": "app/api/trees/[treeId]/invite/route.js",
"/api/trees/[treeId]/members/[memberId]/history/route": "app/api/trees/[treeId]/members/[memberId]/history/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]/relationship/route": "app/api/trees/[treeId]/relationship/route.js",
"/api/trees/[treeId]/route": "app/api/trees/[treeId]/route.js",
"/api/trees/route": "app/api/trees/route.js",
"/api/upload/route": "app/api/upload/route.js",
"/api/user/activity-logs/route": "app/api/user/activity-logs/route.js",
"/api/user/change-password/route": "app/api/user/change-password/route.js",
"/api/user/profile/route": "app/api/user/profile/route.js",
"/api/users/me/seen-help/route": "app/api/users/me/seen-help/route.js",
"/auth/register/page": "app/auth/register/page.js",
"/auth/signin/page": "app/auth/signin/page.js",
"/help/page": "app/help/page.js",
"/members/[id]/page": "app/members/[id]/page.js",
"/members/new/page": "app/members/new/page.js",
"/members/page": "app/members/page.js",
"/page": "app/page.js",
"/relationship/page": "app/relationship/page.js",
"/settings/page": "app/settings/page.js",
"/timeline/page": "app/timeline/page.js",
"/tree/page": "app/tree/page.js",
"/trees/new/page": "app/trees/new/page.js",
"/uploads/[filename]/route": "app/uploads/[filename]/route.js"
}
-2
View File
@@ -1,2 +0,0 @@
<!DOCTYPE html><!--WbYR2XE95Gc5XXVQ7W0XS--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/c6c183fbdeff129e.js"/><script src="/_next/static/chunks/3af7c987a6c28caf.js" async=""></script><script src="/_next/static/chunks/9e02b7100d6e6270.js" async=""></script><script src="/_next/static/chunks/0eaa8682593f715a.js" async=""></script><script src="/_next/static/chunks/ca4429dea6d39825.js" async=""></script><script src="/_next/static/chunks/turbopack-23d2945b770f49d2.js" async=""></script><script src="/_next/static/chunks/8f17d8759a6e1b46.js" async=""></script><script src="/_next/static/chunks/b5f12f01a94627ac.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/c6c183fbdeff129e.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[66163,[\"/_next/static/chunks/8f17d8759a6e1b46.js\",\"/_next/static/chunks/b5f12f01a94627ac.js\"],\"default\"]\n3:I[65586,[\"/_next/static/chunks/8f17d8759a6e1b46.js\",\"/_next/static/chunks/b5f12f01a94627ac.js\"],\"default\"]\n4:I[98364,[\"/_next/static/chunks/8f17d8759a6e1b46.js\",\"/_next/static/chunks/b5f12f01a94627ac.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[98364,[\"/_next/static/chunks/8f17d8759a6e1b46.js\",\"/_next/static/chunks/b5f12f01a94627ac.js\"],\"ViewportBoundary\"]\n9:I[98364,[\"/_next/static/chunks/8f17d8759a6e1b46.js\",\"/_next/static/chunks/b5f12f01a94627ac.js\"],\"MetadataBoundary\"]\nb:I[95067,[\"/_next/static/chunks/8f17d8759a6e1b46.js\",\"/_next/static/chunks/b5f12f01a94627ac.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"WbYR2XE95Gc5XXVQ7W0XS\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/8f17d8759a6e1b46.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/b5f12f01a94627ac.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$@8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$@a\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"a:[]\n6:null\n"])</script></body></html>
-15
View File
@@ -1,15 +0,0 @@
{
"status": 500,
"headers": {
"x-nextjs-stale-time": "300",
"x-nextjs-prerender": "1",
"x-next-cache-tags": "_N_T_/layout,_N_T_/_global-error/layout,_N_T_/_global-error/page,_N_T_/_global-error"
},
"segmentPaths": [
"/_tree",
"/_full",
"/__PAGE__",
"/_index",
"/_head"
]
}
-12
View File
@@ -1,12 +0,0 @@
1:"$Sreact.fragment"
2:I[66163,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"default"]
3:I[65586,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"default"]
4:I[98364,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"OutletBoundary"]
5:"$Sreact.suspense"
7:I[98364,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"ViewportBoundary"]
9:I[98364,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"MetadataBoundary"]
b:I[95067,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"default"]
0:{"P":null,"b":"WbYR2XE95Gc5XXVQ7W0XS","c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":["$","title",null,{"children":"500: Internal Server Error."}]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"lineHeight":"48px"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","paddingRight":23,"fontSize":24,"fontWeight":500,"verticalAlign":"top"},"children":"500"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"28px"},"children":"Internal Server Error."}]}]]}]}]}]]}],[["$","script","script-0",{"src":"/_next/static/chunks/8f17d8759a6e1b46.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/b5f12f01a94627ac.js","async":true,"nonce":"$undefined"}]],["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true}
8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
a:[]
6:null
@@ -1,5 +0,0 @@
1:"$Sreact.fragment"
2:I[98364,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"OutletBoundary"]
3:"$Sreact.suspense"
0:{"buildId":"WbYR2XE95Gc5XXVQ7W0XS","rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":["$","title",null,{"children":"500: Internal Server Error."}]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"lineHeight":"48px"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","paddingRight":23,"fontSize":24,"fontWeight":500,"verticalAlign":"top"},"children":"500"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"28px"},"children":"Internal Server Error."}]}]]}]}]}]]}],[["$","script","script-0",{"src":"/_next/static/chunks/8f17d8759a6e1b46.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/b5f12f01a94627ac.js","async":true}]],["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false}
4:null
@@ -1,12 +0,0 @@
1:"$Sreact.fragment"
2:I[66163,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"default"]
3:I[65586,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"default"]
4:I[98364,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"OutletBoundary"]
5:"$Sreact.suspense"
7:I[98364,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"ViewportBoundary"]
9:I[98364,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"MetadataBoundary"]
b:I[95067,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"default"]
0:{"P":null,"b":"WbYR2XE95Gc5XXVQ7W0XS","c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":["$","title",null,{"children":"500: Internal Server Error."}]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"lineHeight":"48px"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","paddingRight":23,"fontSize":24,"fontWeight":500,"verticalAlign":"top"},"children":"500"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"28px"},"children":"Internal Server Error."}]}]]}]}]}]]}],[["$","script","script-0",{"src":"/_next/static/chunks/8f17d8759a6e1b46.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/b5f12f01a94627ac.js","async":true,"nonce":"$undefined"}]],["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true}
8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
a:[]
6:null
@@ -1,7 +0,0 @@
1:"$Sreact.fragment"
2:I[98364,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"ViewportBoundary"]
4:I[98364,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"MetadataBoundary"]
5:"$Sreact.suspense"
0:{"buildId":"WbYR2XE95Gc5XXVQ7W0XS","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false}
3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
6:[]
@@ -1,4 +0,0 @@
1:"$Sreact.fragment"
2:I[66163,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"default"]
3:I[65586,["/_next/static/chunks/8f17d8759a6e1b46.js","/_next/static/chunks/b5f12f01a94627ac.js"],"default"]
0:{"buildId":"WbYR2XE95Gc5XXVQ7W0XS","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}
@@ -1 +0,0 @@
0:{"buildId":"WbYR2XE95Gc5XXVQ7W0XS","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false},"staleTime":300}
-10
View File
@@ -1,10 +0,0 @@
var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/_global-error/page.js")
R.c("server/chunks/ssr/[root-of-the-server]__110f3bfe._.js")
R.c("server/chunks/ssr/4e98a_next_dist_e02de4fd._.js")
R.c("server/chunks/ssr/4e98a_next_dist_d41e4c12._.js")
R.c("server/chunks/ssr/[root-of-the-server]__aafd07b5._.js")
R.c("server/chunks/ssr/4e98a_next_dist_b8b99350._.js")
R.c("server/chunks/ssr/4e98a_next_dist_9ab1cb57._.js")
R.c("server/chunks/ssr/168ba__next-internal_server_app__global-error_page_actions_02dc3924.js")
R.m(89061)
module.exports=R.m(89061).exports
@@ -1,5 +0,0 @@
{
"version": 3,
"sources": [],
"sections": []
}
File diff suppressed because one or more lines are too long
@@ -1,3 +0,0 @@
{
"/_global-error/page": "app/_global-error/page.js"
}
@@ -1,18 +0,0 @@
{
"devFiles": [],
"ampDevFiles": [],
"polyfillFiles": [
"static/chunks/a6dad97d9634a72d.js"
],
"lowPriorityFiles": [],
"rootMainFiles": [
"static/chunks/c6c183fbdeff129e.js",
"static/chunks/3af7c987a6c28caf.js",
"static/chunks/9e02b7100d6e6270.js",
"static/chunks/0eaa8682593f715a.js",
"static/chunks/ca4429dea6d39825.js",
"static/chunks/turbopack-23d2945b770f49d2.js"
],
"pages": {},
"ampFirstPages": []
}
@@ -1,6 +0,0 @@
{
"pages": {},
"app": {},
"appUsingSizeAdjust": false,
"pagesUsingSizeAdjust": false
}
@@ -1 +0,0 @@
{}
@@ -1,4 +0,0 @@
{
"node": {},
"edge": {}
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-16
View File
@@ -1,16 +0,0 @@
{
"status": 404,
"headers": {
"x-nextjs-stale-time": "300",
"x-nextjs-prerender": "1",
"x-next-cache-tags": "_N_T_/layout,_N_T_/_not-found/layout,_N_T_/_not-found/page,_N_T_/_not-found"
},
"segmentPaths": [
"/_tree",
"/_full",
"/_not-found/__PAGE__",
"/_not-found",
"/_index",
"/_head"
]
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,8 +0,0 @@
1:"$Sreact.fragment"
2:I[98364,["/_next/static/chunks/5b09b31ddc8435aa.js","/_next/static/chunks/e445297c93c8d39f.js","/_next/static/chunks/b5f12f01a94627ac.js","/_next/static/chunks/dd79bb2655505ce5.js","/_next/static/chunks/e907ec4fcc8cd971.js"],"ViewportBoundary"]
4:I[98364,["/_next/static/chunks/5b09b31ddc8435aa.js","/_next/static/chunks/e445297c93c8d39f.js","/_next/static/chunks/b5f12f01a94627ac.js","/_next/static/chunks/dd79bb2655505ce5.js","/_next/static/chunks/e907ec4fcc8cd971.js"],"MetadataBoundary"]
5:"$Sreact.suspense"
7:I[91818,["/_next/static/chunks/5b09b31ddc8435aa.js","/_next/static/chunks/e445297c93c8d39f.js","/_next/static/chunks/b5f12f01a94627ac.js","/_next/static/chunks/dd79bb2655505ce5.js","/_next/static/chunks/e907ec4fcc8cd971.js"],"IconMark"]
0:{"buildId":"WbYR2XE95Gc5XXVQ7W0XS","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false}
3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
6:[["$","title","0",{"children":"华夏家谱 - 中国家族树管理系统"}],["$","meta","1",{"name":"description","content":"现代化的中国家族树管理系统,支持多用户协作、权限管理、数据导入导出等功能"}],["$","link","2",{"rel":"manifest","href":"/manifest.json"}],["$","meta","3",{"name":"generator","content":"v0.app"}],["$","meta","4",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","5",{"name":"apple-mobile-web-app-title","content":"华夏家谱"}],["$","meta","6",{"name":"apple-mobile-web-app-status-bar-style","content":"default"}],["$","link","7",{"rel":"icon","href":"/icon.svg","type":"image/svg+xml"}],["$","link","8",{"rel":"apple-touch-icon","href":"/icon.svg"}],["$","$L7","9",{}]]
@@ -1,10 +0,0 @@
1:"$Sreact.fragment"
2:I[21483,["/_next/static/chunks/5b09b31ddc8435aa.js","/_next/static/chunks/e445297c93c8d39f.js","/_next/static/chunks/b5f12f01a94627ac.js","/_next/static/chunks/dd79bb2655505ce5.js","/_next/static/chunks/e907ec4fcc8cd971.js"],"SessionProvider"]
3:I[75212,["/_next/static/chunks/5b09b31ddc8435aa.js","/_next/static/chunks/e445297c93c8d39f.js","/_next/static/chunks/b5f12f01a94627ac.js","/_next/static/chunks/dd79bb2655505ce5.js","/_next/static/chunks/e907ec4fcc8cd971.js"],"DialogProvider"]
4:I[92879,["/_next/static/chunks/5b09b31ddc8435aa.js","/_next/static/chunks/e445297c93c8d39f.js","/_next/static/chunks/b5f12f01a94627ac.js","/_next/static/chunks/dd79bb2655505ce5.js","/_next/static/chunks/e907ec4fcc8cd971.js"],"FamilyProvider"]
5:I[85367,["/_next/static/chunks/5b09b31ddc8435aa.js","/_next/static/chunks/e445297c93c8d39f.js","/_next/static/chunks/b5f12f01a94627ac.js","/_next/static/chunks/dd79bb2655505ce5.js","/_next/static/chunks/e907ec4fcc8cd971.js"],"PWAProvider"]
6:I[66163,["/_next/static/chunks/5b09b31ddc8435aa.js","/_next/static/chunks/e445297c93c8d39f.js","/_next/static/chunks/b5f12f01a94627ac.js","/_next/static/chunks/dd79bb2655505ce5.js","/_next/static/chunks/e907ec4fcc8cd971.js"],"default"]
7:I[65586,["/_next/static/chunks/5b09b31ddc8435aa.js","/_next/static/chunks/e445297c93c8d39f.js","/_next/static/chunks/b5f12f01a94627ac.js","/_next/static/chunks/dd79bb2655505ce5.js","/_next/static/chunks/e907ec4fcc8cd971.js"],"default"]
:HL["/_next/static/chunks/8a80e7184ad3a13f.css","style"]
:HL["/_next/static/chunks/b2f0c8e6952e0295.css","style"]
0:{"buildId":"WbYR2XE95Gc5XXVQ7W0XS","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/8a80e7184ad3a13f.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/b2f0c8e6952e0295.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/5b09b31ddc8435aa.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/e445297c93c8d39f.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/b5f12f01a94627ac.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/dd79bb2655505ce5.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/e907ec4fcc8cd971.js","async":true}]],["$","html",null,{"lang":"zh-CN","children":["$","body",null,{"className":"font-serif antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"children":["$","$L6",null,{"parallelRouterKey":"children","template":["$","$L7",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]}]}]}]]}],"loading":[["$","div","l",{"className":"min-h-screen flex items-center justify-center bg-background","children":["$","div",null,{"className":"flex flex-col items-center gap-4","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-loader-circle h-10 w-10 animate-spin text-primary","children":[["$","path","13zald",{"d":"M21 12a9 9 0 1 1-6.219-8.56"}],"$undefined"]}],["$","p",null,{"className":"text-sm text-muted-foreground font-serif","children":"加载中..."}]]}]}],[],[]],"isPartial":false}
@@ -1,4 +0,0 @@
1:"$Sreact.fragment"
2:I[66163,["/_next/static/chunks/5b09b31ddc8435aa.js","/_next/static/chunks/e445297c93c8d39f.js","/_next/static/chunks/b5f12f01a94627ac.js","/_next/static/chunks/dd79bb2655505ce5.js","/_next/static/chunks/e907ec4fcc8cd971.js"],"default"]
3:I[65586,["/_next/static/chunks/5b09b31ddc8435aa.js","/_next/static/chunks/e445297c93c8d39f.js","/_next/static/chunks/b5f12f01a94627ac.js","/_next/static/chunks/dd79bb2655505ce5.js","/_next/static/chunks/e907ec4fcc8cd971.js"],"default"]
0:{"buildId":"WbYR2XE95Gc5XXVQ7W0XS","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}
@@ -1,5 +0,0 @@
1:"$Sreact.fragment"
2:I[98364,["/_next/static/chunks/5b09b31ddc8435aa.js","/_next/static/chunks/e445297c93c8d39f.js","/_next/static/chunks/b5f12f01a94627ac.js","/_next/static/chunks/dd79bb2655505ce5.js","/_next/static/chunks/e907ec4fcc8cd971.js"],"OutletBoundary"]
3:"$Sreact.suspense"
0:{"buildId":"WbYR2XE95Gc5XXVQ7W0XS","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false}
4:null
@@ -1,3 +0,0 @@
:HL["/_next/static/chunks/8a80e7184ad3a13f.css","style"]
:HL["/_next/static/chunks/b2f0c8e6952e0295.css","style"]
0:{"buildId":"WbYR2XE95Gc5XXVQ7W0XS","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
-14
View File
@@ -1,14 +0,0 @@
var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/_not-found/page.js")
R.c("server/chunks/ssr/[root-of-the-server]__87c1ffc8._.js")
R.c("server/chunks/ssr/4e98a_next_dist_e02de4fd._.js")
R.c("server/chunks/ssr/4e98a_next_dist_esm_build_templates_app-page_8874adb8.js")
R.c("server/chunks/ssr/[root-of-the-server]__aafd07b5._.js")
R.c("server/chunks/ssr/4e98a_next_dist_b8b99350._.js")
R.c("server/chunks/ssr/4e98a_next_dist_9ab1cb57._.js")
R.c("server/chunks/ssr/[root-of-the-server]__56a99066._.js")
R.c("server/chunks/ssr/Documents_go-new_chinese-family-tree_app_loading_tsx_b1f283e0._.js")
R.c("server/chunks/ssr/4e98a_next_dist_client_components_1ee43648._.js")
R.c("server/chunks/ssr/4e98a_next_dist_client_components_builtin_forbidden_243a9611.js")
R.c("server/chunks/ssr/fb354_chinese-family-tree__next-internal_server_app__not-found_page_actions_6ddf1b31.js")
R.m(49361)
module.exports=R.m(49361).exports
-5
View File
@@ -1,5 +0,0 @@
{
"version": 3,
"sources": [],
"sections": []
}
File diff suppressed because one or more lines are too long
@@ -1,3 +0,0 @@
{
"/_not-found/page": "app/_not-found/page.js"
}
@@ -1,18 +0,0 @@
{
"devFiles": [],
"ampDevFiles": [],
"polyfillFiles": [
"static/chunks/a6dad97d9634a72d.js"
],
"lowPriorityFiles": [],
"rootMainFiles": [
"static/chunks/c6c183fbdeff129e.js",
"static/chunks/3af7c987a6c28caf.js",
"static/chunks/9e02b7100d6e6270.js",
"static/chunks/0eaa8682593f715a.js",
"static/chunks/ca4429dea6d39825.js",
"static/chunks/turbopack-23d2945b770f49d2.js"
],
"pages": {},
"ampFirstPages": []
}
@@ -1,11 +0,0 @@
{
"pages": {},
"app": {
"[project]/Documents/go-new/chinese-family-tree/app/_not-found/page": [
"static/media/caa3a2e1cccd8315-s.p.853070df.woff2",
"static/media/797e433ab948586e-s.p.dbea232f.woff2"
]
},
"appUsingSizeAdjust": true,
"pagesUsingSizeAdjust": false
}
@@ -1 +0,0 @@
{}
@@ -1,4 +0,0 @@
{
"node": {},
"edge": {}
}
File diff suppressed because one or more lines are too long
@@ -1,8 +0,0 @@
var R=require("../../../../chunks/[turbopack]_runtime.js")("server/app/api/auth/[...nextauth]/route.js")
R.c("server/chunks/[root-of-the-server]__473288e8._.js")
R.c("server/chunks/[root-of-the-server]__6c883c4b._.js")
R.c("server/chunks/[root-of-the-server]__6762452f._.js")
R.c("server/chunks/[root-of-the-server]__dc19fc6c._.js")
R.c("server/chunks/168ba__next-internal_server_app_api_auth_[___nextauth]_route_actions_c984eee0.js")
R.m(37849)
module.exports=R.m(37849).exports
@@ -1,5 +0,0 @@
{
"version": 3,
"sources": [],
"sections": []
}
File diff suppressed because one or more lines are too long
@@ -1,3 +0,0 @@
{
"/api/auth/[...nextauth]/route": "app/api/auth/[...nextauth]/route.js"
}
@@ -1,11 +0,0 @@
{
"devFiles": [],
"ampDevFiles": [],
"polyfillFiles": [
"static/chunks/a6dad97d9634a72d.js"
],
"lowPriorityFiles": [],
"rootMainFiles": [],
"pages": {},
"ampFirstPages": []
}
@@ -1,4 +0,0 @@
{
"node": {},
"edge": {}
}
@@ -1,2 +0,0 @@
globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
globalThis.__RSC_MANIFEST["/api/auth/[...nextauth]/route"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"rscModuleMapping":{},"edgeRscModuleMapping":{},"entryCSSFiles":{},"entryJSFiles":{}}
@@ -1,9 +0,0 @@
var R=require("../../../../chunks/[turbopack]_runtime.js")("server/app/api/auth/register/route.js")
R.c("server/chunks/[root-of-the-server]__cc07e1be._.js")
R.c("server/chunks/[root-of-the-server]__6c883c4b._.js")
R.c("server/chunks/[root-of-the-server]__6762452f._.js")
R.c("server/chunks/e49cb_zod_v3_external_1a998e53.js")
R.c("server/chunks/4e98a_next_43fc5466._.js")
R.c("server/chunks/168ba__next-internal_server_app_api_auth_register_route_actions_5f0b2c44.js")
R.m(85672)
module.exports=R.m(85672).exports
@@ -1,5 +0,0 @@
{
"version": 3,
"sources": [],
"sections": []
}
File diff suppressed because one or more lines are too long
@@ -1,3 +0,0 @@
{
"/api/auth/register/route": "app/api/auth/register/route.js"
}
@@ -1,11 +0,0 @@
{
"devFiles": [],
"ampDevFiles": [],
"polyfillFiles": [
"static/chunks/a6dad97d9634a72d.js"
],
"lowPriorityFiles": [],
"rootMainFiles": [],
"pages": {},
"ampFirstPages": []
}
@@ -1,4 +0,0 @@
{
"node": {},
"edge": {}
}
@@ -1,2 +0,0 @@
globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
globalThis.__RSC_MANIFEST["/api/auth/register/route"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"rscModuleMapping":{},"edgeRscModuleMapping":{},"entryCSSFiles":{},"entryJSFiles":{}}
@@ -1,9 +0,0 @@
var R=require("../../../../../chunks/[turbopack]_runtime.js")("server/app/api/trees/[treeId]/activity-logs/route.js")
R.c("server/chunks/[root-of-the-server]__a9075a08._.js")
R.c("server/chunks/[root-of-the-server]__6c883c4b._.js")
R.c("server/chunks/[root-of-the-server]__6762452f._.js")
R.c("server/chunks/[root-of-the-server]__dc19fc6c._.js")
R.c("server/chunks/4e98a_next_43fc5466._.js")
R.c("server/chunks/54027_server_app_api_trees_[treeId]_activity-logs_route_actions_7cec2c11.js")
R.m(82870)
module.exports=R.m(82870).exports
@@ -1,5 +0,0 @@
{
"version": 3,
"sources": [],
"sections": []
}
File diff suppressed because one or more lines are too long
@@ -1,3 +0,0 @@
{
"/api/trees/[treeId]/activity-logs/route": "app/api/trees/[treeId]/activity-logs/route.js"
}
@@ -1,11 +0,0 @@
{
"devFiles": [],
"ampDevFiles": [],
"polyfillFiles": [
"static/chunks/a6dad97d9634a72d.js"
],
"lowPriorityFiles": [],
"rootMainFiles": [],
"pages": {},
"ampFirstPages": []
}
@@ -1,4 +0,0 @@
{
"node": {},
"edge": {}
}
@@ -1,2 +0,0 @@
globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
globalThis.__RSC_MANIFEST["/api/trees/[treeId]/activity-logs/route"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"rscModuleMapping":{},"edgeRscModuleMapping":{},"entryCSSFiles":{},"entryJSFiles":{}}
@@ -1,9 +0,0 @@
var R=require("../../../../../chunks/[turbopack]_runtime.js")("server/app/api/trees/[treeId]/collaborators/route.js")
R.c("server/chunks/[root-of-the-server]__bb90136b._.js")
R.c("server/chunks/[root-of-the-server]__6c883c4b._.js")
R.c("server/chunks/4e98a_next_43fc5466._.js")
R.c("server/chunks/[root-of-the-server]__dc19fc6c._.js")
R.c("server/chunks/[root-of-the-server]__6762452f._.js")
R.c("server/chunks/54027_server_app_api_trees_[treeId]_collaborators_route_actions_9236bcfc.js")
R.m(41510)
module.exports=R.m(41510).exports
@@ -1,5 +0,0 @@
{
"version": 3,
"sources": [],
"sections": []
}
File diff suppressed because one or more lines are too long
@@ -1,3 +0,0 @@
{
"/api/trees/[treeId]/collaborators/route": "app/api/trees/[treeId]/collaborators/route.js"
}
@@ -1,11 +0,0 @@
{
"devFiles": [],
"ampDevFiles": [],
"polyfillFiles": [
"static/chunks/a6dad97d9634a72d.js"
],
"lowPriorityFiles": [],
"rootMainFiles": [],
"pages": {},
"ampFirstPages": []
}
@@ -1,4 +0,0 @@
{
"node": {},
"edge": {}
}
@@ -1,2 +0,0 @@
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":{}}
@@ -1,9 +0,0 @@
var R=require("../../../../../chunks/[turbopack]_runtime.js")("server/app/api/trees/[treeId]/import/route.js")
R.c("server/chunks/[root-of-the-server]__fb723217._.js")
R.c("server/chunks/[root-of-the-server]__6c883c4b._.js")
R.c("server/chunks/[root-of-the-server]__6762452f._.js")
R.c("server/chunks/[root-of-the-server]__dc19fc6c._.js")
R.c("server/chunks/4e98a_next_43fc5466._.js")
R.c("server/chunks/168ba__next-internal_server_app_api_trees_[treeId]_import_route_actions_ac9f5f91.js")
R.m(85342)
module.exports=R.m(85342).exports
@@ -1,5 +0,0 @@
{
"version": 3,
"sources": [],
"sections": []
}
File diff suppressed because one or more lines are too long
@@ -1,3 +0,0 @@
{
"/api/trees/[treeId]/import/route": "app/api/trees/[treeId]/import/route.js"
}
@@ -1,11 +0,0 @@
{
"devFiles": [],
"ampDevFiles": [],
"polyfillFiles": [
"static/chunks/a6dad97d9634a72d.js"
],
"lowPriorityFiles": [],
"rootMainFiles": [],
"pages": {},
"ampFirstPages": []
}

Some files were not shown because too many files have changed in this diff Show More