@kurly-growth/growthman 0.1.1 → 0.1.2
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/BUILD_ID +1 -0
- package/.next/app-path-routes-manifest.json +12 -0
- package/.next/build/chunks/8e02f_b5d23412._.js +6758 -0
- package/.next/build/chunks/8e02f_b5d23412._.js.map +47 -0
- package/.next/build/chunks/[root-of-the-server]__310ad51a._.js +206 -0
- package/.next/build/chunks/[root-of-the-server]__310ad51a._.js.map +8 -0
- package/.next/build/chunks/[root-of-the-server]__8e2c0d87._.js +500 -0
- package/.next/build/chunks/[root-of-the-server]__8e2c0d87._.js.map +11 -0
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_5040861e._.js +13 -0
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_5040861e._.js.map +5 -0
- package/.next/build/chunks/[turbopack]_runtime.js +795 -0
- package/.next/build/chunks/[turbopack]_runtime.js.map +10 -0
- package/.next/build/package.json +1 -0
- package/.next/build/postcss.js +6 -0
- package/.next/build/postcss.js.map +5 -0
- package/.next/build-manifest.json +19 -0
- package/.next/diagnostics/build-diagnostics.json +6 -0
- package/.next/diagnostics/framework.json +1 -0
- package/.next/export-marker.json +6 -0
- package/.next/fallback-build-manifest.json +12 -0
- package/.next/images-manifest.json +66 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +114 -0
- package/.next/required-server-files.js +163 -0
- package/.next/required-server-files.json +163 -0
- package/.next/routes-manifest.json +109 -0
- package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_global-error/page/build-manifest.json +16 -0
- package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
- package/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_global-error/page.js +11 -0
- package/.next/server/app/_global-error/page.js.map +5 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +2 -0
- package/.next/server/app/_global-error.html +2 -0
- package/.next/server/app/_global-error.meta +15 -0
- package/.next/server/app/_global-error.rsc +13 -0
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +13 -0
- package/.next/server/app/_global-error.segments/_head.segment.rsc +6 -0
- package/.next/server/app/_global-error.segments/_index.segment.rsc +4 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_not-found/page/build-manifest.json +16 -0
- package/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
- package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_not-found/page.js +14 -0
- package/.next/server/app/_not-found/page.js.map +5 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +2 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +16 -0
- package/.next/server/app/_not-found.rsc +15 -0
- package/.next/server/app/_not-found.segments/_full.segment.rsc +15 -0
- package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
- package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -0
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +4 -0
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/api/endpoints/[id]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/endpoints/[id]/route/build-manifest.json +11 -0
- package/.next/server/app/api/endpoints/[id]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/endpoints/[id]/route.js +6 -0
- package/.next/server/app/api/endpoints/[id]/route.js.map +5 -0
- package/.next/server/app/api/endpoints/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/endpoints/[id]/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/endpoints/bulk/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/endpoints/bulk/route/build-manifest.json +11 -0
- package/.next/server/app/api/endpoints/bulk/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/endpoints/bulk/route.js +6 -0
- package/.next/server/app/api/endpoints/bulk/route.js.map +5 -0
- package/.next/server/app/api/endpoints/bulk/route.js.nft.json +1 -0
- package/.next/server/app/api/endpoints/bulk/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/endpoints/import/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/endpoints/import/route/build-manifest.json +11 -0
- package/.next/server/app/api/endpoints/import/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/endpoints/import/route.js +6 -0
- package/.next/server/app/api/endpoints/import/route.js.map +5 -0
- package/.next/server/app/api/endpoints/import/route.js.nft.json +1 -0
- package/.next/server/app/api/endpoints/import/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/endpoints/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/endpoints/route/build-manifest.json +11 -0
- package/.next/server/app/api/endpoints/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/endpoints/route.js +6 -0
- package/.next/server/app/api/endpoints/route.js.map +5 -0
- package/.next/server/app/api/endpoints/route.js.nft.json +1 -0
- package/.next/server/app/api/endpoints/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/endpoints/sync/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/endpoints/sync/route/build-manifest.json +11 -0
- package/.next/server/app/api/endpoints/sync/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/endpoints/sync/route.js +6 -0
- package/.next/server/app/api/endpoints/sync/route.js.map +5 -0
- package/.next/server/app/api/endpoints/sync/route.js.nft.json +1 -0
- package/.next/server/app/api/endpoints/sync/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/mock/[...slug]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/mock/[...slug]/route/build-manifest.json +11 -0
- package/.next/server/app/api/mock/[...slug]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/mock/[...slug]/route.js +7 -0
- package/.next/server/app/api/mock/[...slug]/route.js.map +5 -0
- package/.next/server/app/api/mock/[...slug]/route.js.nft.json +1 -0
- package/.next/server/app/api/mock/[...slug]/route_client-reference-manifest.js +2 -0
- package/.next/server/app/favicon.ico/route/app-paths-manifest.json +3 -0
- package/.next/server/app/favicon.ico/route/build-manifest.json +11 -0
- package/.next/server/app/favicon.ico/route.js +7 -0
- package/.next/server/app/favicon.ico/route.js.map +5 -0
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -0
- package/.next/server/app/favicon.ico.body +0 -0
- package/.next/server/app/favicon.ico.meta +1 -0
- package/.next/server/app/index.html +1 -0
- package/.next/server/app/index.meta +14 -0
- package/.next/server/app/index.rsc +21 -0
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/index.segments/_full.segment.rsc +21 -0
- package/.next/server/app/index.segments/_head.segment.rsc +6 -0
- package/.next/server/app/index.segments/_index.segment.rsc +6 -0
- package/.next/server/app/index.segments/_tree.segment.rsc +4 -0
- package/.next/server/app/page/app-paths-manifest.json +3 -0
- package/.next/server/app/page/build-manifest.json +16 -0
- package/.next/server/app/page/next-font-manifest.json +11 -0
- package/.next/server/app/page/react-loadable-manifest.json +8 -0
- package/.next/server/app/page/server-reference-manifest.json +4 -0
- package/.next/server/app/page.js +16 -0
- package/.next/server/app/page.js.map +5 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +2 -0
- package/.next/server/app-paths-manifest.json +12 -0
- package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_[id]_route_actions_9be426d4.js +3 -0
- package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_[id]_route_actions_9be426d4.js.map +1 -0
- package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_bulk_route_actions_e28c0cd3.js +3 -0
- package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_bulk_route_actions_e28c0cd3.js.map +1 -0
- package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_import_route_actions_89a982f4.js +3 -0
- package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_import_route_actions_89a982f4.js.map +1 -0
- package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_route_actions_0c151162.js +3 -0
- package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_route_actions_0c151162.js.map +1 -0
- package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_sync_route_actions_3051349a.js +3 -0
- package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_sync_route_actions_3051349a.js.map +1 -0
- package/.next/server/chunks/4c6d9__next-internal_server_app_api_mock_[___slug]_route_actions_521def8c.js +3 -0
- package/.next/server/chunks/4c6d9__next-internal_server_app_api_mock_[___slug]_route_actions_521def8c.js.map +1 -0
- package/.next/server/chunks/8e02f_529f6098._.js +3 -0
- package/.next/server/chunks/8e02f_529f6098._.js.map +1 -0
- package/.next/server/chunks/8e02f_next_dist_esm_build_templates_app-route_2d5d7dcf.js +3 -0
- package/.next/server/chunks/8e02f_next_dist_esm_build_templates_app-route_2d5d7dcf.js.map +1 -0
- package/.next/server/chunks/[externals]_next_dist_8dbe5856._.js +3 -0
- package/.next/server/chunks/[externals]_next_dist_8dbe5856._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__094b2f2b._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__094b2f2b._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0ecd8530._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0ecd8530._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__5b9c1ed8._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__5b9c1ed8._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__5d7c02da._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__5d7c02da._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__88f1e82c._.js +21 -0
- package/.next/server/chunks/[root-of-the-server]__88f1e82c._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__a413808a._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__a413808a._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__fbfc7922._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__fbfc7922._.js.map +1 -0
- package/.next/server/chunks/[turbopack]_runtime.js +795 -0
- package/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
- package/.next/server/chunks/ced06_growth-mock-server__next-internal_server_app_favicon_ico_route_actions_b931e89c.js +3 -0
- package/.next/server/chunks/ced06_growth-mock-server__next-internal_server_app_favicon_ico_route_actions_b931e89c.js.map +1 -0
- package/.next/server/chunks/ssr/3d860_Project_Web_growth-mock-server__next-internal_server_app_page_actions_a455ccb7.js +3 -0
- package/.next/server/chunks/ssr/3d860_Project_Web_growth-mock-server__next-internal_server_app_page_actions_a455ccb7.js.map +1 -0
- package/.next/server/chunks/ssr/4c6d9__next-internal_server_app__global-error_page_actions_386af4fb.js +3 -0
- package/.next/server/chunks/ssr/4c6d9__next-internal_server_app__global-error_page_actions_386af4fb.js.map +1 -0
- package/.next/server/chunks/ssr/8e02f_lucide-react_dist_esm_createLucideIcon_92babc87.js +3 -0
- package/.next/server/chunks/ssr/8e02f_lucide-react_dist_esm_createLucideIcon_92babc87.js.map +1 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_5f7af8e7._.js +3 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_5f7af8e7._.js.map +1 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_8b7d79d3._.js +6 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_8b7d79d3._.js.map +1 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_a79dfbb1._.js +4 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_a79dfbb1._.js.map +1 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_client_components_b780ac2a._.js +3 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_client_components_b780ac2a._.js.map +1 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_client_components_builtin_forbidden_8e6242aa.js +3 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_client_components_builtin_forbidden_8e6242aa.js.map +1 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_client_components_builtin_global-error_fef7daa4.js +3 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_client_components_builtin_global-error_fef7daa4.js.map +1 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_client_components_builtin_unauthorized_d6f465ad.js +3 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_client_components_builtin_unauthorized_d6f465ad.js.map +1 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_esm_build_templates_app-page_aefc7b05.js +4 -0
- package/.next/server/chunks/ssr/8e02f_next_dist_esm_build_templates_app-page_aefc7b05.js.map +1 -0
- package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_192f26a7._.js +3 -0
- package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_192f26a7._.js.map +1 -0
- package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_4d3bfee7._.js +4 -0
- package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_4d3bfee7._.js.map +1 -0
- package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_app_734cd624._.js +3 -0
- package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_app_734cd624._.js.map +1 -0
- package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_e3bf5efe._.js +7 -0
- package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_e3bf5efe._.js.map +1 -0
- package/.next/server/chunks/ssr/[externals]_next_dist_server_app-render_work-async-storage_external_1f8eeae7.js +3 -0
- package/.next/server/chunks/ssr/[externals]_next_dist_server_app-render_work-async-storage_external_1f8eeae7.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0715ef20._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0715ef20._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0c263e23._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0c263e23._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__2cf79de7._.js +10 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__2cf79de7._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__5d3307e0._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__5d3307e0._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__6f5c427b._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__6f5c427b._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__7f083271._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__7f083271._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__88eba3a3._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__88eba3a3._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__c6e8de01._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__c6e8de01._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__c9e25af2._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__c9e25af2._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__caa92361._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__caa92361._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__e5032d8c._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__e5032d8c._.js.map +1 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js +795 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
- package/.next/server/chunks/ssr/ced06_growth-mock-server__next-internal_server_app__not-found_page_actions_41a9defd.js +3 -0
- package/.next/server/chunks/ssr/ced06_growth-mock-server__next-internal_server_app__not-found_page_actions_41a9defd.js.map +1 -0
- package/.next/server/functions-config-manifest.json +4 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +20 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +15 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +2 -0
- package/.next/server/pages-manifest.json +4 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +5 -0
- package/.next/static/chunks/31523f3a41fdf0b5.js +1 -0
- package/.next/static/chunks/3a3338ff069e0977.js +5 -0
- package/.next/static/chunks/68c20af4dfeb36d0.js +1 -0
- package/.next/static/chunks/77942ffae83b12ce.js +1 -0
- package/.next/static/chunks/81faf4667437d774.js +1 -0
- package/.next/static/chunks/8c554104dfee37e0.js +5 -0
- package/.next/static/chunks/a6dad97d9634a72d.js +1 -0
- package/.next/static/chunks/a6dad97d9634a72d.js.map +1 -0
- package/.next/static/chunks/ab3bc4985a0e98d2.css +3 -0
- package/.next/static/chunks/d71bf6d63636cd19.js +1 -0
- package/.next/static/chunks/f32c6649a0ca2698.js +1 -0
- package/.next/static/chunks/turbopack-7ea3b444f61e390f.js +4 -0
- package/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
- package/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
- package/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
- package/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
- package/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
- package/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
- package/.next/static/media/favicon.de6b30f1.ico +0 -0
- package/.next/static/xP3uHv1GK0YyrTIpyEo8D/_buildManifest.js +11 -0
- package/.next/static/xP3uHv1GK0YyrTIpyEo8D/_clientMiddlewareManifest.json +1 -0
- package/.next/static/xP3uHv1GK0YyrTIpyEo8D/_ssgManifest.js +1 -0
- package/.next/trace +1 -0
- package/.next/trace-build +1 -0
- package/.next/turbopack +0 -0
- package/.next/types/routes.d.ts +78 -0
- package/next-env.d.ts +6 -0
- package/package.json +1 -1
- package/app/api/endpoints/[id]/route.ts +0 -63
- package/app/api/endpoints/bulk/route.ts +0 -23
- package/app/api/endpoints/import/route.ts +0 -52
- package/app/api/endpoints/route.ts +0 -39
- package/app/api/endpoints/sync/route.ts +0 -80
- package/app/api/mock/[...slug]/route.ts +0 -82
- package/eslint.config.mjs +0 -18
- package/lib/openapi-parser.ts +0 -270
- package/lib/prisma.ts +0 -9
- package/lib/utils.ts +0 -6
- package/lib/validation.ts +0 -19
- package/next.config.ts +0 -7
- package/prisma/seed.ts +0 -29
- package/tsconfig.json +0 -34
- package/types/endpoint.ts +0 -10
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,57534,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},34893,(e,t,r)=>{"use strict";function n(e,t={}){if(t.onlyHashChange)return void e();let r=document.documentElement;if("smooth"!==r.dataset.scrollBehavior)return void e();let a=r.style.scrollBehavior;r.style.scrollBehavior="auto",t.dontForceLayout||r.getClientRects(),e(),r.style.scrollBehavior=a}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}}),e.r(57534)},80778,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTTPAccessFallbackBoundary",{enumerable:!0,get:function(){return l}});let n=e.r(13549),a=e.r(53500),o=n._(e.r(42043)),i=e.r(95276),s=e.r(71255);e.r(57534);let c=e.r(77713);class u extends o.default.Component{constructor(e){super(e),this.state={triggeredStatus:void 0,previousPathname:e.pathname}}componentDidCatch(){}static getDerivedStateFromError(e){if((0,s.isHTTPAccessFallbackError)(e))return{triggeredStatus:(0,s.getAccessFallbackHTTPStatus)(e)};throw e}static getDerivedStateFromProps(e,t){return e.pathname!==t.previousPathname&&t.triggeredStatus?{triggeredStatus:void 0,previousPathname:e.pathname}:{triggeredStatus:t.triggeredStatus,previousPathname:e.pathname}}render(){let{notFound:e,forbidden:t,unauthorized:r,children:n}=this.props,{triggeredStatus:o}=this.state,i={[s.HTTPAccessErrorStatus.NOT_FOUND]:e,[s.HTTPAccessErrorStatus.FORBIDDEN]:t,[s.HTTPAccessErrorStatus.UNAUTHORIZED]:r};if(o){let c=o===s.HTTPAccessErrorStatus.NOT_FOUND&&e,u=o===s.HTTPAccessErrorStatus.FORBIDDEN&&t,l=o===s.HTTPAccessErrorStatus.UNAUTHORIZED&&r;return c||u||l?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("meta",{name:"robots",content:"noindex"}),!1,i[o]]}):n}return n}}function l({notFound:e,forbidden:t,unauthorized:r,children:n}){let s=(0,i.useUntrackedPathname)(),l=(0,o.useContext)(c.MissingSlotContext);return e||t||r?(0,a.jsx)(u,{pathname:s,notFound:e,forbidden:t,unauthorized:r,missingSlots:l,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},4427,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useRouterBFCache",{enumerable:!0,get:function(){return a}});let n=e.r(42043);function a(e,t){let[r,a]=(0,n.useState)(()=>({tree:e,stateKey:t,next:null}));if(r.tree===e)return r;let o={tree:e,stateKey:t,next:null},i=1,s=r,c=o;for(;null!==s&&i<1;){if(s.stateKey===t){c.next=s.next;break}{i++;let e={tree:s.tree,stateKey:s.stateKey,next:null};c.next=e,c=e}s=s.next}return a(o),o}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},68402,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return w}});let n=e.r(17274),a=e.r(13549),o=e.r(53500),i=a._(e.r(42043)),s=n._(e.r(60710)),c=e.r(77713),u=e.r(52511),l=e.r(78731),d=e.r(1241),f=e.r(34893),p=e.r(43656),h=e.r(80778),m=e.r(67949),g=e.r(4427);e.r(31803);let y=e.r(80780),b=e.r(95907),P=e.r(31048),_=s.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,S=["bottom","height","left","right","top","width","x","y"];function v(e,t){let r=e.getBoundingClientRect();return r.top>=0&&r.top<=t}class O extends i.default.Component{componentDidMount(){this.handlePotentialScroll()}componentDidUpdate(){this.props.focusAndScrollRef.apply&&this.handlePotentialScroll()}render(){return this.props.children}constructor(...e){super(...e),this.handlePotentialScroll=()=>{let{focusAndScrollRef:e,segmentPath:t}=this.props;if(e.apply){if(0!==e.segmentPaths.length&&!e.segmentPaths.some(e=>t.every((t,r)=>(0,d.matchSegment)(t,e[r]))))return;let r=null,n=e.hashFragment;if(n&&(r="top"===n?document.body:document.getElementById(n)??document.getElementsByName(n)[0]),r||(r="undefined"==typeof window?null:(0,_.findDOMNode)(this)),!(r instanceof Element))return;for(;!(r instanceof HTMLElement)||function(e){if(["sticky","fixed"].includes(getComputedStyle(e).position))return!0;let t=e.getBoundingClientRect();return S.every(e=>0===t[e])}(r);){if(null===r.nextElementSibling)return;r=r.nextElementSibling}e.apply=!1,e.hashFragment=null,e.segmentPaths=[],(0,f.disableSmoothScrollDuringRouteTransition)(()=>{if(n)return void r.scrollIntoView();let e=document.documentElement,t=e.clientHeight;!v(r,t)&&(e.scrollTop=0,v(r,t)||r.scrollIntoView())},{dontForceLayout:!0,onlyHashChange:e.onlyHashChange}),e.onlyHashChange=!1,r.focus()}}}}function R({segmentPath:e,children:t}){let r=(0,i.useContext)(c.GlobalLayoutRouterContext);if(!r)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});return(0,o.jsx)(O,{segmentPath:e,focusAndScrollRef:r.focusAndScrollRef,children:t})}function E({tree:e,segmentPath:t,debugNameContext:r,cacheNode:n,params:a,url:s,isActive:l}){let d,f=(0,i.useContext)(c.GlobalLayoutRouterContext);if((0,i.useContext)(y.NavigationPromisesContext),!f)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});let p=null!==n?n:(0,i.use)(u.unresolvedThenable),h=null!==p.prefetchRsc?p.prefetchRsc:p.rsc,m=(0,i.useDeferredValue)(p.rsc,h);if((0,P.isDeferredRsc)(m)){let e=(0,i.use)(m);null===e&&(0,i.use)(u.unresolvedThenable),d=e}else null===m&&(0,i.use)(u.unresolvedThenable),d=m;let g=d;return(0,o.jsx)(c.LayoutRouterContext.Provider,{value:{parentTree:e,parentCacheNode:p,parentSegmentPath:t,parentParams:a,debugNameContext:r,url:s,isActive:l},children:g})}function j({name:e,loading:t,children:r}){let n;if(n="object"==typeof t&&null!==t&&"function"==typeof t.then?(0,i.use)(t):t){let t=n[0],a=n[1],s=n[2];return(0,o.jsx)(i.Suspense,{name:e,fallback:(0,o.jsxs)(o.Fragment,{children:[a,s,t]}),children:r})}return(0,o.jsx)(o.Fragment,{children:r})}function w({parallelRouterKey:e,error:t,errorStyles:r,errorScripts:n,templateStyles:a,templateScripts:s,template:d,notFound:f,forbidden:y,unauthorized:P,segmentViewBoundaries:_}){let S=(0,i.useContext)(c.LayoutRouterContext);if(!S)throw Object.defineProperty(Error("invariant expected layout router to be mounted"),"__NEXT_ERROR_CODE",{value:"E56",enumerable:!1,configurable:!0});let{parentTree:v,parentCacheNode:O,parentSegmentPath:w,parentParams:C,url:T,isActive:x,debugNameContext:A}=S,M=O.parallelRoutes,D=M.get(e);D||(D=new Map,M.set(e,D));let F=v[0],I=null===w?[e]:w.concat([F,e]),k=v[1][e];void 0===k&&(0,i.use)(u.unresolvedThenable);let N=k[0],U=(0,m.createRouterCacheKey)(N,!0),B=(0,g.useRouterBFCache)(k,U),L=[];do{let e=B.tree,i=B.stateKey,u=e[0],g=(0,m.createRouterCacheKey)(u),_=D.get(g)??null,S=C;if(Array.isArray(u)){let e=u[0],t=u[1],r=u[2],n=(0,b.getParamValueFromCacheKey)(t,r);null!==n&&(S={...C,[e]:n})}let v=function(e){if("/"===e)return"/";if("string"==typeof e)if("(slot)"===e)return;else return e+"/";return e[1]+"/"}(u),w=v??A,M=void 0===v?void 0:A,F=O.loading,k=(0,o.jsxs)(c.TemplateContext.Provider,{value:(0,o.jsxs)(R,{segmentPath:I,children:[(0,o.jsx)(l.ErrorBoundary,{errorComponent:t,errorStyles:r,errorScripts:n,children:(0,o.jsx)(j,{name:M,loading:F,children:(0,o.jsx)(h.HTTPAccessFallbackBoundary,{notFound:f,forbidden:y,unauthorized:P,children:(0,o.jsxs)(p.RedirectBoundary,{children:[(0,o.jsx)(E,{url:T,tree:e,params:S,cacheNode:_,segmentPath:I,debugNameContext:w,isActive:x&&i===U}),null]})})})}),null]}),children:[a,s,d]},i);L.push(k),B=B.next}while(null!==B)return L}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},1359,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let n=e.r(13549),a=e.r(53500),o=n._(e.r(42043)),i=e.r(77713);function s(){let e=(0,o.useContext)(i.TemplateContext);return(0,a.jsx)(a.Fragment,{children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},36505,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let t=n.get(e);if(t)return t;let r=Promise.resolve(e);return n.set(e,r),r}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},33727,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(36505).createRenderSearchParamsFromClient;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},97911,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let t=n.get(e);if(t)return t;let r=Promise.resolve(e);return n.set(e,r),r}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},77577,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(97911).createRenderParamsFromClient;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},60982,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},85480,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return c}});let n=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=a(void 0);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var s=o?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(n,i,s):n[i]=e[i]}return n.default=e,r&&r.set(e,n),n}(e.r(42043));function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(a=function(e){return e?r:t})(e)}let o={current:null},i="function"==typeof n.cache?n.cache:e=>e,s=console.warn;function c(e){return function(...t){s(e(...t))}}i(e=>{try{s(o.current)}finally{o.current=null}})},90127,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={describeHasCheckingStringProperty:function(){return s},describeStringPropertyAccess:function(){return i},wellKnownProperties:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function i(e,t){return o.test(t)?`\`${e}.${t}\``:`\`${e}[${JSON.stringify(t)}]\``}function s(e,t){let r=JSON.stringify(t);return`\`Reflect.has(${e}, ${r})\`, \`${r} in ${e}\`, or similar`}let c=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","_debugInfo","toJSON","$$typeof","__esModule"])},21059,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(38981).createAsyncLocalStorage)()},56279,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(21059)},29592,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return u},throwForSearchParamsAccessInUseCache:function(){return c},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(26619),i=e.r(56279);function s(e,t){throw Object.defineProperty(new o.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function c(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function u(){let e=i.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},81523,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return c},StagedRenderingController:function(){return u}};for(var o in a)Object.defineProperty(r,o,{enumerable:!0,get:a[o]});let i=e.r(87721),s=e.r(53404);var c=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class u{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,s.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,s.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(l),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(l),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new i.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage<e}syncInterruptCurrentStageWithReason(e){if(1!==this.currentStage){if(this.mayAbandon)return this.abandonRenderImpl();switch(this.currentStage){case 2:this.staticInterruptReason=e,this.advanceStage(4);return;case 3:this.hasRuntimePrefetch&&(this.runtimeInterruptReason=e,this.advanceStage(4));return}}}getStaticInterruptReason(){return this.staticInterruptReason}getRuntimeInterruptReason(){return this.runtimeInterruptReason}getStaticStageEndTime(){return this.staticStageEndTime}getRuntimeStageEndTime(){return this.runtimeStageEndTime}abandonRender(){if(!this.mayAbandon)throw Object.defineProperty(new i.InvariantError("`abandonRender` called on a stage controller that cannot be abandoned."),"__NEXT_ERROR_CODE",{value:"E938",enumerable:!1,configurable:!0});this.abandonRenderImpl()}abandonRenderImpl(){let{currentStage:e}=this;switch(e){case 2:this.currentStage=5,this.resolveRuntimeStage();return;case 3:this.currentStage=5;return}}advanceStage(e){if(e<=this.currentStage)return;let t=this.currentStage;if(this.currentStage=e,t<3&&e>=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t<e.length;t++)e[t]();e.length=0,this.runtimeStagePromise.resolve()}resolveDynamicStage(){let e=this.dynamicStageListeners;for(let t=0;t<e.length;t++)e[t]();e.length=0,this.dynamicStagePromise.resolve()}getStagePromise(e){switch(e){case 3:return this.runtimeStagePromise.promise;case 4:return this.dynamicStagePromise.promise;default:throw Object.defineProperty(new i.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}}waitForStage(e){return this.getStagePromise(e)}delayUntilStage(e,t,r){var n,a,o;let i,s=(n=this.getStagePromise(e),a=t,o=r,i=new Promise((e,t)=>{n.then(e.bind(null,o),t)}),void 0!==a&&(i.displayName=a),i);return this.abortSignal&&s.catch(l),s}}function l(){}},55882,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createPrerenderSearchParamsForClientPage:function(){return g},createSearchParamsFromClient:function(){return p},createServerSearchParamsForMetadata:function(){return h},createServerSearchParamsForServerPage:function(){return m},makeErroringSearchParamsForUseCache:function(){return S}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(60982),i=e.r(47990),s=e.r(70979),c=e.r(87721),u=e.r(56890),l=e.r(85480),d=e.r(90127),f=e.r(29592);function p(e,t){let r=s.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return y(t,r);case"prerender-runtime":throw Object.defineProperty(new c.InvariantError("createSearchParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E769",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new c.InvariantError("createSearchParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E739",enumerable:!1,configurable:!0});case"request":return b(e,t,r)}(0,s.throwInvariantForMissingStore)()}e.r(81523);let h=m;function m(e,t){let r=s.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return y(t,r);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new c.InvariantError("createServerSearchParamsForServerPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E747",enumerable:!1,configurable:!0});case"prerender-runtime":var n,a;return n=e,a=r,(0,i.delayUntilRuntimeStage)(a,v(n));case"request":return b(e,t,r)}(0,s.throwInvariantForMissingStore)()}function g(e){if(e.forceStatic)return Promise.resolve({});let t=s.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":return(0,u.makeHangingPromise)(t.renderSignal,e.route,"`searchParams`");case"prerender-runtime":throw Object.defineProperty(new c.InvariantError("createPrerenderSearchParamsForClientPage should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E768",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new c.InvariantError("createPrerenderSearchParamsForClientPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E746",enumerable:!1,configurable:!0});case"prerender-ppr":case"prerender-legacy":case"request":return Promise.resolve({})}(0,s.throwInvariantForMissingStore)()}function y(e,t){if(e.forceStatic)return Promise.resolve({});switch(t.type){case"prerender":case"prerender-client":var r=e,n=t;let a=P.get(n);if(a)return a;let s=(0,u.makeHangingPromise)(n.renderSignal,r.route,"`searchParams`"),c=new Proxy(s,{get(e,t,r){if(Object.hasOwn(s,t))return o.ReflectAdapter.get(e,t,r);switch(t){case"then":return(0,i.annotateDynamicAccess)("`await searchParams`, `searchParams.then`, or similar",n),o.ReflectAdapter.get(e,t,r);case"status":return(0,i.annotateDynamicAccess)("`use(searchParams)`, `searchParams.status`, or similar",n),o.ReflectAdapter.get(e,t,r);default:return o.ReflectAdapter.get(e,t,r)}}});return P.set(n,c),c;case"prerender-ppr":case"prerender-legacy":var l=e,d=t;let p=P.get(l);if(p)return p;let h=Promise.resolve({}),m=new Proxy(h,{get(e,t,r){if(Object.hasOwn(h,t))return o.ReflectAdapter.get(e,t,r);if("string"==typeof t&&"then"===t){let e="`await searchParams`, `searchParams.then`, or similar";l.dynamicShouldError?(0,f.throwWithStaticGenerationBailoutErrorWithDynamicError)(l.route,e):"prerender-ppr"===d.type?(0,i.postponeWithTracking)(l.route,e,d.dynamicTracking):(0,i.throwToInterruptStaticGeneration)(e,l,d)}return o.ReflectAdapter.get(e,t,r)}});return P.set(l,m),m;default:return t}}function b(e,t,r){return t.forceStatic?Promise.resolve({}):v(e)}let P=new WeakMap,_=new WeakMap;function S(e){let t=_.get(e);if(t)return t;let r=Promise.resolve({}),n=new Proxy(r,{get:function t(n,a,i){return Object.hasOwn(r,a)||"string"!=typeof a||"then"!==a&&d.wellKnownProperties.has(a)||(0,f.throwForSearchParamsAccessInUseCache)(e,t),o.ReflectAdapter.get(n,a,i)}});return _.set(e,n),n}function v(e){let t=P.get(e);if(t)return t;let r=Promise.resolve(e);return P.set(e,r),r}(0,l.createDedupedByCallsiteServerErrorLoggerDev)(function(e,t){let r=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${r}used ${t}. \`searchParams\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E848",enumerable:!1,configurable:!0})})},13650,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"dynamicAccessAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(38981).createAsyncLocalStorage)()},1929,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"dynamicAccessAsyncStorage",{enumerable:!0,get:function(){return n.dynamicAccessAsyncStorageInstance}});let n=e.r(13650)},70198,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createParamsFromClient:function(){return h},createPrerenderParamsForClientSegment:function(){return b},createServerParamsForMetadata:function(){return m},createServerParamsForRoute:function(){return g},createServerParamsForServerSegment:function(){return y}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(38908),i=e.r(60982),s=e.r(47990),c=e.r(70979),u=e.r(87721),l=e.r(90127),d=e.r(56890),f=e.r(85480),p=e.r(1929);function h(e,t){let r=c.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,t,r);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E736",enumerable:!1,configurable:!0});case"prerender-runtime":throw Object.defineProperty(new u.InvariantError("createParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E770",enumerable:!1,configurable:!0});case"request":return O(e)}(0,c.throwInvariantForMissingStore)()}e.r(81523);let m=y;function g(e,t){let r=c.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,t,r);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createServerParamsForRoute should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E738",enumerable:!1,configurable:!0});case"prerender-runtime":return _(e,r);case"request":return O(e)}(0,c.throwInvariantForMissingStore)()}function y(e,t){let r=c.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,t,r);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createServerParamsForServerSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E743",enumerable:!1,configurable:!0});case"prerender-runtime":return _(e,r);case"request":return O(e)}(0,c.throwInvariantForMissingStore)()}function b(e){let t=o.workAsyncStorage.getStore();if(!t)throw Object.defineProperty(new u.InvariantError("Missing workStore in createPrerenderParamsForClientSegment"),"__NEXT_ERROR_CODE",{value:"E773",enumerable:!1,configurable:!0});let r=c.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":let n=r.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return(0,d.makeHangingPromise)(r.renderSignal,t.route,"`params`")}break;case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createPrerenderParamsForClientSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E734",enumerable:!1,configurable:!0})}return Promise.resolve(e)}function P(e,t,r){switch(r.type){case"prerender":case"prerender-client":{let n=r.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return function(e,t,r){let n=S.get(e);if(n)return n;let a=new Proxy((0,d.makeHangingPromise)(r.renderSignal,t.route,"`params`"),v);return S.set(e,a),a}(e,t,r)}break}case"prerender-ppr":{let n=r.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return function(e,t,r,n){let a=S.get(e);if(a)return a;let o={...e},i=Promise.resolve(o);return S.set(e,i),Object.keys(e).forEach(e=>{l.wellKnownProperties.has(e)||t.has(e)&&Object.defineProperty(o,e,{get(){let t=(0,l.describeStringPropertyAccess)("params",e);"prerender-ppr"===n.type?(0,s.postponeWithTracking)(r.route,t,n.dynamicTracking):(0,s.throwToInterruptStaticGeneration)(t,r,n)},enumerable:!0})}),i}(e,n,t,r)}}}return O(e)}function _(e,t){return(0,s.delayUntilRuntimeStage)(t,O(e))}let S=new WeakMap,v={get:function(e,t,r){if("then"===t||"catch"===t||"finally"===t){let n=i.ReflectAdapter.get(e,t,r);return({[t]:(...t)=>{let r=p.dynamicAccessAsyncStorage.getStore();return r&&r.abortController.abort(Object.defineProperty(Error("Accessed fallback `params` during prerendering."),"__NEXT_ERROR_CODE",{value:"E691",enumerable:!1,configurable:!0})),new Proxy(n.apply(e,t),v)}})[t]}return i.ReflectAdapter.get(e,t,r)}};function O(e){let t=S.get(e);if(t)return t;let r=Promise.resolve(e);return S.set(e,r),r}(0,f.createDedupedByCallsiteServerErrorLoggerDev)(function(e,t){let r=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${r}used ${t}. \`params\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E834",enumerable:!1,configurable:!0})})},91060,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ClientPageRoot",{enumerable:!0,get:function(){return u}});let n=e.r(53500),a=e.r(87721),o=e.r(77713),i=e.r(42043),s=e.r(95907),c=e.r(80780);function u({Component:t,serverProvidedParams:r}){let u,l;if(null!==r)u=r.searchParams,l=r.params;else{let e=(0,i.use)(o.LayoutRouterContext);l=null!==e?e.parentParams:{},u=(0,s.urlSearchParamsToParsedUrlQuery)((0,i.use)(c.SearchParamsContext))}if("undefined"==typeof window){let r,o,{workAsyncStorage:i}=e.r(38908),s=i.getStore();if(!s)throw Object.defineProperty(new a.InvariantError("Expected workStore to exist when handling searchParams in a client Page."),"__NEXT_ERROR_CODE",{value:"E564",enumerable:!1,configurable:!0});let{createSearchParamsFromClient:c}=e.r(55882);r=c(u,s);let{createParamsFromClient:d}=e.r(70198);return o=d(l,s),(0,n.jsx)(t,{params:o,searchParams:r})}{let{createRenderSearchParamsFromClient:r}=e.r(33727),a=r(u),{createRenderParamsFromClient:o}=e.r(77577),i=o(l);return(0,n.jsx)(t,{params:i,searchParams:a})}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},48344,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ClientSegmentRoot",{enumerable:!0,get:function(){return s}});let n=e.r(53500),a=e.r(87721),o=e.r(77713),i=e.r(42043);function s({Component:t,slots:r,serverProvidedParams:s}){let c;if(null!==s)c=s.params;else{let e=(0,i.use)(o.LayoutRouterContext);c=null!==e?e.parentParams:{}}if("undefined"==typeof window){let o,{workAsyncStorage:i}=e.r(38908),s=i.getStore();if(!s)throw Object.defineProperty(new a.InvariantError("Expected workStore to exist when handling params in a client segment such as a Layout or Template."),"__NEXT_ERROR_CODE",{value:"E600",enumerable:!1,configurable:!0});let{createParamsFromClient:u}=e.r(70198);return o=u(c,s),(0,n.jsx)(t,{...r,params:o})}{let{createRenderParamsFromClient:a}=e.r(77577),o=a(c);return(0,n.jsx)(t,{...r,params:o})}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18521,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"IconMark",{enumerable:!0,get:function(){return a}});let n=e.r(53500),a=()=>"undefined"!=typeof window?null:(0,n.jsx)("meta",{name:"«nxt-icon»"})}]);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/68c20af4dfeb36d0.js","static/chunks/d71bf6d63636cd19.js","static/chunks/8c554104dfee37e0.js"],runtimeModuleIds:[63435]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=(self.TURBOPACK_CHUNK_SUFFIX??document?.currentScript?.getAttribute?.("src")?.replace(/^(.*(?=\?)|^.*$)/,""))||"",n=new WeakMap;function o(e,t){this.m=e,this.e=t}let l=o.prototype,i=Object.prototype.hasOwnProperty,s="undefined"!=typeof Symbol&&Symbol.toStringTag;function u(e,t,r){i.call(e,t)||Object.defineProperty(e,t,r)}function c(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function f(e,t){u(e,"__esModule",{value:!0}),s&&u(e,s,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)u(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?u(e,n,{get:o,set:t[r++],enumerable:!0}):u(e,n,{get:o,enumerable:!0})}Object.seal(e)}l.s=function(e,t){let r,n;null!=t?n=(r=c(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,f(n,e)},l.j=function(e,t){var r,o;let l,s,u;null!=t?s=(l=c(this.c,t)).exports:(l=this.m,s=this.e);let a=(r=l,o=s,(u=n.get(r))||(n.set(r,u=[]),r.exports=r.namespaceObject=new Proxy(o,{get(e,t){if(i.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of u){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of u)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),u);"object"==typeof e&&null!==e&&a.push(e)},l.v=function(e,t){(null!=t?c(this.c,t):this.m).exports=e},l.n=function(e,t){let r;(r=null!=t?c(this.c,t):this.m).exports=r.namespaceObject=e};let p=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d=[null,p({}),p([]),p(p)];function h(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!d.includes(t);t=p(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),f(t,n),t}function m(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=h(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function b(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function y(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}l.i=m,l.A=function(e){return this.r(e)(m.bind(this))},l.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},l.r=function(e){return B(e,this.m).exports},l.f=function(e){function t(t){if(t=b(t),i.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=b(t),i.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let O=Symbol("turbopack queues"),g=Symbol("turbopack exports"),w=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}l.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=y(),u=Object.assign(s,{[g]:r.exports,[O]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),c={get:()=>u,set(e){e!==u&&(u[g]=e)}};Object.defineProperty(r,"exports",c),Object.defineProperty(r,"namespaceObject",c),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(O in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[g]:{},[O]:e=>e(t)};return e.then(e=>{r[g]=e,C(t)},e=>{r[w]=e,C(t)}),r}}return{[g]:e,[O]:()=>{}}}),r=()=>t.map(e=>{if(e[w])throw e[w];return e[g]}),{promise:l,resolve:i}=y(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[O](u)),s.queueCount?l:r()},function(e){e?i(u[w]=e):l(u[g]),C(n)}),n&&-1===n.status&&(n.status=0)};let U=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function R(e,t){throw Error(`Invariant: ${t(e)}`)}U.prototype=URL.prototype,l.U=U,l.z=function(e){throw Error("dynamic usage of require is not supported")},l.g=globalThis;let j=o.prototype;var _,k=((_=k||{})[_.Runtime=0]="Runtime",_[_.Parent=1]="Parent",_[_.Update=2]="Update",_);let v=new Map;l.M=v;let $=new Map,P=new Map;async function S(e,t,r){let n;if("string"==typeof r)return E(e,t,K(r));let o=r.included||[],l=o.map(e=>!!v.has(e)||$.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>P.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)P.has(e)||r.add(e);for(let n of r){let r=E(e,t,K(n));P.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=E(e,t,K(r.path)),i))P.has(o)||P.set(o,n)}for(let e of o)$.has(e)||$.set(e,n);await n}j.l=function(e){return S(1,this.m.id,e)};let T=Promise.resolve(void 0),A=new WeakMap;function E(t,r,n){let o=e.loadChunkCached(t,n),l=A.get(o);if(void 0===l){let e=A.set.bind(A,o,T);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),A.set(o,l)}return l}function K(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}j.L=function(e){return E(1,this.m.id,e)},j.R=function(e){let t=this.r(e);return t?.default??t},j.P=function(e){return`/ROOT/${e??""}`},j.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
|
|
2
|
+
self.TURBOPACK_CHUNK_SUFFIX = ${JSON.stringify(r)};
|
|
3
|
+
self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(K),null,2)};
|
|
4
|
+
importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let x=/\.js(?:\?[^#]*)?(?:#.*)?$/,N=/\.css(?:\?[^#]*)?(?:#.*)?$/;function M(e){return N.test(e)}l.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},l.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let L={};l.c=L;let B=(e,t)=>{let r=L[e];if(r){if(r.error)throw r.error;return r}return q(e,k.Parent,t.id)};function q(e,t,r){let n=v.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let l=a(e),i=l.exports;L[e]=l;let s=new o(l,i);try{n(s,l,i)}catch(e){throw l.error=e,e}return l.namespaceObject&&l.exports!==l.namespaceObject&&h(l.exports,l.namespaceObject),l}function I(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("undefined"!=typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o<e.length;){let t=e[o],n=o+1;for(;n<e.length&&"function"!=typeof e[n];)n++;if(n===e.length)throw Error("malformed chunk format, expected a factory function");if(!r.has(t)){let l=e[n];for(Object.defineProperty(l,"name",{value:"module evaluation"});o<n;o++)t=e[o],r.set(t,l)}o=n+1}}(r,0,v)),e.registerChunk(o,n)}let W=new Map;function H(e){let t=W.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},W.set(e,t)}return t}e={async registerChunk(e,t){if(H(K(e)).resolve(),null!=t){for(let e of t.otherChunks)H(K("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(t=>S(0,e,t))),t.runtimeModuleIds.length>0)for(let r of t.runtimeModuleIds)!function(e,t){let r=L[t];if(r){if(r.error)throw r.error;return}q(t,k.Runtime,e)}(e,r)}},loadChunkCached:(e,t)=>(function(e,t){let r=H(t);if(r.loadingStarted)return r.promise;if(e===k.Runtime)return r.loadingStarted=!0,M(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(M(t));else if(x.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(TURBOPACK_WORKER_LOCATION+t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(M(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(x.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(K(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(K(r));return await WebAssembly.compileStreaming(o)}};let F=globalThis.TURBOPACK;globalThis.TURBOPACK={push:I},F.forEach(I)})();
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
|
package/.next/trace
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"generate-buildid","duration":73,"timestamp":1728970201848,"id":4,"parentId":1,"tags":{},"startTime":1767600413190,"traceId":"93baf715a1a53176"},{"name":"load-custom-routes","duration":104,"timestamp":1728970201950,"id":5,"parentId":1,"tags":{},"startTime":1767600413190,"traceId":"93baf715a1a53176"},{"name":"create-dist-dir","duration":553,"timestamp":1728970202062,"id":6,"parentId":1,"tags":{},"startTime":1767600413190,"traceId":"93baf715a1a53176"},{"name":"clean","duration":35454,"timestamp":1728970203088,"id":7,"parentId":1,"tags":{},"startTime":1767600413191,"traceId":"93baf715a1a53176"},{"name":"create-pages-mapping","duration":89,"timestamp":1728970243957,"id":8,"parentId":1,"tags":{},"startTime":1767600413232,"traceId":"93baf715a1a53176"},{"name":"collect-app-files","duration":1129,"timestamp":1728970244064,"id":9,"parentId":1,"tags":{},"startTime":1767600413232,"traceId":"93baf715a1a53176"},{"name":"create-app-mapping","duration":779,"timestamp":1728970245204,"id":10,"parentId":1,"tags":{},"startTime":1767600413233,"traceId":"93baf715a1a53176"},{"name":"create-app-layouts","duration":61,"timestamp":1728970246000,"id":11,"parentId":1,"tags":{},"startTime":1767600413234,"traceId":"93baf715a1a53176"},{"name":"collect-default-files","duration":562,"timestamp":1728970246904,"id":13,"parentId":1,"tags":{},"startTime":1767600413235,"traceId":"93baf715a1a53176"},{"name":"generate-route-types","duration":8175,"timestamp":1728970246636,"id":12,"parentId":1,"tags":{},"startTime":1767600413235,"traceId":"93baf715a1a53176"},{"name":"public-dir-conflict-check","duration":37,"timestamp":1728970254838,"id":14,"parentId":1,"tags":{},"startTime":1767600413243,"traceId":"93baf715a1a53176"},{"name":"generate-routes-manifest","duration":1026,"timestamp":1728970254906,"id":15,"parentId":1,"tags":{},"startTime":1767600413243,"traceId":"93baf715a1a53176"},{"name":"run-turbopack","duration":1858229,"timestamp":1728970258331,"id":17,"parentId":1,"tags":{},"startTime":1767600413246,"traceId":"93baf715a1a53176"},{"name":"run-typescript","duration":978180,"timestamp":1728972129609,"id":19,"parentId":1,"tags":{},"startTime":1767600415118,"traceId":"93baf715a1a53176"},{"name":"generate-required-server-files","duration":378,"timestamp":1728973110768,"id":21,"parentId":1,"tags":{},"startTime":1767600416099,"traceId":"93baf715a1a53176"},{"name":"check-static-error-page","duration":3891,"timestamp":1728973120348,"id":23,"parentId":22,"tags":{},"startTime":1767600416108,"traceId":"93baf715a1a53176"},{"name":"is-page-static","duration":228140,"timestamp":1728973127001,"id":34,"parentId":25,"tags":{},"startTime":1767600416115,"traceId":"93baf715a1a53176"},{"name":"check-page","duration":231143,"timestamp":1728973124040,"id":25,"parentId":22,"tags":{"page":"/_global-error"},"startTime":1767600416112,"traceId":"93baf715a1a53176"},{"name":"is-page-static","duration":262300,"timestamp":1728973127255,"id":36,"parentId":24,"tags":{},"startTime":1767600416115,"traceId":"93baf715a1a53176"},{"name":"check-page","duration":265904,"timestamp":1728973123680,"id":24,"parentId":22,"tags":{"page":"/_not-found"},"startTime":1767600416112,"traceId":"93baf715a1a53176"},{"name":"is-page-static","duration":269424,"timestamp":1728973127543,"id":42,"parentId":32,"tags":{},"startTime":1767600416116,"traceId":"93baf715a1a53176"},{"name":"check-page","duration":272783,"timestamp":1728973124208,"id":32,"parentId":22,"tags":{"page":"/favicon.ico"},"startTime":1767600416112,"traceId":"93baf715a1a53176"},{"name":"is-page-static","duration":270016,"timestamp":1728973127285,"id":37,"parentId":27,"tags":{},"startTime":1767600416115,"traceId":"93baf715a1a53176"},{"name":"check-page","duration":273214,"timestamp":1728973124138,"id":27,"parentId":22,"tags":{"page":"/api/endpoints/bulk"},"startTime":1767600416112,"traceId":"93baf715a1a53176"},{"name":"is-page-static","duration":273283,"timestamp":1728973127218,"id":35,"parentId":26,"tags":{},"startTime":1767600416115,"traceId":"93baf715a1a53176"},{"name":"check-page","duration":276448,"timestamp":1728973124120,"id":26,"parentId":22,"tags":{"page":"/api/endpoints/[id]"},"startTime":1767600416112,"traceId":"93baf715a1a53176"},{"name":"is-page-static","duration":273307,"timestamp":1728973127345,"id":39,"parentId":29,"tags":{},"startTime":1767600416115,"traceId":"93baf715a1a53176"},{"name":"check-page","duration":276509,"timestamp":1728973124174,"id":29,"parentId":22,"tags":{"page":"/api/endpoints"},"startTime":1767600416112,"traceId":"93baf715a1a53176"},{"name":"is-page-static","duration":274079,"timestamp":1728973127317,"id":38,"parentId":28,"tags":{},"startTime":1767600416115,"traceId":"93baf715a1a53176"},{"name":"check-page","duration":277262,"timestamp":1728973124152,"id":28,"parentId":22,"tags":{"page":"/api/endpoints/import"},"startTime":1767600416112,"traceId":"93baf715a1a53176"},{"name":"is-page-static","duration":278697,"timestamp":1728973128867,"id":43,"parentId":33,"tags":{},"startTime":1767600416117,"traceId":"93baf715a1a53176"},{"name":"check-page","duration":283384,"timestamp":1728973124222,"id":33,"parentId":22,"tags":{"page":"/"},"startTime":1767600416112,"traceId":"93baf715a1a53176"},{"name":"is-page-static","duration":281800,"timestamp":1728973127434,"id":41,"parentId":30,"tags":{},"startTime":1767600416115,"traceId":"93baf715a1a53176"},{"name":"check-page","duration":285070,"timestamp":1728973124186,"id":30,"parentId":22,"tags":{"page":"/api/endpoints/sync"},"startTime":1767600416112,"traceId":"93baf715a1a53176"},{"name":"is-page-static","duration":283845,"timestamp":1728973127377,"id":40,"parentId":31,"tags":{},"startTime":1767600416115,"traceId":"93baf715a1a53176"},{"name":"check-page","duration":287048,"timestamp":1728973124195,"id":31,"parentId":22,"tags":{"page":"/api/mock/[...slug]"},"startTime":1767600416112,"traceId":"93baf715a1a53176"},{"name":"static-check","duration":291149,"timestamp":1728973120107,"id":22,"parentId":1,"tags":{},"startTime":1767600416108,"traceId":"93baf715a1a53176"},{"name":"write-routes-manifest","duration":608,"timestamp":1728973412406,"id":45,"parentId":1,"tags":{},"startTime":1767600416400,"traceId":"93baf715a1a53176"},{"name":"load-dotenv","duration":11,"timestamp":1728973417617,"id":48,"parentId":47,"tags":{},"startTime":1767600416406,"traceId":"93baf715a1a53176"},{"name":"run-export-path-map","duration":177,"timestamp":1728973419015,"id":49,"parentId":47,"tags":{},"startTime":1767600416407,"traceId":"93baf715a1a53176"},{"name":"next-export","duration":185247,"timestamp":1728973417220,"id":47,"parentId":1,"tags":{},"startTime":1767600416405,"traceId":"93baf715a1a53176"},{"name":"move-exported-app-not-found-","duration":596,"timestamp":1728973603156,"id":50,"parentId":46,"tags":{},"startTime":1767600416591,"traceId":"93baf715a1a53176"},{"name":"move-exported-app-global-error-","duration":375,"timestamp":1728973603791,"id":51,"parentId":46,"tags":{},"startTime":1767600416592,"traceId":"93baf715a1a53176"},{"name":"static-generation","duration":189809,"timestamp":1728973415388,"id":46,"parentId":1,"tags":{},"startTime":1767600416403,"traceId":"93baf715a1a53176"},{"name":"write-routes-manifest","duration":241,"timestamp":1728973605291,"id":52,"parentId":1,"tags":{},"startTime":1767600416593,"traceId":"93baf715a1a53176"},{"name":"print-tree-view","duration":719,"timestamp":1728973615345,"id":53,"parentId":1,"tags":{},"startTime":1767600416603,"traceId":"93baf715a1a53176"},{"name":"telemetry-flush","duration":496873,"timestamp":1728973616071,"id":54,"parentId":1,"tags":{},"startTime":1767600416604,"traceId":"93baf715a1a53176"},{"name":"next-build","duration":3995722,"timestamp":1728970117281,"id":1,"tags":{"buildMode":"default","version":"16.1.1","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1767600413105,"traceId":"93baf715a1a53176"}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"run-turbopack","duration":1858229,"timestamp":1728970258331,"id":17,"parentId":1,"tags":{},"startTime":1767600413246,"traceId":"93baf715a1a53176"},{"name":"run-typescript","duration":978180,"timestamp":1728972129609,"id":19,"parentId":1,"tags":{},"startTime":1767600415118,"traceId":"93baf715a1a53176"},{"name":"static-check","duration":291149,"timestamp":1728973120107,"id":22,"parentId":1,"tags":{},"startTime":1767600416108,"traceId":"93baf715a1a53176"},{"name":"static-generation","duration":189809,"timestamp":1728973415388,"id":46,"parentId":1,"tags":{},"startTime":1767600416403,"traceId":"93baf715a1a53176"},{"name":"telemetry-flush","duration":496873,"timestamp":1728973616071,"id":54,"parentId":1,"tags":{},"startTime":1767600416604,"traceId":"93baf715a1a53176"},{"name":"next-build","duration":3995722,"timestamp":1728970117281,"id":1,"tags":{"buildMode":"default","version":"16.1.1","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1767600413105,"traceId":"93baf715a1a53176"}]
|
package/.next/turbopack
ADDED
|
File without changes
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// This file is generated automatically by Next.js
|
|
2
|
+
// Do not edit this file manually
|
|
3
|
+
|
|
4
|
+
type AppRoutes = "/"
|
|
5
|
+
type AppRouteHandlerRoutes = "/api/endpoints" | "/api/endpoints/[id]" | "/api/endpoints/bulk" | "/api/endpoints/import" | "/api/endpoints/sync" | "/api/mock/[...slug]"
|
|
6
|
+
type PageRoutes = never
|
|
7
|
+
type LayoutRoutes = "/"
|
|
8
|
+
type RedirectRoutes = never
|
|
9
|
+
type RewriteRoutes = never
|
|
10
|
+
type Routes = AppRoutes | PageRoutes | LayoutRoutes | RedirectRoutes | RewriteRoutes | AppRouteHandlerRoutes
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
interface ParamMap {
|
|
14
|
+
"/": {}
|
|
15
|
+
"/api/endpoints": {}
|
|
16
|
+
"/api/endpoints/[id]": { "id": string; }
|
|
17
|
+
"/api/endpoints/bulk": {}
|
|
18
|
+
"/api/endpoints/import": {}
|
|
19
|
+
"/api/endpoints/sync": {}
|
|
20
|
+
"/api/mock/[...slug]": { "slug": string[]; }
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
export type ParamsOf<Route extends Routes> = ParamMap[Route]
|
|
25
|
+
|
|
26
|
+
interface LayoutSlotMap {
|
|
27
|
+
"/": never
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
export type { AppRoutes, PageRoutes, LayoutRoutes, RedirectRoutes, RewriteRoutes, ParamMap, AppRouteHandlerRoutes }
|
|
32
|
+
|
|
33
|
+
declare global {
|
|
34
|
+
/**
|
|
35
|
+
* Props for Next.js App Router page components
|
|
36
|
+
* @example
|
|
37
|
+
* ```tsx
|
|
38
|
+
* export default function Page(props: PageProps<'/blog/[slug]'>) {
|
|
39
|
+
* const { slug } = await props.params
|
|
40
|
+
* return <div>Blog post: {slug}</div>
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
interface PageProps<AppRoute extends AppRoutes> {
|
|
45
|
+
params: Promise<ParamMap[AppRoute]>
|
|
46
|
+
searchParams: Promise<Record<string, string | string[] | undefined>>
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Props for Next.js App Router layout components
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* export default function Layout(props: LayoutProps<'/dashboard'>) {
|
|
54
|
+
* return <div>{props.children}</div>
|
|
55
|
+
* }
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
type LayoutProps<LayoutRoute extends LayoutRoutes> = {
|
|
59
|
+
params: Promise<ParamMap[LayoutRoute]>
|
|
60
|
+
children: React.ReactNode
|
|
61
|
+
} & {
|
|
62
|
+
[K in LayoutSlotMap[LayoutRoute]]: React.ReactNode
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Context for Next.js App Router route handlers
|
|
67
|
+
* @example
|
|
68
|
+
* ```tsx
|
|
69
|
+
* export async function GET(request: NextRequest, context: RouteContext<'/api/users/[id]'>) {
|
|
70
|
+
* const { id } = await context.params
|
|
71
|
+
* return Response.json({ id })
|
|
72
|
+
* }
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
interface RouteContext<AppRouteHandlerRoute extends AppRouteHandlerRoutes> {
|
|
76
|
+
params: Promise<ParamMap[AppRouteHandlerRoute]>
|
|
77
|
+
}
|
|
78
|
+
}
|
package/next-env.d.ts
ADDED
package/package.json
CHANGED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { NextRequest, NextResponse } from 'next/server'
|
|
2
|
-
import { prisma } from '@/lib/prisma'
|
|
3
|
-
import { validatePath, validateMethod, validateStatusCode } from '@/lib/validation'
|
|
4
|
-
|
|
5
|
-
type RouteParams = {
|
|
6
|
-
params: Promise<{ id: string }>
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
// GET: 단일 엔드포인트 조회
|
|
10
|
-
export async function GET(_request: NextRequest, { params }: RouteParams) {
|
|
11
|
-
const { id } = await params
|
|
12
|
-
|
|
13
|
-
const endpoint = await prisma.mockEndpoint.findUnique({
|
|
14
|
-
where: { id },
|
|
15
|
-
})
|
|
16
|
-
|
|
17
|
-
if (!endpoint) {
|
|
18
|
-
return NextResponse.json({ error: 'Endpoint not found' }, { status: 404 })
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return NextResponse.json(endpoint)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// PUT: 엔드포인트 수정
|
|
25
|
-
export async function PUT(request: NextRequest, { params }: RouteParams) {
|
|
26
|
-
const { id } = await params
|
|
27
|
-
const body = await request.json()
|
|
28
|
-
const { path, method, description, statusCode, responseBody } = body
|
|
29
|
-
|
|
30
|
-
if (path !== undefined && !validatePath(path)) {
|
|
31
|
-
return NextResponse.json({ error: 'Invalid path' }, { status: 400 })
|
|
32
|
-
}
|
|
33
|
-
if (method !== undefined && !validateMethod(method)) {
|
|
34
|
-
return NextResponse.json({ error: 'Invalid method' }, { status: 400 })
|
|
35
|
-
}
|
|
36
|
-
if (!validateStatusCode(statusCode)) {
|
|
37
|
-
return NextResponse.json({ error: 'Invalid status code' }, { status: 400 })
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const endpoint = await prisma.mockEndpoint.update({
|
|
41
|
-
where: { id },
|
|
42
|
-
data: {
|
|
43
|
-
path,
|
|
44
|
-
method: method?.toUpperCase(),
|
|
45
|
-
description,
|
|
46
|
-
statusCode,
|
|
47
|
-
responseBody,
|
|
48
|
-
},
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
return NextResponse.json(endpoint)
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// DELETE: 엔드포인트 삭제
|
|
55
|
-
export async function DELETE(_request: NextRequest, { params }: RouteParams) {
|
|
56
|
-
const { id } = await params
|
|
57
|
-
|
|
58
|
-
await prisma.mockEndpoint.delete({
|
|
59
|
-
where: { id },
|
|
60
|
-
})
|
|
61
|
-
|
|
62
|
-
return NextResponse.json({ success: true })
|
|
63
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { NextRequest, NextResponse } from 'next/server'
|
|
2
|
-
import { prisma } from '@/lib/prisma'
|
|
3
|
-
|
|
4
|
-
// DELETE: 여러 엔드포인트 일괄 삭제
|
|
5
|
-
export async function DELETE(request: NextRequest) {
|
|
6
|
-
const body = await request.json()
|
|
7
|
-
const { ids } = body
|
|
8
|
-
|
|
9
|
-
if (!Array.isArray(ids) || ids.length === 0) {
|
|
10
|
-
return NextResponse.json(
|
|
11
|
-
{ error: 'ids must be a non-empty array' },
|
|
12
|
-
{ status: 400 }
|
|
13
|
-
)
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const result = await prisma.mockEndpoint.deleteMany({
|
|
17
|
-
where: {
|
|
18
|
-
id: { in: ids },
|
|
19
|
-
},
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
return NextResponse.json({ deleted: result.count })
|
|
23
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { NextRequest, NextResponse } from 'next/server'
|
|
2
|
-
import { Prisma } from '@prisma/client'
|
|
3
|
-
import { prisma } from '@/lib/prisma'
|
|
4
|
-
import { parseOpenAPISpec } from '@/lib/openapi-parser'
|
|
5
|
-
|
|
6
|
-
export async function POST(request: NextRequest) {
|
|
7
|
-
const spec = await request.json()
|
|
8
|
-
|
|
9
|
-
const endpoints = parseOpenAPISpec(spec)
|
|
10
|
-
|
|
11
|
-
if (endpoints.length === 0) {
|
|
12
|
-
return NextResponse.json(
|
|
13
|
-
{ error: 'No valid endpoints found in OpenAPI spec' },
|
|
14
|
-
{ status: 400 }
|
|
15
|
-
)
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const results = await Promise.allSettled(
|
|
19
|
-
endpoints.map((ep) =>
|
|
20
|
-
prisma.mockEndpoint.upsert({
|
|
21
|
-
where: {
|
|
22
|
-
path_method: {
|
|
23
|
-
path: ep.path,
|
|
24
|
-
method: ep.method,
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
update: {
|
|
28
|
-
description: ep.description,
|
|
29
|
-
statusCode: ep.statusCode,
|
|
30
|
-
responseBody: ep.responseBody as Prisma.InputJsonValue,
|
|
31
|
-
},
|
|
32
|
-
create: {
|
|
33
|
-
path: ep.path,
|
|
34
|
-
method: ep.method,
|
|
35
|
-
description: ep.description,
|
|
36
|
-
statusCode: ep.statusCode,
|
|
37
|
-
responseBody: ep.responseBody as Prisma.InputJsonValue,
|
|
38
|
-
},
|
|
39
|
-
})
|
|
40
|
-
)
|
|
41
|
-
)
|
|
42
|
-
|
|
43
|
-
const created = results.filter((r) => r.status === 'fulfilled').length
|
|
44
|
-
const failed = results.filter((r) => r.status === 'rejected').length
|
|
45
|
-
|
|
46
|
-
return NextResponse.json({
|
|
47
|
-
message: `Imported ${created} endpoints`,
|
|
48
|
-
created,
|
|
49
|
-
failed,
|
|
50
|
-
total: endpoints.length,
|
|
51
|
-
})
|
|
52
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { NextRequest, NextResponse } from 'next/server'
|
|
2
|
-
import { prisma } from '@/lib/prisma'
|
|
3
|
-
import { validatePath, validateMethod, validateStatusCode } from '@/lib/validation'
|
|
4
|
-
|
|
5
|
-
// GET: 모든 엔드포인트 조회
|
|
6
|
-
export async function GET() {
|
|
7
|
-
const endpoints = await prisma.mockEndpoint.findMany({
|
|
8
|
-
orderBy: { createdAt: 'desc' },
|
|
9
|
-
})
|
|
10
|
-
return NextResponse.json(endpoints)
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
// POST: 새 엔드포인트 생성
|
|
14
|
-
export async function POST(request: NextRequest) {
|
|
15
|
-
const body = await request.json()
|
|
16
|
-
const { path, method, description, statusCode, responseBody } = body
|
|
17
|
-
|
|
18
|
-
if (!validatePath(path)) {
|
|
19
|
-
return NextResponse.json({ error: 'Invalid path' }, { status: 400 })
|
|
20
|
-
}
|
|
21
|
-
if (!validateMethod(method)) {
|
|
22
|
-
return NextResponse.json({ error: 'Invalid method' }, { status: 400 })
|
|
23
|
-
}
|
|
24
|
-
if (!validateStatusCode(statusCode)) {
|
|
25
|
-
return NextResponse.json({ error: 'Invalid status code' }, { status: 400 })
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const endpoint = await prisma.mockEndpoint.create({
|
|
29
|
-
data: {
|
|
30
|
-
path,
|
|
31
|
-
method: method.toUpperCase(),
|
|
32
|
-
description,
|
|
33
|
-
statusCode: statusCode ?? 200,
|
|
34
|
-
responseBody,
|
|
35
|
-
},
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
return NextResponse.json(endpoint, { status: 201 })
|
|
39
|
-
}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { NextRequest, NextResponse } from 'next/server'
|
|
2
|
-
import { Prisma } from '@prisma/client'
|
|
3
|
-
import { prisma } from '@/lib/prisma'
|
|
4
|
-
import { parseOpenAPISpec } from '@/lib/openapi-parser'
|
|
5
|
-
|
|
6
|
-
export async function POST(request: NextRequest) {
|
|
7
|
-
const { url } = await request.json()
|
|
8
|
-
|
|
9
|
-
if (!url) {
|
|
10
|
-
return NextResponse.json({ error: 'URL is required' }, { status: 400 })
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
try {
|
|
14
|
-
// OpenAPI JSON 가져오기
|
|
15
|
-
const response = await fetch(url, {
|
|
16
|
-
headers: {
|
|
17
|
-
Accept: 'application/json',
|
|
18
|
-
},
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
if (!response.ok) {
|
|
22
|
-
return NextResponse.json(
|
|
23
|
-
{ error: `Failed to fetch OpenAPI spec: ${response.statusText}` },
|
|
24
|
-
{ status: 400 }
|
|
25
|
-
)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const spec = await response.json()
|
|
29
|
-
const endpoints = parseOpenAPISpec(spec)
|
|
30
|
-
|
|
31
|
-
if (endpoints.length === 0) {
|
|
32
|
-
return NextResponse.json(
|
|
33
|
-
{ error: 'No valid endpoints found in OpenAPI spec' },
|
|
34
|
-
{ status: 400 }
|
|
35
|
-
)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Upsert로 새로 추가하거나 업데이트
|
|
39
|
-
const results = await Promise.allSettled(
|
|
40
|
-
endpoints.map((ep) =>
|
|
41
|
-
prisma.mockEndpoint.upsert({
|
|
42
|
-
where: {
|
|
43
|
-
path_method: {
|
|
44
|
-
path: ep.path,
|
|
45
|
-
method: ep.method,
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
update: {
|
|
49
|
-
description: ep.description,
|
|
50
|
-
statusCode: ep.statusCode,
|
|
51
|
-
responseBody: ep.responseBody as Prisma.InputJsonValue,
|
|
52
|
-
},
|
|
53
|
-
create: {
|
|
54
|
-
path: ep.path,
|
|
55
|
-
method: ep.method,
|
|
56
|
-
description: ep.description,
|
|
57
|
-
statusCode: ep.statusCode,
|
|
58
|
-
responseBody: ep.responseBody as Prisma.InputJsonValue,
|
|
59
|
-
},
|
|
60
|
-
})
|
|
61
|
-
)
|
|
62
|
-
)
|
|
63
|
-
|
|
64
|
-
const succeeded = results.filter((r) => r.status === 'fulfilled').length
|
|
65
|
-
const failed = results.filter((r) => r.status === 'rejected').length
|
|
66
|
-
|
|
67
|
-
return NextResponse.json({
|
|
68
|
-
message: `Synced ${succeeded} endpoints`,
|
|
69
|
-
succeeded,
|
|
70
|
-
failed,
|
|
71
|
-
total: endpoints.length,
|
|
72
|
-
})
|
|
73
|
-
} catch (error) {
|
|
74
|
-
console.error('Sync error:', error)
|
|
75
|
-
return NextResponse.json(
|
|
76
|
-
{ error: error instanceof Error ? error.message : 'Sync failed' },
|
|
77
|
-
{ status: 500 }
|
|
78
|
-
)
|
|
79
|
-
}
|
|
80
|
-
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { NextRequest, NextResponse } from 'next/server'
|
|
2
|
-
import { match } from 'path-to-regexp'
|
|
3
|
-
import { prisma } from '@/lib/prisma'
|
|
4
|
-
|
|
5
|
-
type RouteParams = {
|
|
6
|
-
params: Promise<{ slug: string[] }>
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
async function findMatchingEndpoint(requestPath: string, method: string) {
|
|
10
|
-
// DB에서 해당 method의 모든 엔드포인트 조회
|
|
11
|
-
const endpoints = await prisma.mockEndpoint.findMany({
|
|
12
|
-
where: { method },
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
// 정확히 일치하는 경로 먼저 확인
|
|
16
|
-
const exactMatch = endpoints.find((ep) => ep.path === requestPath)
|
|
17
|
-
if (exactMatch) {
|
|
18
|
-
return { endpoint: exactMatch, params: {} }
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// path-to-regexp를 사용한 패턴 매칭
|
|
22
|
-
for (const endpoint of endpoints) {
|
|
23
|
-
try {
|
|
24
|
-
const matchFn = match(endpoint.path, { decode: decodeURIComponent })
|
|
25
|
-
const result = matchFn(requestPath)
|
|
26
|
-
|
|
27
|
-
if (result) {
|
|
28
|
-
return { endpoint, params: result.params }
|
|
29
|
-
}
|
|
30
|
-
} catch {
|
|
31
|
-
// 잘못된 패턴은 무시
|
|
32
|
-
continue
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return null
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
async function handleRequest(request: NextRequest, { params }: RouteParams) {
|
|
40
|
-
const { slug } = await params
|
|
41
|
-
const requestPath = '/' + slug.join('/')
|
|
42
|
-
const method = request.method
|
|
43
|
-
|
|
44
|
-
const result = await findMatchingEndpoint(requestPath, method)
|
|
45
|
-
|
|
46
|
-
if (!result) {
|
|
47
|
-
return NextResponse.json(
|
|
48
|
-
{ error: 'Endpoint not found', path: requestPath, method },
|
|
49
|
-
{ status: 404 }
|
|
50
|
-
)
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const { endpoint, params: pathParams } = result
|
|
54
|
-
|
|
55
|
-
// responseBody에 pathParams를 포함하여 반환 (선택적)
|
|
56
|
-
const responseData =
|
|
57
|
-
Object.keys(pathParams).length > 0
|
|
58
|
-
? { ...endpoint.responseBody as object, _pathParams: pathParams }
|
|
59
|
-
: endpoint.responseBody
|
|
60
|
-
|
|
61
|
-
return NextResponse.json(responseData, { status: endpoint.statusCode })
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export async function GET(request: NextRequest, context: RouteParams) {
|
|
65
|
-
return handleRequest(request, context)
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export async function POST(request: NextRequest, context: RouteParams) {
|
|
69
|
-
return handleRequest(request, context)
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export async function PUT(request: NextRequest, context: RouteParams) {
|
|
73
|
-
return handleRequest(request, context)
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export async function PATCH(request: NextRequest, context: RouteParams) {
|
|
77
|
-
return handleRequest(request, context)
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export async function DELETE(request: NextRequest, context: RouteParams) {
|
|
81
|
-
return handleRequest(request, context)
|
|
82
|
-
}
|
package/eslint.config.mjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { defineConfig, globalIgnores } from "eslint/config";
|
|
2
|
-
import nextVitals from "eslint-config-next/core-web-vitals";
|
|
3
|
-
import nextTs from "eslint-config-next/typescript";
|
|
4
|
-
|
|
5
|
-
const eslintConfig = defineConfig([
|
|
6
|
-
...nextVitals,
|
|
7
|
-
...nextTs,
|
|
8
|
-
// Override default ignores of eslint-config-next.
|
|
9
|
-
globalIgnores([
|
|
10
|
-
// Default ignores of eslint-config-next:
|
|
11
|
-
".next/**",
|
|
12
|
-
"out/**",
|
|
13
|
-
"build/**",
|
|
14
|
-
"next-env.d.ts",
|
|
15
|
-
]),
|
|
16
|
-
]);
|
|
17
|
-
|
|
18
|
-
export default eslintConfig;
|