@kurly-growth/growthman 0.1.0 → 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.
Files changed (278) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +12 -0
  3. package/.next/build/chunks/8e02f_b5d23412._.js +6758 -0
  4. package/.next/build/chunks/8e02f_b5d23412._.js.map +47 -0
  5. package/.next/build/chunks/[root-of-the-server]__310ad51a._.js +206 -0
  6. package/.next/build/chunks/[root-of-the-server]__310ad51a._.js.map +8 -0
  7. package/.next/build/chunks/[root-of-the-server]__8e2c0d87._.js +500 -0
  8. package/.next/build/chunks/[root-of-the-server]__8e2c0d87._.js.map +11 -0
  9. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_5040861e._.js +13 -0
  10. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_5040861e._.js.map +5 -0
  11. package/.next/build/chunks/[turbopack]_runtime.js +795 -0
  12. package/.next/build/chunks/[turbopack]_runtime.js.map +10 -0
  13. package/.next/build/package.json +1 -0
  14. package/.next/build/postcss.js +6 -0
  15. package/.next/build/postcss.js.map +5 -0
  16. package/.next/build-manifest.json +19 -0
  17. package/.next/diagnostics/build-diagnostics.json +6 -0
  18. package/.next/diagnostics/framework.json +1 -0
  19. package/.next/export-marker.json +6 -0
  20. package/.next/fallback-build-manifest.json +12 -0
  21. package/.next/images-manifest.json +66 -0
  22. package/.next/next-minimal-server.js.nft.json +1 -0
  23. package/.next/next-server.js.nft.json +1 -0
  24. package/.next/package.json +1 -0
  25. package/.next/prerender-manifest.json +114 -0
  26. package/.next/required-server-files.js +163 -0
  27. package/.next/required-server-files.json +163 -0
  28. package/.next/routes-manifest.json +109 -0
  29. package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  30. package/.next/server/app/_global-error/page/build-manifest.json +16 -0
  31. package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  32. package/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  33. package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  34. package/.next/server/app/_global-error/page.js +11 -0
  35. package/.next/server/app/_global-error/page.js.map +5 -0
  36. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  37. package/.next/server/app/_global-error/page_client-reference-manifest.js +2 -0
  38. package/.next/server/app/_global-error.html +2 -0
  39. package/.next/server/app/_global-error.meta +15 -0
  40. package/.next/server/app/_global-error.rsc +13 -0
  41. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
  42. package/.next/server/app/_global-error.segments/_full.segment.rsc +13 -0
  43. package/.next/server/app/_global-error.segments/_head.segment.rsc +6 -0
  44. package/.next/server/app/_global-error.segments/_index.segment.rsc +4 -0
  45. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  46. package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  47. package/.next/server/app/_not-found/page/build-manifest.json +16 -0
  48. package/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
  49. package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  50. package/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
  51. package/.next/server/app/_not-found/page.js +14 -0
  52. package/.next/server/app/_not-found/page.js.map +5 -0
  53. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  54. package/.next/server/app/_not-found/page_client-reference-manifest.js +2 -0
  55. package/.next/server/app/_not-found.html +1 -0
  56. package/.next/server/app/_not-found.meta +16 -0
  57. package/.next/server/app/_not-found.rsc +15 -0
  58. package/.next/server/app/_not-found.segments/_full.segment.rsc +15 -0
  59. package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
  60. package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -0
  61. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  62. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +4 -0
  63. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
  64. package/.next/server/app/api/endpoints/[id]/route/app-paths-manifest.json +3 -0
  65. package/.next/server/app/api/endpoints/[id]/route/build-manifest.json +11 -0
  66. package/.next/server/app/api/endpoints/[id]/route/server-reference-manifest.json +4 -0
  67. package/.next/server/app/api/endpoints/[id]/route.js +6 -0
  68. package/.next/server/app/api/endpoints/[id]/route.js.map +5 -0
  69. package/.next/server/app/api/endpoints/[id]/route.js.nft.json +1 -0
  70. package/.next/server/app/api/endpoints/[id]/route_client-reference-manifest.js +2 -0
  71. package/.next/server/app/api/endpoints/bulk/route/app-paths-manifest.json +3 -0
  72. package/.next/server/app/api/endpoints/bulk/route/build-manifest.json +11 -0
  73. package/.next/server/app/api/endpoints/bulk/route/server-reference-manifest.json +4 -0
  74. package/.next/server/app/api/endpoints/bulk/route.js +6 -0
  75. package/.next/server/app/api/endpoints/bulk/route.js.map +5 -0
  76. package/.next/server/app/api/endpoints/bulk/route.js.nft.json +1 -0
  77. package/.next/server/app/api/endpoints/bulk/route_client-reference-manifest.js +2 -0
  78. package/.next/server/app/api/endpoints/import/route/app-paths-manifest.json +3 -0
  79. package/.next/server/app/api/endpoints/import/route/build-manifest.json +11 -0
  80. package/.next/server/app/api/endpoints/import/route/server-reference-manifest.json +4 -0
  81. package/.next/server/app/api/endpoints/import/route.js +6 -0
  82. package/.next/server/app/api/endpoints/import/route.js.map +5 -0
  83. package/.next/server/app/api/endpoints/import/route.js.nft.json +1 -0
  84. package/.next/server/app/api/endpoints/import/route_client-reference-manifest.js +2 -0
  85. package/.next/server/app/api/endpoints/route/app-paths-manifest.json +3 -0
  86. package/.next/server/app/api/endpoints/route/build-manifest.json +11 -0
  87. package/.next/server/app/api/endpoints/route/server-reference-manifest.json +4 -0
  88. package/.next/server/app/api/endpoints/route.js +6 -0
  89. package/.next/server/app/api/endpoints/route.js.map +5 -0
  90. package/.next/server/app/api/endpoints/route.js.nft.json +1 -0
  91. package/.next/server/app/api/endpoints/route_client-reference-manifest.js +2 -0
  92. package/.next/server/app/api/endpoints/sync/route/app-paths-manifest.json +3 -0
  93. package/.next/server/app/api/endpoints/sync/route/build-manifest.json +11 -0
  94. package/.next/server/app/api/endpoints/sync/route/server-reference-manifest.json +4 -0
  95. package/.next/server/app/api/endpoints/sync/route.js +6 -0
  96. package/.next/server/app/api/endpoints/sync/route.js.map +5 -0
  97. package/.next/server/app/api/endpoints/sync/route.js.nft.json +1 -0
  98. package/.next/server/app/api/endpoints/sync/route_client-reference-manifest.js +2 -0
  99. package/.next/server/app/api/mock/[...slug]/route/app-paths-manifest.json +3 -0
  100. package/.next/server/app/api/mock/[...slug]/route/build-manifest.json +11 -0
  101. package/.next/server/app/api/mock/[...slug]/route/server-reference-manifest.json +4 -0
  102. package/.next/server/app/api/mock/[...slug]/route.js +7 -0
  103. package/.next/server/app/api/mock/[...slug]/route.js.map +5 -0
  104. package/.next/server/app/api/mock/[...slug]/route.js.nft.json +1 -0
  105. package/.next/server/app/api/mock/[...slug]/route_client-reference-manifest.js +2 -0
  106. package/.next/server/app/favicon.ico/route/app-paths-manifest.json +3 -0
  107. package/.next/server/app/favicon.ico/route/build-manifest.json +11 -0
  108. package/.next/server/app/favicon.ico/route.js +7 -0
  109. package/.next/server/app/favicon.ico/route.js.map +5 -0
  110. package/.next/server/app/favicon.ico/route.js.nft.json +1 -0
  111. package/.next/server/app/favicon.ico.body +0 -0
  112. package/.next/server/app/favicon.ico.meta +1 -0
  113. package/.next/server/app/index.html +1 -0
  114. package/.next/server/app/index.meta +14 -0
  115. package/.next/server/app/index.rsc +21 -0
  116. package/.next/server/app/index.segments/__PAGE__.segment.rsc +9 -0
  117. package/.next/server/app/index.segments/_full.segment.rsc +21 -0
  118. package/.next/server/app/index.segments/_head.segment.rsc +6 -0
  119. package/.next/server/app/index.segments/_index.segment.rsc +6 -0
  120. package/.next/server/app/index.segments/_tree.segment.rsc +4 -0
  121. package/.next/server/app/page/app-paths-manifest.json +3 -0
  122. package/.next/server/app/page/build-manifest.json +16 -0
  123. package/.next/server/app/page/next-font-manifest.json +11 -0
  124. package/.next/server/app/page/react-loadable-manifest.json +8 -0
  125. package/.next/server/app/page/server-reference-manifest.json +4 -0
  126. package/.next/server/app/page.js +16 -0
  127. package/.next/server/app/page.js.map +5 -0
  128. package/.next/server/app/page.js.nft.json +1 -0
  129. package/.next/server/app/page_client-reference-manifest.js +2 -0
  130. package/.next/server/app-paths-manifest.json +12 -0
  131. package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_[id]_route_actions_9be426d4.js +3 -0
  132. package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_[id]_route_actions_9be426d4.js.map +1 -0
  133. package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_bulk_route_actions_e28c0cd3.js +3 -0
  134. package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_bulk_route_actions_e28c0cd3.js.map +1 -0
  135. package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_import_route_actions_89a982f4.js +3 -0
  136. package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_import_route_actions_89a982f4.js.map +1 -0
  137. package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_route_actions_0c151162.js +3 -0
  138. package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_route_actions_0c151162.js.map +1 -0
  139. package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_sync_route_actions_3051349a.js +3 -0
  140. package/.next/server/chunks/4c6d9__next-internal_server_app_api_endpoints_sync_route_actions_3051349a.js.map +1 -0
  141. package/.next/server/chunks/4c6d9__next-internal_server_app_api_mock_[___slug]_route_actions_521def8c.js +3 -0
  142. package/.next/server/chunks/4c6d9__next-internal_server_app_api_mock_[___slug]_route_actions_521def8c.js.map +1 -0
  143. package/.next/server/chunks/8e02f_529f6098._.js +3 -0
  144. package/.next/server/chunks/8e02f_529f6098._.js.map +1 -0
  145. package/.next/server/chunks/8e02f_next_dist_esm_build_templates_app-route_2d5d7dcf.js +3 -0
  146. package/.next/server/chunks/8e02f_next_dist_esm_build_templates_app-route_2d5d7dcf.js.map +1 -0
  147. package/.next/server/chunks/[externals]_next_dist_8dbe5856._.js +3 -0
  148. package/.next/server/chunks/[externals]_next_dist_8dbe5856._.js.map +1 -0
  149. package/.next/server/chunks/[root-of-the-server]__094b2f2b._.js +3 -0
  150. package/.next/server/chunks/[root-of-the-server]__094b2f2b._.js.map +1 -0
  151. package/.next/server/chunks/[root-of-the-server]__0ecd8530._.js +3 -0
  152. package/.next/server/chunks/[root-of-the-server]__0ecd8530._.js.map +1 -0
  153. package/.next/server/chunks/[root-of-the-server]__5b9c1ed8._.js +3 -0
  154. package/.next/server/chunks/[root-of-the-server]__5b9c1ed8._.js.map +1 -0
  155. package/.next/server/chunks/[root-of-the-server]__5d7c02da._.js +3 -0
  156. package/.next/server/chunks/[root-of-the-server]__5d7c02da._.js.map +1 -0
  157. package/.next/server/chunks/[root-of-the-server]__88f1e82c._.js +21 -0
  158. package/.next/server/chunks/[root-of-the-server]__88f1e82c._.js.map +1 -0
  159. package/.next/server/chunks/[root-of-the-server]__a413808a._.js +3 -0
  160. package/.next/server/chunks/[root-of-the-server]__a413808a._.js.map +1 -0
  161. package/.next/server/chunks/[root-of-the-server]__fbfc7922._.js +3 -0
  162. package/.next/server/chunks/[root-of-the-server]__fbfc7922._.js.map +1 -0
  163. package/.next/server/chunks/[turbopack]_runtime.js +795 -0
  164. package/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
  165. package/.next/server/chunks/ced06_growth-mock-server__next-internal_server_app_favicon_ico_route_actions_b931e89c.js +3 -0
  166. package/.next/server/chunks/ced06_growth-mock-server__next-internal_server_app_favicon_ico_route_actions_b931e89c.js.map +1 -0
  167. package/.next/server/chunks/ssr/3d860_Project_Web_growth-mock-server__next-internal_server_app_page_actions_a455ccb7.js +3 -0
  168. package/.next/server/chunks/ssr/3d860_Project_Web_growth-mock-server__next-internal_server_app_page_actions_a455ccb7.js.map +1 -0
  169. package/.next/server/chunks/ssr/4c6d9__next-internal_server_app__global-error_page_actions_386af4fb.js +3 -0
  170. package/.next/server/chunks/ssr/4c6d9__next-internal_server_app__global-error_page_actions_386af4fb.js.map +1 -0
  171. package/.next/server/chunks/ssr/8e02f_lucide-react_dist_esm_createLucideIcon_92babc87.js +3 -0
  172. package/.next/server/chunks/ssr/8e02f_lucide-react_dist_esm_createLucideIcon_92babc87.js.map +1 -0
  173. package/.next/server/chunks/ssr/8e02f_next_dist_5f7af8e7._.js +3 -0
  174. package/.next/server/chunks/ssr/8e02f_next_dist_5f7af8e7._.js.map +1 -0
  175. package/.next/server/chunks/ssr/8e02f_next_dist_8b7d79d3._.js +6 -0
  176. package/.next/server/chunks/ssr/8e02f_next_dist_8b7d79d3._.js.map +1 -0
  177. package/.next/server/chunks/ssr/8e02f_next_dist_a79dfbb1._.js +4 -0
  178. package/.next/server/chunks/ssr/8e02f_next_dist_a79dfbb1._.js.map +1 -0
  179. package/.next/server/chunks/ssr/8e02f_next_dist_client_components_b780ac2a._.js +3 -0
  180. package/.next/server/chunks/ssr/8e02f_next_dist_client_components_b780ac2a._.js.map +1 -0
  181. package/.next/server/chunks/ssr/8e02f_next_dist_client_components_builtin_forbidden_8e6242aa.js +3 -0
  182. package/.next/server/chunks/ssr/8e02f_next_dist_client_components_builtin_forbidden_8e6242aa.js.map +1 -0
  183. package/.next/server/chunks/ssr/8e02f_next_dist_client_components_builtin_global-error_fef7daa4.js +3 -0
  184. package/.next/server/chunks/ssr/8e02f_next_dist_client_components_builtin_global-error_fef7daa4.js.map +1 -0
  185. package/.next/server/chunks/ssr/8e02f_next_dist_client_components_builtin_unauthorized_d6f465ad.js +3 -0
  186. package/.next/server/chunks/ssr/8e02f_next_dist_client_components_builtin_unauthorized_d6f465ad.js.map +1 -0
  187. package/.next/server/chunks/ssr/8e02f_next_dist_esm_build_templates_app-page_aefc7b05.js +4 -0
  188. package/.next/server/chunks/ssr/8e02f_next_dist_esm_build_templates_app-page_aefc7b05.js.map +1 -0
  189. package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_192f26a7._.js +3 -0
  190. package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_192f26a7._.js.map +1 -0
  191. package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_4d3bfee7._.js +4 -0
  192. package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_4d3bfee7._.js.map +1 -0
  193. package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_app_734cd624._.js +3 -0
  194. package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_app_734cd624._.js.map +1 -0
  195. package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_e3bf5efe._.js +7 -0
  196. package/.next/server/chunks/ssr/Desktop_Project_Web_growth-mock-server_e3bf5efe._.js.map +1 -0
  197. package/.next/server/chunks/ssr/[externals]_next_dist_server_app-render_work-async-storage_external_1f8eeae7.js +3 -0
  198. package/.next/server/chunks/ssr/[externals]_next_dist_server_app-render_work-async-storage_external_1f8eeae7.js.map +1 -0
  199. package/.next/server/chunks/ssr/[root-of-the-server]__0715ef20._.js +3 -0
  200. package/.next/server/chunks/ssr/[root-of-the-server]__0715ef20._.js.map +1 -0
  201. package/.next/server/chunks/ssr/[root-of-the-server]__0c263e23._.js +3 -0
  202. package/.next/server/chunks/ssr/[root-of-the-server]__0c263e23._.js.map +1 -0
  203. package/.next/server/chunks/ssr/[root-of-the-server]__2cf79de7._.js +10 -0
  204. package/.next/server/chunks/ssr/[root-of-the-server]__2cf79de7._.js.map +1 -0
  205. package/.next/server/chunks/ssr/[root-of-the-server]__5d3307e0._.js +3 -0
  206. package/.next/server/chunks/ssr/[root-of-the-server]__5d3307e0._.js.map +1 -0
  207. package/.next/server/chunks/ssr/[root-of-the-server]__6f5c427b._.js +4 -0
  208. package/.next/server/chunks/ssr/[root-of-the-server]__6f5c427b._.js.map +1 -0
  209. package/.next/server/chunks/ssr/[root-of-the-server]__7f083271._.js +3 -0
  210. package/.next/server/chunks/ssr/[root-of-the-server]__7f083271._.js.map +1 -0
  211. package/.next/server/chunks/ssr/[root-of-the-server]__88eba3a3._.js +3 -0
  212. package/.next/server/chunks/ssr/[root-of-the-server]__88eba3a3._.js.map +1 -0
  213. package/.next/server/chunks/ssr/[root-of-the-server]__c6e8de01._.js +3 -0
  214. package/.next/server/chunks/ssr/[root-of-the-server]__c6e8de01._.js.map +1 -0
  215. package/.next/server/chunks/ssr/[root-of-the-server]__c9e25af2._.js +3 -0
  216. package/.next/server/chunks/ssr/[root-of-the-server]__c9e25af2._.js.map +1 -0
  217. package/.next/server/chunks/ssr/[root-of-the-server]__caa92361._.js +3 -0
  218. package/.next/server/chunks/ssr/[root-of-the-server]__caa92361._.js.map +1 -0
  219. package/.next/server/chunks/ssr/[root-of-the-server]__e5032d8c._.js +3 -0
  220. package/.next/server/chunks/ssr/[root-of-the-server]__e5032d8c._.js.map +1 -0
  221. package/.next/server/chunks/ssr/[turbopack]_runtime.js +795 -0
  222. package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
  223. package/.next/server/chunks/ssr/ced06_growth-mock-server__next-internal_server_app__not-found_page_actions_41a9defd.js +3 -0
  224. package/.next/server/chunks/ssr/ced06_growth-mock-server__next-internal_server_app__not-found_page_actions_41a9defd.js.map +1 -0
  225. package/.next/server/functions-config-manifest.json +4 -0
  226. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  227. package/.next/server/middleware-build-manifest.js +20 -0
  228. package/.next/server/middleware-manifest.json +6 -0
  229. package/.next/server/next-font-manifest.js +1 -0
  230. package/.next/server/next-font-manifest.json +15 -0
  231. package/.next/server/pages/404.html +1 -0
  232. package/.next/server/pages/500.html +2 -0
  233. package/.next/server/pages-manifest.json +4 -0
  234. package/.next/server/server-reference-manifest.js +1 -0
  235. package/.next/server/server-reference-manifest.json +5 -0
  236. package/.next/static/chunks/31523f3a41fdf0b5.js +1 -0
  237. package/.next/static/chunks/3a3338ff069e0977.js +5 -0
  238. package/.next/static/chunks/68c20af4dfeb36d0.js +1 -0
  239. package/.next/static/chunks/77942ffae83b12ce.js +1 -0
  240. package/.next/static/chunks/81faf4667437d774.js +1 -0
  241. package/.next/static/chunks/8c554104dfee37e0.js +5 -0
  242. package/.next/static/chunks/a6dad97d9634a72d.js +1 -0
  243. package/.next/static/chunks/a6dad97d9634a72d.js.map +1 -0
  244. package/.next/static/chunks/ab3bc4985a0e98d2.css +3 -0
  245. package/.next/static/chunks/d71bf6d63636cd19.js +1 -0
  246. package/.next/static/chunks/f32c6649a0ca2698.js +1 -0
  247. package/.next/static/chunks/turbopack-7ea3b444f61e390f.js +4 -0
  248. package/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  249. package/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  250. package/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  251. package/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  252. package/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  253. package/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  254. package/.next/static/media/favicon.de6b30f1.ico +0 -0
  255. package/.next/static/xP3uHv1GK0YyrTIpyEo8D/_buildManifest.js +11 -0
  256. package/.next/static/xP3uHv1GK0YyrTIpyEo8D/_clientMiddlewareManifest.json +1 -0
  257. package/.next/static/xP3uHv1GK0YyrTIpyEo8D/_ssgManifest.js +1 -0
  258. package/.next/trace +1 -0
  259. package/.next/trace-build +1 -0
  260. package/.next/turbopack +0 -0
  261. package/.next/types/routes.d.ts +78 -0
  262. package/next-env.d.ts +6 -0
  263. package/package.json +1 -1
  264. package/app/api/endpoints/[id]/route.ts +0 -63
  265. package/app/api/endpoints/bulk/route.ts +0 -23
  266. package/app/api/endpoints/import/route.ts +0 -52
  267. package/app/api/endpoints/route.ts +0 -39
  268. package/app/api/endpoints/sync/route.ts +0 -80
  269. package/app/api/mock/[...slug]/route.ts +0 -82
  270. package/eslint.config.mjs +0 -18
  271. package/lib/openapi-parser.ts +0 -270
  272. package/lib/prisma.ts +0 -9
  273. package/lib/utils.ts +0 -6
  274. package/lib/validation.ts +0 -19
  275. package/next.config.ts +0 -7
  276. package/prisma/seed.ts +0 -29
  277. package/tsconfig.json +0 -34
  278. 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)})();
@@ -0,0 +1,11 @@
1
+ self.__BUILD_MANIFEST = {
2
+ "__rewrites": {
3
+ "afterFiles": [],
4
+ "beforeFiles": [],
5
+ "fallback": []
6
+ },
7
+ "sortedPages": [
8
+ "/_app",
9
+ "/_error"
10
+ ]
11
+ };self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
@@ -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"}]
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
@@ -0,0 +1,6 @@
1
+ /// <reference types="next" />
2
+ /// <reference types="next/image-types/global" />
3
+ import "./.next/types/routes.d.ts";
4
+
5
+ // NOTE: This file should not be edited
6
+ // see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kurly-growth/growthman",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Local mock API server with UI dashboard",
5
5
  "bin": {
6
6
  "growthman": "./bin/cli.js"
@@ -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;