failproofai 1.0.5-beta.2 → 1.0.6-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +6 -6
- package/.next/standalone/.next/prerender-manifest.json +5 -5
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +6 -6
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +14 -14
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +14 -14
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/policies/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +14 -14
- package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +4 -4
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/[externals]__0sds_16._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o07qi9._.js +1 -1
- package/.next/standalone/.next/server/chunks/_09dz7xv._.js +3 -3
- package/.next/standalone/.next/server/chunks/_0tovk6q._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0trp3yc._.js +1 -1
- package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_01r25oi._.js +2 -2
- package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_09z9-p7._.js +2 -2
- package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__013jr2b._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01wy8d-._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02npjtd._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0da85px._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ftmoxc._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0oa1lav._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0p-5p8u._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s740oi._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1xu5t8b._.js → [root-of-the-server]__1i26dsw._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0sz_5na._.js → [root-of-the-server]__1ouobn4._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1p2otjt._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1qapotl._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0-yi74u._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_1mo4bp9._.js → _09hs6ms._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_1olen4g._.js → _0lbwa8m._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0wso5d3._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1-3unkg._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1ddpc5g._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1es2j7i._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/_1u8-lu2._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1zopuov._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_policies_page_actions_1sp2-yo.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_components_project-list_tsx_1ke6anr._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_settings_settings-client_tsx_20lq-mq._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_1hl81y4._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js +2 -2
- package/.next/standalone/.next/server/middleware-build-manifest.js +6 -6
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +19 -19
- package/.next/standalone/.next/static/chunks/{0pdmk3xha1zih.js → 03n_qjih7-w6q.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0h95tsad4_-gr.js → 06jxjnw8bfczc.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0671mdu5plc8o.js → 0vanab2g65op_.js} +1 -1
- package/.next/standalone/.next/static/chunks/17pjz_h45j10c.js +1 -0
- package/.next/standalone/.next/static/chunks/1ekh-hj_iom84.js +1 -0
- package/.next/standalone/.next/static/chunks/{2pnvnpg-kdbyt.js → 1so_3s0q4c4j1.js} +1 -1
- package/.next/standalone/.next/static/chunks/1xacnwjkbekn7.js +1 -0
- package/.next/standalone/.next/static/chunks/2hg_bp8z_vm2g.js +1 -0
- package/.next/standalone/.next/static/chunks/{1qwk_vp6dsat_.js → 2u0kol_boahtv.js} +1 -1
- package/.next/standalone/.next/static/chunks/{3gfi5ixrc6v1z.js → 3_vesf83-0903.js} +1 -1
- package/.next/standalone/.next/static/chunks/3d3hzhcnns6ww.js +1 -0
- package/.next/standalone/.next/static/chunks/{315zh293r-n7v.js → 3i8rg2fv9nd6e.js} +1 -1
- package/.next/standalone/.next/static/chunks/3iasus89n8mg1.js +6 -0
- package/.next/standalone/.next/static/chunks/{04cawl3i7gqi5.js → 44_cj1_i_aa2z.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-44avr18ueo9ob.js → turbopack-38nzuvp95_2rv.js} +1 -1
- package/.next/standalone/fp-cloud-cli/uv.lock +3 -3
- package/.next/standalone/hermes-plugin/README.md +133 -0
- package/.next/standalone/hermes-plugin/__init__.py +248 -0
- package/.next/standalone/hermes-plugin/client.py +134 -0
- package/.next/standalone/hermes-plugin/ledger.py +187 -0
- package/.next/standalone/hermes-plugin/plugin.yaml +37 -0
- package/.next/standalone/node_modules/@next/env/package.json +1 -1
- package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +1 -1
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +1 -1
- package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/.next/standalone/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js +2 -1
- package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/image-optimizer.js +14 -0
- package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/lib/disk-lru-cache.external.js +7 -1
- package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +6 -1
- package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/.next/standalone/node_modules/next/package.json +10 -10
- package/.next/standalone/node_modules/react/cjs/react.development.js +92 -46
- package/.next/standalone/node_modules/react/cjs/react.production.js +112 -89
- package/.next/standalone/node_modules/react/package.json +1 -1
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +1165 -790
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +1171 -791
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +1294 -862
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +1305 -868
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +1315 -896
- package/.next/standalone/node_modules/react-dom/cjs/react-dom.production.js +24 -5
- package/.next/standalone/node_modules/react-dom/package.json +4 -4
- package/.next/standalone/package.json +13 -12
- package/.next/standalone/sdk/python/uv.lock +18 -18
- package/.next/standalone/server.js +1 -1
- package/README.md +29 -13
- package/bin/failproofai.mjs +3 -1
- package/dist/cli.mjs +420 -178
- package/dist/worker.mjs +17 -3
- package/hermes-plugin/README.md +133 -0
- package/hermes-plugin/__init__.py +248 -0
- package/hermes-plugin/client.py +134 -0
- package/hermes-plugin/ledger.py +187 -0
- package/hermes-plugin/plugin.yaml +37 -0
- package/package.json +13 -12
- package/scripts/translate-docs/validate-translation.ts +48 -0
- package/src/hooks/handler.ts +29 -1
- package/src/hooks/integrations.ts +264 -73
- package/src/hooks/manager.ts +17 -5
- package/src/hooks/types.ts +8 -8
- package/src/hooks/worker-server.ts +1 -0
- package/.next/standalone/.next/server/chunks/[externals]__157pf8j._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_13n822a._.js +0 -3
- package/.next/standalone/.next/static/chunks/0cn62s92buqr1.js +0 -6
- package/.next/standalone/.next/static/chunks/1oey07bwm1ayr.js +0 -1
- package/.next/standalone/.next/static/chunks/3aoj_ov89ym_h.js +0 -1
- package/.next/standalone/.next/static/chunks/3k3g_4k13t9za.js +0 -1
- package/.next/standalone/.next/static/chunks/3l36d73kj18zw.js +0 -1
- package/.next/standalone/.next/static/chunks/40lpt2o2b283e.js +0 -1
- /package/.next/standalone/.next/static/{GDwSJ81wNHeh1pQdxpvk_ → -7OT2NwGPxAu-skEL_Xee}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{GDwSJ81wNHeh1pQdxpvk_ → -7OT2NwGPxAu-skEL_Xee}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{GDwSJ81wNHeh1pQdxpvk_ → -7OT2NwGPxAu-skEL_Xee}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"""Persistent, bounded delivery state for FailproofAI instruct decisions."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import hashlib
|
|
6
|
+
import json
|
|
7
|
+
import sqlite3
|
|
8
|
+
import threading
|
|
9
|
+
import time
|
|
10
|
+
from dataclasses import dataclass
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
from typing import Sequence
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class LedgerError(RuntimeError):
|
|
16
|
+
"""Instruction state could not be read or updated safely."""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@dataclass(frozen=True)
|
|
20
|
+
class InstructionAction:
|
|
21
|
+
block: bool
|
|
22
|
+
status: str
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class InstructionLedger:
|
|
26
|
+
def __init__(self, path: Path, *, ttl_seconds: int = 3600, max_rounds: int = 2) -> None:
|
|
27
|
+
self.path = path
|
|
28
|
+
self.ttl_seconds = max(60, int(ttl_seconds))
|
|
29
|
+
self.max_rounds = max(0, int(max_rounds))
|
|
30
|
+
self._init_lock = threading.Lock()
|
|
31
|
+
self._initialized = False
|
|
32
|
+
|
|
33
|
+
def _connect(self) -> sqlite3.Connection:
|
|
34
|
+
self.path.parent.mkdir(parents=True, exist_ok=True)
|
|
35
|
+
connection = sqlite3.connect(self.path, timeout=0.25, isolation_level=None)
|
|
36
|
+
connection.execute("PRAGMA busy_timeout = 250")
|
|
37
|
+
connection.execute("PRAGMA journal_mode = WAL")
|
|
38
|
+
connection.execute("PRAGMA synchronous = NORMAL")
|
|
39
|
+
return connection
|
|
40
|
+
|
|
41
|
+
def _ensure_schema(self) -> None:
|
|
42
|
+
if self._initialized:
|
|
43
|
+
return
|
|
44
|
+
with self._init_lock:
|
|
45
|
+
if self._initialized:
|
|
46
|
+
return
|
|
47
|
+
try:
|
|
48
|
+
with self._connect() as connection:
|
|
49
|
+
connection.execute(
|
|
50
|
+
"""
|
|
51
|
+
CREATE TABLE IF NOT EXISTS instruction_deliveries (
|
|
52
|
+
delivery_key TEXT PRIMARY KEY,
|
|
53
|
+
profile TEXT NOT NULL,
|
|
54
|
+
session_id TEXT NOT NULL,
|
|
55
|
+
task_id TEXT NOT NULL,
|
|
56
|
+
turn_id TEXT NOT NULL,
|
|
57
|
+
policy_fingerprint TEXT NOT NULL,
|
|
58
|
+
scope_key TEXT NOT NULL,
|
|
59
|
+
blocked_api_request_id TEXT NOT NULL,
|
|
60
|
+
acknowledged_api_request_id TEXT,
|
|
61
|
+
state TEXT NOT NULL,
|
|
62
|
+
created_at_ms INTEGER NOT NULL,
|
|
63
|
+
expires_at_ms INTEGER NOT NULL
|
|
64
|
+
)
|
|
65
|
+
"""
|
|
66
|
+
)
|
|
67
|
+
connection.execute(
|
|
68
|
+
"""
|
|
69
|
+
CREATE INDEX IF NOT EXISTS instruction_deliveries_turn
|
|
70
|
+
ON instruction_deliveries(profile, session_id, task_id, turn_id, expires_at_ms)
|
|
71
|
+
"""
|
|
72
|
+
)
|
|
73
|
+
except sqlite3.Error as exc:
|
|
74
|
+
raise LedgerError(f"could not initialize instruction state: {exc}") from exc
|
|
75
|
+
self._initialized = True
|
|
76
|
+
|
|
77
|
+
@staticmethod
|
|
78
|
+
def _digest(parts: Sequence[str]) -> str:
|
|
79
|
+
encoded = json.dumps(list(parts), ensure_ascii=False, separators=(",", ":")).encode("utf-8")
|
|
80
|
+
return hashlib.sha256(encoded).hexdigest()
|
|
81
|
+
|
|
82
|
+
def decide(
|
|
83
|
+
self,
|
|
84
|
+
*,
|
|
85
|
+
profile: str,
|
|
86
|
+
session_id: str,
|
|
87
|
+
task_id: str,
|
|
88
|
+
turn_id: str,
|
|
89
|
+
api_request_id: str,
|
|
90
|
+
policy_names: Sequence[str],
|
|
91
|
+
reason: str,
|
|
92
|
+
scope_key: str,
|
|
93
|
+
now_ms: int | None = None,
|
|
94
|
+
) -> InstructionAction:
|
|
95
|
+
if not session_id or not turn_id or not api_request_id:
|
|
96
|
+
return InstructionAction(False, "missing-correlation-id")
|
|
97
|
+
|
|
98
|
+
self._ensure_schema()
|
|
99
|
+
now = int(time.time() * 1000) if now_ms is None else int(now_ms)
|
|
100
|
+
expires_at = now + self.ttl_seconds * 1000
|
|
101
|
+
task = task_id or "root"
|
|
102
|
+
policy_fingerprint = self._digest([*sorted(policy_names), reason])
|
|
103
|
+
delivery_key = self._digest(
|
|
104
|
+
[profile, session_id, task, turn_id, policy_fingerprint, scope_key]
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
try:
|
|
108
|
+
with self._connect() as connection:
|
|
109
|
+
connection.execute("BEGIN IMMEDIATE")
|
|
110
|
+
connection.execute(
|
|
111
|
+
"DELETE FROM instruction_deliveries WHERE expires_at_ms <= ?", (now,)
|
|
112
|
+
)
|
|
113
|
+
row = connection.execute(
|
|
114
|
+
"""
|
|
115
|
+
SELECT blocked_api_request_id, state
|
|
116
|
+
FROM instruction_deliveries
|
|
117
|
+
WHERE delivery_key = ?
|
|
118
|
+
""",
|
|
119
|
+
(delivery_key,),
|
|
120
|
+
).fetchone()
|
|
121
|
+
if row is not None:
|
|
122
|
+
blocked_request, state = row
|
|
123
|
+
if state == "issued" and blocked_request == api_request_id:
|
|
124
|
+
connection.commit()
|
|
125
|
+
return InstructionAction(True, "same-api-request")
|
|
126
|
+
if state == "issued":
|
|
127
|
+
connection.execute(
|
|
128
|
+
"""
|
|
129
|
+
UPDATE instruction_deliveries
|
|
130
|
+
SET state = 'acknowledged', acknowledged_api_request_id = ?
|
|
131
|
+
WHERE delivery_key = ?
|
|
132
|
+
""",
|
|
133
|
+
(api_request_id, delivery_key),
|
|
134
|
+
)
|
|
135
|
+
connection.commit()
|
|
136
|
+
return InstructionAction(False, "acknowledged")
|
|
137
|
+
|
|
138
|
+
rounds = connection.execute(
|
|
139
|
+
"""
|
|
140
|
+
SELECT COUNT(*)
|
|
141
|
+
FROM instruction_deliveries
|
|
142
|
+
WHERE profile = ? AND session_id = ? AND task_id = ? AND turn_id = ?
|
|
143
|
+
AND expires_at_ms > ?
|
|
144
|
+
""",
|
|
145
|
+
(profile, session_id, task, turn_id, now),
|
|
146
|
+
).fetchone()[0]
|
|
147
|
+
if rounds >= self.max_rounds:
|
|
148
|
+
connection.commit()
|
|
149
|
+
return InstructionAction(False, "turn-cap")
|
|
150
|
+
|
|
151
|
+
connection.execute(
|
|
152
|
+
"""
|
|
153
|
+
INSERT INTO instruction_deliveries (
|
|
154
|
+
delivery_key, profile, session_id, task_id, turn_id,
|
|
155
|
+
policy_fingerprint, scope_key, blocked_api_request_id,
|
|
156
|
+
acknowledged_api_request_id, state, created_at_ms, expires_at_ms
|
|
157
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, NULL, 'issued', ?, ?)
|
|
158
|
+
""",
|
|
159
|
+
(
|
|
160
|
+
delivery_key,
|
|
161
|
+
profile,
|
|
162
|
+
session_id,
|
|
163
|
+
task,
|
|
164
|
+
turn_id,
|
|
165
|
+
policy_fingerprint,
|
|
166
|
+
scope_key,
|
|
167
|
+
api_request_id,
|
|
168
|
+
now,
|
|
169
|
+
expires_at,
|
|
170
|
+
),
|
|
171
|
+
)
|
|
172
|
+
connection.commit()
|
|
173
|
+
return InstructionAction(True, "issued")
|
|
174
|
+
except (sqlite3.Error, OSError) as exc:
|
|
175
|
+
raise LedgerError(f"could not update instruction state: {exc}") from exc
|
|
176
|
+
|
|
177
|
+
def clear_session(self, session_id: str) -> None:
|
|
178
|
+
if not session_id:
|
|
179
|
+
return
|
|
180
|
+
self._ensure_schema()
|
|
181
|
+
try:
|
|
182
|
+
with self._connect() as connection:
|
|
183
|
+
connection.execute(
|
|
184
|
+
"DELETE FROM instruction_deliveries WHERE session_id = ?", (session_id,)
|
|
185
|
+
)
|
|
186
|
+
except (sqlite3.Error, OSError) as exc:
|
|
187
|
+
raise LedgerError(f"could not clear instruction state: {exc}") from exc
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: failproofai
|
|
2
|
+
version: 1.0.6-beta.0
|
|
3
|
+
description: Real-time FailproofAI policy enforcement for Hermes
|
|
4
|
+
manifest_version: 2
|
|
5
|
+
api_version: 1
|
|
6
|
+
homepage: https://github.com/FailproofAI/failproofai
|
|
7
|
+
tags: [security, policy, observability]
|
|
8
|
+
provides_hooks:
|
|
9
|
+
- pre_tool_call
|
|
10
|
+
- post_tool_call
|
|
11
|
+
- pre_llm_call
|
|
12
|
+
- on_session_start
|
|
13
|
+
- on_session_end
|
|
14
|
+
- on_session_reset
|
|
15
|
+
- on_session_finalize
|
|
16
|
+
- subagent_stop
|
|
17
|
+
config_schema:
|
|
18
|
+
failure_mode:
|
|
19
|
+
type: str
|
|
20
|
+
default: deny
|
|
21
|
+
description: Block or allow when the local FailproofAI evaluator is unavailable.
|
|
22
|
+
connect_timeout_ms:
|
|
23
|
+
type: int
|
|
24
|
+
default: 250
|
|
25
|
+
description: Maximum time to connect to the local FailproofAI daemon.
|
|
26
|
+
evaluation_timeout_ms:
|
|
27
|
+
type: int
|
|
28
|
+
default: 12000
|
|
29
|
+
description: Maximum total time allowed for one policy evaluation.
|
|
30
|
+
instruction_ttl_seconds:
|
|
31
|
+
type: int
|
|
32
|
+
default: 3600
|
|
33
|
+
description: Maximum lifetime of an instruction-delivery record.
|
|
34
|
+
max_instruction_rounds:
|
|
35
|
+
type: int
|
|
36
|
+
default: 2
|
|
37
|
+
description: Maximum distinct instruction interruptions in one Hermes turn.
|
|
@@ -139,7 +139,7 @@ var HmrTarget = /*#__PURE__*/ function(HmrTarget) {
|
|
|
139
139
|
HmrTarget["Server"] = "server";
|
|
140
140
|
return HmrTarget;
|
|
141
141
|
}({});
|
|
142
|
-
const nextVersion = "16.3.
|
|
142
|
+
const nextVersion = "16.3.5";
|
|
143
143
|
const ArchName = (0, _os.arch)();
|
|
144
144
|
const PlatformName = (0, _os.platform)();
|
|
145
145
|
function infoLog(...args) {
|
|
@@ -101,7 +101,7 @@ Ways to fix this:
|
|
|
101
101
|
|
|
102
102
|
Learn more: https://nextjs.org/docs/messages/instant-unrendered-segment`}return Object.defineProperty(Error(r),"__NEXT_ERROR_CODE",{value:"E1286",enumerable:!1,configurable:!0})}if(1===t.length){let r=`Route "${e.route}": Could not validate \`instant\` because the target segment was prevented from rendering, likely due to the following error.`,a=null!==n?n():Error();return a.name="Error",a.message=r,AggregateError([a,t[0]])}{let r=`Route "${e.route}": Could not validate \`instant\` because the target segment was prevented from rendering, likely due to one of the following errors.`,a=null!==n?n():Error();return a.name="Error",a.message=r,AggregateError([a,...t])}}return[]}function ro(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}function rl(e){let t;return ro(e)?e:Object.defineProperty(Error(!function(e){if("[object Object]"!==Object.prototype.toString.call(e))return!1;let t=Object.getPrototypeOf(e);return null===t||t.hasOwnProperty("isPrototypeOf")}(e)?e+"":(t=new WeakSet,JSON.stringify(e,(e,r)=>{if("object"==typeof r&&null!==r){if(t.has(r))return"[Circular]";t.add(r)}return r}))),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}let ru=(e,t)=>"object"==typeof e&&null!==e&&"__NEXT_ERROR_CODE"in e?`${t}@${e.__NEXT_ERROR_CODE}`:t;function rc(e){return"object"==typeof e&&null!==e&&"message"in e&&"string"==typeof e.message&&e.message.startsWith("This rendered a large document (>")}var rd=a("./dist/esm/server/app-render/instant-validation/instant-validation-error.js");function rf(e){return tS(e)?e.digest:t_(e)?e.digest:tw(e)?e.digest:tJ(e)?e.digest:(0,rd.R)(e)?e.digest:void 0}function rh(e,t,r,n,a){return i=>{var s;if(eh(i))return;let o=rf(i);if(o)return o;if(rc(i))return void console.error(i);let l=rl(i),u=!1;if(l.digest){let e=r.get(l.digest);e&&(e.digest??=l.digest,l=e,u=!0)}else l.digest="string"==typeof i?th()(i).toString():ru(l,th()(l.message+(l.stack||"")).toString());if(r.has(l.digest)||r.set(l.digest,l),e&&ty(l),!(t&&(null==l?void 0:null==(s=l.message)?void 0:s.includes("The specific message is omitted in production builds to avoid leaking sensitive details.")))){let e=a??(0,eo.getTracer)().getActiveScopeSpan();e&&(e.recordException(l),e.setAttribute("error.type",l.name),e.setStatus({code:eo.SpanStatusCode.ERROR,message:l.message})),n(l,u)}return l.digest}}function rp(e,t,r,n,a,i){return(s,o)=>{var l;if(rc(s))return void console.error(s);let u=!0;if(n.push(s),eh(s))return;let c=rf(s);if(c)return c;let d=rl(s);if(d.digest?r.has(d.digest)&&(s=r.get(d.digest),u=!1):d.digest=ru(d,th()(d.message+((null==o?void 0:o.componentStack)||d.stack||"")).toString()),e&&ty(d),!(t&&(null==d?void 0:null==(l=d.message)?void 0:l.includes("The specific message is omitted in production builds to avoid leaking sensitive details.")))&&u){let e=i??(0,eo.getTracer)().getActiveScopeSpan();e&&(e.recordException(d),e.setAttribute("error.type",d.name),e.setStatus({code:eo.SpanStatusCode.ERROR,message:d.message})),a(d,o)}return d.digest}}let rm={catchall:"c","catchall-intercepted-(..)(..)":"ci(..)(..)","catchall-intercepted-(.)":"ci(.)","catchall-intercepted-(..)":"ci(..)","catchall-intercepted-(...)":"ci(...)","optional-catchall":"oc",dynamic:"d","dynamic-intercepted-(..)(..)":"di(..)(..)","dynamic-intercepted-(.)":"di(.)","dynamic-intercepted-(..)":"di(..)","dynamic-intercepted-(...)":"di(...)"};var rg=a("./dist/esm/shared/lib/router/utils/get-segment-param.js");let ry=/^'nonce-([A-Za-z0-9+/_-]+={0,2})'$/;var rv=a("./dist/compiled/superstruct/index.cjs"),rb=a.n(rv);let rS=rb().enums(["c","ci(..)(..)","ci(.)","ci(..)","ci(...)","oc","d","di(..)(..)","di(.)","di(..)","di(...)"]),rw=rb().union([rb().string(),rb().tuple([rb().string(),rb().string(),rS,rb().nullable(rb().array(rb().string()))])]),r_=rb().tuple([rw,rb().record(rb().string(),rb().lazy(()=>r_)),rb().optional(rb().nullable(rb().tuple([rb().string(),rb().string()]))),rb().optional(rb().nullable(rb().union([rb().literal("refetch"),rb().literal("inside-shared-layout"),rb().literal("metadata-only")]))),rb().optional(rb().number())]);var rE=a("./dist/esm/shared/lib/segment.js");async function rR(e,t,r,n,a,i,s,o,l,u){let[c,d,{layout:f,loading:h,page:p}]=e,m=o(e),g=m?m.treeSegment:c,y=[(0,rE.HG)(g,l),{}],v=f?await f[0]():p?await p[0]():void 0,b=v?v.instant:void 0,S=(v?v.prefetch:void 0)??("unstable_eager"===a?"unstable_eager":a?"partial":void 0),w=0;if(null!==t)w|=t.hints;else r&&(s?w|=P.hT.InliningHintsStale:i?w|=P.hT.PrefetchDisabled:n&&(w|=P.hT.PrefetchDisabled));u||(w|=P.hT.IsRootLayoutOrAbove,void 0!==f&&(u=!0)),!1===b&&(w|=P.hT.SubtreeHasInstantFalse),"partial"===S?w|=P.hT.SubtreeHasPartialPrefetching:"unstable_eager"===S?w|=P.hT.SubtreeHasPartialPrefetching|P.hT.SubtreeHasEagerPrefetch:"force-disabled"===S&&(w|=P.hT.PrefetchDisabled),"partial"!==S&&(w|=P.hT.SubtreeHasEagerPrefetch),h&&(w|=P.hT.SegmentHasLoadingBoundary);let _={};for(let e in d){var E;let c=(null==t?void 0:null==(E=t.slots)?void 0:E[e])??null,f=await rR(d[e],c,r,n,a,i,s,o,l,u);void 0!==f[4]&&(w=(0,P.WL)(w,f[4])),_[e]=f}return y[1]=_,0!==w&&(y[4]=w),y}async function rk(e,t,r,n,a,i,s,o,l,u=!1){return rR(e,t,r,n,a,i,s,o,l,u)}async function rx(e,t,r,n,a,i,s,o,l=!1){return rR(e,t,r,n,a,i,s,o,{},l)}let rP=["accept-encoding","keepalive","keep-alive","content-encoding","transfer-encoding","connection","expect","content-length","set-cookie"];function rC(e){let t,r;e.headers instanceof Headers?(t=e.headers.get(eF.ts)??null,r=e.headers.get("content-type")):(t=e.headers[eF.ts]??null,r=e.headers["content-type"]??null);let n="POST"===e.method&&"application/x-www-form-urlencoded"===r,a=!!("POST"===e.method&&(null==r?void 0:r.startsWith("multipart/form-data"))),i=void 0!==t&&"string"==typeof t&&"POST"===e.method;return{actionId:t,isURLEncodedAction:n,isMultipartAction:a,isFetchAction:i,isPossibleServerAction:!!(i||n||a)}}var rT=a("./dist/esm/build/output/log.js"),rA=a("./dist/esm/server/app-render/manifests-singleton.js");function rO(e){return 42===e.length}function rj(e){let t=parseInt(e.slice(0,2),16),r=t>>1&63,n=Array(6);for(let e=0;e<6;e++){let t=r>>5-e&1;n[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:n,hasRestArgs:1==(1&t)}}var rI=a("./dist/esm/server/revalidation-utils.js"),rD=a("./dist/esm/client/components/router-reducer/set-cache-busting-search-param.js"),r$=a("./dist/esm/shared/lib/action-revalidation-kind.js");function rN(e){let t={};for(let[r,n]of Object.entries(e))void 0!==n&&(t[r]=Array.isArray(n)?n.join(", "):`${n}`);return t}function rM(e,t){let r=e.headers,n=new en.tm(eV.o.from(r)),a=t.getHeaders(),i=new en.VO(function(e){let t=new Headers;for(let[r,n]of Object.entries(e))for(let e of Array.isArray(n)?n:[n])void 0!==e&&("number"==typeof e&&(e=e.toString()),t.append(r,e));return t}(a)),s=((e,t)=>{for(let[r,n]of(e["content-length"]&&"0"===e["content-length"]&&delete e["content-length"],Object.entries(e)))(t.includes(r)||!(Array.isArray(n)||"string"==typeof n))&&delete e[r];return e})({...rN(r),...rN(a)},rP);return i.getAll().forEach(e=>{void 0===e.value?n.delete(e.name):n.set(e)}),s.cookie=n.toString(),delete s["transfer-encoding"],new Headers(s)}async function rL(e,t,r,n,a){if(!r)throw Object.defineProperty(Error("Invariant: Missing `host` header from a forwarded Server Actions request."),"__NEXT_ERROR_CODE",{value:"E226",enumerable:!1,configurable:!0});let i=rM(e,t);i.set("x-action-forwarded","1");let s=process.env.__NEXT_PRIVATE_ORIGIN;if(void 0===s){let t=R(e,"initURL");if(void 0!==t)try{s=new URL(t).origin}catch(e){throw Object.defineProperty(Error("Could not determine origin for forwarded Server Actions request. This can happen if port or hostname are not configured for this server.",{cause:e}),"__NEXT_ERROR_CODE",{value:"E1447",enumerable:!1,configurable:!0})}else throw Object.defineProperty(new ey.z("Missing initURL"),"__NEXT_ERROR_CODE",{value:"E1446",enumerable:!1,configurable:!0})}let o=new URL(`${s}${a}${n}`);try{var l,u;let r;r=e.stream();let n=await fetch(o,{method:"POST",body:r,duplex:"half",headers:i,redirect:"manual",next:{internal:1}});if(null==(l=n.headers.get("content-type"))?void 0:l.startsWith(eF.al)){for(let[e,r]of n.headers)rP.includes(e)||t.setHeader(e,r);return new td(n.body)}if(null==(u=n.body)||u.cancel(),"1"===n.headers.get(eF.Ic))return t.setHeader(eF.Ic,"1"),t.setHeader("content-type","text/plain"),t.statusCode=404,eb.fromStatic("Server action not found.","text/plain")}catch(e){console.error("failed to forward action response",e)}return eb.fromStatic("{}",H.U2)}async function rU(e,t,r,n,a,i,s,o){t.setHeader("x-action-redirect",`${n};${a}`);let l=function(e,t,r,n){if(r.startsWith("/"))return new URL(`${e}${r}`,"http://n");if(r.startsWith(".")){let t=n||"/";t.endsWith("/")||(t+="/");let a=new URL(r,`http://n${t}`);return new URL(`${e}${a.pathname}${a.search}${a.hash}`,"http://n")}let a=new URL(r);return(null==t?void 0:t.value)!==a.host?null:a.pathname.startsWith(e)?a:null}(i,r,n,o);if(l){var u,c,d,f,h;if(!r)throw Object.defineProperty(Error("Invariant: Missing `host` header from a forwarded Server Actions request."),"__NEXT_ERROR_CODE",{value:"E226",enumerable:!1,configurable:!0});let n=rM(e,t);n.set(eF.hY,"1");let a=process.env.__NEXT_PRIVATE_ORIGIN;if(void 0===a){let t=R(e,"initURL");if(void 0!==t)try{a=new URL(t).origin}catch(e){throw Object.defineProperty(Error("Could not determine origin for forwarded Server Actions request. This can happen if port or hostname are not configured for this server.",{cause:e}),"__NEXT_ERROR_CODE",{value:"E1447",enumerable:!1,configurable:!0})}else throw Object.defineProperty(new ey.z("Missing initURL"),"__NEXT_ERROR_CODE",{value:"E1446",enumerable:!1,configurable:!0})}let i=new URL(`${a}${l.pathname}${l.search}`);s.pendingRevalidatedTags&&(n.set(H.vS,s.pendingRevalidatedTags.map(e=>e.tag).join(",")),n.set(H.c1,(null==(d=s.incrementalCache)?void 0:null==(c=d.prerenderManifest)?void 0:null==(u=c.preview)?void 0:u.previewModeId)||"")),n.delete(eF.B),n.delete(eF.ts);try{let e=await (0,eH.R)(n.get(eF._V)?"1":void 0,n.get(eF.qm)??void 0,n.get(eF.B)??void 0,n.get(eF.kO)??void 0);(0,rD.q)(i,e);let r=await fetch(i,{method:"GET",headers:n,next:{internal:1}});if(null==(f=r.headers.get("content-type"))?void 0:f.startsWith(eF.al)){for(let[e,n]of r.headers)rP.includes(e)||t.setHeader(e,n);return new td(r.body)}null==(h=r.body)||h.cancel()}catch(e){console.error("failed to get redirect response",e)}}return eb.EMPTY}function rF(e){return e.length>100?e.slice(0,100)+"...":e}async function rH({req:e,res:t,ComponentMod:r,generateFlight:n,workStore:i,requestStore:s,serverActions:o,ctx:l,metadata:u}){var c,d,f;let h,p,m,g,y,v,b=e.headers["content-type"],{page:S}=l.renderOpts,w=(0,rA.a1)(),{actionId:_,isMultipartAction:E,isFetchAction:k,isURLEncodedAction:x,isPossibleServerAction:P}=rC(e),C=e=>(console.warn(e),t.setHeader(eF.Ic,"1"),t.setHeader("content-type","text/plain"),t.statusCode=404,{type:"done",result:eb.fromStatic("Server action not found.","text/plain")});if(!P)return null;if(x)if(k)return{type:"not-found"};else return null;if(!(Object.keys((p=(0,rA.sE)()).node).length>0)&&!(Object.keys(p.edge).length>0))return C(null===_||rO(_)?(0,rA.UF)(_):(0,rA.jO)(_));if(i.isStaticGeneration)throw Object.defineProperty(Error("Invariant: server actions can't be handled during static rendering"),"__NEXT_ERROR_CODE",{value:"E359",enumerable:!1,configurable:!0});i.fetchCache="default-no-store";let T=e.headers.origin,A="string"==typeof T?"null"===T?"null":new URL(T).host:void 0,O=(g=(m=(c=e.headers)["x-forwarded-host"])&&Array.isArray(m)?m[0]:null==m?void 0:null==(f=m.split(","))?void 0:null==(d=f[0])?void 0:d.trim(),y=c.host,g?{type:"x-forwarded-host",value:g}:y?{type:"host",value:y}:void 0);if(A){if(!O||A!==O.value)if(((e,t=[])=>{let r=e.replace(/[A-Z]/g,e=>e.toLowerCase());return t.some(t=>t?t.replace(/[A-Z]/g,e=>e.toLowerCase())===r||function(e,t){let r=e.replace(/[A-Z]/g,e=>e.toLowerCase()),n=t.replace(/[A-Z]/g,e=>e.toLowerCase()),a=r.split("."),i=n.split(".");if(i.length<1)return!1;if(a.length<i.length)return!1;if(1===i.length&&("*"===i[0]||"**"===i[0]))return!1;for(;i.length;){let e=i.pop(),t=a.pop();switch(e){case"":return!1;case"*":if(t)continue;return!1;case"**":if(i.length>0)return!1;return void 0!==t;default:if(t!==e)return!1}}return 0===a.length}(e,t):!1)})(A,null==o?void 0:o.allowedOrigins));else{O?console.error(`\`${O.type}\` header with value \`${rF(O.value)}\` does not match \`origin\` header with value \`${rF(A)}\` from a forwarded Server Actions request. Aborting the action.`):console.error("`x-forwarded-host` or `host` headers are not provided. One of these is needed to compare the `origin` header from a forwarded Server Actions request. Aborting the action.");let r=Object.defineProperty(Error("Invalid Server Actions request."),"__NEXT_ERROR_CODE",{value:"E80",enumerable:!1,configurable:!0});if(k){t.statusCode=500,u.statusCode=500;let a=Promise.reject(r);try{await a}catch{}return{type:"done",result:await n(e,l,s,{actionResult:a,skipPageRendering:!0,temporaryReferences:h})}}throw r}}else v="Missing `origin` header from a forwarded Server Actions request.";t.setHeader("Cache-Control","no-cache, no-store, max-age=0, must-revalidate");let j=!!e.headers["x-action-forwarded"];if(_&&!j){let r=(0,rA.dO)(_,S);if(r)return{type:"done",result:await rL(e,t,O,r,l.renderOpts.basePath)}}try{return await tt.actionAsyncStorage.run({isAction:!0},async()=>{let u,c=[],d="1 MB",f=(null==o?void 0:o.bodySizeLimit)??d,p=f!==d?a("./dist/compiled/bytes/index.js").parse(f):1048576;{let{createTemporaryReferenceSet:t,decodeReply:r,decodeReplyFromBusboy:n,decodeAction:o,decodeFormState:l}=a("(react-server)/./dist/esm/server/app-render/react-server.node.js");h=t();let{PassThrough:d,Readable:m,Transform:g}=a("node:stream"),{pipeline:y}=a("node:stream/promises"),S=R(e,"actionBody"),x=S?m.from(S):e.body,P=0,T=new g({transform(e,t,r){if((P+=Buffer.byteLength(e,t))>p){let{ApiError:e}=a("./dist/esm/server/api-utils/index.js");r(Object.defineProperty(new e(413,`Body exceeded ${f} limit.
|
|
103
103
|
To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}));return}r(null,e)}});if(E)if(k){try{u=rB(_,w)}catch(e){return C(e)}let t=a("./dist/compiled/busboy/index.js")({defParamCharset:"utf8",headers:e.headers,limits:{fieldSize:p}}),r=new AbortController;try{[,c]=await Promise.all([y(x,T,t,{signal:r.signal}),n(t,w,{temporaryReferences:h})])}catch(e){throw r.abort(),e}}else{let e,t=new d,r=new Request("http://localhost",{method:"POST",headers:{"Content-Type":b},body:m.toWeb(t),duplex:"half"}),n=new AbortController;try{[,e]=await Promise.all([y(x,T,t,{signal:n.signal}),r.formData()])}catch(e){throw n.abort(),e}if(!1===function(e,t){let r=0,n=!1;for(let a of e.keys())if(a.startsWith(rz)){if(a.startsWith(rX)){if(function(e,t){let r=e.slice(rX.length);return rO(r)?null==t[r]:!0}(a,t))return!1;n=!0}else if(a.startsWith(rV)){if(++r>2)return!1;let i=rz+a.slice(rV.length)+":0",s=e.getAll(i);if(1!==s.length)return!1;let o=s[0];if("string"!=typeof o)return!1;if(function(e,t){if(!1===e.startsWith(rW))return!0;let r=rW.length,n=e.indexOf('"',r);if(-1===n)return!0;let a=e.slice(r,n);return rO(a)?null==t[a]:!0}(o,t))return!1;n=!0}}return n}(e,w))throw Object.defineProperty(Error(`Failed to find Server Action. This request might be from an older or newer deployment.
|
|
104
|
-
Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E975",enumerable:!1,configurable:!0});let a=await o(e,w);if("function"!=typeof a)return null;{v&&(0,rT.R8)(v);let{actionResult:t}=await rq(a,[],i,s,j),r=await l(t,e,w);return{type:"done",result:void 0,formState:r}}}else{if(!k)return null;try{u=rB(_,w)}catch(e){return C(e)}let e=new d,t=[];await Promise.all([y(x,T,e),(async()=>{for await(let r of e)t.push(Buffer.from(r))})()]);let n=Buffer.concat(t).toString("utf-8");c=await r(n,w,{temporaryReferences:h})}}let m=(await r.__next_app__.require(u))[_],{type:g}=rj(_),{actionResult:y,skipPageRendering:S}=(performance.now(),await rq(m,c,i,s,j).finally(()=>{!function(e,{workStore:t,requestStore:r}){var n;let a=(null==(n=t.pendingRevalidatedTags)?void 0:n.some(e=>void 0===e.profile))?1:0,i=(0,eX.YX)(r.mutableCookies).length?1:0;a||i?e.setHeader(eF.ZL,JSON.stringify(r$.Du)):void 0!==t.pathWasRevalidated&&t.pathWasRevalidated!==r$.e9&&e.setHeader(eF.ZL,JSON.stringify(t.pathWasRevalidated))}(t,{workStore:i,requestStore:s})}));if(!k)return null;{let t=S?(0,rI.C)(i):!1;return{type:"done",result:await tt.actionAsyncStorage.exit(()=>n(e,l,s,{actionResult:Promise.resolve(y),skipPageRendering:S,temporaryReferences:h,waitUntil:!1===t?void 0:t}))}}})}catch(r){if(te(r)){let n=tn(r),a=ta(r);if(k)return t.statusCode=200,u.statusCode=200,{type:"done",result:await rU(e,t,O,n,a,l.renderOpts.basePath,i,s.url.pathname)};return t.statusCode=e7.SeeOther,u.statusCode=e7.SeeOther,t.setHeader("Location",n),{type:"done",result:eb.EMPTY}}if(e6(r)){if(t.statusCode=e9(r),u.statusCode=t.statusCode,k){let t=Promise.reject(r);try{await t}catch{}return{type:"done",result:await n(e,l,s,{skipPageRendering:!1,actionResult:t,temporaryReferences:h})}}return{type:"not-found"}}if(k){t.statusCode=500,u.statusCode=500;let a=Promise.reject(r);try{await a}catch{}return{type:"done",result:await n(e,l,s,{actionResult:a,skipPageRendering:void 0===i.pathWasRevalidated||i.pathWasRevalidated===r$.e9||j,temporaryReferences:h})}}throw r}}async function rq(e,t,r,n,a){n.phase="action";let i=a;if(t.length>1e3)throw Object.defineProperty(Error(`Server Action arguments list is too long (${t.length}). Maximum allowed is 1000.`),"__NEXT_ERROR_CODE",{value:"E986",enumerable:!1,configurable:!0});try{let a=await tr.workUnitAsyncStorage.run(n,()=>e.apply(null,t));return i||=void 0===r.pathWasRevalidated||r.pathWasRevalidated===r$.e9,{actionResult:a,skipPageRendering:i}}finally{!i&&(n.phase="render",n.cookies=eX.Ck.seal((0,eX.m0)(n.mutableCookies)),r.isDraftMode=n.draftMode.isEnabled,await (0,rI.C)(r))}}function rB(e,t){if(!e)throw Object.defineProperty(new ey.z("Missing 'next-action' header."),"__NEXT_ERROR_CODE",{value:"E664",enumerable:!1,configurable:!0});let r=t[e];if(null==r)throw rO(e)?(0,rA.UF)(e):(0,rA.jO)(e);return r.id}let rz="$ACTION_",rV="$ACTION_REF_",rX="$ACTION_ID_",rW='{"id":"',rG=U.createContext(null);function rJ(e){let t=(0,U.useContext)(rG);t&&t(e)}function rK(){let e=[],t=t=>{e.push(t)};return{ServerInsertedHTMLProvider:({children:e})=>(0,x.jsx)(rG.Provider,{value:t,children:e}),renderServerInsertedHTML:()=>e.map((e,t)=>(0,x.jsx)(U.Fragment,{children:e()},"__next_server_inserted__"+t))}}function rY(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}var rQ=a("./dist/compiled/react-dom-experimental/index.js");function rZ(e,t,r,n,a,i,s){var o;let l,u=[],c={src:"",crossOrigin:r},d=((null==(o=e.rootMainFilesTree)?void 0:o[s])||e.rootMainFiles).map(rY);if(0===d.length)throw Object.defineProperty(Error("Invariant: missing bootstrap script. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E459",enumerable:!1,configurable:!0});if(n){c.src=`${t}/_next/`+d[0]+a,c.integrity=n[d[0]];for(let e=1;e<d.length;e++){let r=`${t}/_next/`+d[e]+a,i=n[d[e]];u.push(r,i)}l=()=>{for(let e=0;e<u.length;e+=2)rQ.preinit(u[e],{as:"script",integrity:u[e+1],crossOrigin:r,nonce:i})}}else{c.src=`${t}/_next/`+d[0]+a;for(let e=1;e<d.length;e++){let r=`${t}/_next/`+d[e]+a;u.push(r)}l=()=>{for(let e=0;e<u.length;e++)rQ.preinit(u[e],{as:"script",nonce:i,crossOrigin:r})}}return[l,c]}function r0({polyfills:e,renderServerInsertedHTML:t,serverCapturedErrors:r,tracingMetadata:n,basePath:a}){let i=0,s=e.map(e=>(0,x.jsx)("script",{...e},e.src)),o=(n||[]).map(({key:e,value:t},r)=>(0,x.jsx)("meta",{name:e,content:t},`next-trace-data-${r}`));return async function(){let e=[];for(;i<r.length;){let t=r[i];if(i++,e6(t))e.push((0,x.jsx)("meta",{name:"robots",content:"noindex"},t.digest),null);else if(te(t)){let r=X(tn(t),a),n=ti(t)===e7.PermanentRedirect;r&&e.push((0,x.jsx)("meta",{id:"__next-page-redirect",httpEquiv:"refresh",content:`${n?0:1};url=${r}`},t.digest))}}let n=t();if(0===s.length&&0===o.length&&0===e.length&&Array.isArray(n)&&0===n.length)return"";let{stream:l}=await e$((0,x.jsxs)(x.Fragment,{children:[s,n,o,e]}),{progressiveChunkSize:1048576});return s=[],o=[],eD(l)}}var r1=a("./dist/esm/client/components/match-segments.js");function r2(e,t,r,n){let a=e.replace(/\.[^.]+$/,""),i=new Set,s=new Set,{entryCSSFiles:o,entryJSFiles:l}=(0,rA.QJ)(),u=o[a],c=null==l?void 0:l[a];if(u)for(let e of u)t.has(e.path)||(n&&t.add(e.path),i.add(e));if(c)for(let e of c)r.has(e)||(n&&r.add(e),s.add(e));return{styles:i,scripts:s}}function r3(e,t,r){if(!e||!t)return null;let n=t.replace(/\.[^.]+$/,""),a=new Set,i=!1,s=e.app[n];if(s)for(let e of(i=!0,s))r.has(e)||(a.add(e),r.add(e));return a.size?[...a].sort():i&&0===r.size?[]:null}function r4(e){let[,t,{loading:r}]=e;return r?!0:Object.values(t).some(e=>r4(e))}function r8(e){if(e.$$typeof!==Symbol.for("react.server.reference"))return!1;let{type:t}=rj(e.$$id);return"use-cache"===t}async function r6(e){let t,r,n,{layout:a,page:i,defaultPage:s}=e[2],o=void 0!==a,l=void 0!==i,u=void 0!==s&&e[0]===rE.WO;return o?(t=await a[0](),r="layout",n=a[1]):l?(t=await i[0](),r="page",n=i[1]):u&&(t=await s[0](),r="page",n=s[1]),{mod:t,modType:r,filePath:n}}function r9(e){return e.default||e}function r5(e){let[t,r,n,a]=e,{layout:i,template:s}=n,{page:o}=n;o=t===rE.WO?n.defaultPage:o;let l=i?.[1]||s?.[1]||o?.[1];return{page:o,segment:t,modules:n,conventionPath:l,parallelRoutes:r,staticSiblings:a}}function r7(e,t){let r="";return e.sharedContext.clientAssetToken&&(r+=`?dpl=${e.sharedContext.clientAssetToken}`),r}function ne(e,t,r){let{componentMod:{createElement:n}}=t,a=[],i=0;for(let s of e){let e="next",o=`${t.assetPrefix}/_next/${rY(s.path)}${r7(t,!0)}`;s.inlined&&!t.parsedRequestHeaders.isRSCRequest?a.push(n("style",{key:i,nonce:t.nonce,precedence:e,href:o},s.content)):(null==r||r.push(()=>{t.componentMod.preloadStyle(o,t.renderOpts.crossOrigin,t.nonce)}),a.push(n("link",{key:i,rel:"stylesheet",href:o,precedence:e,crossOrigin:t.renderOpts.crossOrigin,nonce:t.nonce}))),i++}return a}async function nt({filePath:e,getComponent:t,injectedCSS:r,injectedJS:n,ctx:a}){let{componentMod:{createElement:i}}=a,{styles:s,scripts:o}=r2(e,r,n),l=ne(s,a),u=[],c=0;for(let e of o)u.push(i("script",{src:`${a.assetPrefix}/_next/${rY(e)}${r7(a,!0)}`,async:!0,key:`script-${c}`})),c++;return[r9(await t()),l,u.length?u:null]}let nr=new Set,nn=()=>{};globalThis.FinalizationRegistry&&new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&t.cancel("Response object has been garbage collected").then(nn)});class na{constructor(e,t=e=>e()){this.cacheKeyFn=e,this.schedulerFn=t,this.pending=new Map}static create(e){return new na(null==e?void 0:e.cacheKeyFn,null==e?void 0:e.schedulerFn)}async batch(e,t){let r=this.cacheKeyFn?await this.cacheKeyFn(e):e;if(null===r)return t({resolve:e=>Promise.resolve(e),key:e});let n=this.pending.get(r);if(n)return n;let{promise:a,resolve:i,reject:s}=new es.q;return this.pending.set(r,a),this.schedulerFn(async()=>{try{let r=await t({resolve:i,key:e});i(r)}catch(e){s(e)}finally{this.pending.delete(r)}}),a}}var ni=a("./dist/esm/server/lib/lru-cache.js"),ns=a("./dist/esm/lib/scheduler.js"),no=((d={}).APP_PAGE="APP_PAGE",d.APP_ROUTE="APP_ROUTE",d.PAGES="PAGES",d.FETCH="FETCH",d.REDIRECT="REDIRECT",d.IMAGE="IMAGE",d),nl=((f={}).APP_PAGE="APP_PAGE",f.APP_ROUTE="APP_ROUTE",f.PAGES="PAGES",f.FETCH="FETCH",f.IMAGE="IMAGE",f),nu=((h={}).PAGES="PAGES",h.PAGES_API="PAGES_API",h.APP_PAGE="APP_PAGE",h.APP_ROUTE="APP_ROUTE",h.IMAGE="IMAGE",h);async function nc(e){var t,r;return{...e,value:(null==(t=e.value)?void 0:t.kind)===no.PAGES?{kind:no.PAGES,html:await e.value.html.toUnchunkedString(!0),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===no.APP_PAGE?{kind:no.APP_PAGE,html:await e.value.html.toUnchunkedString(!0),postponed:e.value.postponed,rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,segmentData:e.value.segmentData}:e.value}}async function nd(e){var t,r;return e?{isMiss:e.isMiss,isStale:e.isStale,cacheControl:e.cacheControl,isFallback:e.isFallback,value:(null==(t=e.value)?void 0:t.kind)===no.PAGES?{kind:no.PAGES,html:eb.fromStatic(e.value.html,H.j9),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===no.APP_PAGE?{kind:no.APP_PAGE,html:eb.fromStatic(e.value.html,H.j9),rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,postponed:e.value.postponed,segmentData:e.value.segmentData}:e.value}:null}function nf(e,t){if(!e)return t;let r=parseInt(e,10);return Number.isFinite(r)&&r>0?r:t}let nh=nf(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),np=nf(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),nm="__ttl_sentinel__";function ng(e,t){return`${e}\0${t??nm}`}class ny{constructor(e,t=np,r=nh){this.getBatcher=na.create({cacheKeyFn:({key:e,isOnDemandRevalidate:t})=>`${e}-${t?"1":"0"}`,schedulerFn:ns.x8}),this.revalidateBatcher=na.create({schedulerFn:ns.x8}),this.evictedInvocationIDs=new Set,this.minimal_mode=e,this.maxSize=t,this.ttl=r,this.cache=new ni.q(t,void 0,e=>{let t=function(e){let t=e.lastIndexOf("\0");if(-1===t)return;let r=e.slice(t+1);return r===nm?void 0:r}(e);if(t){if(this.evictedInvocationIDs.size>=100){let e=this.evictedInvocationIDs.values().next().value;e&&this.evictedInvocationIDs.delete(e)}this.evictedInvocationIDs.add(t)}})}async get(e,t,r){if(!e)return t({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let t=ng(e,r.invocationID),n=this.cache.get(t);if(n){if(void 0!==r.invocationID)return nd(n.entry);let e=Date.now();if(n.expiresAt>e)return nd(n.entry);this.cache.remove(t)}r.invocationID&&this.evictedInvocationIDs.has(r.invocationID)&&(0,rT.mc)(`Response cache entry was evicted for invocation ${r.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:n,isOnDemandRevalidate:a=!1,isFallback:i=!1,isRoutePPREnabled:s=!1,isPrefetch:o=!1,waitUntil:l,routeKind:u,invocationID:c}=r,d=await this.getBatcher.batch({key:e,isOnDemandRevalidate:a},({resolve:r})=>{let d=this.handleGet(e,t,{incrementalCache:n,isOnDemandRevalidate:a,isFallback:i,isRoutePPREnabled:s,isPrefetch:o,routeKind:u,invocationID:c},r);return l&&l(d),d});if(this.minimal_mode&&(null==d?void 0:d.cacheControl)){let t=ng(e,c);this.cache.set(t,{entry:d,expiresAt:Date.now()+this.ttl})}return nd(d)}async handleGet(e,t,r,n){let a=null,i=!1;try{if((a=this.minimal_mode?null:await r.incrementalCache.get(e,{kind:function(e){switch(e){case nu.PAGES:return nl.PAGES;case nu.APP_PAGE:return nl.APP_PAGE;case nu.IMAGE:return nl.IMAGE;case nu.APP_ROUTE:return nl.APP_ROUTE;case nu.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${e}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return e}}(r.routeKind),isRoutePPREnabled:r.isRoutePPREnabled,isFallback:r.isFallback}))&&!r.isOnDemandRevalidate&&-1!==a.isStale&&(n(a),i=!0,!a.isStale||r.isPrefetch))return a;let s=r.isPrefetch&&null===a?await this.handleRevalidate(e,r.incrementalCache,r.isRoutePPREnabled,r.isFallback,t,a,i):await this.revalidate(e,r.incrementalCache,r.isRoutePPREnabled,r.isFallback,t,a,i);if(!s){if(this.minimal_mode){let t=ng(e,r.invocationID);this.cache.remove(t)}return null}return r.isOnDemandRevalidate,s}catch(e){if(i)return console.error(e),null;throw e}}async revalidate(e,t,r,n,a,i,s,o){return this.revalidateBatcher.batch(e,()=>{let l=this.handleRevalidate(e,t,r,n,a,i,s);return o&&o(l),l})}async handleRevalidate(e,t,r,n,a,i,s){try{let o=await a({hasResolved:s,previousCacheEntry:i,isRevalidating:!0});if(!o)return null;let l=await nc({...o,isMiss:!i});return l.cacheControl&&!this.minimal_mode&&await t.set(e,l.value,{cacheControl:l.cacheControl,isRoutePPREnabled:r,isFallback:n}),l}catch(a){if(null==i?void 0:i.cacheControl){let a=Math.min(Math.max(i.cacheControl.revalidate||3,3),30),s=void 0===i.cacheControl.expire?void 0:Math.max(a+3,i.cacheControl.expire);await t.set(e,i.value,{cacheControl:{revalidate:a,expire:s},isRoutePPREnabled:r,isFallback:n})}throw a}}}Symbol.for("next-patch");class nv{add(e){this._done||this._seen.has(e)||(this._seen.add(e),null!==this._resolve?(this._resolve({value:e,done:!1}),this._resolve=null):this._buffer.push(e))}close(){this._done||(this._done=!0,null===this._resolve)||(this._resolve({value:void 0,done:!0}),this._resolve=null)}[Symbol.asyncIterator](){return{next:()=>this._buffer.length>0?Promise.resolve({value:this._buffer.shift(),done:!1}):this._done?Promise.resolve({value:void 0,done:!0}):new Promise(e=>{this._resolve=e})}}constructor(){this._resolve=null,this._done=!1,this._buffer=[],this._seen=new Set}}let nb=new nv;function nS(){let e=new nv;return{head:e,rootParams:new nv,segments:new Set}}function nw(){var e;let t=tr.workUnitAsyncStorage.getStore();return t?(null==(e=(0,tr.getVaryParamsAccumulator)(t))?void 0:e.head)??null:null}function n_(){var e;let t=tr.workUnitAsyncStorage.getStore();return t?(null==(e=(0,tr.getVaryParamsAccumulator)(t))?void 0:e.rootParams)??null:null}function nE(e){for(let t of(e.head.close(),e.rootParams.close(),e.segments))t.close()}nb.close();let nR=/^(.*[\\/])?next[\\/]dist[\\/]client[\\/]components[\\/]builtin[\\/]/;function nk(e,t,r){let n=e[2],a=n[r]?n[r][1]:void 0;if(a){let e=(function(e,t){let r=process.cwd(),n=e.replace(r,"").replace(/^[\\/]/,""),a=(t||"").replace(/^\[project\][\\/]?/,"").replace(e,"").replace(r,"").replace(/\\/g,"/").replace(/^\//,"");if(n&&a.startsWith(n)&&(a=a.slice(n.length).replace(/^\//,"")),a.includes("/")){let t=e.split(/[\\/]/).pop()||"";if(t){let e=t+"/",r=a.indexOf(e);r>=0&&(a=a.slice(r+e.length))}}return a})(t,a).replace(/^(src\/)?app\//,"");return nR.test(e)&&(e=e.replace(nR,""),e=`__next_builtin__${e}`),e}}function nx(e){return(0,eo.getTracer)().trace(el.Fx.createComponentTree,{spanName:"build component tree"},()=>nC(e,!0))}function nP(e,t){throw Object.defineProperty(Error(`The default export is not a React Component in "${"/"===e?"":e}/${t}"`),"__NEXT_ERROR_CODE",{value:"E45",enumerable:!1,configurable:!0})}async function nC({loaderTree:e,parentParams:t,parentOptionalCatchAllParamName:r,rootLayoutIncluded:n,injectedCSS:i,injectedJS:s,injectedFontPreloadTags:o,ctx:l,missingSlots:u,preloadCallbacks:c,authInterrupts:d,MetadataOutlet:f},h){let p,{renderOpts:{nextConfigOutput:m,experimental:g,cacheComponents:y},workStore:v,componentMod:{createElement:b,Fragment:S,SegmentViewNode:w,HTTPAccessFallbackBoundary:_,LayoutRouter:E,RenderFromTemplateContext:R,ClientPageRoot:k,ClientSegmentRoot:x,createServerSearchParamsForServerPage:P,createPrerenderSearchParamsForClientPage:C,createServerParamsForServerSegment:T,createPrerenderParamsForClientSegment:A,serverHooks:{DynamicServerError:O},Postpone:j},pagePath:I,getDynamicParamFromSegment:D,isPrefetch:$,query:N}=l,{page:M,conventionPath:L,segment:U,modules:F,parallelRoutes:q}=r5(e),{layout:B,template:z,error:V,loading:X,"not-found":W,forbidden:G,unauthorized:J}=F,K=new Set(i),Y=new Set(s),Q=new Set(o),Z=function({ctx:e,layoutOrPagePath:t,injectedCSS:r,injectedJS:n,injectedFontPreloadTags:a,preloadCallbacks:i}){let{componentMod:{createElement:s}}=e,{styles:o,scripts:l}=t?r2(t,r,n,!0):{styles:nr,scripts:nr},u=t?r3(e.renderOpts.nextFontManifest,t,a):null;if(u)if(u.length)for(let t=0;t<u.length;t++){let r=u[t],n=/\.(woff|woff2|eot|ttf|otf)$/.exec(r)[1],a=`font/${n}`,s=`${e.assetPrefix}/_next/${rY(r)}${r7(e,!0)}`;i.push(()=>{e.componentMod.preloadFont(s,a,e.renderOpts.crossOrigin,e.nonce)})}else try{let t=new URL(e.assetPrefix);i.push(()=>{e.componentMod.preconnect(t.origin,"anonymous",e.nonce)})}catch(t){i.push(()=>{e.componentMod.preconnect("/","anonymous",e.nonce)})}let c=ne(o,e,i),d=[],f=0;for(let t of l){let r=`${e.assetPrefix}/_next/${rY(t)}${r7(e,!0)}`;d.push(s("script",{src:r,async:!0,key:`script-${f}`,nonce:e.nonce})),f++}return c.length||d.length?[...c,...d]:null}({preloadCallbacks:c,ctx:l,layoutOrPagePath:L,injectedCSS:K,injectedJS:Y,injectedFontPreloadTags:Q}),[ee,et,er]=z?await nt({ctx:l,filePath:z[1],getComponent:z[0],injectedCSS:K,injectedJS:Y}):[S],[en,ea,ei]=V?await nt({ctx:l,filePath:V[1],getComponent:V[0],injectedCSS:K,injectedJS:Y}):[],[es,eu,ec]=X?await nt({ctx:l,filePath:X[1],getComponent:X[0],injectedCSS:K,injectedJS:Y}):[],ed=void 0!==B,ef=void 0!==M,{mod:eh,modType:ep}=await (0,eo.getTracer)().trace(el.Fx.getLayoutOrPageModule,{hideSpan:!(ed||ef),spanName:"resolve segment modules",attributes:{"next.segment":U}},()=>r6(e)),em=ed&&!n,eg=n||em,[ey,ev]=W?await nt({ctx:l,filePath:W[1],getComponent:W[0],injectedCSS:K,injectedJS:Y}):[],[eb,eS]=d&&G?await nt({ctx:l,filePath:G[1],getComponent:G[0],injectedCSS:K,injectedJS:Y}):[],[ew,e_]=d&&J?await nt({ctx:l,filePath:J[1],getComponent:J[0],injectedCSS:K,injectedJS:Y}):[],eE=null==eh?void 0:eh.dynamic;if("export"===m)if(eE&&"auto"!==eE){if("force-dynamic"===eE)throw Object.defineProperty(new tR('Page with `dynamic = "force-dynamic"` couldn\'t be exported. `output: "export"` requires all pages be renderable statically because there is no runtime server to dynamically render routes in this output format. Learn more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports'),"__NEXT_ERROR_CODE",{value:"E527",enumerable:!1,configurable:!0})}else eE="error";if("string"==typeof eE)if("error"===eE)v.dynamicShouldError=!0;else if("force-dynamic"===eE){if(v.forceDynamic=!0,v.isStaticGeneration&&!g.isRoutePPREnabled){let e=Object.defineProperty(new O('Page with `dynamic = "force-dynamic"` won\'t be rendered statically.'),"__NEXT_ERROR_CODE",{value:"E585",enumerable:!1,configurable:!0});throw v.dynamicUsageDescription=e.message,v.dynamicUsageStack=e.stack,e}}else v.dynamicShouldError=!1,v.forceStatic="force-static"===eE;if("string"==typeof(null==eh?void 0:eh.fetchCache)&&(v.fetchCache=null==eh?void 0:eh.fetchCache),void 0!==(null==eh?void 0:eh.revalidate)&&function(e,t){try{if(!1===e||e===1/0)H.AR;else if("number"==typeof e&&!isNaN(e)&&e>-1);else if(void 0!==e)throw Object.defineProperty(Error(`Invalid revalidate value "${e}" on "${t}", must be a non-negative number or false`),"__NEXT_ERROR_CODE",{value:"E179",enumerable:!1,configurable:!0})}catch(e){if(e instanceof Error&&e.message.includes("Invalid revalidate"))throw e;return}}(null==eh?void 0:eh.revalidate,v.route),"number"==typeof(null==eh?void 0:eh.revalidate)){let e=eh.revalidate,t=tr.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-runtime":case"prerender-legacy":case"prerender-ppr":t.revalidate>e&&(t.revalidate=e)}if(!v.forceStatic&&v.isStaticGeneration&&0===e&&!g.isRoutePPREnabled){let e=`revalidate: 0 configured ${U}`;throw v.dynamicUsageDescription=e,Object.defineProperty(new O(e),"__NEXT_ERROR_CODE",{value:"E1005",enumerable:!1,configurable:!0})}}if(ef&&"number"==typeof(null==eh?void 0:eh.unstable_dynamicStaleTime)){let e=eh.unstable_dynamicStaleTime,t=tr.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-runtime":case"prerender-legacy":case"prerender-ppr":t.stale>e&&(t.stale=e);break;case"request":(void 0===t.stale||t.stale>e)&&(t.stale=e)}}let eR=v.isStaticGeneration,ek=eR&&!0===g.isRoutePPREnabled,ex=eh?r9(eh):void 0;if(eR){let{isValidElementType:e}=a("./dist/compiled/react-is/index.js");void 0===ex||e(ex)||nP(I,ep??"page"),void 0===en||e(en)||nP(I,"error"),void 0===es||e(es)||nP(I,"loading"),void 0===ey||e(ey)||nP(I,"not-found"),void 0===eb||e(eb)||nP(I,"forbidden"),void 0===ew||e(ew)||nP(I,"unauthorized")}let eP=D(e),eC=t;eP&&null!==eP.value&&(eC={...t,[eP.param]:eP.value});let eT=(null==eP?void 0:eP.type)==="oc"&&null===eP.value?eP.param:r,eA=l.renderOpts.dir||"",[eO,ej]=await nO({ctx:l,conventionName:"not-found",Component:ey,styles:ev,tree:e}),[eI]=await nO({ctx:l,conventionName:"forbidden",Component:eb,styles:eS,tree:e}),[eD]=await nO({ctx:l,conventionName:"unauthorized",Component:ew,styles:e_,tree:e}),e$=await Promise.all(Object.keys(q).map(async t=>{let r="children"===t,n=q[t],a=r?eO:void 0,i=r?eI:void 0,s=r?eD:void 0,o=null;$&&(es||!r4(n))&&!g.isRoutePPREnabled||null===o&&(o=await nC({loaderTree:n,parentParams:eC,parentOptionalCatchAllParamName:eT,rootLayoutIncluded:eg,injectedCSS:K,injectedJS:Y,injectedFontPreloadTags:Q,ctx:l,missingSlots:u,preloadCallbacks:c,authInterrupts:d,MetadataOutlet:r?f:null},!1));let p=b(ee,null,b(R,null));return nk(e,eA,"template"),nk(e,eA,"error"),nk(e,eA,"loading"),h&&nk(e,eA,"global-error"),[t,b(E,{parallelRouterKey:t,error:en,errorStyles:ea,errorScripts:ei,template:p,templateStyles:et,templateScripts:er,notFound:a,forbidden:i,unauthorized:s,...!1}),o]})),eN={},eM={};for(let e of e$){let[t,r,n]=e;eN[t]=r,eM[t]=n}let eL=es?b(es,{key:"l"}):null,eU=(nk(e,eA,"loading"),eL?[eL,eu,ec]:null);if(!ex)return nj(l,b(S,{key:"c"},Z,eN.children),eM,eU,ek,nb);if(v.isStaticGeneration&&v.forceDynamic&&g.isRoutePPREnabled)return nj(l,b(S,{key:"c"},b(j,{reason:'dynamic = "force-dynamic" was used',route:v.route}),Z),eM,eU,!0,nb);let eF=(null==(p=(null==eh?void 0:eh.default)||eh)?void 0:p.$$typeof)===Symbol.for("react.client.reference"),eH=eF&&y?nb:function(){let e=tr.workUnitAsyncStorage.getStore();if(!e)return null;let t=(0,tr.getVaryParamsAccumulator)(e);if(!t)return null;let r=new nv;return t.segments.add(r),r}();if(ef){let t;if(eF)if(y)t=b(k,{Component:ex,serverProvidedParams:null});else if(eR){let e=A(eC),r=C();t=b(k,{Component:ex,serverProvidedParams:{searchParams:N,params:eC,promises:[r,e]}})}else t=b(k,{Component:ex,serverProvidedParams:{searchParams:N,params:eC,promises:null}});else{let e=T(eC,eT,eH),r=P(N,eH);t=r8(ex)?b(ex,{params:e,searchParams:r,$$isPage:!0}):b(ex,{params:e,searchParams:r})}rE.WO;return nj(l,b(S,{key:"c"},(nk(e,eA,"page")??nk(e,eA,"defaultPage"),t),Z,f?b(f,null):null),eM,eU,ek,eH)}{let t,r=em&&"children"in q&&Object.keys(q).length>1;if(eF){let e;if(y)e=b(x,{Component:ex,slots:eN,serverProvidedParams:null});else if(eR){let t=A(eC);e=b(x,{Component:ex,slots:eN,serverProvidedParams:{params:eC,promises:[t]}})}else e=b(x,{Component:ex,slots:eN,serverProvidedParams:{params:eC,promises:null}});if(r){let r,n,a;r=nT({ctx:l,ErrorBoundaryComponent:ey,errorElement:eO,ClientSegmentRoot:x,layerAssets:Z,SegmentComponent:ex,currentParams:eC}),n=nT({ctx:l,ErrorBoundaryComponent:eb,errorElement:eI,ClientSegmentRoot:x,layerAssets:Z,SegmentComponent:ex,currentParams:eC}),a=nT({ctx:l,ErrorBoundaryComponent:ew,errorElement:eD,ClientSegmentRoot:x,layerAssets:Z,SegmentComponent:ex,currentParams:eC}),t=r||n||a?b(_,{key:"c",notFound:r,forbidden:n,unauthorized:a},Z,e):b(S,{key:"c"},Z,e)}else t=b(S,{key:"c"},Z,e)}else{let e,n=T(eC,eT,eH);e=r8(ex)?b(ex,{...eN,params:n,$$isLayout:!0},eN.children):b(ex,{...eN,params:n},eN.children),t=r?b(_,{key:"c",notFound:eO?b(S,null,Z,b(ex,{params:n},ev,eO)):void 0},Z,e):b(S,{key:"c"},Z,e)}return nk(e,eA,"layout"),nj(l,t,eM,eU,ek,eH)}}function nT({ctx:e,ErrorBoundaryComponent:t,errorElement:r,ClientSegmentRoot:n,layerAssets:a,SegmentComponent:i,currentParams:s}){let{componentMod:{createElement:o,Fragment:l}}=e;return t?o(l,null,a,o(n,{Component:i,slots:{children:r},params:s})):null}function nA(e,t){return function e(t,r,n){let{modules:{layout:a},parallelRoutes:i}=r5(r),s=n(r),o=t;return(s&&null!==s.value&&(o={...t,[s.param]:s.value}),void 0!==a)?o:i.children?e(o,i.children,n):o}({},e,t)}async function nO({ctx:e,conventionName:t,Component:r,styles:n,tree:a}){let{componentMod:{createElement:i,Fragment:s}}=e,o=e.renderOpts.dir||"",{SegmentViewNode:l}=e.componentMod;return[r?i(s,null,i(r,null),n):void 0,nk(a,o,t)]}function nj(e,t,r,n,a,i){let s=e.componentMod.createElement;return null!==n&&(t=s(e.componentMod.LoadingBoundaryProvider,{loading:n,children:t})),[t,r,null,a,i]}async function nI({loaderTreeToFilter:e,parentParams:t,flightRouterState:r,parentIsInsideSharedLayout:n,rscHead:a,injectedCSS:i,injectedJS:s,injectedFontPreloadTags:o,rootLayoutIncluded:l,ctx:u,preloadCallbacks:c,MetadataOutlet:d,hintTree:f}){let{renderOpts:{nextFontManifest:h,experimental:p},query:m,isPrefetch:g,getDynamicParamFromSegment:y,parsedRequestHeaders:v,workStore:b}=u,S=!!p.prefetchInlining,w=u.renderOpts.cacheComponents,_=u.renderOpts.partialPrefetching,E=b.isStaticGeneration,R=u.renderOpts.isBuildTimePrerendering??!1,[k,x,P]=e,C=Object.keys(x),{layout:T}=P,A=void 0!==T&&!l,O=l||A,j=y(e),I=j&&null!==j.value?{...t,[j.param]:j.value}:t,D=(0,rE.HG)(j?j.treeSegment:k,m),$=!r||!(0,r1.t)(D,r[0])||"refetch"===r[3],N=$||n||"inside-shared-layout"===r[3];if(N&&!p.isRoutePPREnabled&&(v.isRouteTreePrefetchRequest||g&&!P.loading&&!r4(e)))return[[r&&nD(D,r[0])?r[0]:D,v.isRouteTreePrefetchRequest?await rx(e,f,S,w,_,E,R,y,l):await rk(e,f,S,w,_,E,R,y,m,l),null,[null,null],!0]];if(r&&"metadata-only"===r[3])return[[r&&nD(D,r[0])?r[0]:D,v.isRouteTreePrefetchRequest?await rx(e,f,S,w,_,E,R,y):await rk(e,f,S,w,_,E,R,y,m,l),null,a,!1]];if($){let t=r&&nD(D,r[0])?r[0]:D,n=await rk(e,f,S,w,_,E,R,y,m,l),h=await nx({ctx:u,loaderTree:e,parentParams:I,parentOptionalCatchAllParamName:null,parentRuntimePrefetchable:!1,injectedCSS:i,injectedJS:s,injectedFontPreloadTags:o,rootLayoutIncluded:l,preloadCallbacks:c,authInterrupts:p.authInterrupts,MetadataOutlet:d});return[[t,n,h,a,!1]]}let M=null==T?void 0:T[1],L=new Set(i),U=new Set(s),F=new Set(o);M&&(r2(M,L,U,!0),r3(h,M,F));let H=[];for(let e of C){var q;let t=x[e];for(let n of(await nI({ctx:u,loaderTreeToFilter:t,parentParams:I,flightRouterState:r&&r[1][e],parentIsInsideSharedLayout:N,rscHead:a,injectedCSS:L,injectedJS:U,injectedFontPreloadTags:F,rootLayoutIncluded:O,preloadCallbacks:c,MetadataOutlet:d,hintTree:(null==f?void 0:null==(q=f.slots)?void 0:q[e])??null})))H.push([D,e,...n])}return H}let nD=(e,t)=>{var r;return Array.isArray(e)||!Array.isArray(t)?!1:(null==(r=(0,rg.Hp)(e))?void 0:r.paramName)===t[0]};function n$(e){if(""===e)return null;let t=A.VB.find(t=>e.startsWith(t)),r=(0,rg.Hp)(e);return r?{type:"dynamic",name:e,param:r,interceptionMarker:t}:e.startsWith("(")&&e.endsWith(")")?{type:"route-group",name:e,interceptionMarker:t}:e.startsWith("@")?{type:"parallel-route",name:e,interceptionMarker:t}:{type:"static",name:e,interceptionMarker:t}}function nN(e){return function e(t,r){let n,a,i,s=t.split("/").filter(Boolean),o=[];for(let l of s){let s=n$(function(e){if(!/%5b|%5d/i.test(e))return e;try{let t=decodeURIComponent(e);return(0,rg.Hp)(t)?t:e}catch{return e}}(l));if(s){if("route-group"===s.type&&!(2&r))throw Object.defineProperty(new ey.z(`${t} is being parsed as a normalized route, but it has a route group segment.`),"__NEXT_ERROR_CODE",{value:"E1151",enumerable:!1,configurable:!0});if("parallel-route"===s.type&&!(1&r))throw Object.defineProperty(new ey.z(`${t} is being parsed as a normalized route, but it has a parallel route segment.`),"__NEXT_ERROR_CODE",{value:"E1152",enumerable:!1,configurable:!0});if(o.push(s),s.interceptionMarker){let o=t.split(s.interceptionMarker);if(2!==o.length)throw Object.defineProperty(Error(`Invalid interception route: ${t}`),"__NEXT_ERROR_CODE",{value:"E924",enumerable:!1,configurable:!0});a=e(o[0],r),i=e(o[1],r),n=s.interceptionMarker}}}let l=o.filter(e=>"dynamic"===e.type);return{normalized:0===r,pathname:t,segments:o,dynamicSegments:l,interceptionMarker:n,interceptingRoute:a,interceptedRoute:i}}(e,0)}function nM(e){switch(e){case"catchall-intercepted-(..)(..)":case"dynamic-intercepted-(..)(..)":return"(..)(..)";case"catchall-intercepted-(.)":case"dynamic-intercepted-(.)":return"(.)";case"catchall-intercepted-(..)":case"dynamic-intercepted-(..)":return"(..)";case"catchall-intercepted-(...)":case"dynamic-intercepted-(...)":return"(...)";default:return null}}function nL(e,t,r,n,a){switch(t){case"catchall":case"optional-catchall":case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":let i=[];for(let e=r;e<n.segments.length;e++){let s=n.segments[e];if("static"===s.type){let n=s.name,a=nM(t);a&&e===r&&a===s.interceptionMarker&&(n=n.replace(s.interceptionMarker,"")),i.push(n)}else{if(!a.hasOwnProperty(s.param.paramName)){if("optional-catchall"===s.param.paramType)break;return}let e=a[s.param.paramName];Array.isArray(e)?i.push(...e):i.push(e)}}if(i.length>0)return i;if("optional-catchall"===t)return;throw Object.defineProperty(new ey.z(`Unexpected empty path segments match for a route "${n.pathname}" with param "${e}" of type "${t}"`),"__NEXT_ERROR_CODE",{value:"E931",enumerable:!1,configurable:!0});case"dynamic":case"dynamic-intercepted-(..)(..)":case"dynamic-intercepted-(.)":case"dynamic-intercepted-(..)":case"dynamic-intercepted-(...)":if(r<n.segments.length){let e=n.segments[r];if("dynamic"===e.type&&!a.hasOwnProperty(e.param.paramName))return;return"dynamic"===e.type?a[e.param.paramName]:nM(t)===e.interceptionMarker?e.name.replace(e.interceptionMarker,""):e.name}return}}function nU(e,t,r,n){let a=structuredClone(t),i=[{tree:e,depth:0}],s=nN(r);for(;i.length>0;){let{tree:e,depth:t}=i.pop(),{segment:r,parallelRoutes:o}=r5(e),l=n$(r);if(l?.type==="dynamic"&&!a.hasOwnProperty(l.param.paramName)&&!n?.has(l.param.paramName)){let{paramName:e,paramType:r}=l.param,n=nL(e,r,t,s,a);if(void 0!==n)a[e]=n;else if("optional-catchall"!==r)throw Object.defineProperty(new ey.z(`Could not resolve param value for segment: ${e}`),"__NEXT_ERROR_CODE",{value:"E932",enumerable:!1,configurable:!0})}let u=t;for(let e of(l&&"route-group"!==l.type&&"parallel-route"!==l.type&&u++,Object.values(o)))i.push({tree:e,depth:u})}return a}function nF(e,t,r,n,a){let i=function(e,t,r){let n=e[t];if(r?.has(t)){let[e]=r.get(t);n=e}else Array.isArray(n)?n=n.map(e=>encodeURIComponent(e)):"string"==typeof n&&(n=encodeURIComponent(n));return n}(e,t,n);if(!i||0===i.length){if("oc"===r)return{param:t,value:null,type:r,treeSegment:[t,"",r,a]};throw Object.defineProperty(new ey.z(`Missing value for segment key: "${t}" with dynamic param type: ${r}`),"__NEXT_ERROR_CODE",{value:"E864",enumerable:!1,configurable:!0})}let s=Array.isArray(i)?i.join("/"):i;return{param:t,value:i,treeSegment:[t,s,r,a],type:r}}let nH=/^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/;function nq(e){let t=e.startsWith("[")&&e.endsWith("]");t&&(e=e.slice(1,-1));let r=e.startsWith("...");return r&&(e=e.slice(3)),{key:e,repeat:r,optional:t}}var nB=a("./dist/esm/server/use-cache/constants.js");async function nz(e,t){return Promise.all(Array.from(e).map(([e,r])=>r.then(async({entry:r,hasExplicitRevalidate:n,hasExplicitExpire:a,readRootParamNames:i})=>{if(t&&(0===r.revalidate||r.expire<nB.Bw))return null;let[s,o]=r.value.tee();r.value=o;let l="";for await(let e of s)l+=function(e){let t=new Uint8Array(e),r=t.byteLength;if(r<65535)return String.fromCharCode.apply(null,t);let n="";for(let e=0;e<r;e++)n+=String.fromCharCode(t[e]);return n}(e);return[e,{entry:{value:btoa(l),tags:r.tags,stale:r.stale,timestamp:r.timestamp,expire:r.expire,revalidate:r.revalidate},hasExplicitRevalidate:n,hasExplicitExpire:a,readRootParamNames:i?[...i]:void 0}]}).catch(()=>null)))}async function nV(e,t){{if(0===e.fetch.size&&0===e.cache.size)return"null";let r={store:{fetch:Object.fromEntries(Array.from(e.fetch.entries())),cache:Object.fromEntries((await nz(e.cache.entries(),t)).filter(e=>null!==e)),encryptedBoundArgs:Object.fromEntries(Array.from(e.encryptedBoundArgs.entries()))}},{deflateSync:n}=a("node:zlib");return n(JSON.stringify(r)).toString("base64")}}function nX(e){return e?{mutable:!0,cache:new Map(e.cache),fetch:new Map(e.fetch),encryptedBoundArgs:new Map(e.encryptedBoundArgs),decryptedBoundArgs:new Map(e.decryptedBoundArgs),imageResponses:new Map(e.imageResponses),dynamicCacheKeys:e.dynamicCacheKeys?new Set(e.dynamicCacheKeys):new Set}:{mutable:!0,cache:new Map,fetch:new Map,encryptedBoundArgs:new Map,decryptedBoundArgs:new Map,imageResponses:new Map,dynamicCacheKeys:new Set}}function nW(e,t){{let r;if("string"!=typeof e)return e.mutable?{...e,mutable:!1}:e;if("null"===e)return{mutable:!1,cache:new Map,fetch:new Map,encryptedBoundArgs:new Map,decryptedBoundArgs:new Map,imageResponses:new Map};let{inflateSync:n}=a("node:zlib"),i=t?5*t:524288e3;try{r=JSON.parse(n(Buffer.from(e,"base64"),{maxOutputLength:i}).toString("utf-8"))}catch(e){if(e instanceof RangeError&&"ERR_BUFFER_TOO_LARGE"===e.code)throw Object.defineProperty(Error(`Decompressed resume data cache exceeded ${i} byte limit`),"__NEXT_ERROR_CODE",{value:"E976",enumerable:!1,configurable:!0});throw e}return{mutable:!1,cache:function(e){let t=new Map;for(let[r,{entry:n,hasExplicitRevalidate:a,hasExplicitExpire:i,readRootParamNames:s}]of e)t.set(r,Promise.resolve({entry:{value:new ReadableStream({start(e){e.enqueue(function(e){let t=e.length,r=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e.charCodeAt(n);return r}(atob(n.value))),e.close()}}),tags:n.tags,stale:n.stale,timestamp:n.timestamp,expire:n.expire,revalidate:n.revalidate},hasExplicitRevalidate:a,hasExplicitExpire:i,readRootParamNames:s?new Set(s):void 0,dynamicNestedCacheError:void 0}));return t}(Object.entries(r.store.cache)),fetch:new Map(Object.entries(r.store.fetch)),encryptedBoundArgs:new Map(Object.entries(r.store.encryptedBoundArgs)),decryptedBoundArgs:new Map,imageResponses:new Map}}}var nG=((p={})[p.DATA=1]="DATA",p[p.HTML=2]="HTML",p),nJ=((m={})[m.Empty=0]="Empty",m[m.Full=1]="Full",m);async function nK(e,t,r,n,a){let i=JSON.stringify([t,e]);if(!r||0===r.size)return`${i.length}:${i}${await nV(nW(n),a)}`;let s=JSON.stringify(Array.from(r.entries())),o=`${s.length}${s}${i}`;return`${o.length}:${o}${await nV(n,a)}`}async function nY(e,t){return`4:null${await nV(nW(e),t)}`}function nQ(e,t){let r={stateLength:e.length,errorName:t instanceof Error?t.name:typeof t,errorCode:null==t?void 0:t.code},n=e.match(/^([0-9]+):/);if(!n)return r.hasLengthPrefix=!1,r;let a=parseInt(n[1],10),i=n[0].length+a,s=e.slice(i);return r.hasLengthPrefix=!0,r.declaredPostponedLength=a,r.postponedStringComplete=e.length>=i,r.resumeDataCacheTailLength=s.length,r.resumeDataCacheTailIsNull="null"===s,r}var nZ=a("./dist/esm/server/app-render/use-flight-response.js");let n0=require("next/dist/server/node-environment-extensions/fast-set-immediate.external.js");async function n1(e){return e.aborted?!1:(await new Promise(e=>(0,n0.unpatchedSetImmediate)(e)),!e.aborted)}new class{constructor(e){if(this.maxActiveValidations=e,this.currentValidationByDocument=new Map,e<1)throw Object.defineProperty(new ey.z("DevValidationScheduler requires at least one active validation"),"__NEXT_ERROR_CODE",{value:"E1441",enumerable:!1,configurable:!0})}get size(){return this.currentValidationByDocument.size}begin(e){let t=this.currentValidationByDocument.get(e);if(void 0!==t&&(this.currentValidationByDocument.delete(e),t.abort()),this.currentValidationByDocument.size>=this.maxActiveValidations){let e=this.currentValidationByDocument.entries().next().value;if(void 0!==e){let[t,r]=e;this.currentValidationByDocument.delete(t),r.abort()}}let r=new AbortController;return this.currentValidationByDocument.set(e,r),{signal:r.signal,finish:()=>{this.currentValidationByDocument.get(e)===r&&this.currentValidationByDocument.delete(e)}}}}(100);var n2=a("./dist/esm/shared/lib/router/utils/parse-relative-url.js");let n3=U.createContext(null),n4=U.createContext(null),n8=U.createContext(null),n6=U.createContext(null),n9=U.createContext(new Set);var n5=a("./dist/esm/client/components/router-reducer/router-reducer-types.js"),n7=a("./dist/esm/client/components/router-reducer/create-href-from-url.js");class ae extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1174",enumerable:!1,configurable:!0})}}class at extends URLSearchParams{append(){throw new ae}delete(){throw new ae}set(){throw new ae}sort(){throw new ae}}let ar=(0,U.createContext)(null),an=(0,U.createContext)(null),aa=(0,U.createContext)(null),ai=(0,U.createContext)(null);function as(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}var ao=a("./dist/esm/client/components/use-action-queue.js"),al=a("./dist/esm/client/components/router-reducer/reducers/committed-state.js");let au="next-route-announcer";function ac({tree:e}){let[t,r]=(0,U.useState)(null);(0,U.useEffect)(()=>(r(function(){let e=document.getElementsByName(au)[0];if(e?.shadowRoot?.childNodes[0])return e.shadowRoot.childNodes[0];{let e=document.createElement(au);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(au)[0];e?.isConnected&&document.body.removeChild(e)}),[]);let[n,a]=(0,U.useState)(""),i=(0,U.useRef)(void 0);return(0,U.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==i.current&&i.current!==e&&a(e),i.current=e},[e]),t?(0,rQ.createPortal)(n,t):null}a("./dist/esm/server/lib/router-utils/is-postpone.js");let{instrumentParamsForClientValidation:ad,instrumentSearchParamsForClientValidation:af,expectCompleteParamsInClientValidation:ah}=process.env.__NEXT_CACHE_COMPONENTS?a("./dist/esm/client/components/instant-samples.js"):{};function ap(){let e=(0,U.useContext)(n3);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});let t=(0,U.useContext)(n4),r=t?.parentCacheNode.bfcacheId??0;return(0,U.useMemo)(()=>({back:e.back,forward:e.forward,refresh:e.refresh,hmrRefresh:e.hmrRefresh,push:e.push,replace:e.replace,prefetch:e.prefetch,experimental_gesturePush:e.experimental_gesturePush,bfcacheId:"_b_"+r+"_"}),[e,r])}function am({redirect:e,reset:t,redirectType:r}){let n=ap();return(0,U.useEffect)(()=>{U.startTransition(()=>{"push"===r?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class ag extends U.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if(te(e)){let t=tn(e),r=ta(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,x.jsx)(am,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function ay({children:e}){let t=ap();return(0,x.jsx)(ag,{router:t,children:e})}function av(e,t=!1){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:t&&e.startsWith(rE.OG)?rE.OG:e}let ab={then:()=>{}};var aS=a("./dist/esm/client/remove-base-path.js"),aw=a("./dist/esm/client/has-base-path.js"),a_=a("./dist/esm/client/components/router-reducer/compute-changed-path.js");a("./dist/esm/client/components/router-reducer/reducers/navigate-reducer.js");var aE=a("./dist/esm/client/components/segment-cache/navigation.js"),aR=a("./dist/esm/client/components/segment-cache/cache.js"),ak=a("./dist/esm/client/components/router-reducer/ppr-navigations.js"),ax=a("./dist/esm/client/components/segment-cache/bfcache.js");a("./dist/esm/client/app-call-server.js"),a("./dist/esm/client/app-find-source-map-url.js"),a("./dist/esm/client/components/segment-cache/fetch.js"),a("./dist/compiled/react-server-dom-turbopack-experimental/client.node.js");let aP=process.env.__NEXT_ROUTER_BASEPATH||"";function aC(e,t){return(e=>{if(47!==e.charCodeAt(0)||process.env.__NEXT_MANUAL_TRAILING_SLASH)return e;let{pathname:t,query:r,hash:n}=(0,V.R)(e);if(process.env.__NEXT_TRAILING_SLASH)if(/\.[^/]+\/?$/.test(t));else if(t.endsWith("/"))return`${t}${r}${n}`;else return`${t}/${r}${n}`;return`${z(t)}${r}${n}`})(process.env.__NEXT_MANUAL_CLIENT_BASE_PATH&&!t?e:X(e,aP))}var aT=a("./dist/esm/client/flight-data-helpers.js"),aA=a("./dist/esm/client/components/segment-cache/scheduler.js");a("./dist/esm/shared/lib/deployment-id.js");var aO=a("./dist/esm/client/components/segment-cache/optimistic-routes.js");let aj=/[\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/i,aI=/Googlebot(?!-)|Googlebot$/i;function aD(e){return e.origin!==window.location.origin}aj.source;var a$=a("./dist/esm/client/components/router-reducer/fetch-server-response.js"),aN=a("./dist/esm/shared/lib/is-thenable.js"),aM=a("./dist/esm/client/components/segment-cache/types.js"),aL=a("./dist/esm/client/components/segment-cache/cache-key.js"),aU=a("./dist/esm/client/components/links.js"),aF=a("./dist/esm/client/lib/javascript-url.js");let aH=[],aq=0;function aB(e){for(let t of aH)try{e(t)}catch(e){console.error("An instrumentation-client router transition hook failed",e)}}function az(e,t,r,n){if(process.env.__NEXT_INSTRUMENTATION_CLIENT_ROUTER_TRANSITION_EVENTS){if(!aH.some(e=>"function"==typeof e.onRouterTransitionStart))return;let a=`${Date.now().toString(36)}-${(++aq).toString(36)}`;aB(i=>{let s;return i.onRouterTransitionStart?.(e,t,{id:a,timestamp:performance.timeOrigin+performance.now(),fromRoutes:(s=[],!function e(t,r,n){var a;let i,o=(a=t[0],"page"===(i=(0,a_.XL)(a))?{path:null,isPage:!0}:""===i||"(__SLOT__)"===i||(0,rE.V)(i)?{path:null,isPage:!1}:i===rE.WO?{path:"default",isPage:!1}:i===rE.Jn?{path:"_not-found",isPage:!1}:{path:i,isPage:!1}),l=null===o.path?r:[...r,o.path],u=t[1],c=Object.keys(u);if(0===c.length||o.isPage)return void s.push({path:`/${l.join("/")}`,primary:n});for(let t of(void 0!==u.children&&e(u.children,l,n),c.sort()))"children"!==t&&e(u[t],[...l,`@${t}`],!1)}(r,[],!0),s.sort((e,t)=>e.primary!==t.primary?e.primary?-1:1:e.path.localeCompare(t.path)).map(e=>e.path)),prefetchIntent:n})})}else aB(r=>r.onRouterTransitionStart?.(e,t,null))}function aV(e,t,r){e.pending===t&&(e.pending=t.next,null!==e.pending)?aX({actionQueue:e,action:e.pending,setState:r}):null===e.pending&&e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:n5.z8},r))}async function aX({actionQueue:e,action:t,setState:r}){let n=e.state;e.pending=t;let a=t.payload,i=e.action(n,a);function s(n){if(t.discarded){t.payload.type===n5.s8&&t.payload.didRevalidate&&(e.needsRefresh=!0),aV(e,t,r);return}e.state=n,aV(e,t,r),t.resolve(n)}(0,aN.Q)(i)?i.then(s,n=>{aV(e,t,r),t.reject(n)}):s(i)}function aW(e){let t={state:e,dispatch:(e,r)=>(function(e,t,r){let n={resolve:r,reject:()=>{}};if(t.type!==n5.IU){let e=new Promise((e,t)=>{n={resolve:e,reject:t}});(0,U.startTransition)(()=>{r(e)})}let a={payload:t,next:null,resolve:n.resolve,reject:n.reject};null===e.pending?(e.last=a,aX({actionQueue:e,action:a,setState:r})):t.type===n5.Zb||t.type===n5.IU?(e.pending.discarded=!0,a.next=e.pending.next,e.last===e.pending&&(e.last=a),aX({actionQueue:e,action:a,setState:r})):(null!==e.last&&(e.last.next=a),e.last=a)})(t,e,r),action:async(e,t)=>e,pending:null,last:null};return t}function aG(){throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function aJ(e,t,r,n,a,i){if(a)for(let e of a)(0,U.addTransitionType)(e);let s=new URL(aC(e),location.href);process.env.__NEXT_APP_NAV_FAIL_HANDLING&&(window.next.__pendingUrl=s),(0,aU.DZ)(n),az(e,t,aG().state.tree,i),(0,ao.Dd)({type:n5.Zb,url:s,isExternalUrl:aD(s),locationSearch:location.search,scrollBehavior:r,navigateType:t})}let aK={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{let r;if((0,aF.U)(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});let n=aG();switch(t?.kind??n5.ob.AUTO){case n5.ob.AUTO:r=aM.Am.PPR;break;case n5.ob.FULL:r=aM.Am.Full;break;default:r=aM.Am.PPR}!function(e,t,r,n,a){let i=function(e){var t,r;let n;if(r=t=window.navigator.userAgent,aI.test(r)||aj.test(t))return null;try{n=new URL(aC(e),window.location.href)}catch(t){throw Object.defineProperty(Error(`Cannot prefetch '${e}' because it cannot be converted to a URL.`),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return aD(n)?null:n}(e);if(null===i)return;let s=(0,aL.O)(i.href,t);(0,aA.Ig)(s,r,n,aM.yZ.Default,a,null)}(e,n.state.nextUrl,n.state.tree,r,t?.onInvalidate??null)},replace:(e,t)=>{if((0,aF.U)(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,U.startTransition)(()=>{aJ(e,"replace",t?.scroll===!1?n5.Kj.NoScroll:n5.Kj.Default,null,t?.transitionTypes,null)})},push:(e,t)=>{if((0,aF.U)(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,U.startTransition)(()=>{aJ(e,"push",t?.scroll===!1?n5.Kj.NoScroll:n5.Kj.Default,null,t?.transitionTypes,null)})},refresh:()=>{(0,U.startTransition)(()=>{(0,ao.Dd)({type:n5.z8})})},hmrRefresh:()=>{throw Object.defineProperty(Error("hmrRefresh can only be used in development mode. Please use refresh instead."),"__NEXT_ERROR_CODE",{value:"E485",enumerable:!1,configurable:!0})},bfcacheId:"0"};function aY({error:e}){if(C.workAsyncStorage){let t=C.workAsyncStorage.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}}process.env.__NEXT_GESTURE_TRANSITION&&(aK.experimental_gesturePush=function(e,t){if(process.env.__NEXT_GESTURE_TRANSITION){if((0,aF.U)(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});!0;return}}),U.Component;class aQ extends U.Component{static{this.contextType=n3}constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.retry=()=>{(0,U.startTransition)(()=>{this.context?.refresh(),this.reset()})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if(t_(e))throw e;return{error:{thrownValue:e}}}static getDerivedStateFromProps(e,t){let{error:r}=t;return process.env.__NEXT_APP_NAV_FAIL_HANDLING&&r&&r.thrownValue,e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){if(this.state.error&&1){let e=this.state.error.thrownValue;return aY({error:e}),(0,x.jsxs)(x.Fragment,{children:[this.props.errorStyles,this.props.errorScripts,(0,x.jsx)(this.props.errorComponent,{error:e,reset:this.reset,retry:this.retry})]})}return this.props.children}}function aZ({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let a=!function(){{let e=tr.workUnitAsyncStorage.getStore();if(!e)return!1;switch(e.type){case"prerender":case"prerender-client":case"prerender-ppr":case"validation-client":let t=e.fallbackRouteParams;return t?t.size>0:!1}return!1}}()?(0,U.useContext)(an):null;return e?(0,x.jsx)(aQ,{pathname:a,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,x.jsx)(x.Fragment,{children:n})}function a0({children:e,errorComponent:t,errorStyles:r,errorScripts:n}){return(0,x.jsx)(aZ,{errorComponent:t,errorStyles:r,errorScripts:n,children:e})}let a1={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},a2={marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},a3={marginBottom:"24px"},a4={fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},a8={fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},a6={margin:0},a9={display:"flex",gap:"8px",alignItems:"center"},a5={display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},a7={display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},ie={position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"},it=`
|
|
104
|
+
Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E975",enumerable:!1,configurable:!0});let a=await o(e,w);if("function"!=typeof a)return null;{v&&(0,rT.R8)(v);let{actionResult:t}=await rq(a,[],i,s,j),r=await l(t,e,w);return{type:"done",result:void 0,formState:r}}}else{if(!k)return null;try{u=rB(_,w)}catch(e){return C(e)}let e=new d,t=[];await Promise.all([y(x,T,e),(async()=>{for await(let r of e)t.push(Buffer.from(r))})()]);let n=Buffer.concat(t).toString("utf-8");c=await r(n,w,{temporaryReferences:h})}}let m=(await r.__next_app__.require(u))[_],{type:g}=rj(_),{actionResult:y,skipPageRendering:S}=(performance.now(),await rq(m,c,i,s,j).finally(()=>{!function(e,{workStore:t,requestStore:r}){var n;let a=(null==(n=t.pendingRevalidatedTags)?void 0:n.some(e=>void 0===e.profile))?1:0,i=(0,eX.YX)(r.mutableCookies).length?1:0;a||i?e.setHeader(eF.ZL,JSON.stringify(r$.Du)):void 0!==t.pathWasRevalidated&&t.pathWasRevalidated!==r$.e9&&e.setHeader(eF.ZL,JSON.stringify(t.pathWasRevalidated))}(t,{workStore:i,requestStore:s})}));if(!k)return null;{let t=S?(0,rI.C)(i):!1;return{type:"done",result:await tt.actionAsyncStorage.exit(()=>n(e,l,s,{actionResult:Promise.resolve(y),skipPageRendering:S,temporaryReferences:h,waitUntil:!1===t?void 0:t}))}}})}catch(r){if(te(r)){let n=tn(r),a=ta(r);if(k)return t.statusCode=200,u.statusCode=200,{type:"done",result:await rU(e,t,O,n,a,l.renderOpts.basePath,i,s.url.pathname)};return t.statusCode=e7.SeeOther,u.statusCode=e7.SeeOther,t.setHeader("Location",n),{type:"done",result:eb.EMPTY}}if(e6(r)){if(t.statusCode=e9(r),u.statusCode=t.statusCode,k){let t=Promise.reject(r);try{await t}catch{}return{type:"done",result:await n(e,l,s,{skipPageRendering:!1,actionResult:t,temporaryReferences:h})}}return{type:"not-found"}}if(k){t.statusCode=500,u.statusCode=500;let a=Promise.reject(r);try{await a}catch{}return{type:"done",result:await n(e,l,s,{actionResult:a,skipPageRendering:void 0===i.pathWasRevalidated||i.pathWasRevalidated===r$.e9||j,temporaryReferences:h})}}throw r}}async function rq(e,t,r,n,a){n.phase="action";let i=a;if(t.length>1e3)throw Object.defineProperty(Error(`Server Action arguments list is too long (${t.length}). Maximum allowed is 1000.`),"__NEXT_ERROR_CODE",{value:"E986",enumerable:!1,configurable:!0});try{let a=await tr.workUnitAsyncStorage.run(n,()=>e.apply(null,t));return i||=void 0===r.pathWasRevalidated||r.pathWasRevalidated===r$.e9,{actionResult:a,skipPageRendering:i}}finally{!i&&(n.phase="render",n.cookies=eX.Ck.seal((0,eX.m0)(n.mutableCookies)),r.isDraftMode=n.draftMode.isEnabled,await (0,rI.C)(r))}}function rB(e,t){if(!e)throw Object.defineProperty(new ey.z("Missing 'next-action' header."),"__NEXT_ERROR_CODE",{value:"E664",enumerable:!1,configurable:!0});let r=t[e];if(null==r)throw rO(e)?(0,rA.UF)(e):(0,rA.jO)(e);return r.id}let rz="$ACTION_",rV="$ACTION_REF_",rX="$ACTION_ID_",rW='{"id":"',rG=U.createContext(null);function rJ(e){let t=(0,U.useContext)(rG);t&&t(e)}function rK(){let e=[],t=t=>{e.push(t)};return{ServerInsertedHTMLProvider:({children:e})=>(0,x.jsx)(rG.Provider,{value:t,children:e}),renderServerInsertedHTML:()=>e.map((e,t)=>(0,x.jsx)(U.Fragment,{children:e()},"__next_server_inserted__"+t))}}function rY(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}var rQ=a("./dist/compiled/react-dom-experimental/index.js");function rZ(e,t,r,n,a,i,s){var o;let l,u=[],c={src:"",crossOrigin:r},d=((null==(o=e.rootMainFilesTree)?void 0:o[s])||e.rootMainFiles).map(rY);if(0===d.length)throw Object.defineProperty(Error("Invariant: missing bootstrap script. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E459",enumerable:!1,configurable:!0});if(n){c.src=`${t}/_next/`+d[0]+a,c.integrity=n[d[0]];for(let e=1;e<d.length;e++){let r=`${t}/_next/`+d[e]+a,i=n[d[e]];u.push(r,i)}l=()=>{for(let e=0;e<u.length;e+=2)rQ.preinit(u[e],{as:"script",integrity:u[e+1],crossOrigin:r,nonce:i})}}else{c.src=`${t}/_next/`+d[0]+a;for(let e=1;e<d.length;e++){let r=`${t}/_next/`+d[e]+a;u.push(r)}l=()=>{for(let e=0;e<u.length;e++)rQ.preinit(u[e],{as:"script",nonce:i,crossOrigin:r})}}return[l,c]}function r0({polyfills:e,renderServerInsertedHTML:t,serverCapturedErrors:r,tracingMetadata:n,basePath:a}){let i=0,s=e.map(e=>(0,x.jsx)("script",{...e},e.src)),o=(n||[]).map(({key:e,value:t},r)=>(0,x.jsx)("meta",{name:e,content:t},`next-trace-data-${r}`));return async function(){let e=[];for(;i<r.length;){let t=r[i];if(i++,e6(t))e.push((0,x.jsx)("meta",{name:"robots",content:"noindex"},t.digest),null);else if(te(t)){let r=X(tn(t),a),n=ti(t)===e7.PermanentRedirect;r&&e.push((0,x.jsx)("meta",{id:"__next-page-redirect",httpEquiv:"refresh",content:`${n?0:1};url=${r}`},t.digest))}}let n=t();if(0===s.length&&0===o.length&&0===e.length&&Array.isArray(n)&&0===n.length)return"";let{stream:l}=await e$((0,x.jsxs)(x.Fragment,{children:[s,n,o,e]}),{progressiveChunkSize:1048576});return s=[],o=[],eD(l)}}var r1=a("./dist/esm/client/components/match-segments.js");function r2(e,t,r,n){let a=e.replace(/\.[^.]+$/,""),i=new Set,s=new Set,{entryCSSFiles:o,entryJSFiles:l}=(0,rA.QJ)(),u=o[a],c=null==l?void 0:l[a];if(u)for(let e of u)t.has(e.path)||(n&&t.add(e.path),i.add(e));if(c)for(let e of c)r.has(e)||(n&&r.add(e),s.add(e));return{styles:i,scripts:s}}function r3(e,t,r){if(!e||!t)return null;let n=t.replace(/\.[^.]+$/,""),a=new Set,i=!1,s=e.app[n];if(s)for(let e of(i=!0,s))r.has(e)||(a.add(e),r.add(e));return a.size?[...a].sort():i&&0===r.size?[]:null}function r4(e){let[,t,{loading:r}]=e;return r?!0:Object.values(t).some(e=>r4(e))}function r8(e){if(e.$$typeof!==Symbol.for("react.server.reference"))return!1;let{type:t}=rj(e.$$id);return"use-cache"===t}async function r6(e){let t,r,n,{layout:a,page:i,defaultPage:s}=e[2],o=void 0!==a,l=void 0!==i,u=void 0!==s&&e[0]===rE.WO;return o?(t=await a[0](),r="layout",n=a[1]):l?(t=await i[0](),r="page",n=i[1]):u&&(t=await s[0](),r="page",n=s[1]),{mod:t,modType:r,filePath:n}}function r9(e){return e.default||e}function r5(e){let[t,r,n,a]=e,{layout:i,template:s}=n,{page:o}=n;o=t===rE.WO?n.defaultPage:o;let l=i?.[1]||s?.[1]||o?.[1];return{page:o,segment:t,modules:n,conventionPath:l,parallelRoutes:r,staticSiblings:a}}function r7(e,t){let r="";return e.sharedContext.clientAssetToken&&(r+=`?dpl=${e.sharedContext.clientAssetToken}`),r}function ne(e,t,r){let{componentMod:{createElement:n}}=t,a=[],i=0;for(let s of e){let e="next",o=`${t.assetPrefix}/_next/${rY(s.path)}${r7(t,!0)}`;s.inlined&&!t.parsedRequestHeaders.isRSCRequest?a.push(n("style",{key:i,nonce:t.nonce,precedence:e,href:o},s.content)):(null==r||r.push(()=>{t.componentMod.preloadStyle(o,t.renderOpts.crossOrigin,t.nonce)}),a.push(n("link",{key:i,rel:"stylesheet",href:o,precedence:e,crossOrigin:t.renderOpts.crossOrigin,nonce:t.nonce}))),i++}return a}async function nt({filePath:e,getComponent:t,injectedCSS:r,injectedJS:n,ctx:a}){let{componentMod:{createElement:i}}=a,{styles:s,scripts:o}=r2(e,r,n),l=ne(s,a),u=[],c=0;for(let e of o)u.push(i("script",{src:`${a.assetPrefix}/_next/${rY(e)}${r7(a,!0)}`,async:!0,key:`script-${c}`,nonce:a.nonce})),c++;return[r9(await t()),l,u.length?u:null]}let nr=new Set,nn=()=>{};globalThis.FinalizationRegistry&&new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&t.cancel("Response object has been garbage collected").then(nn)});class na{constructor(e,t=e=>e()){this.cacheKeyFn=e,this.schedulerFn=t,this.pending=new Map}static create(e){return new na(null==e?void 0:e.cacheKeyFn,null==e?void 0:e.schedulerFn)}async batch(e,t){let r=this.cacheKeyFn?await this.cacheKeyFn(e):e;if(null===r)return t({resolve:e=>Promise.resolve(e),key:e});let n=this.pending.get(r);if(n)return n;let{promise:a,resolve:i,reject:s}=new es.q;return this.pending.set(r,a),this.schedulerFn(async()=>{try{let r=await t({resolve:i,key:e});i(r)}catch(e){s(e)}finally{this.pending.delete(r)}}),a}}var ni=a("./dist/esm/server/lib/lru-cache.js"),ns=a("./dist/esm/lib/scheduler.js"),no=((d={}).APP_PAGE="APP_PAGE",d.APP_ROUTE="APP_ROUTE",d.PAGES="PAGES",d.FETCH="FETCH",d.REDIRECT="REDIRECT",d.IMAGE="IMAGE",d),nl=((f={}).APP_PAGE="APP_PAGE",f.APP_ROUTE="APP_ROUTE",f.PAGES="PAGES",f.FETCH="FETCH",f.IMAGE="IMAGE",f),nu=((h={}).PAGES="PAGES",h.PAGES_API="PAGES_API",h.APP_PAGE="APP_PAGE",h.APP_ROUTE="APP_ROUTE",h.IMAGE="IMAGE",h);async function nc(e){var t,r;return{...e,value:(null==(t=e.value)?void 0:t.kind)===no.PAGES?{kind:no.PAGES,html:await e.value.html.toUnchunkedString(!0),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===no.APP_PAGE?{kind:no.APP_PAGE,html:await e.value.html.toUnchunkedString(!0),postponed:e.value.postponed,rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,segmentData:e.value.segmentData}:e.value}}async function nd(e){var t,r;return e?{isMiss:e.isMiss,isStale:e.isStale,cacheControl:e.cacheControl,isFallback:e.isFallback,value:(null==(t=e.value)?void 0:t.kind)===no.PAGES?{kind:no.PAGES,html:eb.fromStatic(e.value.html,H.j9),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===no.APP_PAGE?{kind:no.APP_PAGE,html:eb.fromStatic(e.value.html,H.j9),rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,postponed:e.value.postponed,segmentData:e.value.segmentData}:e.value}:null}function nf(e,t){if(!e)return t;let r=parseInt(e,10);return Number.isFinite(r)&&r>0?r:t}let nh=nf(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),np=nf(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),nm="__ttl_sentinel__";function ng(e,t){return`${e}\0${t??nm}`}class ny{constructor(e,t=np,r=nh){this.getBatcher=na.create({cacheKeyFn:({key:e,isOnDemandRevalidate:t})=>`${e}-${t?"1":"0"}`,schedulerFn:ns.x8}),this.revalidateBatcher=na.create({schedulerFn:ns.x8}),this.evictedInvocationIDs=new Set,this.minimal_mode=e,this.maxSize=t,this.ttl=r,this.cache=new ni.q(t,void 0,e=>{let t=function(e){let t=e.lastIndexOf("\0");if(-1===t)return;let r=e.slice(t+1);return r===nm?void 0:r}(e);if(t){if(this.evictedInvocationIDs.size>=100){let e=this.evictedInvocationIDs.values().next().value;e&&this.evictedInvocationIDs.delete(e)}this.evictedInvocationIDs.add(t)}})}async get(e,t,r){if(!e)return t({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let t=ng(e,r.invocationID),n=this.cache.get(t);if(n){if(void 0!==r.invocationID)return nd(n.entry);let e=Date.now();if(n.expiresAt>e)return nd(n.entry);this.cache.remove(t)}r.invocationID&&this.evictedInvocationIDs.has(r.invocationID)&&(0,rT.mc)(`Response cache entry was evicted for invocation ${r.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:n,isOnDemandRevalidate:a=!1,isFallback:i=!1,isRoutePPREnabled:s=!1,isPrefetch:o=!1,waitUntil:l,routeKind:u,invocationID:c}=r,d=await this.getBatcher.batch({key:e,isOnDemandRevalidate:a},({resolve:r})=>{let d=this.handleGet(e,t,{incrementalCache:n,isOnDemandRevalidate:a,isFallback:i,isRoutePPREnabled:s,isPrefetch:o,routeKind:u,invocationID:c},r);return l&&l(d),d});if(this.minimal_mode&&(null==d?void 0:d.cacheControl)){let t=ng(e,c);this.cache.set(t,{entry:d,expiresAt:Date.now()+this.ttl})}return nd(d)}async handleGet(e,t,r,n){let a=null,i=!1;try{if((a=this.minimal_mode?null:await r.incrementalCache.get(e,{kind:function(e){switch(e){case nu.PAGES:return nl.PAGES;case nu.APP_PAGE:return nl.APP_PAGE;case nu.IMAGE:return nl.IMAGE;case nu.APP_ROUTE:return nl.APP_ROUTE;case nu.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${e}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return e}}(r.routeKind),isRoutePPREnabled:r.isRoutePPREnabled,isFallback:r.isFallback}))&&!r.isOnDemandRevalidate&&-1!==a.isStale&&(n(a),i=!0,!a.isStale||r.isPrefetch))return a;let s=r.isPrefetch&&null===a?await this.handleRevalidate(e,r.incrementalCache,r.isRoutePPREnabled,r.isFallback,t,a,i):await this.revalidate(e,r.incrementalCache,r.isRoutePPREnabled,r.isFallback,t,a,i);if(!s){if(this.minimal_mode){let t=ng(e,r.invocationID);this.cache.remove(t)}return null}return r.isOnDemandRevalidate,s}catch(e){if(i)return console.error(e),null;throw e}}async revalidate(e,t,r,n,a,i,s,o){return this.revalidateBatcher.batch(e,()=>{let l=this.handleRevalidate(e,t,r,n,a,i,s);return o&&o(l),l})}async handleRevalidate(e,t,r,n,a,i,s){try{let o=await a({hasResolved:s,previousCacheEntry:i,isRevalidating:!0});if(!o)return null;let l=await nc({...o,isMiss:!i});return l.cacheControl&&!this.minimal_mode&&await t.set(e,l.value,{cacheControl:l.cacheControl,isRoutePPREnabled:r,isFallback:n}),l}catch(a){if(null==i?void 0:i.cacheControl){let a=Math.min(Math.max(i.cacheControl.revalidate||3,3),30),s=void 0===i.cacheControl.expire?void 0:Math.max(a+3,i.cacheControl.expire);await t.set(e,i.value,{cacheControl:{revalidate:a,expire:s},isRoutePPREnabled:r,isFallback:n})}throw a}}}Symbol.for("next-patch");class nv{add(e){this._done||this._seen.has(e)||(this._seen.add(e),null!==this._resolve?(this._resolve({value:e,done:!1}),this._resolve=null):this._buffer.push(e))}close(){this._done||(this._done=!0,null===this._resolve)||(this._resolve({value:void 0,done:!0}),this._resolve=null)}[Symbol.asyncIterator](){return{next:()=>this._buffer.length>0?Promise.resolve({value:this._buffer.shift(),done:!1}):this._done?Promise.resolve({value:void 0,done:!0}):new Promise(e=>{this._resolve=e})}}constructor(){this._resolve=null,this._done=!1,this._buffer=[],this._seen=new Set}}let nb=new nv;function nS(){let e=new nv;return{head:e,rootParams:new nv,segments:new Set}}function nw(){var e;let t=tr.workUnitAsyncStorage.getStore();return t?(null==(e=(0,tr.getVaryParamsAccumulator)(t))?void 0:e.head)??null:null}function n_(){var e;let t=tr.workUnitAsyncStorage.getStore();return t?(null==(e=(0,tr.getVaryParamsAccumulator)(t))?void 0:e.rootParams)??null:null}function nE(e){for(let t of(e.head.close(),e.rootParams.close(),e.segments))t.close()}nb.close();let nR=/^(.*[\\/])?next[\\/]dist[\\/]client[\\/]components[\\/]builtin[\\/]/;function nk(e,t,r){let n=e[2],a=n[r]?n[r][1]:void 0;if(a){let e=(function(e,t){let r=process.cwd(),n=e.replace(r,"").replace(/^[\\/]/,""),a=(t||"").replace(/^\[project\][\\/]?/,"").replace(e,"").replace(r,"").replace(/\\/g,"/").replace(/^\//,"");if(n&&a.startsWith(n)&&(a=a.slice(n.length).replace(/^\//,"")),a.includes("/")){let t=e.split(/[\\/]/).pop()||"";if(t){let e=t+"/",r=a.indexOf(e);r>=0&&(a=a.slice(r+e.length))}}return a})(t,a).replace(/^(src\/)?app\//,"");return nR.test(e)&&(e=e.replace(nR,""),e=`__next_builtin__${e}`),e}}function nx(e){return(0,eo.getTracer)().trace(el.Fx.createComponentTree,{spanName:"build component tree"},()=>nC(e,!0))}function nP(e,t){throw Object.defineProperty(Error(`The default export is not a React Component in "${"/"===e?"":e}/${t}"`),"__NEXT_ERROR_CODE",{value:"E45",enumerable:!1,configurable:!0})}async function nC({loaderTree:e,parentParams:t,parentOptionalCatchAllParamName:r,rootLayoutIncluded:n,injectedCSS:i,injectedJS:s,injectedFontPreloadTags:o,ctx:l,missingSlots:u,preloadCallbacks:c,authInterrupts:d,MetadataOutlet:f},h){let p,{renderOpts:{nextConfigOutput:m,experimental:g,cacheComponents:y},workStore:v,componentMod:{createElement:b,Fragment:S,SegmentViewNode:w,HTTPAccessFallbackBoundary:_,LayoutRouter:E,RenderFromTemplateContext:R,ClientPageRoot:k,ClientSegmentRoot:x,createServerSearchParamsForServerPage:P,createPrerenderSearchParamsForClientPage:C,createServerParamsForServerSegment:T,createPrerenderParamsForClientSegment:A,serverHooks:{DynamicServerError:O},Postpone:j},pagePath:I,getDynamicParamFromSegment:D,isPrefetch:$,query:N}=l,{page:M,conventionPath:L,segment:U,modules:F,parallelRoutes:q}=r5(e),{layout:B,template:z,error:V,loading:X,"not-found":W,forbidden:G,unauthorized:J}=F,K=new Set(i),Y=new Set(s),Q=new Set(o),Z=function({ctx:e,layoutOrPagePath:t,injectedCSS:r,injectedJS:n,injectedFontPreloadTags:a,preloadCallbacks:i}){let{componentMod:{createElement:s}}=e,{styles:o,scripts:l}=t?r2(t,r,n,!0):{styles:nr,scripts:nr},u=t?r3(e.renderOpts.nextFontManifest,t,a):null;if(u)if(u.length)for(let t=0;t<u.length;t++){let r=u[t],n=/\.(woff|woff2|eot|ttf|otf)$/.exec(r)[1],a=`font/${n}`,s=`${e.assetPrefix}/_next/${rY(r)}${r7(e,!0)}`;i.push(()=>{e.componentMod.preloadFont(s,a,e.renderOpts.crossOrigin,e.nonce)})}else try{let t=new URL(e.assetPrefix);i.push(()=>{e.componentMod.preconnect(t.origin,"anonymous",e.nonce)})}catch(t){i.push(()=>{e.componentMod.preconnect("/","anonymous",e.nonce)})}let c=ne(o,e,i),d=[],f=0;for(let t of l){let r=`${e.assetPrefix}/_next/${rY(t)}${r7(e,!0)}`;d.push(s("script",{src:r,async:!0,key:`script-${f}`,nonce:e.nonce})),f++}return c.length||d.length?[...c,...d]:null}({preloadCallbacks:c,ctx:l,layoutOrPagePath:L,injectedCSS:K,injectedJS:Y,injectedFontPreloadTags:Q}),[ee,et,er]=z?await nt({ctx:l,filePath:z[1],getComponent:z[0],injectedCSS:K,injectedJS:Y}):[S],[en,ea,ei]=V?await nt({ctx:l,filePath:V[1],getComponent:V[0],injectedCSS:K,injectedJS:Y}):[],[es,eu,ec]=X?await nt({ctx:l,filePath:X[1],getComponent:X[0],injectedCSS:K,injectedJS:Y}):[],ed=void 0!==B,ef=void 0!==M,{mod:eh,modType:ep}=await (0,eo.getTracer)().trace(el.Fx.getLayoutOrPageModule,{hideSpan:!(ed||ef),spanName:"resolve segment modules",attributes:{"next.segment":U}},()=>r6(e)),em=ed&&!n,eg=n||em,[ey,ev]=W?await nt({ctx:l,filePath:W[1],getComponent:W[0],injectedCSS:K,injectedJS:Y}):[],[eb,eS]=d&&G?await nt({ctx:l,filePath:G[1],getComponent:G[0],injectedCSS:K,injectedJS:Y}):[],[ew,e_]=d&&J?await nt({ctx:l,filePath:J[1],getComponent:J[0],injectedCSS:K,injectedJS:Y}):[],eE=null==eh?void 0:eh.dynamic;if("export"===m)if(eE&&"auto"!==eE){if("force-dynamic"===eE)throw Object.defineProperty(new tR('Page with `dynamic = "force-dynamic"` couldn\'t be exported. `output: "export"` requires all pages be renderable statically because there is no runtime server to dynamically render routes in this output format. Learn more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports'),"__NEXT_ERROR_CODE",{value:"E527",enumerable:!1,configurable:!0})}else eE="error";if("string"==typeof eE)if("error"===eE)v.dynamicShouldError=!0;else if("force-dynamic"===eE){if(v.forceDynamic=!0,v.isStaticGeneration&&!g.isRoutePPREnabled){let e=Object.defineProperty(new O('Page with `dynamic = "force-dynamic"` won\'t be rendered statically.'),"__NEXT_ERROR_CODE",{value:"E585",enumerable:!1,configurable:!0});throw v.dynamicUsageDescription=e.message,v.dynamicUsageStack=e.stack,e}}else v.dynamicShouldError=!1,v.forceStatic="force-static"===eE;if("string"==typeof(null==eh?void 0:eh.fetchCache)&&(v.fetchCache=null==eh?void 0:eh.fetchCache),void 0!==(null==eh?void 0:eh.revalidate)&&function(e,t){try{if(!1===e||e===1/0)H.AR;else if("number"==typeof e&&!isNaN(e)&&e>-1);else if(void 0!==e)throw Object.defineProperty(Error(`Invalid revalidate value "${e}" on "${t}", must be a non-negative number or false`),"__NEXT_ERROR_CODE",{value:"E179",enumerable:!1,configurable:!0})}catch(e){if(e instanceof Error&&e.message.includes("Invalid revalidate"))throw e;return}}(null==eh?void 0:eh.revalidate,v.route),"number"==typeof(null==eh?void 0:eh.revalidate)){let e=eh.revalidate,t=tr.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-runtime":case"prerender-legacy":case"prerender-ppr":t.revalidate>e&&(t.revalidate=e)}if(!v.forceStatic&&v.isStaticGeneration&&0===e&&!g.isRoutePPREnabled){let e=`revalidate: 0 configured ${U}`;throw v.dynamicUsageDescription=e,Object.defineProperty(new O(e),"__NEXT_ERROR_CODE",{value:"E1005",enumerable:!1,configurable:!0})}}if(ef&&"number"==typeof(null==eh?void 0:eh.unstable_dynamicStaleTime)){let e=eh.unstable_dynamicStaleTime,t=tr.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-runtime":case"prerender-legacy":case"prerender-ppr":t.stale>e&&(t.stale=e);break;case"request":(void 0===t.stale||t.stale>e)&&(t.stale=e)}}let eR=v.isStaticGeneration,ek=eR&&!0===g.isRoutePPREnabled,ex=eh?r9(eh):void 0;if(eR){let{isValidElementType:e}=a("./dist/compiled/react-is/index.js");void 0===ex||e(ex)||nP(I,ep??"page"),void 0===en||e(en)||nP(I,"error"),void 0===es||e(es)||nP(I,"loading"),void 0===ey||e(ey)||nP(I,"not-found"),void 0===eb||e(eb)||nP(I,"forbidden"),void 0===ew||e(ew)||nP(I,"unauthorized")}let eP=D(e),eC=t;eP&&null!==eP.value&&(eC={...t,[eP.param]:eP.value});let eT=(null==eP?void 0:eP.type)==="oc"&&null===eP.value?eP.param:r,eA=l.renderOpts.dir||"",[eO,ej]=await nO({ctx:l,conventionName:"not-found",Component:ey,styles:ev,tree:e}),[eI]=await nO({ctx:l,conventionName:"forbidden",Component:eb,styles:eS,tree:e}),[eD]=await nO({ctx:l,conventionName:"unauthorized",Component:ew,styles:e_,tree:e}),e$=await Promise.all(Object.keys(q).map(async t=>{let r="children"===t,n=q[t],a=r?eO:void 0,i=r?eI:void 0,s=r?eD:void 0,o=null;$&&(es||!r4(n))&&!g.isRoutePPREnabled||null===o&&(o=await nC({loaderTree:n,parentParams:eC,parentOptionalCatchAllParamName:eT,rootLayoutIncluded:eg,injectedCSS:K,injectedJS:Y,injectedFontPreloadTags:Q,ctx:l,missingSlots:u,preloadCallbacks:c,authInterrupts:d,MetadataOutlet:r?f:null},!1));let p=b(ee,null,b(R,null));return nk(e,eA,"template"),nk(e,eA,"error"),nk(e,eA,"loading"),h&&nk(e,eA,"global-error"),[t,b(E,{parallelRouterKey:t,error:en,errorStyles:ea,errorScripts:ei,template:p,templateStyles:et,templateScripts:er,notFound:a,forbidden:i,unauthorized:s,...!1}),o]})),eN={},eM={};for(let e of e$){let[t,r,n]=e;eN[t]=r,eM[t]=n}let eL=es?b(es,{key:"l"}):null,eU=(nk(e,eA,"loading"),eL?[eL,eu,ec]:null);if(!ex)return nj(l,b(S,{key:"c"},Z,eN.children),eM,eU,ek,nb);if(v.isStaticGeneration&&v.forceDynamic&&g.isRoutePPREnabled)return nj(l,b(S,{key:"c"},b(j,{reason:'dynamic = "force-dynamic" was used',route:v.route}),Z),eM,eU,!0,nb);let eF=(null==(p=(null==eh?void 0:eh.default)||eh)?void 0:p.$$typeof)===Symbol.for("react.client.reference"),eH=eF&&y?nb:function(){let e=tr.workUnitAsyncStorage.getStore();if(!e)return null;let t=(0,tr.getVaryParamsAccumulator)(e);if(!t)return null;let r=new nv;return t.segments.add(r),r}();if(ef){let t;if(eF)if(y)t=b(k,{Component:ex,serverProvidedParams:null});else if(eR){let e=A(eC),r=C();t=b(k,{Component:ex,serverProvidedParams:{searchParams:N,params:eC,promises:[r,e]}})}else t=b(k,{Component:ex,serverProvidedParams:{searchParams:N,params:eC,promises:null}});else{let e=T(eC,eT,eH),r=P(N,eH);t=r8(ex)?b(ex,{params:e,searchParams:r,$$isPage:!0}):b(ex,{params:e,searchParams:r})}rE.WO;return nj(l,b(S,{key:"c"},(nk(e,eA,"page")??nk(e,eA,"defaultPage"),t),Z,f?b(f,null):null),eM,eU,ek,eH)}{let t,r=em&&"children"in q&&Object.keys(q).length>1;if(eF){let e;if(y)e=b(x,{Component:ex,slots:eN,serverProvidedParams:null});else if(eR){let t=A(eC);e=b(x,{Component:ex,slots:eN,serverProvidedParams:{params:eC,promises:[t]}})}else e=b(x,{Component:ex,slots:eN,serverProvidedParams:{params:eC,promises:null}});if(r){let r,n,a;r=nT({ctx:l,ErrorBoundaryComponent:ey,errorElement:eO,ClientSegmentRoot:x,layerAssets:Z,SegmentComponent:ex,currentParams:eC}),n=nT({ctx:l,ErrorBoundaryComponent:eb,errorElement:eI,ClientSegmentRoot:x,layerAssets:Z,SegmentComponent:ex,currentParams:eC}),a=nT({ctx:l,ErrorBoundaryComponent:ew,errorElement:eD,ClientSegmentRoot:x,layerAssets:Z,SegmentComponent:ex,currentParams:eC}),t=r||n||a?b(_,{key:"c",notFound:r,forbidden:n,unauthorized:a},Z,e):b(S,{key:"c"},Z,e)}else t=b(S,{key:"c"},Z,e)}else{let e,n=T(eC,eT,eH);e=r8(ex)?b(ex,{...eN,params:n,$$isLayout:!0},eN.children):b(ex,{...eN,params:n},eN.children),t=r?b(_,{key:"c",notFound:eO?b(S,null,Z,b(ex,{params:n},ev,eO)):void 0},Z,e):b(S,{key:"c"},Z,e)}return nk(e,eA,"layout"),nj(l,t,eM,eU,ek,eH)}}function nT({ctx:e,ErrorBoundaryComponent:t,errorElement:r,ClientSegmentRoot:n,layerAssets:a,SegmentComponent:i,currentParams:s}){let{componentMod:{createElement:o,Fragment:l}}=e;return t?o(l,null,a,o(n,{Component:i,slots:{children:r},params:s})):null}function nA(e,t){return function e(t,r,n){let{modules:{layout:a},parallelRoutes:i}=r5(r),s=n(r),o=t;return(s&&null!==s.value&&(o={...t,[s.param]:s.value}),void 0!==a)?o:i.children?e(o,i.children,n):o}({},e,t)}async function nO({ctx:e,conventionName:t,Component:r,styles:n,tree:a}){let{componentMod:{createElement:i,Fragment:s}}=e,o=e.renderOpts.dir||"",{SegmentViewNode:l}=e.componentMod;return[r?i(s,null,i(r,null),n):void 0,nk(a,o,t)]}function nj(e,t,r,n,a,i){let s=e.componentMod.createElement;return null!==n&&(t=s(e.componentMod.LoadingBoundaryProvider,{loading:n,children:t})),[t,r,null,a,i]}async function nI({loaderTreeToFilter:e,parentParams:t,flightRouterState:r,parentIsInsideSharedLayout:n,rscHead:a,injectedCSS:i,injectedJS:s,injectedFontPreloadTags:o,rootLayoutIncluded:l,ctx:u,preloadCallbacks:c,MetadataOutlet:d,hintTree:f}){let{renderOpts:{nextFontManifest:h,experimental:p},query:m,isPrefetch:g,getDynamicParamFromSegment:y,parsedRequestHeaders:v,workStore:b}=u,S=!!p.prefetchInlining,w=u.renderOpts.cacheComponents,_=u.renderOpts.partialPrefetching,E=b.isStaticGeneration,R=u.renderOpts.isBuildTimePrerendering??!1,[k,x,P]=e,C=Object.keys(x),{layout:T}=P,A=void 0!==T&&!l,O=l||A,j=y(e),I=j&&null!==j.value?{...t,[j.param]:j.value}:t,D=(0,rE.HG)(j?j.treeSegment:k,m),$=!r||!(0,r1.t)(D,r[0])||"refetch"===r[3],N=$||n||"inside-shared-layout"===r[3];if(N&&!p.isRoutePPREnabled&&(v.isRouteTreePrefetchRequest||g&&!P.loading&&!r4(e)))return[[r&&nD(D,r[0])?r[0]:D,v.isRouteTreePrefetchRequest?await rx(e,f,S,w,_,E,R,y,l):await rk(e,f,S,w,_,E,R,y,m,l),null,[null,null],!0]];if(r&&"metadata-only"===r[3])return[[r&&nD(D,r[0])?r[0]:D,v.isRouteTreePrefetchRequest?await rx(e,f,S,w,_,E,R,y):await rk(e,f,S,w,_,E,R,y,m,l),null,a,!1]];if($){let t=r&&nD(D,r[0])?r[0]:D,n=await rk(e,f,S,w,_,E,R,y,m,l),h=await nx({ctx:u,loaderTree:e,parentParams:I,parentOptionalCatchAllParamName:null,parentRuntimePrefetchable:!1,injectedCSS:i,injectedJS:s,injectedFontPreloadTags:o,rootLayoutIncluded:l,preloadCallbacks:c,authInterrupts:p.authInterrupts,MetadataOutlet:d});return[[t,n,h,a,!1]]}let M=null==T?void 0:T[1],L=new Set(i),U=new Set(s),F=new Set(o);M&&(r2(M,L,U,!0),r3(h,M,F));let H=[];for(let e of C){var q;let t=x[e];for(let n of(await nI({ctx:u,loaderTreeToFilter:t,parentParams:I,flightRouterState:r&&r[1][e],parentIsInsideSharedLayout:N,rscHead:a,injectedCSS:L,injectedJS:U,injectedFontPreloadTags:F,rootLayoutIncluded:O,preloadCallbacks:c,MetadataOutlet:d,hintTree:(null==f?void 0:null==(q=f.slots)?void 0:q[e])??null})))H.push([D,e,...n])}return H}let nD=(e,t)=>{var r;return Array.isArray(e)||!Array.isArray(t)?!1:(null==(r=(0,rg.Hp)(e))?void 0:r.paramName)===t[0]};function n$(e){if(""===e)return null;let t=A.VB.find(t=>e.startsWith(t)),r=(0,rg.Hp)(e);return r?{type:"dynamic",name:e,param:r,interceptionMarker:t}:e.startsWith("(")&&e.endsWith(")")?{type:"route-group",name:e,interceptionMarker:t}:e.startsWith("@")?{type:"parallel-route",name:e,interceptionMarker:t}:{type:"static",name:e,interceptionMarker:t}}function nN(e){return function e(t,r){let n,a,i,s=t.split("/").filter(Boolean),o=[];for(let l of s){let s=n$(function(e){if(!/%5b|%5d/i.test(e))return e;try{let t=decodeURIComponent(e);return(0,rg.Hp)(t)?t:e}catch{return e}}(l));if(s){if("route-group"===s.type&&!(2&r))throw Object.defineProperty(new ey.z(`${t} is being parsed as a normalized route, but it has a route group segment.`),"__NEXT_ERROR_CODE",{value:"E1151",enumerable:!1,configurable:!0});if("parallel-route"===s.type&&!(1&r))throw Object.defineProperty(new ey.z(`${t} is being parsed as a normalized route, but it has a parallel route segment.`),"__NEXT_ERROR_CODE",{value:"E1152",enumerable:!1,configurable:!0});if(o.push(s),s.interceptionMarker){let o=t.split(s.interceptionMarker);if(2!==o.length)throw Object.defineProperty(Error(`Invalid interception route: ${t}`),"__NEXT_ERROR_CODE",{value:"E924",enumerable:!1,configurable:!0});a=e(o[0],r),i=e(o[1],r),n=s.interceptionMarker}}}let l=o.filter(e=>"dynamic"===e.type);return{normalized:0===r,pathname:t,segments:o,dynamicSegments:l,interceptionMarker:n,interceptingRoute:a,interceptedRoute:i}}(e,0)}function nM(e){switch(e){case"catchall-intercepted-(..)(..)":case"dynamic-intercepted-(..)(..)":return"(..)(..)";case"catchall-intercepted-(.)":case"dynamic-intercepted-(.)":return"(.)";case"catchall-intercepted-(..)":case"dynamic-intercepted-(..)":return"(..)";case"catchall-intercepted-(...)":case"dynamic-intercepted-(...)":return"(...)";default:return null}}function nL(e,t,r,n,a){switch(t){case"catchall":case"optional-catchall":case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":let i=[];for(let e=r;e<n.segments.length;e++){let s=n.segments[e];if("static"===s.type){let n=s.name,a=nM(t);a&&e===r&&a===s.interceptionMarker&&(n=n.replace(s.interceptionMarker,"")),i.push(n)}else{if(!a.hasOwnProperty(s.param.paramName)){if("optional-catchall"===s.param.paramType)break;return}let e=a[s.param.paramName];Array.isArray(e)?i.push(...e):i.push(e)}}if(i.length>0)return i;if("optional-catchall"===t)return;throw Object.defineProperty(new ey.z(`Unexpected empty path segments match for a route "${n.pathname}" with param "${e}" of type "${t}"`),"__NEXT_ERROR_CODE",{value:"E931",enumerable:!1,configurable:!0});case"dynamic":case"dynamic-intercepted-(..)(..)":case"dynamic-intercepted-(.)":case"dynamic-intercepted-(..)":case"dynamic-intercepted-(...)":if(r<n.segments.length){let e=n.segments[r];if("dynamic"===e.type&&!a.hasOwnProperty(e.param.paramName))return;return"dynamic"===e.type?a[e.param.paramName]:nM(t)===e.interceptionMarker?e.name.replace(e.interceptionMarker,""):e.name}return}}function nU(e,t,r,n){let a=structuredClone(t),i=[{tree:e,depth:0}],s=nN(r);for(;i.length>0;){let{tree:e,depth:t}=i.pop(),{segment:r,parallelRoutes:o}=r5(e),l=n$(r);if(l?.type==="dynamic"&&!a.hasOwnProperty(l.param.paramName)&&!n?.has(l.param.paramName)){let{paramName:e,paramType:r}=l.param,n=nL(e,r,t,s,a);if(void 0!==n)a[e]=n;else if("optional-catchall"!==r)throw Object.defineProperty(new ey.z(`Could not resolve param value for segment: ${e}`),"__NEXT_ERROR_CODE",{value:"E932",enumerable:!1,configurable:!0})}let u=t;for(let e of(l&&"route-group"!==l.type&&"parallel-route"!==l.type&&u++,Object.values(o)))i.push({tree:e,depth:u})}return a}function nF(e,t,r,n,a){let i=function(e,t,r){let n=e[t];if(r?.has(t)){let[e]=r.get(t);n=e}else Array.isArray(n)?n=n.map(e=>encodeURIComponent(e)):"string"==typeof n&&(n=encodeURIComponent(n));return n}(e,t,n);if(!i||0===i.length){if("oc"===r)return{param:t,value:null,type:r,treeSegment:[t,"",r,a]};throw Object.defineProperty(new ey.z(`Missing value for segment key: "${t}" with dynamic param type: ${r}`),"__NEXT_ERROR_CODE",{value:"E864",enumerable:!1,configurable:!0})}let s=Array.isArray(i)?i.join("/"):i;return{param:t,value:i,treeSegment:[t,s,r,a],type:r}}let nH=/^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/;function nq(e){let t=e.startsWith("[")&&e.endsWith("]");t&&(e=e.slice(1,-1));let r=e.startsWith("...");return r&&(e=e.slice(3)),{key:e,repeat:r,optional:t}}var nB=a("./dist/esm/server/use-cache/constants.js");async function nz(e,t){return Promise.all(Array.from(e).map(([e,r])=>r.then(async({entry:r,hasExplicitRevalidate:n,hasExplicitExpire:a,readRootParamNames:i})=>{if(t&&(0===r.revalidate||r.expire<nB.Bw))return null;let[s,o]=r.value.tee();r.value=o;let l="";for await(let e of s)l+=function(e){let t=new Uint8Array(e),r=t.byteLength;if(r<65535)return String.fromCharCode.apply(null,t);let n="";for(let e=0;e<r;e++)n+=String.fromCharCode(t[e]);return n}(e);return[e,{entry:{value:btoa(l),tags:r.tags,stale:r.stale,timestamp:r.timestamp,expire:r.expire,revalidate:r.revalidate},hasExplicitRevalidate:n,hasExplicitExpire:a,readRootParamNames:i?[...i]:void 0}]}).catch(()=>null)))}async function nV(e,t){{if(0===e.fetch.size&&0===e.cache.size)return"null";let r={store:{fetch:Object.fromEntries(Array.from(e.fetch.entries())),cache:Object.fromEntries((await nz(e.cache.entries(),t)).filter(e=>null!==e)),encryptedBoundArgs:Object.fromEntries(Array.from(e.encryptedBoundArgs.entries()))}},{deflateSync:n}=a("node:zlib");return n(JSON.stringify(r)).toString("base64")}}function nX(e){return e?{mutable:!0,cache:new Map(e.cache),fetch:new Map(e.fetch),encryptedBoundArgs:new Map(e.encryptedBoundArgs),decryptedBoundArgs:new Map(e.decryptedBoundArgs),imageResponses:new Map(e.imageResponses),dynamicCacheKeys:e.dynamicCacheKeys?new Set(e.dynamicCacheKeys):new Set}:{mutable:!0,cache:new Map,fetch:new Map,encryptedBoundArgs:new Map,decryptedBoundArgs:new Map,imageResponses:new Map,dynamicCacheKeys:new Set}}function nW(e,t){{let r;if("string"!=typeof e)return e.mutable?{...e,mutable:!1}:e;if("null"===e)return{mutable:!1,cache:new Map,fetch:new Map,encryptedBoundArgs:new Map,decryptedBoundArgs:new Map,imageResponses:new Map};let{inflateSync:n}=a("node:zlib"),i=t?5*t:524288e3;try{r=JSON.parse(n(Buffer.from(e,"base64"),{maxOutputLength:i}).toString("utf-8"))}catch(e){if(e instanceof RangeError&&"ERR_BUFFER_TOO_LARGE"===e.code)throw Object.defineProperty(Error(`Decompressed resume data cache exceeded ${i} byte limit`),"__NEXT_ERROR_CODE",{value:"E976",enumerable:!1,configurable:!0});throw e}return{mutable:!1,cache:function(e){let t=new Map;for(let[r,{entry:n,hasExplicitRevalidate:a,hasExplicitExpire:i,readRootParamNames:s}]of e)t.set(r,Promise.resolve({entry:{value:new ReadableStream({start(e){e.enqueue(function(e){let t=e.length,r=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e.charCodeAt(n);return r}(atob(n.value))),e.close()}}),tags:n.tags,stale:n.stale,timestamp:n.timestamp,expire:n.expire,revalidate:n.revalidate},hasExplicitRevalidate:a,hasExplicitExpire:i,readRootParamNames:s?new Set(s):void 0,dynamicNestedCacheError:void 0}));return t}(Object.entries(r.store.cache)),fetch:new Map(Object.entries(r.store.fetch)),encryptedBoundArgs:new Map(Object.entries(r.store.encryptedBoundArgs)),decryptedBoundArgs:new Map,imageResponses:new Map}}}var nG=((p={})[p.DATA=1]="DATA",p[p.HTML=2]="HTML",p),nJ=((m={})[m.Empty=0]="Empty",m[m.Full=1]="Full",m);async function nK(e,t,r,n,a){let i=JSON.stringify([t,e]);if(!r||0===r.size)return`${i.length}:${i}${await nV(nW(n),a)}`;let s=JSON.stringify(Array.from(r.entries())),o=`${s.length}${s}${i}`;return`${o.length}:${o}${await nV(n,a)}`}async function nY(e,t){return`4:null${await nV(nW(e),t)}`}function nQ(e,t){let r={stateLength:e.length,errorName:t instanceof Error?t.name:typeof t,errorCode:null==t?void 0:t.code},n=e.match(/^([0-9]+):/);if(!n)return r.hasLengthPrefix=!1,r;let a=parseInt(n[1],10),i=n[0].length+a,s=e.slice(i);return r.hasLengthPrefix=!0,r.declaredPostponedLength=a,r.postponedStringComplete=e.length>=i,r.resumeDataCacheTailLength=s.length,r.resumeDataCacheTailIsNull="null"===s,r}var nZ=a("./dist/esm/server/app-render/use-flight-response.js");let n0=require("next/dist/server/node-environment-extensions/fast-set-immediate.external.js");async function n1(e){return e.aborted?!1:(await new Promise(e=>(0,n0.unpatchedSetImmediate)(e)),!e.aborted)}new class{constructor(e){if(this.maxActiveValidations=e,this.currentValidationByDocument=new Map,e<1)throw Object.defineProperty(new ey.z("DevValidationScheduler requires at least one active validation"),"__NEXT_ERROR_CODE",{value:"E1441",enumerable:!1,configurable:!0})}get size(){return this.currentValidationByDocument.size}begin(e){let t=this.currentValidationByDocument.get(e);if(void 0!==t&&(this.currentValidationByDocument.delete(e),t.abort()),this.currentValidationByDocument.size>=this.maxActiveValidations){let e=this.currentValidationByDocument.entries().next().value;if(void 0!==e){let[t,r]=e;this.currentValidationByDocument.delete(t),r.abort()}}let r=new AbortController;return this.currentValidationByDocument.set(e,r),{signal:r.signal,finish:()=>{this.currentValidationByDocument.get(e)===r&&this.currentValidationByDocument.delete(e)}}}}(100);var n2=a("./dist/esm/shared/lib/router/utils/parse-relative-url.js");let n3=U.createContext(null),n4=U.createContext(null),n8=U.createContext(null),n6=U.createContext(null),n9=U.createContext(new Set);var n5=a("./dist/esm/client/components/router-reducer/router-reducer-types.js"),n7=a("./dist/esm/client/components/router-reducer/create-href-from-url.js");class ae extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1174",enumerable:!1,configurable:!0})}}class at extends URLSearchParams{append(){throw new ae}delete(){throw new ae}set(){throw new ae}sort(){throw new ae}}let ar=(0,U.createContext)(null),an=(0,U.createContext)(null),aa=(0,U.createContext)(null),ai=(0,U.createContext)(null);function as(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}var ao=a("./dist/esm/client/components/use-action-queue.js"),al=a("./dist/esm/client/components/router-reducer/reducers/committed-state.js");let au="next-route-announcer";function ac({tree:e}){let[t,r]=(0,U.useState)(null);(0,U.useEffect)(()=>(r(function(){let e=document.getElementsByName(au)[0];if(e?.shadowRoot?.childNodes[0])return e.shadowRoot.childNodes[0];{let e=document.createElement(au);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(au)[0];e?.isConnected&&document.body.removeChild(e)}),[]);let[n,a]=(0,U.useState)(""),i=(0,U.useRef)(void 0);return(0,U.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==i.current&&i.current!==e&&a(e),i.current=e},[e]),t?(0,rQ.createPortal)(n,t):null}a("./dist/esm/server/lib/router-utils/is-postpone.js");let{instrumentParamsForClientValidation:ad,instrumentSearchParamsForClientValidation:af,expectCompleteParamsInClientValidation:ah}=process.env.__NEXT_CACHE_COMPONENTS?a("./dist/esm/client/components/instant-samples.js"):{};function ap(){let e=(0,U.useContext)(n3);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});let t=(0,U.useContext)(n4),r=t?.parentCacheNode.bfcacheId??0;return(0,U.useMemo)(()=>({back:e.back,forward:e.forward,refresh:e.refresh,hmrRefresh:e.hmrRefresh,push:e.push,replace:e.replace,prefetch:e.prefetch,experimental_gesturePush:e.experimental_gesturePush,bfcacheId:"_b_"+r+"_"}),[e,r])}function am({redirect:e,reset:t,redirectType:r}){let n=ap();return(0,U.useEffect)(()=>{U.startTransition(()=>{"push"===r?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class ag extends U.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if(te(e)){let t=tn(e),r=ta(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,x.jsx)(am,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function ay({children:e}){let t=ap();return(0,x.jsx)(ag,{router:t,children:e})}function av(e,t=!1){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:t&&e.startsWith(rE.OG)?rE.OG:e}let ab={then:()=>{}};var aS=a("./dist/esm/client/remove-base-path.js"),aw=a("./dist/esm/client/has-base-path.js"),a_=a("./dist/esm/client/components/router-reducer/compute-changed-path.js");a("./dist/esm/client/components/router-reducer/reducers/navigate-reducer.js");var aE=a("./dist/esm/client/components/segment-cache/navigation.js"),aR=a("./dist/esm/client/components/segment-cache/cache.js"),ak=a("./dist/esm/client/components/router-reducer/ppr-navigations.js"),ax=a("./dist/esm/client/components/segment-cache/bfcache.js");a("./dist/esm/client/app-call-server.js"),a("./dist/esm/client/app-find-source-map-url.js"),a("./dist/esm/client/components/segment-cache/fetch.js"),a("./dist/compiled/react-server-dom-turbopack-experimental/client.node.js");let aP=process.env.__NEXT_ROUTER_BASEPATH||"";function aC(e,t){return(e=>{if(47!==e.charCodeAt(0)||process.env.__NEXT_MANUAL_TRAILING_SLASH)return e;let{pathname:t,query:r,hash:n}=(0,V.R)(e);if(process.env.__NEXT_TRAILING_SLASH)if(/\.[^/]+\/?$/.test(t));else if(t.endsWith("/"))return`${t}${r}${n}`;else return`${t}/${r}${n}`;return`${z(t)}${r}${n}`})(process.env.__NEXT_MANUAL_CLIENT_BASE_PATH&&!t?e:X(e,aP))}var aT=a("./dist/esm/client/flight-data-helpers.js"),aA=a("./dist/esm/client/components/segment-cache/scheduler.js");a("./dist/esm/shared/lib/deployment-id.js");var aO=a("./dist/esm/client/components/segment-cache/optimistic-routes.js");let aj=/[\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/i,aI=/Googlebot(?!-)|Googlebot$/i;function aD(e){return e.origin!==window.location.origin}aj.source;var a$=a("./dist/esm/client/components/router-reducer/fetch-server-response.js"),aN=a("./dist/esm/shared/lib/is-thenable.js"),aM=a("./dist/esm/client/components/segment-cache/types.js"),aL=a("./dist/esm/client/components/segment-cache/cache-key.js"),aU=a("./dist/esm/client/components/links.js"),aF=a("./dist/esm/client/lib/javascript-url.js");let aH=[],aq=0;function aB(e){for(let t of aH)try{e(t)}catch(e){console.error("An instrumentation-client router transition hook failed",e)}}function az(e,t,r,n){if(process.env.__NEXT_INSTRUMENTATION_CLIENT_ROUTER_TRANSITION_EVENTS){if(!aH.some(e=>"function"==typeof e.onRouterTransitionStart))return;let a=`${Date.now().toString(36)}-${(++aq).toString(36)}`;aB(i=>{let s;return i.onRouterTransitionStart?.(e,t,{id:a,timestamp:performance.timeOrigin+performance.now(),fromRoutes:(s=[],!function e(t,r,n){var a;let i,o=(a=t[0],"page"===(i=(0,a_.XL)(a))?{path:null,isPage:!0}:""===i||"(__SLOT__)"===i||(0,rE.V)(i)?{path:null,isPage:!1}:i===rE.WO?{path:"default",isPage:!1}:i===rE.Jn?{path:"_not-found",isPage:!1}:{path:i,isPage:!1}),l=null===o.path?r:[...r,o.path],u=t[1],c=Object.keys(u);if(0===c.length||o.isPage)return void s.push({path:`/${l.join("/")}`,primary:n});for(let t of(void 0!==u.children&&e(u.children,l,n),c.sort()))"children"!==t&&e(u[t],[...l,`@${t}`],!1)}(r,[],!0),s.sort((e,t)=>e.primary!==t.primary?e.primary?-1:1:e.path.localeCompare(t.path)).map(e=>e.path)),prefetchIntent:n})})}else aB(r=>r.onRouterTransitionStart?.(e,t,null))}function aV(e,t,r){e.pending===t&&(e.pending=t.next,null!==e.pending)?aX({actionQueue:e,action:e.pending,setState:r}):null===e.pending&&e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:n5.z8},r))}async function aX({actionQueue:e,action:t,setState:r}){let n=e.state;e.pending=t;let a=t.payload,i=e.action(n,a);function s(n){if(t.discarded){t.payload.type===n5.s8&&t.payload.didRevalidate&&(e.needsRefresh=!0),aV(e,t,r);return}e.state=n,aV(e,t,r),t.resolve(n)}(0,aN.Q)(i)?i.then(s,n=>{aV(e,t,r),t.reject(n)}):s(i)}function aW(e){let t={state:e,dispatch:(e,r)=>(function(e,t,r){let n={resolve:r,reject:()=>{}};if(t.type!==n5.IU){let e=new Promise((e,t)=>{n={resolve:e,reject:t}});(0,U.startTransition)(()=>{r(e)})}let a={payload:t,next:null,resolve:n.resolve,reject:n.reject};null===e.pending?(e.last=a,aX({actionQueue:e,action:a,setState:r})):t.type===n5.Zb||t.type===n5.IU?(e.pending.discarded=!0,a.next=e.pending.next,e.last===e.pending&&(e.last=a),aX({actionQueue:e,action:a,setState:r})):(null!==e.last&&(e.last.next=a),e.last=a)})(t,e,r),action:async(e,t)=>e,pending:null,last:null};return t}function aG(){throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function aJ(e,t,r,n,a,i){if(a)for(let e of a)(0,U.addTransitionType)(e);let s=new URL(aC(e),location.href);process.env.__NEXT_APP_NAV_FAIL_HANDLING&&(window.next.__pendingUrl=s),(0,aU.DZ)(n),az(e,t,aG().state.tree,i),(0,ao.Dd)({type:n5.Zb,url:s,isExternalUrl:aD(s),locationSearch:location.search,scrollBehavior:r,navigateType:t})}let aK={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{let r;if((0,aF.U)(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});let n=aG();switch(t?.kind??n5.ob.AUTO){case n5.ob.AUTO:r=aM.Am.PPR;break;case n5.ob.FULL:r=aM.Am.Full;break;default:r=aM.Am.PPR}!function(e,t,r,n,a){let i=function(e){var t,r;let n;if(r=t=window.navigator.userAgent,aI.test(r)||aj.test(t))return null;try{n=new URL(aC(e),window.location.href)}catch(t){throw Object.defineProperty(Error(`Cannot prefetch '${e}' because it cannot be converted to a URL.`),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return aD(n)?null:n}(e);if(null===i)return;let s=(0,aL.O)(i.href,t);(0,aA.Ig)(s,r,n,aM.yZ.Default,a,null)}(e,n.state.nextUrl,n.state.tree,r,t?.onInvalidate??null)},replace:(e,t)=>{if((0,aF.U)(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,U.startTransition)(()=>{aJ(e,"replace",t?.scroll===!1?n5.Kj.NoScroll:n5.Kj.Default,null,t?.transitionTypes,null)})},push:(e,t)=>{if((0,aF.U)(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,U.startTransition)(()=>{aJ(e,"push",t?.scroll===!1?n5.Kj.NoScroll:n5.Kj.Default,null,t?.transitionTypes,null)})},refresh:()=>{(0,U.startTransition)(()=>{(0,ao.Dd)({type:n5.z8})})},hmrRefresh:()=>{throw Object.defineProperty(Error("hmrRefresh can only be used in development mode. Please use refresh instead."),"__NEXT_ERROR_CODE",{value:"E485",enumerable:!1,configurable:!0})},bfcacheId:"0"};function aY({error:e}){if(C.workAsyncStorage){let t=C.workAsyncStorage.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}}process.env.__NEXT_GESTURE_TRANSITION&&(aK.experimental_gesturePush=function(e,t){if(process.env.__NEXT_GESTURE_TRANSITION){if((0,aF.U)(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});!0;return}}),U.Component;class aQ extends U.Component{static{this.contextType=n3}constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.retry=()=>{(0,U.startTransition)(()=>{this.context?.refresh(),this.reset()})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if(t_(e))throw e;return{error:{thrownValue:e}}}static getDerivedStateFromProps(e,t){let{error:r}=t;return process.env.__NEXT_APP_NAV_FAIL_HANDLING&&r&&r.thrownValue,e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){if(this.state.error&&1){let e=this.state.error.thrownValue;return aY({error:e}),(0,x.jsxs)(x.Fragment,{children:[this.props.errorStyles,this.props.errorScripts,(0,x.jsx)(this.props.errorComponent,{error:e,reset:this.reset,retry:this.retry})]})}return this.props.children}}function aZ({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let a=!function(){{let e=tr.workUnitAsyncStorage.getStore();if(!e)return!1;switch(e.type){case"prerender":case"prerender-client":case"prerender-ppr":case"validation-client":let t=e.fallbackRouteParams;return t?t.size>0:!1}return!1}}()?(0,U.useContext)(an):null;return e?(0,x.jsx)(aQ,{pathname:a,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,x.jsx)(x.Fragment,{children:n})}function a0({children:e,errorComponent:t,errorStyles:r,errorScripts:n}){return(0,x.jsx)(aZ,{errorComponent:t,errorStyles:r,errorScripts:n,children:e})}let a1={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},a2={marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},a3={marginBottom:"24px"},a4={fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},a8={fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},a6={margin:0},a9={display:"flex",gap:"8px",alignItems:"center"},a5={display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},a7={display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},ie={position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"},it=`
|
|
105
105
|
:root {
|
|
106
106
|
--next-error-bg: #fff;
|
|
107
107
|
--next-error-text: #171717;
|