dev3000 0.0.136 → 0.0.138
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/dist/cdp-monitor.d.ts +1 -1
- package/dist/cdp-monitor.d.ts.map +1 -1
- package/dist/cdp-monitor.js +5 -3
- package/dist/cdp-monitor.js.map +1 -1
- package/dist/cli.js +15 -3
- package/dist/cli.js.map +1 -1
- package/dist/dev-environment.d.ts +15 -0
- package/dist/dev-environment.d.ts.map +1 -1
- package/dist/dev-environment.js +63 -22
- package/dist/dev-environment.js.map +1 -1
- package/dist/src/tui-interface-impl.tsx +46 -24
- package/dist/tui-interface-impl.d.ts +2 -0
- package/dist/tui-interface-impl.d.ts.map +1 -1
- package/dist/tui-interface-impl.js +28 -15
- package/dist/tui-interface-impl.js.map +1 -1
- package/dist/tui-interface.d.ts +3 -0
- package/dist/tui-interface.d.ts.map +1 -1
- package/dist/tui-interface.js +12 -7
- package/dist/tui-interface.js.map +1 -1
- package/dist/utils/tmux-helpers.d.ts.map +1 -1
- package/dist/utils/tmux-helpers.js +18 -3
- package/dist/utils/tmux-helpers.js.map +1 -1
- package/mcp-server/.next/BUILD_ID +1 -1
- package/mcp-server/.next/build/chunks/[root-of-the-server]__c438ef56._.js +2 -2
- package/mcp-server/.next/build/chunks/[root-of-the-server]__c438ef56._.js.map +1 -1
- package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_7988927e._.js +1 -1
- package/mcp-server/.next/build/chunks/{node_modules__pnpm_806d01c0._.js → node_modules__bun_19755e4f._.js} +167 -167
- package/mcp-server/.next/build/chunks/node_modules__bun_19755e4f._.js.map +47 -0
- package/mcp-server/.next/build-manifest.json +7 -7
- package/mcp-server/.next/fallback-build-manifest.json +2 -2
- package/mcp-server/.next/next-minimal-server.js.nft.json +1 -1
- package/mcp-server/.next/next-server.js.nft.json +1 -1
- package/mcp-server/.next/prerender-manifest.json +3 -3
- package/mcp-server/.next/server/app/_global-error/page/build-manifest.json +5 -5
- package/mcp-server/.next/server/app/_global-error/page.js +8 -8
- package/mcp-server/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/mcp-server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/mcp-server/.next/server/app/_global-error.html +2 -2
- package/mcp-server/.next/server/app/_global-error.rsc +7 -7
- package/mcp-server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/mcp-server/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/mcp-server/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/mcp-server/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- package/mcp-server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found/page/build-manifest.json +5 -5
- package/mcp-server/.next/server/app/_not-found/page.js +10 -10
- package/mcp-server/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/mcp-server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/mcp-server/.next/server/app/_not-found.html +1 -1
- package/mcp-server/.next/server/app/_not-found.rsc +7 -7
- package/mcp-server/.next/server/app/_not-found.segments/_full.segment.rsc +7 -7
- package/mcp-server/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
- package/mcp-server/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/mcp-server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/mcp-server/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/mcp-server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/mcp-server/.next/server/app/api/jank/[session]/route.js +7 -7
- package/mcp-server/.next/server/app/api/jank/[session]/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/append/route.js +4 -4
- package/mcp-server/.next/server/app/api/logs/append/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/head/route.js +4 -4
- package/mcp-server/.next/server/app/api/logs/head/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/list/route.js +4 -4
- package/mcp-server/.next/server/app/api/logs/list/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/rotate/route.js +6 -6
- package/mcp-server/.next/server/app/api/logs/rotate/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/stream/route.js +4 -4
- package/mcp-server/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/tail/route.js +4 -4
- package/mcp-server/.next/server/app/api/logs/tail/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/orchestrator/route.js +7 -7
- package/mcp-server/.next/server/app/api/orchestrator/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js +6 -6
- package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/screenshots/capture/route.js +7 -7
- package/mcp-server/.next/server/app/api/screenshots/capture/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/screenshots/clear/route.js +6 -6
- package/mcp-server/.next/server/app/api/screenshots/clear/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/screenshots/list/route.js +6 -6
- package/mcp-server/.next/server/app/api/screenshots/list/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/teams/route.js +5 -5
- package/mcp-server/.next/server/app/api/teams/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/tools/route.js +6 -6
- package/mcp-server/.next/server/app/api/tools/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/index.html +1 -1
- package/mcp-server/.next/server/app/index.rsc +9 -9
- package/mcp-server/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/mcp-server/.next/server/app/index.segments/_full.segment.rsc +9 -9
- package/mcp-server/.next/server/app/index.segments/_head.segment.rsc +3 -3
- package/mcp-server/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/mcp-server/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/mcp-server/.next/server/app/logs/page/build-manifest.json +5 -5
- package/mcp-server/.next/server/app/logs/page.js +13 -13
- package/mcp-server/.next/server/app/logs/page.js.nft.json +1 -1
- package/mcp-server/.next/server/app/logs/page_client-reference-manifest.js +1 -1
- package/mcp-server/.next/server/app/mcp/route.js +8 -8
- package/mcp-server/.next/server/app/mcp/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/page/build-manifest.json +5 -5
- package/mcp-server/.next/server/app/page.js +12 -12
- package/mcp-server/.next/server/app/page.js.nft.json +1 -1
- package/mcp-server/.next/server/app/page_client-reference-manifest.js +1 -1
- package/mcp-server/.next/server/app/video/[session]/page/build-manifest.json +5 -5
- package/mcp-server/.next/server/app/video/[session]/page.js +12 -12
- package/mcp-server/.next/server/app/video/[session]/page.js.nft.json +1 -1
- package/mcp-server/.next/server/app/video/[session]/page_client-reference-manifest.js +1 -1
- package/mcp-server/.next/server/chunks/{[root-of-the-server]__945b2b7b._.js → [root-of-the-server]__21541e6b._.js} +3 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__21541e6b._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__2f95edf0._.js +17 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__2f95edf0._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__377f76d7._.js +7 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__377f76d7._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__454b0d3c._.js +7 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__454b0d3c._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__6728fd4b._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__6728fd4b._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__69498adb._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__69498adb._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__6c914ee2._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__6c914ee2._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__6f790e1f._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__6f790e1f._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__7049acd5._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__7049acd5._.js.map +1 -0
- package/mcp-server/.next/server/chunks/{[root-of-the-server]__340a77dc._.js → [root-of-the-server]__73c9cc46._.js} +2 -2
- package/mcp-server/.next/server/chunks/[root-of-the-server]__73c9cc46._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__78991125._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__78991125._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__7ae828c6._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__7ae828c6._.js.map +1 -0
- package/mcp-server/.next/server/chunks/{[root-of-the-server]__532c5da6._.js → [root-of-the-server]__7ed5139a._.js} +1 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__95098840._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__95098840._.js.map +1 -0
- package/mcp-server/.next/server/chunks/{[root-of-the-server]__8589759c._.js → [root-of-the-server]__99274dd8._.js} +3 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__99274dd8._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__af8a6500._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__af8a6500._.js.map +1 -0
- package/mcp-server/.next/server/chunks/{[root-of-the-server]__4aa77621._.js → [root-of-the-server]__b56464d6._.js} +3 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__b56464d6._.js.map +1 -0
- package/mcp-server/.next/server/chunks/{[root-of-the-server]__714e8bcf._.js → [root-of-the-server]__b698502d._.js} +2 -2
- package/mcp-server/.next/server/chunks/[root-of-the-server]__b698502d._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__daca64a4._.js +3 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__daca64a4._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__ee39655c._.js +4 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__ee39655c._.js.map +1 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__f4213a2f._.js +4 -0
- package/mcp-server/.next/server/chunks/[root-of-the-server]__f4213a2f._.js.map +1 -0
- package/mcp-server/.next/server/chunks/edd96_next_80752ad3._.js +3 -0
- package/mcp-server/.next/server/chunks/edd96_next_80752ad3._.js.map +1 -0
- package/mcp-server/.next/server/chunks/edd96_next_dist_esm_build_templates_app-route_f51c5640.js +3 -0
- package/mcp-server/.next/server/chunks/edd96_next_dist_esm_build_templates_app-route_f51c5640.js.map +1 -0
- package/mcp-server/.next/server/chunks/{c80b1_next_dist_579c473d._.js → edd96_next_dist_fa47e982._.js} +3 -3
- package/mcp-server/.next/server/chunks/edd96_next_dist_fa47e982._.js.map +1 -0
- package/mcp-server/.next/server/chunks/edd96_next_ef93dda6._.js +14 -0
- package/mcp-server/.next/server/chunks/edd96_next_ef93dda6._.js.map +1 -0
- package/mcp-server/.next/server/chunks/mcp-server_app_mcp_tools_ts_faf6d7df._.js +1 -1
- package/mcp-server/.next/server/chunks/mcp-server_app_mcp_tools_ts_faf6d7df._.js.map +1 -1
- package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__ab72cb3d._.js → [root-of-the-server]__163e0fe2._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__163e0fe2._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__bbed00c8._.js → [root-of-the-server]__250a4cf3._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__250a4cf3._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__41e244ae._.js +3 -0
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__41e244ae._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__50b48a29._.js → [root-of-the-server]__4a45fb1f._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__4a45fb1f._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__64e0f342._.js → [root-of-the-server]__4b74b898._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__4b74b898._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__bc51e8b7._.js → [root-of-the-server]__4feaccaf._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__4feaccaf._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__6d9fa861._.js +3 -0
- package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__90e175f7._.js → [root-of-the-server]__9913ce94._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__9923da5e._.js +3 -0
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__9923da5e._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__3c6c75a6._.js → [root-of-the-server]__a8fcf205._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__df4ed844._.js +3 -0
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__df4ed844._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{_be1b41b5._.js → _213c874b._.js} +3 -3
- package/mcp-server/.next/server/chunks/ssr/_213c874b._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_5f2de86d._.js → _69be9abe._.js} +3 -3
- package/mcp-server/.next/server/chunks/ssr/_69be9abe._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{_e92c871d._.js → _b38781f1._.js} +3 -3
- package/mcp-server/.next/server/chunks/ssr/_b38781f1._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{_9a178862._.js → _edba94b0._.js} +3 -3
- package/mcp-server/.next/server/chunks/ssr/_edba94b0._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{_aabc0f14._.js → _f478416d._.js} +3 -3
- package/mcp-server/.next/server/chunks/ssr/_f478416d._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_esm_build_templates_app-page_9b0ce51c.js → edd96_next_dist_22d4e869._.js} +3 -3
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_22d4e869._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_329c4a9b._.js +10 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_329c4a9b._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_6cceb2cd._.js +3 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_6cceb2cd._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_861297ac._.js +6 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_861297ac._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_client_components_43abb007._.js → edd96_next_dist_client_components_85c7e922._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_85c7e922._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_client_components_builtin_forbidden_462fb25e.js → edd96_next_dist_client_components_builtin_forbidden_0eb1cacd.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_forbidden_0eb1cacd.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_global-error_e64e654b.js +3 -0
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_global-error_e64e654b.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_client_components_builtin_unauthorized_9a1b3d4d.js → edd96_next_dist_client_components_builtin_unauthorized_06e7b5f5.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_unauthorized_06e7b5f5.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/{_262bbdcd._.js → edd96_next_dist_esm_build_templates_app-page_f82c7ca4.js} +3 -3
- package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_esm_build_templates_app-page_f82c7ca4.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/mcp-server_app_layout_tsx_afa41767._.js +1 -1
- package/mcp-server/.next/server/chunks/ssr/mcp-server_app_page_tsx_9fc46577._.js +1 -1
- package/mcp-server/.next/server/chunks/ssr/mcp-server_components_dark-mode-toggle_tsx_f31dd15d._.js +1 -1
- package/mcp-server/.next/server/chunks/ssr/mcp-server_components_dark-mode-toggle_tsx_f31dd15d._.js.map +1 -1
- package/mcp-server/.next/server/chunks/ssr/node_modules__bun_39d5fbaf._.js +3 -0
- package/mcp-server/.next/server/chunks/ssr/node_modules__bun_39d5fbaf._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/node_modules__bun_d6d37386._.js +5 -0
- package/mcp-server/.next/server/chunks/ssr/node_modules__bun_d6d37386._.js.map +1 -0
- package/mcp-server/.next/server/middleware-build-manifest.js +5 -5
- package/mcp-server/.next/server/pages/404.html +1 -1
- package/mcp-server/.next/server/pages/500.html +2 -2
- package/mcp-server/.next/server/server-reference-manifest.js +1 -1
- package/mcp-server/.next/server/server-reference-manifest.json +1 -1
- package/mcp-server/.next/static/chunks/10099c90a1ca89ea.js +4 -0
- package/mcp-server/.next/static/chunks/{86092b19e32d6ddb.js → 10c04cb580a9beec.js} +1 -1
- package/mcp-server/.next/static/chunks/13606014ef33124c.js +2 -0
- package/mcp-server/.next/static/chunks/2422ea9ed874427b.js +1 -0
- package/mcp-server/.next/static/chunks/39e9bdcc541cc428.js +1 -0
- package/mcp-server/.next/static/chunks/4785978304fb9e19.js +1 -0
- package/mcp-server/.next/static/chunks/5df77c9395248155.js +1 -0
- package/mcp-server/.next/static/chunks/807aef58565dccb1.js +1 -0
- package/mcp-server/.next/static/chunks/a6dad97d9634a72d.js.map +1 -1
- package/mcp-server/.next/static/chunks/{5c8ff2f81b2fec4d.js → b8eb42a9560f7980.js} +3 -3
- package/mcp-server/.next/static/chunks/{ba2f63419c181083.js → cbbf49c419347401.js} +1 -1
- package/mcp-server/.next/static/chunks/ea7b53054294e7bb.js +3 -0
- package/mcp-server/.next/static/chunks/{turbopack-2c2bdfdb92058782.js → turbopack-b64e111cadf03885.js} +2 -2
- package/mcp-server/app/mcp/tools.ts +4 -1
- package/mcp-server/package.json +1 -0
- package/mcp-server/start-production.mjs +5 -1
- package/package.json +8 -12
- package/src/tui-interface-impl.tsx +46 -24
- package/mcp-server/.next/build/chunks/node_modules__pnpm_806d01c0._.js.map +0 -47
- package/mcp-server/.next/server/chunks/[root-of-the-server]__141a5bc7._.js +0 -17
- package/mcp-server/.next/server/chunks/[root-of-the-server]__141a5bc7._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__1ca296d3._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__1ca296d3._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__21bdfd19._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__21bdfd19._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__31a16876._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__31a16876._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__340a77dc._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__4aa77621._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__52809b10._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__52809b10._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__714e8bcf._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__81270bcf._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__81270bcf._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__8589759c._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__90514e85._.js +0 -4
- package/mcp-server/.next/server/chunks/[root-of-the-server]__90514e85._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__90569352._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__90569352._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__94037b23._.js +0 -7
- package/mcp-server/.next/server/chunks/[root-of-the-server]__94037b23._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__945b2b7b._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__ad4d66b0._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__ad4d66b0._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__b4ecebbe._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__b4ecebbe._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__cc74dbef._.js +0 -7
- package/mcp-server/.next/server/chunks/[root-of-the-server]__cc74dbef._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__e7efb7fe._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__e7efb7fe._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__fa4b0e38._.js +0 -4
- package/mcp-server/.next/server/chunks/[root-of-the-server]__fa4b0e38._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__fd2bf649._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__fd2bf649._.js.map +0 -1
- package/mcp-server/.next/server/chunks/c80b1_next_d479b5fa._.js +0 -14
- package/mcp-server/.next/server/chunks/c80b1_next_d479b5fa._.js.map +0 -1
- package/mcp-server/.next/server/chunks/c80b1_next_dist_579c473d._.js.map +0 -1
- package/mcp-server/.next/server/chunks/c80b1_next_dist_esm_build_templates_app-route_ea10d5ad.js +0 -3
- package/mcp-server/.next/server/chunks/c80b1_next_dist_esm_build_templates_app-route_ea10d5ad.js.map +0 -1
- package/mcp-server/.next/server/chunks/c80b1_next_f225a77d._.js +0 -3
- package/mcp-server/.next/server/chunks/c80b1_next_f225a77d._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__1d6b73d5._.js +0 -3
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__1d6b73d5._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__27ae22d6._.js +0 -3
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__27ae22d6._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__324715a4._.js +0 -3
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__324715a4._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__50b48a29._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__64e0f342._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__75b45b88._.js +0 -3
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__ab72cb3d._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__bbed00c8._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__bc51e8b7._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/_262bbdcd._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/_9a178862._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/_aabc0f14._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/_be1b41b5._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/_e92c871d._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_0d37e039._.js +0 -3
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_0d37e039._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_5f2de86d._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_81d07c6e._.js +0 -10
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_81d07c6e._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_889a708f._.js +0 -6
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_889a708f._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_43abb007._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_forbidden_462fb25e.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_global-error_f3bf1365.js +0 -3
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_global-error_f3bf1365.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_unauthorized_9a1b3d4d.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_esm_build_templates_app-page_9b0ce51c.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_98754805._.js +0 -5
- package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_98754805._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_b801224a._.js +0 -3
- package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_b801224a._.js.map +0 -1
- package/mcp-server/.next/static/chunks/0ceacd9ff62ffa24.js +0 -1
- package/mcp-server/.next/static/chunks/41c5312e59752fb5.js +0 -1
- package/mcp-server/.next/static/chunks/47219b9a153e0530.js +0 -3
- package/mcp-server/.next/static/chunks/4b70aaeeb4b78390.js +0 -1
- package/mcp-server/.next/static/chunks/6bd8e9b9ad938cba.js +0 -1
- package/mcp-server/.next/static/chunks/a782bd48b8755eeb.js +0 -1
- package/mcp-server/.next/static/chunks/f09e07f5359ffb6b.js +0 -4
- package/mcp-server/.next/static/chunks/f5ae99caea655ac1.js +0 -2
- /package/mcp-server/.next/server/chunks/{[root-of-the-server]__532c5da6._.js.map → [root-of-the-server]__7ed5139a._.js.map} +0 -0
- /package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__75b45b88._.js.map → [root-of-the-server]__6d9fa861._.js.map} +0 -0
- /package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__90e175f7._.js.map → [root-of-the-server]__9913ce94._.js.map} +0 -0
- /package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__3c6c75a6._.js.map → [root-of-the-server]__a8fcf205._.js.map} +0 -0
- /package/mcp-server/.next/static/{cxkSEJwFEcrBT_84gOgdA → gicQOhS3xoSQe_xAaJ-se}/_buildManifest.js +0 -0
- /package/mcp-server/.next/static/{cxkSEJwFEcrBT_84gOgdA → gicQOhS3xoSQe_xAaJ-se}/_clientMiddlewareManifest.json +0 -0
- /package/mcp-server/.next/static/{cxkSEJwFEcrBT_84gOgdA → gicQOhS3xoSQe_xAaJ-se}/_ssgManifest.js +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},24286,e=>{"use strict";function t(e){let t=e.match(/^(.+?)-(\d{4}-\d{2}-\d{2}T[\d-]+Z)\.log$/);if(t)return t[1];let r=e.match(/^(.+)-d3k\.log$/);return r?r[1]:null}function r(e,r){let n=t(e);return!!n&&n.includes(r)}e.s(["extractProjectNameFromLogFilename",()=>t,"logFilenameMatchesProject",()=>r])},92768,e=>{"use strict";var t=e.i(56787),r=e.i(20933),n=e.i(68782),a=e.i(59026),o=e.i(61757),s=e.i(25929),i=e.i(66245),l=e.i(8810),d=e.i(44544),u=e.i(55109),c=e.i(7083),p=e.i(11046),h=e.i(6232),m=e.i(38650),g=e.i(7590),x=e.i(93695);e.i(55931);var R=e.i(87556),v=e.i(24286),f=e.i(22734),E=e.i(14747);async function w(e){try{let e=process.env.LOG_FILE_PATH||"/var/log/dev3000/dev3000.log";if(!(0,f.existsSync)(e))return Response.json({error:"Current log file not found"},{status:404});let t=(0,E.dirname)(e),r=(0,E.basename)(e),n=(0,v.extractProjectNameFromLogFilename)(r)||"unknown",a=[];try{let e=(0,f.readdirSync)(t).filter(e=>(0,v.logFilenameMatchesProject)(e,n)).map(e=>{let n=(0,E.join)(t,e),a=(0,f.statSync)(n),o=e.match(/(\d{4}-\d{2}-\d{2}T[\d-]+Z)/),s=o?o[1].replace(/-/g,":"):"";return{name:e,path:n,timestamp:s,size:a.size,mtime:a.mtime,isCurrent:e===r}}).sort((e,t)=>t.mtime.getTime()-e.mtime.getTime()).map(e=>({...e,mtime:e.mtime.toISOString()}));a.push(...e)}catch(e){console.warn("Could not read log directory:",e)}return Response.json({files:a,currentFile:e,projectName:n})}catch(t){let e={error:t instanceof Error?t.message:"Unknown error"};return Response.json(e,{status:500})}}e.s(["GET",()=>w],15e3);var C=e.i(15e3);let y=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/logs/list/route",pathname:"/api/logs/list",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/mcp-server/app/api/logs/list/route.ts",nextConfigOutput:"",userland:C}),{workAsyncStorage:A,workUnitAsyncStorage:T,serverHooks:b}=y;function P(){return(0,n.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:T})}async function N(e,t,n){y.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/logs/list/route";v=v.replace(/\/index$/,"")||"/";let f=await y.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!f)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:E,params:w,nextConfig:C,parsedUrl:A,isDraftMode:T,prerenderManifest:b,routerServerContext:P,isOnDemandRevalidate:N,revalidateOnlyGenerated:S,resolvedPathname:j,clientReferenceManifest:O,serverActionsManifest:k}=f,_=(0,i.normalizeAppPath)(v),q=!!(b.dynamicRoutes[_]||b.routes[j]),H=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,A,!1):t.end("This page could not be found"),null);if(q&&!T){let e=!!b.routes[j],t=b.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await H();throw new x.NoFallbackError}}let I=null;!q||y.isDev||T||(I="/index"===(I=j)?"/":I);let U=!0===y.isDev||!q,F=q&&!U;k&&O&&(0,s.setManifestsSingleton)({page:v,clientReferenceManifest:O,serverActionsManifest:k});let M=e.method||"GET",D=(0,o.getTracer)(),$=D.getActiveScopeSpan(),L={params:w,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>y.onRequestError(e,t,n,a,P)},sharedContext:{buildId:E}},K=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(K,(0,d.signalFromNodeResponse)(t));try{let s=async e=>y.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=D.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${v}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&N&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(a);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=L.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(K,B,o,L.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);d&&(t[g.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,n=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await y.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,P),t}},u=await y.handleResponse({req:e,nextConfig:C,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:S,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:i});if(!q)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&q||x.delete(g.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(K,B,new Response(u.value.body,{headers:x,status:u.value.status||200})),null};$?await l($):await D.withPropagatedContext(e.headers,()=>D.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${v}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,P),q)throw t;return await (0,p.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>P,"routeModule",()=>y,"serverHooks",()=>b,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>T],92768)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__52809b10._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/log-filename.ts","../../../../mcp-server/app/api/logs/list/route.ts","../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/dist/esm/build/templates/app-route.js"],"sourcesContent":["/**\n * Utilities for working with dev3000 log filenames\n *\n * Log files follow the pattern: <project-name>-<timestamp>.log\n * where timestamp is ISO 8601 with special chars replaced by hyphens\n * Example: tailwindui-studio-2025-10-27T17-57-15-014Z.log\n */\n\n/**\n * Extract the project name from a log filename\n *\n * @param filename - The log filename (e.g., \"tailwindui-studio-2025-10-27T17-57-15-014Z.log\")\n * @returns The project name (e.g., \"tailwindui-studio\") or null if invalid format\n */\nexport function extractProjectNameFromLogFilename(filename: string): string | null {\n // Pattern matches: <project-name>-YYYY-MM-DDTHH-MM-SS-SSSZ.log\n // The timestamp always starts with YYYY-MM-DD which is a reliable anchor\n const timestampMatch = filename.match(/^(.+?)-(\\d{4}-\\d{2}-\\d{2}T[\\d-]+Z)\\.log$/)\n if (timestampMatch) {\n return timestampMatch[1]\n }\n\n // Also handle current log file pattern: <project-name>-d3k.log\n const d3kMatch = filename.match(/^(.+)-d3k\\.log$/)\n if (d3kMatch) {\n return d3kMatch[1]\n }\n\n return null\n}\n\n/**\n * Check if a log filename matches a given project name\n *\n * @param filename - The log filename to check\n * @param projectName - The project name to match (supports partial matching)\n * @returns true if the filename belongs to this project\n */\nexport function logFilenameMatchesProject(filename: string, projectName: string): boolean {\n const extractedName = extractProjectNameFromLogFilename(filename)\n if (!extractedName) {\n return false\n }\n\n // Support partial matching (e.g., \"studio\" matches \"tailwindui-studio\")\n return extractedName.includes(projectName)\n}\n\n/**\n * Extract the timestamp from a log filename\n *\n * @param filename - The log filename\n * @returns ISO 8601 timestamp string or null if invalid format\n */\nexport function extractTimestampFromLogFilename(filename: string): string | null {\n const match = filename.match(/^.+?-(\\d{4}-\\d{2}-\\d{2}T[\\d-]+Z)\\.log$/)\n if (match) {\n // Convert back to proper ISO format (replace hyphens with colons and dots)\n const timestamp = match[1]\n // Format: 2025-10-27T17-57-15-014Z -> 2025-10-27T17:57:15.014Z\n const isoTimestamp = timestamp.replace(/T(\\d{2})-(\\d{2})-(\\d{2})-(\\d{3})Z/, \"T$1:$2:$3.$4Z\")\n return isoTimestamp\n }\n return null\n}\n","import { extractProjectNameFromLogFilename, logFilenameMatchesProject } from \"@dev3000/src/utils/log-filename\"\nimport { existsSync, readdirSync, statSync } from \"fs\"\nimport type { NextRequest } from \"next/server\"\nimport { basename, dirname, join } from \"path\"\nimport type { LogFile, LogListError, LogListResponse } from \"@/types\"\n\nexport async function GET(_request: NextRequest): Promise<Response> {\n try {\n const currentLogPath = process.env.LOG_FILE_PATH || \"/var/log/dev3000/dev3000.log\"\n\n if (!existsSync(currentLogPath)) {\n const errorResponse: LogListError = { error: \"Current log file not found\" }\n return Response.json(errorResponse, { status: 404 })\n }\n\n // Get the directory containing the current log\n const logDir = dirname(currentLogPath)\n const currentLogName = basename(currentLogPath)\n\n // Extract project name from current log filename using shared utility\n const projectName = extractProjectNameFromLogFilename(currentLogName) || \"unknown\"\n\n // Find all log files for this project\n const files: LogFile[] = []\n\n try {\n const dirContents = readdirSync(logDir)\n const logFiles = dirContents\n .filter((file) => logFilenameMatchesProject(file, projectName))\n .map((file) => {\n const filePath = join(logDir, file)\n const stats = statSync(filePath)\n\n // Extract timestamp from filename\n const timestampMatch = file.match(/(\\d{4}-\\d{2}-\\d{2}T[\\d-]+Z)/)\n const timestamp = timestampMatch ? timestampMatch[1].replace(/-/g, \":\") : \"\"\n\n return {\n name: file,\n path: filePath,\n timestamp,\n size: stats.size,\n mtime: stats.mtime,\n isCurrent: file === currentLogName\n }\n })\n .sort((a, b) => b.mtime.getTime() - a.mtime.getTime()) // Most recent first\n .map((file) => ({\n ...file,\n mtime: file.mtime.toISOString() // Convert to string after sorting\n }))\n\n files.push(...logFiles)\n } catch (error) {\n console.warn(\"Could not read log directory:\", error)\n }\n\n const response: LogListResponse = {\n files,\n currentFile: currentLogPath,\n projectName\n }\n\n return Response.json(response)\n } catch (error) {\n const errorResponse: LogListError = {\n error: error instanceof Error ? error.message : \"Unknown error\"\n }\n return Response.json(errorResponse, { status: 500 })\n }\n}\n","import { AppRouteRouteModule } from \"next/dist/esm/server/route-modules/app-route/module.compiled\";\nimport { RouteKind } from \"next/dist/esm/server/route-kind\";\nimport { patchFetch as _patchFetch } from \"next/dist/esm/server/lib/patch-fetch\";\nimport { addRequestMeta, getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { setManifestsSingleton } from \"next/dist/esm/server/app-render/manifests-singleton\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { NextRequestAdapter, signalFromNodeResponse } from \"next/dist/esm/server/web/spec-extension/adapters/next-request\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { sendResponse } from \"next/dist/esm/server/send-response\";\nimport { fromNodeOutgoingHttpHeaders, toNodeOutgoingHttpHeaders } from \"next/dist/esm/server/web/utils\";\nimport { getCacheControlHeader } from \"next/dist/esm/server/lib/cache-control\";\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from \"next/dist/esm/lib/constants\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\nimport { CachedRouteKind } from \"next/dist/esm/server/response-cache\";\nimport * as userland from \"INNER_APP_ROUTE\";\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/api/logs/list/route\",\n pathname: \"/api/logs/list\",\n filename: \"route\",\n bundlePath: \"\"\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: \"[project]/mcp-server/app/api/logs/list/route.ts\",\n nextConfigOutput,\n userland\n});\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\nexport { routeModule, workAsyncStorage, workUnitAsyncStorage, serverHooks, patchFetch, };\nexport async function handler(req, res, ctx) {\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());\n }\n let srcPage = \"/api/logs/list/route\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/';\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = process.env.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]);\n const render404 = async ()=>{\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return null;\n };\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]);\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404();\n }\n throw new NoFallbackError();\n }\n }\n }\n let cacheKey = null;\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname;\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n const supportsDynamicResponse = // If we're in development, we always support dynamic HTML\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr;\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse;\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest\n });\n }\n const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const context = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts)\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext)\n },\n sharedContext: {\n buildId\n }\n };\n const nodeNextReq = new NodeNextRequest(req);\n const nodeNextRes = new NodeNextResponse(res);\n const nextReq = NextRequestAdapter.fromNodeNextRequest(nodeNextReq, signalFromNodeResponse(res));\n try {\n const invokeRouteModule = async (span)=>{\n return routeModule.handle(nextReq, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${srcPage}`);\n }\n });\n };\n const isMinimalMode = Boolean(process.env.MINIMAL_MODE || getRequestMeta(req, 'minimalMode'));\n const handleResponse = async (currentSpan)=>{\n var _cacheEntry_value;\n const responseGenerator = async ({ previousCacheEntry })=>{\n try {\n if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n const response = await invokeRouteModule(currentSpan);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil;\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil);\n pendingWaitUntil = undefined;\n }\n }\n const cacheTags = context.renderOpts.collectedTags;\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob();\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers);\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type;\n }\n const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= INFINITE_CACHE ? false : context.renderOpts.collectedRevalidate;\n const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= INFINITE_CACHE ? undefined : context.renderOpts.collectedExpire;\n // Create the cache entry for the response.\n const cacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers\n },\n cacheControl: {\n revalidate,\n expire\n }\n };\n return cacheEntry;\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, context.renderOpts.pendingWaitUntil);\n return null;\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n throw err;\n }\n };\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode\n });\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null;\n }\n if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_ROUTE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E701\",\n enumerable: false,\n configurable: true\n });\n }\n if (!isMinimalMode) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers);\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER);\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) {\n headers.set('Cache-Control', getCacheControlHeader(cacheEntry.cacheControl));\n }\n await sendResponse(nodeNextReq, nodeNextRes, // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200\n }));\n return null;\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n // If this is during static generation, throw the error again.\n if (isIsr) throw err;\n // Otherwise, send a 500 response.\n await sendResponse(nodeNextReq, nodeNextRes, new Response(null, {\n status: 500\n }));\n return null;\n }\n}\n\n//# sourceMappingURL=app-route.js.map\n"],"names":[],"mappings":"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","ignoreList":[2]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/.pnpm/pixelmatch%407.1.0/node_modules/pixelmatch/index.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/chunkstream.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/interlace.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/paeth-predictor.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/filter-parse.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/filter-parse-async.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/constants.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/crc.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/parser.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/bitmapper.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/format-normaliser.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/parser-async.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/bitpacker.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/filter-pack.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/packer.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/packer-async.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/sync-inflate.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/sync-reader.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/filter-parse-sync.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/parser-sync.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/packer-sync.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/png-sync.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/png.js"],"sourcesContent":["/**\n * Compare two equally sized images, pixel by pixel.\n *\n * @param {Uint8Array | Uint8ClampedArray} img1 First image data.\n * @param {Uint8Array | Uint8ClampedArray} img2 Second image data.\n * @param {Uint8Array | Uint8ClampedArray | void} output Image data to write the diff to, if provided.\n * @param {number} width Input images width.\n * @param {number} height Input images height.\n *\n * @param {Object} [options]\n * @param {number} [options.threshold=0.1] Matching threshold (0 to 1); smaller is more sensitive.\n * @param {boolean} [options.includeAA=false] Whether to skip anti-aliasing detection.\n * @param {number} [options.alpha=0.1] Opacity of original image in diff output.\n * @param {[number, number, number]} [options.aaColor=[255, 255, 0]] Color of anti-aliased pixels in diff output.\n * @param {[number, number, number]} [options.diffColor=[255, 0, 0]] Color of different pixels in diff output.\n * @param {[number, number, number]} [options.diffColorAlt=options.diffColor] Whether to detect dark on light differences between img1 and img2 and set an alternative color to differentiate between the two.\n * @param {boolean} [options.diffMask=false] Draw the diff over a transparent background (a mask).\n *\n * @return {number} The number of mismatched pixels.\n */\nexport default function pixelmatch(img1, img2, output, width, height, options = {}) {\n const {\n threshold = 0.1,\n alpha = 0.1,\n aaColor = [255, 255, 0],\n diffColor = [255, 0, 0],\n includeAA, diffColorAlt, diffMask\n } = options;\n\n if (!isPixelData(img1) || !isPixelData(img2) || (output && !isPixelData(output)))\n throw new Error('Image data: Uint8Array, Uint8ClampedArray or Buffer expected.');\n\n if (img1.length !== img2.length || (output && output.length !== img1.length))\n throw new Error('Image sizes do not match.');\n\n if (img1.length !== width * height * 4) throw new Error('Image data size does not match width/height.');\n\n // check if images are identical\n const len = width * height;\n const a32 = new Uint32Array(img1.buffer, img1.byteOffset, len);\n const b32 = new Uint32Array(img2.buffer, img2.byteOffset, len);\n let identical = true;\n\n for (let i = 0; i < len; i++) {\n if (a32[i] !== b32[i]) { identical = false; break; }\n }\n if (identical) { // fast path if identical\n if (output && !diffMask) {\n for (let i = 0; i < len; i++) drawGrayPixel(img1, 4 * i, alpha, output);\n }\n return 0;\n }\n\n // maximum acceptable square distance between two colors;\n // 35215 is the maximum possible value for the YIQ difference metric\n const maxDelta = 35215 * threshold * threshold;\n const [aaR, aaG, aaB] = aaColor;\n const [diffR, diffG, diffB] = diffColor;\n const [altR, altG, altB] = diffColorAlt || diffColor;\n let diff = 0;\n\n // compare each pixel of one image against the other one\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n\n const i = y * width + x;\n const pos = i * 4;\n\n // squared YUV distance between colors at this pixel position, negative if the img2 pixel is darker\n const delta = a32[i] === b32[i] ? 0 : colorDelta(img1, img2, pos, pos, false);\n\n // the color difference is above the threshold\n if (Math.abs(delta) > maxDelta) {\n // check it's a real rendering difference or just anti-aliasing\n const isAA = antialiased(img1, x, y, width, height, a32, b32) || antialiased(img2, x, y, width, height, b32, a32);\n if (!includeAA && isAA) {\n // one of the pixels is anti-aliasing; draw as yellow and do not count as difference\n // note that we do not include such pixels in a mask\n if (output && !diffMask) drawPixel(output, pos, aaR, aaG, aaB);\n\n } else {\n // found substantial difference not caused by anti-aliasing; draw it as such\n if (output) {\n if (delta < 0) {\n drawPixel(output, pos, altR, altG, altB);\n } else {\n drawPixel(output, pos, diffR, diffG, diffB);\n }\n }\n diff++;\n }\n\n } else if (output && !diffMask) {\n // pixels are similar; draw background as grayscale image blended with white\n drawGrayPixel(img1, pos, alpha, output);\n }\n }\n }\n\n // return the number of different pixels\n return diff;\n}\n\n/** @param {Uint8Array | Uint8ClampedArray} arr */\nfunction isPixelData(arr) {\n // work around instanceof Uint8Array not working properly in some Jest environments\n return ArrayBuffer.isView(arr) && arr.BYTES_PER_ELEMENT === 1;\n}\n\n/**\n * Check if a pixel is likely a part of anti-aliasing;\n * based on \"Anti-aliased Pixel and Intensity Slope Detector\" paper by V. Vysniauskas, 2009\n * @param {Uint8Array | Uint8ClampedArray} img\n * @param {number} x1\n * @param {number} y1\n * @param {number} width\n * @param {number} height\n * @param {Uint32Array} a32\n * @param {Uint32Array} b32\n */\nfunction antialiased(img, x1, y1, width, height, a32, b32) {\n const x0 = Math.max(x1 - 1, 0);\n const y0 = Math.max(y1 - 1, 0);\n const x2 = Math.min(x1 + 1, width - 1);\n const y2 = Math.min(y1 + 1, height - 1);\n const pos = y1 * width + x1;\n let zeroes = x1 === x0 || x1 === x2 || y1 === y0 || y1 === y2 ? 1 : 0;\n let min = 0;\n let max = 0;\n let minX = 0;\n let minY = 0;\n let maxX = 0;\n let maxY = 0;\n\n // go through 8 adjacent pixels\n for (let x = x0; x <= x2; x++) {\n for (let y = y0; y <= y2; y++) {\n if (x === x1 && y === y1) continue;\n\n // brightness delta between the center pixel and adjacent one\n const delta = colorDelta(img, img, pos * 4, (y * width + x) * 4, true);\n\n // count the number of equal, darker and brighter adjacent pixels\n if (delta === 0) {\n zeroes++;\n // if found more than 2 equal siblings, it's definitely not anti-aliasing\n if (zeroes > 2) return false;\n\n // remember the darkest pixel\n } else if (delta < min) {\n min = delta;\n minX = x;\n minY = y;\n\n // remember the brightest pixel\n } else if (delta > max) {\n max = delta;\n maxX = x;\n maxY = y;\n }\n }\n }\n\n // if there are no both darker and brighter pixels among siblings, it's not anti-aliasing\n if (min === 0 || max === 0) return false;\n\n // if either the darkest or the brightest pixel has 3+ equal siblings in both images\n // (definitely not anti-aliased), this pixel is anti-aliased\n return (hasManySiblings(a32, minX, minY, width, height) && hasManySiblings(b32, minX, minY, width, height)) ||\n (hasManySiblings(a32, maxX, maxY, width, height) && hasManySiblings(b32, maxX, maxY, width, height));\n}\n\n/**\n * Check if a pixel has 3+ adjacent pixels of the same color.\n * @param {Uint32Array} img\n * @param {number} x1\n * @param {number} y1\n * @param {number} width\n * @param {number} height\n */\nfunction hasManySiblings(img, x1, y1, width, height) {\n const x0 = Math.max(x1 - 1, 0);\n const y0 = Math.max(y1 - 1, 0);\n const x2 = Math.min(x1 + 1, width - 1);\n const y2 = Math.min(y1 + 1, height - 1);\n const val = img[y1 * width + x1];\n let zeroes = x1 === x0 || x1 === x2 || y1 === y0 || y1 === y2 ? 1 : 0;\n\n // go through 8 adjacent pixels\n for (let x = x0; x <= x2; x++) {\n for (let y = y0; y <= y2; y++) {\n if (x === x1 && y === y1) continue;\n zeroes += +(val === img[y * width + x]);\n if (zeroes > 2) return true;\n }\n }\n return false;\n}\n\n/**\n * Calculate color difference according to the paper \"Measuring perceived color difference\n * using YIQ NTSC transmission color space in mobile applications\" by Y. Kotsarenko and F. Ramos\n * @param {Uint8Array | Uint8ClampedArray} img1\n * @param {Uint8Array | Uint8ClampedArray} img2\n * @param {number} k\n * @param {number} m\n * @param {boolean} yOnly\n */\nfunction colorDelta(img1, img2, k, m, yOnly) {\n const r1 = img1[k];\n const g1 = img1[k + 1];\n const b1 = img1[k + 2];\n const a1 = img1[k + 3];\n const r2 = img2[m];\n const g2 = img2[m + 1];\n const b2 = img2[m + 2];\n const a2 = img2[m + 3];\n\n let dr = r1 - r2;\n let dg = g1 - g2;\n let db = b1 - b2;\n const da = a1 - a2;\n\n if (!dr && !dg && !db && !da) return 0;\n\n if (a1 < 255 || a2 < 255) { // blend pixels with background\n const rb = 48 + 159 * (k % 2);\n const gb = 48 + 159 * ((k / 1.618033988749895 | 0) % 2);\n const bb = 48 + 159 * ((k / 2.618033988749895 | 0) % 2);\n dr = (r1 * a1 - r2 * a2 - rb * da) / 255;\n dg = (g1 * a1 - g2 * a2 - gb * da) / 255;\n db = (b1 * a1 - b2 * a2 - bb * da) / 255;\n }\n\n const y = dr * 0.29889531 + dg * 0.58662247 + db * 0.11448223;\n\n if (yOnly) return y; // brightness difference only\n\n const i = dr * 0.59597799 - dg * 0.27417610 - db * 0.32180189;\n const q = dr * 0.21147017 - dg * 0.52261711 + db * 0.31114694;\n\n const delta = 0.5053 * y * y + 0.299 * i * i + 0.1957 * q * q;\n\n // encode whether the pixel lightens or darkens in the sign\n return y > 0 ? -delta : delta;\n}\n\n/**\n * @param {Uint8Array | Uint8ClampedArray} output\n * @param {number} pos\n * @param {number} r\n * @param {number} g\n * @param {number} b\n */\nfunction drawPixel(output, pos, r, g, b) {\n output[pos + 0] = r;\n output[pos + 1] = g;\n output[pos + 2] = b;\n output[pos + 3] = 255;\n}\n\n/**\n * @param {Uint8Array | Uint8ClampedArray} img\n * @param {number} i\n * @param {number} alpha\n * @param {Uint8Array | Uint8ClampedArray} output\n */\nfunction drawGrayPixel(img, i, alpha, output) {\n const val = 255 + (img[i] * 0.29889531 + img[i + 1] * 0.58662247 + img[i + 2] * 0.11448223 - 255) * alpha * img[i + 3] / 255;\n drawPixel(output, i, val, val, val);\n}\n","\"use strict\";\n\nlet util = require(\"util\");\nlet Stream = require(\"stream\");\n\nlet ChunkStream = (module.exports = function () {\n Stream.call(this);\n\n this._buffers = [];\n this._buffered = 0;\n\n this._reads = [];\n this._paused = false;\n\n this._encoding = \"utf8\";\n this.writable = true;\n});\nutil.inherits(ChunkStream, Stream);\n\nChunkStream.prototype.read = function (length, callback) {\n this._reads.push({\n length: Math.abs(length), // if length < 0 then at most this length\n allowLess: length < 0,\n func: callback,\n });\n\n process.nextTick(\n function () {\n this._process();\n\n // its paused and there is not enought data then ask for more\n if (this._paused && this._reads && this._reads.length > 0) {\n this._paused = false;\n\n this.emit(\"drain\");\n }\n }.bind(this)\n );\n};\n\nChunkStream.prototype.write = function (data, encoding) {\n if (!this.writable) {\n this.emit(\"error\", new Error(\"Stream not writable\"));\n return false;\n }\n\n let dataBuffer;\n if (Buffer.isBuffer(data)) {\n dataBuffer = data;\n } else {\n dataBuffer = Buffer.from(data, encoding || this._encoding);\n }\n\n this._buffers.push(dataBuffer);\n this._buffered += dataBuffer.length;\n\n this._process();\n\n // ok if there are no more read requests\n if (this._reads && this._reads.length === 0) {\n this._paused = true;\n }\n\n return this.writable && !this._paused;\n};\n\nChunkStream.prototype.end = function (data, encoding) {\n if (data) {\n this.write(data, encoding);\n }\n\n this.writable = false;\n\n // already destroyed\n if (!this._buffers) {\n return;\n }\n\n // enqueue or handle end\n if (this._buffers.length === 0) {\n this._end();\n } else {\n this._buffers.push(null);\n this._process();\n }\n};\n\nChunkStream.prototype.destroySoon = ChunkStream.prototype.end;\n\nChunkStream.prototype._end = function () {\n if (this._reads.length > 0) {\n this.emit(\"error\", new Error(\"Unexpected end of input\"));\n }\n\n this.destroy();\n};\n\nChunkStream.prototype.destroy = function () {\n if (!this._buffers) {\n return;\n }\n\n this.writable = false;\n this._reads = null;\n this._buffers = null;\n\n this.emit(\"close\");\n};\n\nChunkStream.prototype._processReadAllowingLess = function (read) {\n // ok there is any data so that we can satisfy this request\n this._reads.shift(); // == read\n\n // first we need to peek into first buffer\n let smallerBuf = this._buffers[0];\n\n // ok there is more data than we need\n if (smallerBuf.length > read.length) {\n this._buffered -= read.length;\n this._buffers[0] = smallerBuf.slice(read.length);\n\n read.func.call(this, smallerBuf.slice(0, read.length));\n } else {\n // ok this is less than maximum length so use it all\n this._buffered -= smallerBuf.length;\n this._buffers.shift(); // == smallerBuf\n\n read.func.call(this, smallerBuf);\n }\n};\n\nChunkStream.prototype._processRead = function (read) {\n this._reads.shift(); // == read\n\n let pos = 0;\n let count = 0;\n let data = Buffer.alloc(read.length);\n\n // create buffer for all data\n while (pos < read.length) {\n let buf = this._buffers[count++];\n let len = Math.min(buf.length, read.length - pos);\n\n buf.copy(data, pos, 0, len);\n pos += len;\n\n // last buffer wasn't used all so just slice it and leave\n if (len !== buf.length) {\n this._buffers[--count] = buf.slice(len);\n }\n }\n\n // remove all used buffers\n if (count > 0) {\n this._buffers.splice(0, count);\n }\n\n this._buffered -= read.length;\n\n read.func.call(this, data);\n};\n\nChunkStream.prototype._process = function () {\n try {\n // as long as there is any data and read requests\n while (this._buffered > 0 && this._reads && this._reads.length > 0) {\n let read = this._reads[0];\n\n // read any data (but no more than length)\n if (read.allowLess) {\n this._processReadAllowingLess(read);\n } else if (this._buffered >= read.length) {\n // ok we can meet some expectations\n\n this._processRead(read);\n } else {\n // not enought data to satisfy first request in queue\n // so we need to wait for more\n break;\n }\n }\n\n if (this._buffers && !this.writable) {\n this._end();\n }\n } catch (ex) {\n this.emit(\"error\", ex);\n }\n};\n","\"use strict\";\n\n// Adam 7\n// 0 1 2 3 4 5 6 7\n// 0 x 6 4 6 x 6 4 6\n// 1 7 7 7 7 7 7 7 7\n// 2 5 6 5 6 5 6 5 6\n// 3 7 7 7 7 7 7 7 7\n// 4 3 6 4 6 3 6 4 6\n// 5 7 7 7 7 7 7 7 7\n// 6 5 6 5 6 5 6 5 6\n// 7 7 7 7 7 7 7 7 7\n\nlet imagePasses = [\n {\n // pass 1 - 1px\n x: [0],\n y: [0],\n },\n {\n // pass 2 - 1px\n x: [4],\n y: [0],\n },\n {\n // pass 3 - 2px\n x: [0, 4],\n y: [4],\n },\n {\n // pass 4 - 4px\n x: [2, 6],\n y: [0, 4],\n },\n {\n // pass 5 - 8px\n x: [0, 2, 4, 6],\n y: [2, 6],\n },\n {\n // pass 6 - 16px\n x: [1, 3, 5, 7],\n y: [0, 2, 4, 6],\n },\n {\n // pass 7 - 32px\n x: [0, 1, 2, 3, 4, 5, 6, 7],\n y: [1, 3, 5, 7],\n },\n];\n\nexports.getImagePasses = function (width, height) {\n let images = [];\n let xLeftOver = width % 8;\n let yLeftOver = height % 8;\n let xRepeats = (width - xLeftOver) / 8;\n let yRepeats = (height - yLeftOver) / 8;\n for (let i = 0; i < imagePasses.length; i++) {\n let pass = imagePasses[i];\n let passWidth = xRepeats * pass.x.length;\n let passHeight = yRepeats * pass.y.length;\n for (let j = 0; j < pass.x.length; j++) {\n if (pass.x[j] < xLeftOver) {\n passWidth++;\n } else {\n break;\n }\n }\n for (let j = 0; j < pass.y.length; j++) {\n if (pass.y[j] < yLeftOver) {\n passHeight++;\n } else {\n break;\n }\n }\n if (passWidth > 0 && passHeight > 0) {\n images.push({ width: passWidth, height: passHeight, index: i });\n }\n }\n return images;\n};\n\nexports.getInterlaceIterator = function (width) {\n return function (x, y, pass) {\n let outerXLeftOver = x % imagePasses[pass].x.length;\n let outerX =\n ((x - outerXLeftOver) / imagePasses[pass].x.length) * 8 +\n imagePasses[pass].x[outerXLeftOver];\n let outerYLeftOver = y % imagePasses[pass].y.length;\n let outerY =\n ((y - outerYLeftOver) / imagePasses[pass].y.length) * 8 +\n imagePasses[pass].y[outerYLeftOver];\n return outerX * 4 + outerY * width * 4;\n };\n};\n","\"use strict\";\n\nmodule.exports = function paethPredictor(left, above, upLeft) {\n let paeth = left + above - upLeft;\n let pLeft = Math.abs(paeth - left);\n let pAbove = Math.abs(paeth - above);\n let pUpLeft = Math.abs(paeth - upLeft);\n\n if (pLeft <= pAbove && pLeft <= pUpLeft) {\n return left;\n }\n if (pAbove <= pUpLeft) {\n return above;\n }\n return upLeft;\n};\n","\"use strict\";\n\nlet interlaceUtils = require(\"./interlace\");\nlet paethPredictor = require(\"./paeth-predictor\");\n\nfunction getByteWidth(width, bpp, depth) {\n let byteWidth = width * bpp;\n if (depth !== 8) {\n byteWidth = Math.ceil(byteWidth / (8 / depth));\n }\n return byteWidth;\n}\n\nlet Filter = (module.exports = function (bitmapInfo, dependencies) {\n let width = bitmapInfo.width;\n let height = bitmapInfo.height;\n let interlace = bitmapInfo.interlace;\n let bpp = bitmapInfo.bpp;\n let depth = bitmapInfo.depth;\n\n this.read = dependencies.read;\n this.write = dependencies.write;\n this.complete = dependencies.complete;\n\n this._imageIndex = 0;\n this._images = [];\n if (interlace) {\n let passes = interlaceUtils.getImagePasses(width, height);\n for (let i = 0; i < passes.length; i++) {\n this._images.push({\n byteWidth: getByteWidth(passes[i].width, bpp, depth),\n height: passes[i].height,\n lineIndex: 0,\n });\n }\n } else {\n this._images.push({\n byteWidth: getByteWidth(width, bpp, depth),\n height: height,\n lineIndex: 0,\n });\n }\n\n // when filtering the line we look at the pixel to the left\n // the spec also says it is done on a byte level regardless of the number of pixels\n // so if the depth is byte compatible (8 or 16) we subtract the bpp in order to compare back\n // a pixel rather than just a different byte part. However if we are sub byte, we ignore.\n if (depth === 8) {\n this._xComparison = bpp;\n } else if (depth === 16) {\n this._xComparison = bpp * 2;\n } else {\n this._xComparison = 1;\n }\n});\n\nFilter.prototype.start = function () {\n this.read(\n this._images[this._imageIndex].byteWidth + 1,\n this._reverseFilterLine.bind(this)\n );\n};\n\nFilter.prototype._unFilterType1 = function (\n rawData,\n unfilteredLine,\n byteWidth\n) {\n let xComparison = this._xComparison;\n let xBiggerThan = xComparison - 1;\n\n for (let x = 0; x < byteWidth; x++) {\n let rawByte = rawData[1 + x];\n let f1Left = x > xBiggerThan ? unfilteredLine[x - xComparison] : 0;\n unfilteredLine[x] = rawByte + f1Left;\n }\n};\n\nFilter.prototype._unFilterType2 = function (\n rawData,\n unfilteredLine,\n byteWidth\n) {\n let lastLine = this._lastLine;\n\n for (let x = 0; x < byteWidth; x++) {\n let rawByte = rawData[1 + x];\n let f2Up = lastLine ? lastLine[x] : 0;\n unfilteredLine[x] = rawByte + f2Up;\n }\n};\n\nFilter.prototype._unFilterType3 = function (\n rawData,\n unfilteredLine,\n byteWidth\n) {\n let xComparison = this._xComparison;\n let xBiggerThan = xComparison - 1;\n let lastLine = this._lastLine;\n\n for (let x = 0; x < byteWidth; x++) {\n let rawByte = rawData[1 + x];\n let f3Up = lastLine ? lastLine[x] : 0;\n let f3Left = x > xBiggerThan ? unfilteredLine[x - xComparison] : 0;\n let f3Add = Math.floor((f3Left + f3Up) / 2);\n unfilteredLine[x] = rawByte + f3Add;\n }\n};\n\nFilter.prototype._unFilterType4 = function (\n rawData,\n unfilteredLine,\n byteWidth\n) {\n let xComparison = this._xComparison;\n let xBiggerThan = xComparison - 1;\n let lastLine = this._lastLine;\n\n for (let x = 0; x < byteWidth; x++) {\n let rawByte = rawData[1 + x];\n let f4Up = lastLine ? lastLine[x] : 0;\n let f4Left = x > xBiggerThan ? unfilteredLine[x - xComparison] : 0;\n let f4UpLeft = x > xBiggerThan && lastLine ? lastLine[x - xComparison] : 0;\n let f4Add = paethPredictor(f4Left, f4Up, f4UpLeft);\n unfilteredLine[x] = rawByte + f4Add;\n }\n};\n\nFilter.prototype._reverseFilterLine = function (rawData) {\n let filter = rawData[0];\n let unfilteredLine;\n let currentImage = this._images[this._imageIndex];\n let byteWidth = currentImage.byteWidth;\n\n if (filter === 0) {\n unfilteredLine = rawData.slice(1, byteWidth + 1);\n } else {\n unfilteredLine = Buffer.alloc(byteWidth);\n\n switch (filter) {\n case 1:\n this._unFilterType1(rawData, unfilteredLine, byteWidth);\n break;\n case 2:\n this._unFilterType2(rawData, unfilteredLine, byteWidth);\n break;\n case 3:\n this._unFilterType3(rawData, unfilteredLine, byteWidth);\n break;\n case 4:\n this._unFilterType4(rawData, unfilteredLine, byteWidth);\n break;\n default:\n throw new Error(\"Unrecognised filter type - \" + filter);\n }\n }\n\n this.write(unfilteredLine);\n\n currentImage.lineIndex++;\n if (currentImage.lineIndex >= currentImage.height) {\n this._lastLine = null;\n this._imageIndex++;\n currentImage = this._images[this._imageIndex];\n } else {\n this._lastLine = unfilteredLine;\n }\n\n if (currentImage) {\n // read, using the byte width that may be from the new current image\n this.read(currentImage.byteWidth + 1, this._reverseFilterLine.bind(this));\n } else {\n this._lastLine = null;\n this.complete();\n }\n};\n","\"use strict\";\n\nlet util = require(\"util\");\nlet ChunkStream = require(\"./chunkstream\");\nlet Filter = require(\"./filter-parse\");\n\nlet FilterAsync = (module.exports = function (bitmapInfo) {\n ChunkStream.call(this);\n\n let buffers = [];\n let that = this;\n this._filter = new Filter(bitmapInfo, {\n read: this.read.bind(this),\n write: function (buffer) {\n buffers.push(buffer);\n },\n complete: function () {\n that.emit(\"complete\", Buffer.concat(buffers));\n },\n });\n\n this._filter.start();\n});\nutil.inherits(FilterAsync, ChunkStream);\n","\"use strict\";\n\nmodule.exports = {\n PNG_SIGNATURE: [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a],\n\n TYPE_IHDR: 0x49484452,\n TYPE_IEND: 0x49454e44,\n TYPE_IDAT: 0x49444154,\n TYPE_PLTE: 0x504c5445,\n TYPE_tRNS: 0x74524e53, // eslint-disable-line camelcase\n TYPE_gAMA: 0x67414d41, // eslint-disable-line camelcase\n\n // color-type bits\n COLORTYPE_GRAYSCALE: 0,\n COLORTYPE_PALETTE: 1,\n COLORTYPE_COLOR: 2,\n COLORTYPE_ALPHA: 4, // e.g. grayscale and alpha\n\n // color-type combinations\n COLORTYPE_PALETTE_COLOR: 3,\n COLORTYPE_COLOR_ALPHA: 6,\n\n COLORTYPE_TO_BPP_MAP: {\n 0: 1,\n 2: 3,\n 3: 1,\n 4: 2,\n 6: 4,\n },\n\n GAMMA_DIVISION: 100000,\n};\n","\"use strict\";\n\nlet crcTable = [];\n\n(function () {\n for (let i = 0; i < 256; i++) {\n let currentCrc = i;\n for (let j = 0; j < 8; j++) {\n if (currentCrc & 1) {\n currentCrc = 0xedb88320 ^ (currentCrc >>> 1);\n } else {\n currentCrc = currentCrc >>> 1;\n }\n }\n crcTable[i] = currentCrc;\n }\n})();\n\nlet CrcCalculator = (module.exports = function () {\n this._crc = -1;\n});\n\nCrcCalculator.prototype.write = function (data) {\n for (let i = 0; i < data.length; i++) {\n this._crc = crcTable[(this._crc ^ data[i]) & 0xff] ^ (this._crc >>> 8);\n }\n return true;\n};\n\nCrcCalculator.prototype.crc32 = function () {\n return this._crc ^ -1;\n};\n\nCrcCalculator.crc32 = function (buf) {\n let crc = -1;\n for (let i = 0; i < buf.length; i++) {\n crc = crcTable[(crc ^ buf[i]) & 0xff] ^ (crc >>> 8);\n }\n return crc ^ -1;\n};\n","\"use strict\";\n\nlet constants = require(\"./constants\");\nlet CrcCalculator = require(\"./crc\");\n\nlet Parser = (module.exports = function (options, dependencies) {\n this._options = options;\n options.checkCRC = options.checkCRC !== false;\n\n this._hasIHDR = false;\n this._hasIEND = false;\n this._emittedHeadersFinished = false;\n\n // input flags/metadata\n this._palette = [];\n this._colorType = 0;\n\n this._chunks = {};\n this._chunks[constants.TYPE_IHDR] = this._handleIHDR.bind(this);\n this._chunks[constants.TYPE_IEND] = this._handleIEND.bind(this);\n this._chunks[constants.TYPE_IDAT] = this._handleIDAT.bind(this);\n this._chunks[constants.TYPE_PLTE] = this._handlePLTE.bind(this);\n this._chunks[constants.TYPE_tRNS] = this._handleTRNS.bind(this);\n this._chunks[constants.TYPE_gAMA] = this._handleGAMA.bind(this);\n\n this.read = dependencies.read;\n this.error = dependencies.error;\n this.metadata = dependencies.metadata;\n this.gamma = dependencies.gamma;\n this.transColor = dependencies.transColor;\n this.palette = dependencies.palette;\n this.parsed = dependencies.parsed;\n this.inflateData = dependencies.inflateData;\n this.finished = dependencies.finished;\n this.simpleTransparency = dependencies.simpleTransparency;\n this.headersFinished = dependencies.headersFinished || function () {};\n});\n\nParser.prototype.start = function () {\n this.read(constants.PNG_SIGNATURE.length, this._parseSignature.bind(this));\n};\n\nParser.prototype._parseSignature = function (data) {\n let signature = constants.PNG_SIGNATURE;\n\n for (let i = 0; i < signature.length; i++) {\n if (data[i] !== signature[i]) {\n this.error(new Error(\"Invalid file signature\"));\n return;\n }\n }\n this.read(8, this._parseChunkBegin.bind(this));\n};\n\nParser.prototype._parseChunkBegin = function (data) {\n // chunk content length\n let length = data.readUInt32BE(0);\n\n // chunk type\n let type = data.readUInt32BE(4);\n let name = \"\";\n for (let i = 4; i < 8; i++) {\n name += String.fromCharCode(data[i]);\n }\n\n //console.log('chunk ', name, length);\n\n // chunk flags\n let ancillary = Boolean(data[4] & 0x20); // or critical\n // priv = Boolean(data[5] & 0x20), // or public\n // safeToCopy = Boolean(data[7] & 0x20); // or unsafe\n\n if (!this._hasIHDR && type !== constants.TYPE_IHDR) {\n this.error(new Error(\"Expected IHDR on beggining\"));\n return;\n }\n\n this._crc = new CrcCalculator();\n this._crc.write(Buffer.from(name));\n\n if (this._chunks[type]) {\n return this._chunks[type](length);\n }\n\n if (!ancillary) {\n this.error(new Error(\"Unsupported critical chunk type \" + name));\n return;\n }\n\n this.read(length + 4, this._skipChunk.bind(this));\n};\n\nParser.prototype._skipChunk = function (/*data*/) {\n this.read(8, this._parseChunkBegin.bind(this));\n};\n\nParser.prototype._handleChunkEnd = function () {\n this.read(4, this._parseChunkEnd.bind(this));\n};\n\nParser.prototype._parseChunkEnd = function (data) {\n let fileCrc = data.readInt32BE(0);\n let calcCrc = this._crc.crc32();\n\n // check CRC\n if (this._options.checkCRC && calcCrc !== fileCrc) {\n this.error(new Error(\"Crc error - \" + fileCrc + \" - \" + calcCrc));\n return;\n }\n\n if (!this._hasIEND) {\n this.read(8, this._parseChunkBegin.bind(this));\n }\n};\n\nParser.prototype._handleIHDR = function (length) {\n this.read(length, this._parseIHDR.bind(this));\n};\nParser.prototype._parseIHDR = function (data) {\n this._crc.write(data);\n\n let width = data.readUInt32BE(0);\n let height = data.readUInt32BE(4);\n let depth = data[8];\n let colorType = data[9]; // bits: 1 palette, 2 color, 4 alpha\n let compr = data[10];\n let filter = data[11];\n let interlace = data[12];\n\n // console.log(' width', width, 'height', height,\n // 'depth', depth, 'colorType', colorType,\n // 'compr', compr, 'filter', filter, 'interlace', interlace\n // );\n\n if (\n depth !== 8 &&\n depth !== 4 &&\n depth !== 2 &&\n depth !== 1 &&\n depth !== 16\n ) {\n this.error(new Error(\"Unsupported bit depth \" + depth));\n return;\n }\n if (!(colorType in constants.COLORTYPE_TO_BPP_MAP)) {\n this.error(new Error(\"Unsupported color type\"));\n return;\n }\n if (compr !== 0) {\n this.error(new Error(\"Unsupported compression method\"));\n return;\n }\n if (filter !== 0) {\n this.error(new Error(\"Unsupported filter method\"));\n return;\n }\n if (interlace !== 0 && interlace !== 1) {\n this.error(new Error(\"Unsupported interlace method\"));\n return;\n }\n\n this._colorType = colorType;\n\n let bpp = constants.COLORTYPE_TO_BPP_MAP[this._colorType];\n\n this._hasIHDR = true;\n\n this.metadata({\n width: width,\n height: height,\n depth: depth,\n interlace: Boolean(interlace),\n palette: Boolean(colorType & constants.COLORTYPE_PALETTE),\n color: Boolean(colorType & constants.COLORTYPE_COLOR),\n alpha: Boolean(colorType & constants.COLORTYPE_ALPHA),\n bpp: bpp,\n colorType: colorType,\n });\n\n this._handleChunkEnd();\n};\n\nParser.prototype._handlePLTE = function (length) {\n this.read(length, this._parsePLTE.bind(this));\n};\nParser.prototype._parsePLTE = function (data) {\n this._crc.write(data);\n\n let entries = Math.floor(data.length / 3);\n // console.log('Palette:', entries);\n\n for (let i = 0; i < entries; i++) {\n this._palette.push([data[i * 3], data[i * 3 + 1], data[i * 3 + 2], 0xff]);\n }\n\n this.palette(this._palette);\n\n this._handleChunkEnd();\n};\n\nParser.prototype._handleTRNS = function (length) {\n this.simpleTransparency();\n this.read(length, this._parseTRNS.bind(this));\n};\nParser.prototype._parseTRNS = function (data) {\n this._crc.write(data);\n\n // palette\n if (this._colorType === constants.COLORTYPE_PALETTE_COLOR) {\n if (this._palette.length === 0) {\n this.error(new Error(\"Transparency chunk must be after palette\"));\n return;\n }\n if (data.length > this._palette.length) {\n this.error(new Error(\"More transparent colors than palette size\"));\n return;\n }\n for (let i = 0; i < data.length; i++) {\n this._palette[i][3] = data[i];\n }\n this.palette(this._palette);\n }\n\n // for colorType 0 (grayscale) and 2 (rgb)\n // there might be one gray/color defined as transparent\n if (this._colorType === constants.COLORTYPE_GRAYSCALE) {\n // grey, 2 bytes\n this.transColor([data.readUInt16BE(0)]);\n }\n if (this._colorType === constants.COLORTYPE_COLOR) {\n this.transColor([\n data.readUInt16BE(0),\n data.readUInt16BE(2),\n data.readUInt16BE(4),\n ]);\n }\n\n this._handleChunkEnd();\n};\n\nParser.prototype._handleGAMA = function (length) {\n this.read(length, this._parseGAMA.bind(this));\n};\nParser.prototype._parseGAMA = function (data) {\n this._crc.write(data);\n this.gamma(data.readUInt32BE(0) / constants.GAMMA_DIVISION);\n\n this._handleChunkEnd();\n};\n\nParser.prototype._handleIDAT = function (length) {\n if (!this._emittedHeadersFinished) {\n this._emittedHeadersFinished = true;\n this.headersFinished();\n }\n this.read(-length, this._parseIDAT.bind(this, length));\n};\nParser.prototype._parseIDAT = function (length, data) {\n this._crc.write(data);\n\n if (\n this._colorType === constants.COLORTYPE_PALETTE_COLOR &&\n this._palette.length === 0\n ) {\n throw new Error(\"Expected palette not found\");\n }\n\n this.inflateData(data);\n let leftOverLength = length - data.length;\n\n if (leftOverLength > 0) {\n this._handleIDAT(leftOverLength);\n } else {\n this._handleChunkEnd();\n }\n};\n\nParser.prototype._handleIEND = function (length) {\n this.read(length, this._parseIEND.bind(this));\n};\nParser.prototype._parseIEND = function (data) {\n this._crc.write(data);\n\n this._hasIEND = true;\n this._handleChunkEnd();\n\n if (this.finished) {\n this.finished();\n }\n};\n","\"use strict\";\n\nlet interlaceUtils = require(\"./interlace\");\n\nlet pixelBppMapper = [\n // 0 - dummy entry\n function () {},\n\n // 1 - L\n // 0: 0, 1: 0, 2: 0, 3: 0xff\n function (pxData, data, pxPos, rawPos) {\n if (rawPos === data.length) {\n throw new Error(\"Ran out of data\");\n }\n\n let pixel = data[rawPos];\n pxData[pxPos] = pixel;\n pxData[pxPos + 1] = pixel;\n pxData[pxPos + 2] = pixel;\n pxData[pxPos + 3] = 0xff;\n },\n\n // 2 - LA\n // 0: 0, 1: 0, 2: 0, 3: 1\n function (pxData, data, pxPos, rawPos) {\n if (rawPos + 1 >= data.length) {\n throw new Error(\"Ran out of data\");\n }\n\n let pixel = data[rawPos];\n pxData[pxPos] = pixel;\n pxData[pxPos + 1] = pixel;\n pxData[pxPos + 2] = pixel;\n pxData[pxPos + 3] = data[rawPos + 1];\n },\n\n // 3 - RGB\n // 0: 0, 1: 1, 2: 2, 3: 0xff\n function (pxData, data, pxPos, rawPos) {\n if (rawPos + 2 >= data.length) {\n throw new Error(\"Ran out of data\");\n }\n\n pxData[pxPos] = data[rawPos];\n pxData[pxPos + 1] = data[rawPos + 1];\n pxData[pxPos + 2] = data[rawPos + 2];\n pxData[pxPos + 3] = 0xff;\n },\n\n // 4 - RGBA\n // 0: 0, 1: 1, 2: 2, 3: 3\n function (pxData, data, pxPos, rawPos) {\n if (rawPos + 3 >= data.length) {\n throw new Error(\"Ran out of data\");\n }\n\n pxData[pxPos] = data[rawPos];\n pxData[pxPos + 1] = data[rawPos + 1];\n pxData[pxPos + 2] = data[rawPos + 2];\n pxData[pxPos + 3] = data[rawPos + 3];\n },\n];\n\nlet pixelBppCustomMapper = [\n // 0 - dummy entry\n function () {},\n\n // 1 - L\n // 0: 0, 1: 0, 2: 0, 3: 0xff\n function (pxData, pixelData, pxPos, maxBit) {\n let pixel = pixelData[0];\n pxData[pxPos] = pixel;\n pxData[pxPos + 1] = pixel;\n pxData[pxPos + 2] = pixel;\n pxData[pxPos + 3] = maxBit;\n },\n\n // 2 - LA\n // 0: 0, 1: 0, 2: 0, 3: 1\n function (pxData, pixelData, pxPos) {\n let pixel = pixelData[0];\n pxData[pxPos] = pixel;\n pxData[pxPos + 1] = pixel;\n pxData[pxPos + 2] = pixel;\n pxData[pxPos + 3] = pixelData[1];\n },\n\n // 3 - RGB\n // 0: 0, 1: 1, 2: 2, 3: 0xff\n function (pxData, pixelData, pxPos, maxBit) {\n pxData[pxPos] = pixelData[0];\n pxData[pxPos + 1] = pixelData[1];\n pxData[pxPos + 2] = pixelData[2];\n pxData[pxPos + 3] = maxBit;\n },\n\n // 4 - RGBA\n // 0: 0, 1: 1, 2: 2, 3: 3\n function (pxData, pixelData, pxPos) {\n pxData[pxPos] = pixelData[0];\n pxData[pxPos + 1] = pixelData[1];\n pxData[pxPos + 2] = pixelData[2];\n pxData[pxPos + 3] = pixelData[3];\n },\n];\n\nfunction bitRetriever(data, depth) {\n let leftOver = [];\n let i = 0;\n\n function split() {\n if (i === data.length) {\n throw new Error(\"Ran out of data\");\n }\n let byte = data[i];\n i++;\n let byte8, byte7, byte6, byte5, byte4, byte3, byte2, byte1;\n switch (depth) {\n default:\n throw new Error(\"unrecognised depth\");\n case 16:\n byte2 = data[i];\n i++;\n leftOver.push((byte << 8) + byte2);\n break;\n case 4:\n byte2 = byte & 0x0f;\n byte1 = byte >> 4;\n leftOver.push(byte1, byte2);\n break;\n case 2:\n byte4 = byte & 3;\n byte3 = (byte >> 2) & 3;\n byte2 = (byte >> 4) & 3;\n byte1 = (byte >> 6) & 3;\n leftOver.push(byte1, byte2, byte3, byte4);\n break;\n case 1:\n byte8 = byte & 1;\n byte7 = (byte >> 1) & 1;\n byte6 = (byte >> 2) & 1;\n byte5 = (byte >> 3) & 1;\n byte4 = (byte >> 4) & 1;\n byte3 = (byte >> 5) & 1;\n byte2 = (byte >> 6) & 1;\n byte1 = (byte >> 7) & 1;\n leftOver.push(byte1, byte2, byte3, byte4, byte5, byte6, byte7, byte8);\n break;\n }\n }\n\n return {\n get: function (count) {\n while (leftOver.length < count) {\n split();\n }\n let returner = leftOver.slice(0, count);\n leftOver = leftOver.slice(count);\n return returner;\n },\n resetAfterLine: function () {\n leftOver.length = 0;\n },\n end: function () {\n if (i !== data.length) {\n throw new Error(\"extra data found\");\n }\n },\n };\n}\n\nfunction mapImage8Bit(image, pxData, getPxPos, bpp, data, rawPos) {\n // eslint-disable-line max-params\n let imageWidth = image.width;\n let imageHeight = image.height;\n let imagePass = image.index;\n for (let y = 0; y < imageHeight; y++) {\n for (let x = 0; x < imageWidth; x++) {\n let pxPos = getPxPos(x, y, imagePass);\n pixelBppMapper[bpp](pxData, data, pxPos, rawPos);\n rawPos += bpp; //eslint-disable-line no-param-reassign\n }\n }\n return rawPos;\n}\n\nfunction mapImageCustomBit(image, pxData, getPxPos, bpp, bits, maxBit) {\n // eslint-disable-line max-params\n let imageWidth = image.width;\n let imageHeight = image.height;\n let imagePass = image.index;\n for (let y = 0; y < imageHeight; y++) {\n for (let x = 0; x < imageWidth; x++) {\n let pixelData = bits.get(bpp);\n let pxPos = getPxPos(x, y, imagePass);\n pixelBppCustomMapper[bpp](pxData, pixelData, pxPos, maxBit);\n }\n bits.resetAfterLine();\n }\n}\n\nexports.dataToBitMap = function (data, bitmapInfo) {\n let width = bitmapInfo.width;\n let height = bitmapInfo.height;\n let depth = bitmapInfo.depth;\n let bpp = bitmapInfo.bpp;\n let interlace = bitmapInfo.interlace;\n let bits;\n\n if (depth !== 8) {\n bits = bitRetriever(data, depth);\n }\n let pxData;\n if (depth <= 8) {\n pxData = Buffer.alloc(width * height * 4);\n } else {\n pxData = new Uint16Array(width * height * 4);\n }\n let maxBit = Math.pow(2, depth) - 1;\n let rawPos = 0;\n let images;\n let getPxPos;\n\n if (interlace) {\n images = interlaceUtils.getImagePasses(width, height);\n getPxPos = interlaceUtils.getInterlaceIterator(width, height);\n } else {\n let nonInterlacedPxPos = 0;\n getPxPos = function () {\n let returner = nonInterlacedPxPos;\n nonInterlacedPxPos += 4;\n return returner;\n };\n images = [{ width: width, height: height }];\n }\n\n for (let imageIndex = 0; imageIndex < images.length; imageIndex++) {\n if (depth === 8) {\n rawPos = mapImage8Bit(\n images[imageIndex],\n pxData,\n getPxPos,\n bpp,\n data,\n rawPos\n );\n } else {\n mapImageCustomBit(\n images[imageIndex],\n pxData,\n getPxPos,\n bpp,\n bits,\n maxBit\n );\n }\n }\n if (depth === 8) {\n if (rawPos !== data.length) {\n throw new Error(\"extra data found\");\n }\n } else {\n bits.end();\n }\n\n return pxData;\n};\n","\"use strict\";\n\nfunction dePalette(indata, outdata, width, height, palette) {\n let pxPos = 0;\n // use values from palette\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n let color = palette[indata[pxPos]];\n\n if (!color) {\n throw new Error(\"index \" + indata[pxPos] + \" not in palette\");\n }\n\n for (let i = 0; i < 4; i++) {\n outdata[pxPos + i] = color[i];\n }\n pxPos += 4;\n }\n }\n}\n\nfunction replaceTransparentColor(indata, outdata, width, height, transColor) {\n let pxPos = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n let makeTrans = false;\n\n if (transColor.length === 1) {\n if (transColor[0] === indata[pxPos]) {\n makeTrans = true;\n }\n } else if (\n transColor[0] === indata[pxPos] &&\n transColor[1] === indata[pxPos + 1] &&\n transColor[2] === indata[pxPos + 2]\n ) {\n makeTrans = true;\n }\n if (makeTrans) {\n for (let i = 0; i < 4; i++) {\n outdata[pxPos + i] = 0;\n }\n }\n pxPos += 4;\n }\n }\n}\n\nfunction scaleDepth(indata, outdata, width, height, depth) {\n let maxOutSample = 255;\n let maxInSample = Math.pow(2, depth) - 1;\n let pxPos = 0;\n\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n for (let i = 0; i < 4; i++) {\n outdata[pxPos + i] = Math.floor(\n (indata[pxPos + i] * maxOutSample) / maxInSample + 0.5\n );\n }\n pxPos += 4;\n }\n }\n}\n\nmodule.exports = function (indata, imageData, skipRescale = false) {\n let depth = imageData.depth;\n let width = imageData.width;\n let height = imageData.height;\n let colorType = imageData.colorType;\n let transColor = imageData.transColor;\n let palette = imageData.palette;\n\n let outdata = indata; // only different for 16 bits\n\n if (colorType === 3) {\n // paletted\n dePalette(indata, outdata, width, height, palette);\n } else {\n if (transColor) {\n replaceTransparentColor(indata, outdata, width, height, transColor);\n }\n // if it needs scaling\n if (depth !== 8 && !skipRescale) {\n // if we need to change the buffer size\n if (depth === 16) {\n outdata = Buffer.alloc(width * height * 4);\n }\n scaleDepth(indata, outdata, width, height, depth);\n }\n }\n return outdata;\n};\n","\"use strict\";\n\nlet util = require(\"util\");\nlet zlib = require(\"zlib\");\nlet ChunkStream = require(\"./chunkstream\");\nlet FilterAsync = require(\"./filter-parse-async\");\nlet Parser = require(\"./parser\");\nlet bitmapper = require(\"./bitmapper\");\nlet formatNormaliser = require(\"./format-normaliser\");\n\nlet ParserAsync = (module.exports = function (options) {\n ChunkStream.call(this);\n\n this._parser = new Parser(options, {\n read: this.read.bind(this),\n error: this._handleError.bind(this),\n metadata: this._handleMetaData.bind(this),\n gamma: this.emit.bind(this, \"gamma\"),\n palette: this._handlePalette.bind(this),\n transColor: this._handleTransColor.bind(this),\n finished: this._finished.bind(this),\n inflateData: this._inflateData.bind(this),\n simpleTransparency: this._simpleTransparency.bind(this),\n headersFinished: this._headersFinished.bind(this),\n });\n this._options = options;\n this.writable = true;\n\n this._parser.start();\n});\nutil.inherits(ParserAsync, ChunkStream);\n\nParserAsync.prototype._handleError = function (err) {\n this.emit(\"error\", err);\n\n this.writable = false;\n\n this.destroy();\n\n if (this._inflate && this._inflate.destroy) {\n this._inflate.destroy();\n }\n\n if (this._filter) {\n this._filter.destroy();\n // For backward compatibility with Node 7 and below.\n // Suppress errors due to _inflate calling write() even after\n // it's destroy()'ed.\n this._filter.on(\"error\", function () {});\n }\n\n this.errord = true;\n};\n\nParserAsync.prototype._inflateData = function (data) {\n if (!this._inflate) {\n if (this._bitmapInfo.interlace) {\n this._inflate = zlib.createInflate();\n\n this._inflate.on(\"error\", this.emit.bind(this, \"error\"));\n this._filter.on(\"complete\", this._complete.bind(this));\n\n this._inflate.pipe(this._filter);\n } else {\n let rowSize =\n ((this._bitmapInfo.width *\n this._bitmapInfo.bpp *\n this._bitmapInfo.depth +\n 7) >>\n 3) +\n 1;\n let imageSize = rowSize * this._bitmapInfo.height;\n let chunkSize = Math.max(imageSize, zlib.Z_MIN_CHUNK);\n\n this._inflate = zlib.createInflate({ chunkSize: chunkSize });\n let leftToInflate = imageSize;\n\n let emitError = this.emit.bind(this, \"error\");\n this._inflate.on(\"error\", function (err) {\n if (!leftToInflate) {\n return;\n }\n\n emitError(err);\n });\n this._filter.on(\"complete\", this._complete.bind(this));\n\n let filterWrite = this._filter.write.bind(this._filter);\n this._inflate.on(\"data\", function (chunk) {\n if (!leftToInflate) {\n return;\n }\n\n if (chunk.length > leftToInflate) {\n chunk = chunk.slice(0, leftToInflate);\n }\n\n leftToInflate -= chunk.length;\n\n filterWrite(chunk);\n });\n\n this._inflate.on(\"end\", this._filter.end.bind(this._filter));\n }\n }\n this._inflate.write(data);\n};\n\nParserAsync.prototype._handleMetaData = function (metaData) {\n this._metaData = metaData;\n this._bitmapInfo = Object.create(metaData);\n\n this._filter = new FilterAsync(this._bitmapInfo);\n};\n\nParserAsync.prototype._handleTransColor = function (transColor) {\n this._bitmapInfo.transColor = transColor;\n};\n\nParserAsync.prototype._handlePalette = function (palette) {\n this._bitmapInfo.palette = palette;\n};\n\nParserAsync.prototype._simpleTransparency = function () {\n this._metaData.alpha = true;\n};\n\nParserAsync.prototype._headersFinished = function () {\n // Up until this point, we don't know if we have a tRNS chunk (alpha)\n // so we can't emit metadata any earlier\n this.emit(\"metadata\", this._metaData);\n};\n\nParserAsync.prototype._finished = function () {\n if (this.errord) {\n return;\n }\n\n if (!this._inflate) {\n this.emit(\"error\", \"No Inflate block\");\n } else {\n // no more data to inflate\n this._inflate.end();\n }\n};\n\nParserAsync.prototype._complete = function (filteredData) {\n if (this.errord) {\n return;\n }\n\n let normalisedBitmapData;\n\n try {\n let bitmapData = bitmapper.dataToBitMap(filteredData, this._bitmapInfo);\n\n normalisedBitmapData = formatNormaliser(\n bitmapData,\n this._bitmapInfo,\n this._options.skipRescale\n );\n bitmapData = null;\n } catch (ex) {\n this._handleError(ex);\n return;\n }\n\n this.emit(\"parsed\", normalisedBitmapData);\n};\n","\"use strict\";\n\nlet constants = require(\"./constants\");\n\nmodule.exports = function (dataIn, width, height, options) {\n let outHasAlpha =\n [constants.COLORTYPE_COLOR_ALPHA, constants.COLORTYPE_ALPHA].indexOf(\n options.colorType\n ) !== -1;\n if (options.colorType === options.inputColorType) {\n let bigEndian = (function () {\n let buffer = new ArrayBuffer(2);\n new DataView(buffer).setInt16(0, 256, true /* littleEndian */);\n // Int16Array uses the platform's endianness.\n return new Int16Array(buffer)[0] !== 256;\n })();\n // If no need to convert to grayscale and alpha is present/absent in both, take a fast route\n if (options.bitDepth === 8 || (options.bitDepth === 16 && bigEndian)) {\n return dataIn;\n }\n }\n\n // map to a UInt16 array if data is 16bit, fix endianness below\n let data = options.bitDepth !== 16 ? dataIn : new Uint16Array(dataIn.buffer);\n\n let maxValue = 255;\n let inBpp = constants.COLORTYPE_TO_BPP_MAP[options.inputColorType];\n if (inBpp === 4 && !options.inputHasAlpha) {\n inBpp = 3;\n }\n let outBpp = constants.COLORTYPE_TO_BPP_MAP[options.colorType];\n if (options.bitDepth === 16) {\n maxValue = 65535;\n outBpp *= 2;\n }\n let outData = Buffer.alloc(width * height * outBpp);\n\n let inIndex = 0;\n let outIndex = 0;\n\n let bgColor = options.bgColor || {};\n if (bgColor.red === undefined) {\n bgColor.red = maxValue;\n }\n if (bgColor.green === undefined) {\n bgColor.green = maxValue;\n }\n if (bgColor.blue === undefined) {\n bgColor.blue = maxValue;\n }\n\n function getRGBA() {\n let red;\n let green;\n let blue;\n let alpha = maxValue;\n switch (options.inputColorType) {\n case constants.COLORTYPE_COLOR_ALPHA:\n alpha = data[inIndex + 3];\n red = data[inIndex];\n green = data[inIndex + 1];\n blue = data[inIndex + 2];\n break;\n case constants.COLORTYPE_COLOR:\n red = data[inIndex];\n green = data[inIndex + 1];\n blue = data[inIndex + 2];\n break;\n case constants.COLORTYPE_ALPHA:\n alpha = data[inIndex + 1];\n red = data[inIndex];\n green = red;\n blue = red;\n break;\n case constants.COLORTYPE_GRAYSCALE:\n red = data[inIndex];\n green = red;\n blue = red;\n break;\n default:\n throw new Error(\n \"input color type:\" +\n options.inputColorType +\n \" is not supported at present\"\n );\n }\n\n if (options.inputHasAlpha) {\n if (!outHasAlpha) {\n alpha /= maxValue;\n red = Math.min(\n Math.max(Math.round((1 - alpha) * bgColor.red + alpha * red), 0),\n maxValue\n );\n green = Math.min(\n Math.max(Math.round((1 - alpha) * bgColor.green + alpha * green), 0),\n maxValue\n );\n blue = Math.min(\n Math.max(Math.round((1 - alpha) * bgColor.blue + alpha * blue), 0),\n maxValue\n );\n }\n }\n return { red: red, green: green, blue: blue, alpha: alpha };\n }\n\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n let rgba = getRGBA(data, inIndex);\n\n switch (options.colorType) {\n case constants.COLORTYPE_COLOR_ALPHA:\n case constants.COLORTYPE_COLOR:\n if (options.bitDepth === 8) {\n outData[outIndex] = rgba.red;\n outData[outIndex + 1] = rgba.green;\n outData[outIndex + 2] = rgba.blue;\n if (outHasAlpha) {\n outData[outIndex + 3] = rgba.alpha;\n }\n } else {\n outData.writeUInt16BE(rgba.red, outIndex);\n outData.writeUInt16BE(rgba.green, outIndex + 2);\n outData.writeUInt16BE(rgba.blue, outIndex + 4);\n if (outHasAlpha) {\n outData.writeUInt16BE(rgba.alpha, outIndex + 6);\n }\n }\n break;\n case constants.COLORTYPE_ALPHA:\n case constants.COLORTYPE_GRAYSCALE: {\n // Convert to grayscale and alpha\n let grayscale = (rgba.red + rgba.green + rgba.blue) / 3;\n if (options.bitDepth === 8) {\n outData[outIndex] = grayscale;\n if (outHasAlpha) {\n outData[outIndex + 1] = rgba.alpha;\n }\n } else {\n outData.writeUInt16BE(grayscale, outIndex);\n if (outHasAlpha) {\n outData.writeUInt16BE(rgba.alpha, outIndex + 2);\n }\n }\n break;\n }\n default:\n throw new Error(\"unrecognised color Type \" + options.colorType);\n }\n\n inIndex += inBpp;\n outIndex += outBpp;\n }\n }\n\n return outData;\n};\n","\"use strict\";\n\nlet paethPredictor = require(\"./paeth-predictor\");\n\nfunction filterNone(pxData, pxPos, byteWidth, rawData, rawPos) {\n for (let x = 0; x < byteWidth; x++) {\n rawData[rawPos + x] = pxData[pxPos + x];\n }\n}\n\nfunction filterSumNone(pxData, pxPos, byteWidth) {\n let sum = 0;\n let length = pxPos + byteWidth;\n\n for (let i = pxPos; i < length; i++) {\n sum += Math.abs(pxData[i]);\n }\n return sum;\n}\n\nfunction filterSub(pxData, pxPos, byteWidth, rawData, rawPos, bpp) {\n for (let x = 0; x < byteWidth; x++) {\n let left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n let val = pxData[pxPos + x] - left;\n\n rawData[rawPos + x] = val;\n }\n}\n\nfunction filterSumSub(pxData, pxPos, byteWidth, bpp) {\n let sum = 0;\n for (let x = 0; x < byteWidth; x++) {\n let left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n let val = pxData[pxPos + x] - left;\n\n sum += Math.abs(val);\n }\n\n return sum;\n}\n\nfunction filterUp(pxData, pxPos, byteWidth, rawData, rawPos) {\n for (let x = 0; x < byteWidth; x++) {\n let up = pxPos > 0 ? pxData[pxPos + x - byteWidth] : 0;\n let val = pxData[pxPos + x] - up;\n\n rawData[rawPos + x] = val;\n }\n}\n\nfunction filterSumUp(pxData, pxPos, byteWidth) {\n let sum = 0;\n let length = pxPos + byteWidth;\n for (let x = pxPos; x < length; x++) {\n let up = pxPos > 0 ? pxData[x - byteWidth] : 0;\n let val = pxData[x] - up;\n\n sum += Math.abs(val);\n }\n\n return sum;\n}\n\nfunction filterAvg(pxData, pxPos, byteWidth, rawData, rawPos, bpp) {\n for (let x = 0; x < byteWidth; x++) {\n let left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n let up = pxPos > 0 ? pxData[pxPos + x - byteWidth] : 0;\n let val = pxData[pxPos + x] - ((left + up) >> 1);\n\n rawData[rawPos + x] = val;\n }\n}\n\nfunction filterSumAvg(pxData, pxPos, byteWidth, bpp) {\n let sum = 0;\n for (let x = 0; x < byteWidth; x++) {\n let left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n let up = pxPos > 0 ? pxData[pxPos + x - byteWidth] : 0;\n let val = pxData[pxPos + x] - ((left + up) >> 1);\n\n sum += Math.abs(val);\n }\n\n return sum;\n}\n\nfunction filterPaeth(pxData, pxPos, byteWidth, rawData, rawPos, bpp) {\n for (let x = 0; x < byteWidth; x++) {\n let left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n let up = pxPos > 0 ? pxData[pxPos + x - byteWidth] : 0;\n let upleft =\n pxPos > 0 && x >= bpp ? pxData[pxPos + x - (byteWidth + bpp)] : 0;\n let val = pxData[pxPos + x] - paethPredictor(left, up, upleft);\n\n rawData[rawPos + x] = val;\n }\n}\n\nfunction filterSumPaeth(pxData, pxPos, byteWidth, bpp) {\n let sum = 0;\n for (let x = 0; x < byteWidth; x++) {\n let left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n let up = pxPos > 0 ? pxData[pxPos + x - byteWidth] : 0;\n let upleft =\n pxPos > 0 && x >= bpp ? pxData[pxPos + x - (byteWidth + bpp)] : 0;\n let val = pxData[pxPos + x] - paethPredictor(left, up, upleft);\n\n sum += Math.abs(val);\n }\n\n return sum;\n}\n\nlet filters = {\n 0: filterNone,\n 1: filterSub,\n 2: filterUp,\n 3: filterAvg,\n 4: filterPaeth,\n};\n\nlet filterSums = {\n 0: filterSumNone,\n 1: filterSumSub,\n 2: filterSumUp,\n 3: filterSumAvg,\n 4: filterSumPaeth,\n};\n\nmodule.exports = function (pxData, width, height, options, bpp) {\n let filterTypes;\n if (!(\"filterType\" in options) || options.filterType === -1) {\n filterTypes = [0, 1, 2, 3, 4];\n } else if (typeof options.filterType === \"number\") {\n filterTypes = [options.filterType];\n } else {\n throw new Error(\"unrecognised filter types\");\n }\n\n if (options.bitDepth === 16) {\n bpp *= 2;\n }\n let byteWidth = width * bpp;\n let rawPos = 0;\n let pxPos = 0;\n let rawData = Buffer.alloc((byteWidth + 1) * height);\n\n let sel = filterTypes[0];\n\n for (let y = 0; y < height; y++) {\n if (filterTypes.length > 1) {\n // find best filter for this line (with lowest sum of values)\n let min = Infinity;\n\n for (let i = 0; i < filterTypes.length; i++) {\n let sum = filterSums[filterTypes[i]](pxData, pxPos, byteWidth, bpp);\n if (sum < min) {\n sel = filterTypes[i];\n min = sum;\n }\n }\n }\n\n rawData[rawPos] = sel;\n rawPos++;\n filters[sel](pxData, pxPos, byteWidth, rawData, rawPos, bpp);\n rawPos += byteWidth;\n pxPos += byteWidth;\n }\n return rawData;\n};\n","\"use strict\";\n\nlet constants = require(\"./constants\");\nlet CrcStream = require(\"./crc\");\nlet bitPacker = require(\"./bitpacker\");\nlet filter = require(\"./filter-pack\");\nlet zlib = require(\"zlib\");\n\nlet Packer = (module.exports = function (options) {\n this._options = options;\n\n options.deflateChunkSize = options.deflateChunkSize || 32 * 1024;\n options.deflateLevel =\n options.deflateLevel != null ? options.deflateLevel : 9;\n options.deflateStrategy =\n options.deflateStrategy != null ? options.deflateStrategy : 3;\n options.inputHasAlpha =\n options.inputHasAlpha != null ? options.inputHasAlpha : true;\n options.deflateFactory = options.deflateFactory || zlib.createDeflate;\n options.bitDepth = options.bitDepth || 8;\n // This is outputColorType\n options.colorType =\n typeof options.colorType === \"number\"\n ? options.colorType\n : constants.COLORTYPE_COLOR_ALPHA;\n options.inputColorType =\n typeof options.inputColorType === \"number\"\n ? options.inputColorType\n : constants.COLORTYPE_COLOR_ALPHA;\n\n if (\n [\n constants.COLORTYPE_GRAYSCALE,\n constants.COLORTYPE_COLOR,\n constants.COLORTYPE_COLOR_ALPHA,\n constants.COLORTYPE_ALPHA,\n ].indexOf(options.colorType) === -1\n ) {\n throw new Error(\n \"option color type:\" + options.colorType + \" is not supported at present\"\n );\n }\n if (\n [\n constants.COLORTYPE_GRAYSCALE,\n constants.COLORTYPE_COLOR,\n constants.COLORTYPE_COLOR_ALPHA,\n constants.COLORTYPE_ALPHA,\n ].indexOf(options.inputColorType) === -1\n ) {\n throw new Error(\n \"option input color type:\" +\n options.inputColorType +\n \" is not supported at present\"\n );\n }\n if (options.bitDepth !== 8 && options.bitDepth !== 16) {\n throw new Error(\n \"option bit depth:\" + options.bitDepth + \" is not supported at present\"\n );\n }\n});\n\nPacker.prototype.getDeflateOptions = function () {\n return {\n chunkSize: this._options.deflateChunkSize,\n level: this._options.deflateLevel,\n strategy: this._options.deflateStrategy,\n };\n};\n\nPacker.prototype.createDeflate = function () {\n return this._options.deflateFactory(this.getDeflateOptions());\n};\n\nPacker.prototype.filterData = function (data, width, height) {\n // convert to correct format for filtering (e.g. right bpp and bit depth)\n let packedData = bitPacker(data, width, height, this._options);\n\n // filter pixel data\n let bpp = constants.COLORTYPE_TO_BPP_MAP[this._options.colorType];\n let filteredData = filter(packedData, width, height, this._options, bpp);\n return filteredData;\n};\n\nPacker.prototype._packChunk = function (type, data) {\n let len = data ? data.length : 0;\n let buf = Buffer.alloc(len + 12);\n\n buf.writeUInt32BE(len, 0);\n buf.writeUInt32BE(type, 4);\n\n if (data) {\n data.copy(buf, 8);\n }\n\n buf.writeInt32BE(\n CrcStream.crc32(buf.slice(4, buf.length - 4)),\n buf.length - 4\n );\n return buf;\n};\n\nPacker.prototype.packGAMA = function (gamma) {\n let buf = Buffer.alloc(4);\n buf.writeUInt32BE(Math.floor(gamma * constants.GAMMA_DIVISION), 0);\n return this._packChunk(constants.TYPE_gAMA, buf);\n};\n\nPacker.prototype.packIHDR = function (width, height) {\n let buf = Buffer.alloc(13);\n buf.writeUInt32BE(width, 0);\n buf.writeUInt32BE(height, 4);\n buf[8] = this._options.bitDepth; // Bit depth\n buf[9] = this._options.colorType; // colorType\n buf[10] = 0; // compression\n buf[11] = 0; // filter\n buf[12] = 0; // interlace\n\n return this._packChunk(constants.TYPE_IHDR, buf);\n};\n\nPacker.prototype.packIDAT = function (data) {\n return this._packChunk(constants.TYPE_IDAT, data);\n};\n\nPacker.prototype.packIEND = function () {\n return this._packChunk(constants.TYPE_IEND, null);\n};\n","\"use strict\";\n\nlet util = require(\"util\");\nlet Stream = require(\"stream\");\nlet constants = require(\"./constants\");\nlet Packer = require(\"./packer\");\n\nlet PackerAsync = (module.exports = function (opt) {\n Stream.call(this);\n\n let options = opt || {};\n\n this._packer = new Packer(options);\n this._deflate = this._packer.createDeflate();\n\n this.readable = true;\n});\nutil.inherits(PackerAsync, Stream);\n\nPackerAsync.prototype.pack = function (data, width, height, gamma) {\n // Signature\n this.emit(\"data\", Buffer.from(constants.PNG_SIGNATURE));\n this.emit(\"data\", this._packer.packIHDR(width, height));\n\n if (gamma) {\n this.emit(\"data\", this._packer.packGAMA(gamma));\n }\n\n let filteredData = this._packer.filterData(data, width, height);\n\n // compress it\n this._deflate.on(\"error\", this.emit.bind(this, \"error\"));\n\n this._deflate.on(\n \"data\",\n function (compressedData) {\n this.emit(\"data\", this._packer.packIDAT(compressedData));\n }.bind(this)\n );\n\n this._deflate.on(\n \"end\",\n function () {\n this.emit(\"data\", this._packer.packIEND());\n this.emit(\"end\");\n }.bind(this)\n );\n\n this._deflate.end(filteredData);\n};\n","\"use strict\";\n\nlet assert = require(\"assert\").ok;\nlet zlib = require(\"zlib\");\nlet util = require(\"util\");\n\nlet kMaxLength = require(\"buffer\").kMaxLength;\n\nfunction Inflate(opts) {\n if (!(this instanceof Inflate)) {\n return new Inflate(opts);\n }\n\n if (opts && opts.chunkSize < zlib.Z_MIN_CHUNK) {\n opts.chunkSize = zlib.Z_MIN_CHUNK;\n }\n\n zlib.Inflate.call(this, opts);\n\n // Node 8 --> 9 compatibility check\n this._offset = this._offset === undefined ? this._outOffset : this._offset;\n this._buffer = this._buffer || this._outBuffer;\n\n if (opts && opts.maxLength != null) {\n this._maxLength = opts.maxLength;\n }\n}\n\nfunction createInflate(opts) {\n return new Inflate(opts);\n}\n\nfunction _close(engine, callback) {\n if (callback) {\n process.nextTick(callback);\n }\n\n // Caller may invoke .close after a zlib error (which will null _handle).\n if (!engine._handle) {\n return;\n }\n\n engine._handle.close();\n engine._handle = null;\n}\n\nInflate.prototype._processChunk = function (chunk, flushFlag, asyncCb) {\n if (typeof asyncCb === \"function\") {\n return zlib.Inflate._processChunk.call(this, chunk, flushFlag, asyncCb);\n }\n\n let self = this;\n\n let availInBefore = chunk && chunk.length;\n let availOutBefore = this._chunkSize - this._offset;\n let leftToInflate = this._maxLength;\n let inOff = 0;\n\n let buffers = [];\n let nread = 0;\n\n let error;\n this.on(\"error\", function (err) {\n error = err;\n });\n\n function handleChunk(availInAfter, availOutAfter) {\n if (self._hadError) {\n return;\n }\n\n let have = availOutBefore - availOutAfter;\n assert(have >= 0, \"have should not go down\");\n\n if (have > 0) {\n let out = self._buffer.slice(self._offset, self._offset + have);\n self._offset += have;\n\n if (out.length > leftToInflate) {\n out = out.slice(0, leftToInflate);\n }\n\n buffers.push(out);\n nread += out.length;\n leftToInflate -= out.length;\n\n if (leftToInflate === 0) {\n return false;\n }\n }\n\n if (availOutAfter === 0 || self._offset >= self._chunkSize) {\n availOutBefore = self._chunkSize;\n self._offset = 0;\n self._buffer = Buffer.allocUnsafe(self._chunkSize);\n }\n\n if (availOutAfter === 0) {\n inOff += availInBefore - availInAfter;\n availInBefore = availInAfter;\n\n return true;\n }\n\n return false;\n }\n\n assert(this._handle, \"zlib binding closed\");\n let res;\n do {\n res = this._handle.writeSync(\n flushFlag,\n chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore\n ); // out_len\n // Node 8 --> 9 compatibility check\n res = res || this._writeState;\n } while (!this._hadError && handleChunk(res[0], res[1]));\n\n if (this._hadError) {\n throw error;\n }\n\n if (nread >= kMaxLength) {\n _close(this);\n throw new RangeError(\n \"Cannot create final Buffer. It would be larger than 0x\" +\n kMaxLength.toString(16) +\n \" bytes\"\n );\n }\n\n let buf = Buffer.concat(buffers, nread);\n _close(this);\n\n return buf;\n};\n\nutil.inherits(Inflate, zlib.Inflate);\n\nfunction zlibBufferSync(engine, buffer) {\n if (typeof buffer === \"string\") {\n buffer = Buffer.from(buffer);\n }\n if (!(buffer instanceof Buffer)) {\n throw new TypeError(\"Not a string or buffer\");\n }\n\n let flushFlag = engine._finishFlushFlag;\n if (flushFlag == null) {\n flushFlag = zlib.Z_FINISH;\n }\n\n return engine._processChunk(buffer, flushFlag);\n}\n\nfunction inflateSync(buffer, opts) {\n return zlibBufferSync(new Inflate(opts), buffer);\n}\n\nmodule.exports = exports = inflateSync;\nexports.Inflate = Inflate;\nexports.createInflate = createInflate;\nexports.inflateSync = inflateSync;\n","\"use strict\";\n\nlet SyncReader = (module.exports = function (buffer) {\n this._buffer = buffer;\n this._reads = [];\n});\n\nSyncReader.prototype.read = function (length, callback) {\n this._reads.push({\n length: Math.abs(length), // if length < 0 then at most this length\n allowLess: length < 0,\n func: callback,\n });\n};\n\nSyncReader.prototype.process = function () {\n // as long as there is any data and read requests\n while (this._reads.length > 0 && this._buffer.length) {\n let read = this._reads[0];\n\n if (\n this._buffer.length &&\n (this._buffer.length >= read.length || read.allowLess)\n ) {\n // ok there is any data so that we can satisfy this request\n this._reads.shift(); // == read\n\n let buf = this._buffer;\n\n this._buffer = buf.slice(read.length);\n\n read.func.call(this, buf.slice(0, read.length));\n } else {\n break;\n }\n }\n\n if (this._reads.length > 0) {\n throw new Error(\"There are some read requests waitng on finished stream\");\n }\n\n if (this._buffer.length > 0) {\n throw new Error(\"unrecognised content at end of stream\");\n }\n};\n","\"use strict\";\n\nlet SyncReader = require(\"./sync-reader\");\nlet Filter = require(\"./filter-parse\");\n\nexports.process = function (inBuffer, bitmapInfo) {\n let outBuffers = [];\n let reader = new SyncReader(inBuffer);\n let filter = new Filter(bitmapInfo, {\n read: reader.read.bind(reader),\n write: function (bufferPart) {\n outBuffers.push(bufferPart);\n },\n complete: function () {},\n });\n\n filter.start();\n reader.process();\n\n return Buffer.concat(outBuffers);\n};\n","\"use strict\";\n\nlet hasSyncZlib = true;\nlet zlib = require(\"zlib\");\nlet inflateSync = require(\"./sync-inflate\");\nif (!zlib.deflateSync) {\n hasSyncZlib = false;\n}\nlet SyncReader = require(\"./sync-reader\");\nlet FilterSync = require(\"./filter-parse-sync\");\nlet Parser = require(\"./parser\");\nlet bitmapper = require(\"./bitmapper\");\nlet formatNormaliser = require(\"./format-normaliser\");\n\nmodule.exports = function (buffer, options) {\n if (!hasSyncZlib) {\n throw new Error(\n \"To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0\"\n );\n }\n\n let err;\n function handleError(_err_) {\n err = _err_;\n }\n\n let metaData;\n function handleMetaData(_metaData_) {\n metaData = _metaData_;\n }\n\n function handleTransColor(transColor) {\n metaData.transColor = transColor;\n }\n\n function handlePalette(palette) {\n metaData.palette = palette;\n }\n\n function handleSimpleTransparency() {\n metaData.alpha = true;\n }\n\n let gamma;\n function handleGamma(_gamma_) {\n gamma = _gamma_;\n }\n\n let inflateDataList = [];\n function handleInflateData(inflatedData) {\n inflateDataList.push(inflatedData);\n }\n\n let reader = new SyncReader(buffer);\n\n let parser = new Parser(options, {\n read: reader.read.bind(reader),\n error: handleError,\n metadata: handleMetaData,\n gamma: handleGamma,\n palette: handlePalette,\n transColor: handleTransColor,\n inflateData: handleInflateData,\n simpleTransparency: handleSimpleTransparency,\n });\n\n parser.start();\n reader.process();\n\n if (err) {\n throw err;\n }\n\n //join together the inflate datas\n let inflateData = Buffer.concat(inflateDataList);\n inflateDataList.length = 0;\n\n let inflatedData;\n if (metaData.interlace) {\n inflatedData = zlib.inflateSync(inflateData);\n } else {\n let rowSize =\n ((metaData.width * metaData.bpp * metaData.depth + 7) >> 3) + 1;\n let imageSize = rowSize * metaData.height;\n inflatedData = inflateSync(inflateData, {\n chunkSize: imageSize,\n maxLength: imageSize,\n });\n }\n inflateData = null;\n\n if (!inflatedData || !inflatedData.length) {\n throw new Error(\"bad png - invalid inflate data response\");\n }\n\n let unfilteredData = FilterSync.process(inflatedData, metaData);\n inflateData = null;\n\n let bitmapData = bitmapper.dataToBitMap(unfilteredData, metaData);\n unfilteredData = null;\n\n let normalisedBitmapData = formatNormaliser(\n bitmapData,\n metaData,\n options.skipRescale\n );\n\n metaData.data = normalisedBitmapData;\n metaData.gamma = gamma || 0;\n\n return metaData;\n};\n","\"use strict\";\n\nlet hasSyncZlib = true;\nlet zlib = require(\"zlib\");\nif (!zlib.deflateSync) {\n hasSyncZlib = false;\n}\nlet constants = require(\"./constants\");\nlet Packer = require(\"./packer\");\n\nmodule.exports = function (metaData, opt) {\n if (!hasSyncZlib) {\n throw new Error(\n \"To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0\"\n );\n }\n\n let options = opt || {};\n\n let packer = new Packer(options);\n\n let chunks = [];\n\n // Signature\n chunks.push(Buffer.from(constants.PNG_SIGNATURE));\n\n // Header\n chunks.push(packer.packIHDR(metaData.width, metaData.height));\n\n if (metaData.gamma) {\n chunks.push(packer.packGAMA(metaData.gamma));\n }\n\n let filteredData = packer.filterData(\n metaData.data,\n metaData.width,\n metaData.height\n );\n\n // compress it\n let compressedData = zlib.deflateSync(\n filteredData,\n packer.getDeflateOptions()\n );\n filteredData = null;\n\n if (!compressedData || !compressedData.length) {\n throw new Error(\"bad png - invalid compressed data response\");\n }\n chunks.push(packer.packIDAT(compressedData));\n\n // End\n chunks.push(packer.packIEND());\n\n return Buffer.concat(chunks);\n};\n","\"use strict\";\n\nlet parse = require(\"./parser-sync\");\nlet pack = require(\"./packer-sync\");\n\nexports.read = function (buffer, options) {\n return parse(buffer, options || {});\n};\n\nexports.write = function (png, options) {\n return pack(png, options);\n};\n","\"use strict\";\n\nlet util = require(\"util\");\nlet Stream = require(\"stream\");\nlet Parser = require(\"./parser-async\");\nlet Packer = require(\"./packer-async\");\nlet PNGSync = require(\"./png-sync\");\n\nlet PNG = (exports.PNG = function (options) {\n Stream.call(this);\n\n options = options || {}; // eslint-disable-line no-param-reassign\n\n // coerce pixel dimensions to integers (also coerces undefined -> 0):\n this.width = options.width | 0;\n this.height = options.height | 0;\n\n this.data =\n this.width > 0 && this.height > 0\n ? Buffer.alloc(4 * this.width * this.height)\n : null;\n\n if (options.fill && this.data) {\n this.data.fill(0);\n }\n\n this.gamma = 0;\n this.readable = this.writable = true;\n\n this._parser = new Parser(options);\n\n this._parser.on(\"error\", this.emit.bind(this, \"error\"));\n this._parser.on(\"close\", this._handleClose.bind(this));\n this._parser.on(\"metadata\", this._metadata.bind(this));\n this._parser.on(\"gamma\", this._gamma.bind(this));\n this._parser.on(\n \"parsed\",\n function (data) {\n this.data = data;\n this.emit(\"parsed\", data);\n }.bind(this)\n );\n\n this._packer = new Packer(options);\n this._packer.on(\"data\", this.emit.bind(this, \"data\"));\n this._packer.on(\"end\", this.emit.bind(this, \"end\"));\n this._parser.on(\"close\", this._handleClose.bind(this));\n this._packer.on(\"error\", this.emit.bind(this, \"error\"));\n});\nutil.inherits(PNG, Stream);\n\nPNG.sync = PNGSync;\n\nPNG.prototype.pack = function () {\n if (!this.data || !this.data.length) {\n this.emit(\"error\", \"No data provided\");\n return this;\n }\n\n process.nextTick(\n function () {\n this._packer.pack(this.data, this.width, this.height, this.gamma);\n }.bind(this)\n );\n\n return this;\n};\n\nPNG.prototype.parse = function (data, callback) {\n if (callback) {\n let onParsed, onError;\n\n onParsed = function (parsedData) {\n this.removeListener(\"error\", onError);\n\n this.data = parsedData;\n callback(null, this);\n }.bind(this);\n\n onError = function (err) {\n this.removeListener(\"parsed\", onParsed);\n\n callback(err, null);\n }.bind(this);\n\n this.once(\"parsed\", onParsed);\n this.once(\"error\", onError);\n }\n\n this.end(data);\n return this;\n};\n\nPNG.prototype.write = function (data) {\n this._parser.write(data);\n return true;\n};\n\nPNG.prototype.end = function (data) {\n this._parser.end(data);\n};\n\nPNG.prototype._metadata = function (metadata) {\n this.width = metadata.width;\n this.height = metadata.height;\n\n this.emit(\"metadata\", metadata);\n};\n\nPNG.prototype._gamma = function (gamma) {\n this.gamma = gamma;\n};\n\nPNG.prototype._handleClose = function () {\n if (!this._parser.writable && !this._packer.readable) {\n this.emit(\"close\");\n }\n};\n\nPNG.bitblt = function (src, dst, srcX, srcY, width, height, deltaX, deltaY) {\n // eslint-disable-line max-params\n // coerce pixel dimensions to integers (also coerces undefined -> 0):\n /* eslint-disable no-param-reassign */\n srcX |= 0;\n srcY |= 0;\n width |= 0;\n height |= 0;\n deltaX |= 0;\n deltaY |= 0;\n /* eslint-enable no-param-reassign */\n\n if (\n srcX > src.width ||\n srcY > src.height ||\n srcX + width > src.width ||\n srcY + height > src.height\n ) {\n throw new Error(\"bitblt reading outside image\");\n }\n\n if (\n deltaX > dst.width ||\n deltaY > dst.height ||\n deltaX + width > dst.width ||\n deltaY + height > dst.height\n ) {\n throw new Error(\"bitblt writing outside image\");\n }\n\n for (let y = 0; y < height; y++) {\n src.data.copy(\n dst.data,\n ((deltaY + y) * dst.width + deltaX) << 2,\n ((srcY + y) * src.width + srcX) << 2,\n ((srcY + y) * src.width + srcX + width) << 2\n );\n }\n};\n\nPNG.prototype.bitblt = function (\n dst,\n srcX,\n srcY,\n width,\n height,\n deltaX,\n deltaY\n) {\n // eslint-disable-line max-params\n\n PNG.bitblt(this, dst, srcX, srcY, width, height, deltaX, deltaY);\n return this;\n};\n\nPNG.adjustGamma = function (src) {\n if (src.gamma) {\n for (let y = 0; y < src.height; y++) {\n for (let x = 0; x < src.width; x++) {\n let idx = (src.width * y + x) << 2;\n\n for (let i = 0; i < 3; i++) {\n let sample = src.data[idx + i] / 255;\n sample = Math.pow(sample, 1 / 2.2 / src.gamma);\n src.data[idx + i] = Math.round(sample * 255);\n }\n }\n }\n src.gamma = 0;\n }\n};\n\nPNG.prototype.adjustGamma = function () {\n PNG.adjustGamma(this);\n};\n"],"names":[],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},46249,e=>{"use strict";var t=e.i(56787),r=e.i(20933),n=e.i(68782),a=e.i(59026),o=e.i(61757),s=e.i(25929),i=e.i(66245),l=e.i(8810),d=e.i(44544),u=e.i(55109),p=e.i(7083),c=e.i(11046),h=e.i(6232),R=e.i(38650),x=e.i(7590),g=e.i(93695);e.i(55931);var v=e.i(87556),f=e.i(22734);async function E(e){try{let{searchParams:t}=new URL(e.url),r=parseInt(t.get("lines")||"50",10),n=t.get("logPath")||process.env.LOG_FILE_PATH||"./ai-dev-tools/consolidated.log";if(!(0,f.existsSync)(n))return Response.json({error:"Log file not found"},{status:404});let a=(0,f.readFileSync)(n,"utf-8").split("\n").filter(e=>e.trim()),o={logs:a.slice(-r).join("\n"),total:a.length};return Response.json(o)}catch(t){let e={error:t instanceof Error?t.message:"Unknown error"};return Response.json(e,{status:500})}}e.s(["GET",()=>E],10089);var w=e.i(10089);let m=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/logs/tail/route",pathname:"/api/logs/tail",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/mcp-server/app/api/logs/tail/route.ts",nextConfigOutput:"",userland:w}),{workAsyncStorage:C,workUnitAsyncStorage:y,serverHooks:A}=m;function b(){return(0,n.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:y})}async function T(e,t,n){m.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/logs/tail/route";f=f.replace(/\/index$/,"")||"/";let E=await m.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,params:C,nextConfig:y,parsedUrl:A,isDraftMode:b,prerenderManifest:T,routerServerContext:P,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,resolvedPathname:_,clientReferenceManifest:S,serverActionsManifest:k}=E,j=(0,i.normalizeAppPath)(f),q=!!(T.dynamicRoutes[j]||T.routes[_]),H=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,A,!1):t.end("This page could not be found"),null);if(q&&!b){let e=!!T.routes[_],t=T.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await H();throw new g.NoFallbackError}}let U=null;!q||m.isDev||b||(U="/index"===(U=_)?"/":U);let I=!0===m.isDev||!q,D=q&&!I;k&&S&&(0,s.setManifestsSingleton)({page:f,clientReferenceManifest:S,serverActionsManifest:k});let M=e.method||"GET",F=(0,o.getTracer)(),L=F.getActiveScopeSpan(),$={params:C,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>m.onRequestError(e,t,n,a,P)},sharedContext:{buildId:w}},K=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(K,(0,d.signalFromNodeResponse)(t));try{let s=async e=>m.handle(G,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${f}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&N&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(a);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!q)return await (0,c.sendResponse)(K,B,o,$.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await m.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,P),t}},u=await m.handleResponse({req:e,nextConfig:y,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:i});if(!q)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&q||g.delete(x.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,R.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(K,B,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};L?await l(L):await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${f}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await m.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,P),q)throw t;return await (0,c.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>b,"routeModule",()=>m,"serverHooks",()=>A,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>y],46249)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__81270bcf._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/dist/esm/build/templates/app-route.js","../../../../mcp-server/app/api/logs/tail/route.ts"],"sourcesContent":["import { AppRouteRouteModule } from \"next/dist/esm/server/route-modules/app-route/module.compiled\";\nimport { RouteKind } from \"next/dist/esm/server/route-kind\";\nimport { patchFetch as _patchFetch } from \"next/dist/esm/server/lib/patch-fetch\";\nimport { addRequestMeta, getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { setManifestsSingleton } from \"next/dist/esm/server/app-render/manifests-singleton\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { NextRequestAdapter, signalFromNodeResponse } from \"next/dist/esm/server/web/spec-extension/adapters/next-request\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { sendResponse } from \"next/dist/esm/server/send-response\";\nimport { fromNodeOutgoingHttpHeaders, toNodeOutgoingHttpHeaders } from \"next/dist/esm/server/web/utils\";\nimport { getCacheControlHeader } from \"next/dist/esm/server/lib/cache-control\";\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from \"next/dist/esm/lib/constants\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\nimport { CachedRouteKind } from \"next/dist/esm/server/response-cache\";\nimport * as userland from \"INNER_APP_ROUTE\";\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/api/logs/tail/route\",\n pathname: \"/api/logs/tail\",\n filename: \"route\",\n bundlePath: \"\"\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: \"[project]/mcp-server/app/api/logs/tail/route.ts\",\n nextConfigOutput,\n userland\n});\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\nexport { routeModule, workAsyncStorage, workUnitAsyncStorage, serverHooks, patchFetch, };\nexport async function handler(req, res, ctx) {\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());\n }\n let srcPage = \"/api/logs/tail/route\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/';\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = process.env.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]);\n const render404 = async ()=>{\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return null;\n };\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]);\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404();\n }\n throw new NoFallbackError();\n }\n }\n }\n let cacheKey = null;\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname;\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n const supportsDynamicResponse = // If we're in development, we always support dynamic HTML\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr;\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse;\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest\n });\n }\n const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const context = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts)\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext)\n },\n sharedContext: {\n buildId\n }\n };\n const nodeNextReq = new NodeNextRequest(req);\n const nodeNextRes = new NodeNextResponse(res);\n const nextReq = NextRequestAdapter.fromNodeNextRequest(nodeNextReq, signalFromNodeResponse(res));\n try {\n const invokeRouteModule = async (span)=>{\n return routeModule.handle(nextReq, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${srcPage}`);\n }\n });\n };\n const isMinimalMode = Boolean(process.env.MINIMAL_MODE || getRequestMeta(req, 'minimalMode'));\n const handleResponse = async (currentSpan)=>{\n var _cacheEntry_value;\n const responseGenerator = async ({ previousCacheEntry })=>{\n try {\n if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n const response = await invokeRouteModule(currentSpan);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil;\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil);\n pendingWaitUntil = undefined;\n }\n }\n const cacheTags = context.renderOpts.collectedTags;\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob();\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers);\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type;\n }\n const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= INFINITE_CACHE ? false : context.renderOpts.collectedRevalidate;\n const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= INFINITE_CACHE ? undefined : context.renderOpts.collectedExpire;\n // Create the cache entry for the response.\n const cacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers\n },\n cacheControl: {\n revalidate,\n expire\n }\n };\n return cacheEntry;\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, context.renderOpts.pendingWaitUntil);\n return null;\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n throw err;\n }\n };\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode\n });\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null;\n }\n if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_ROUTE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E701\",\n enumerable: false,\n configurable: true\n });\n }\n if (!isMinimalMode) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers);\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER);\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) {\n headers.set('Cache-Control', getCacheControlHeader(cacheEntry.cacheControl));\n }\n await sendResponse(nodeNextReq, nodeNextRes, // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200\n }));\n return null;\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n // If this is during static generation, throw the error again.\n if (isIsr) throw err;\n // Otherwise, send a 500 response.\n await sendResponse(nodeNextReq, nodeNextRes, new Response(null, {\n status: 500\n }));\n return null;\n }\n}\n\n//# sourceMappingURL=app-route.js.map\n","import { existsSync, readFileSync } from \"fs\"\nimport type { NextRequest } from \"next/server\"\nimport type { LogsApiError, LogsApiResponse } from \"@/types\"\n\nexport async function GET(request: NextRequest): Promise<Response> {\n try {\n const { searchParams } = new URL(request.url)\n const lines = parseInt(searchParams.get(\"lines\") || \"50\", 10)\n const logPath = searchParams.get(\"logPath\") || process.env.LOG_FILE_PATH || \"./ai-dev-tools/consolidated.log\"\n\n if (!existsSync(logPath)) {\n const errorResponse: LogsApiError = { error: \"Log file not found\" }\n return Response.json(errorResponse, { status: 404 })\n }\n\n const logContent = readFileSync(logPath, \"utf-8\")\n const allLines = logContent.split(\"\\n\").filter((line) => line.trim())\n const tailLines = allLines.slice(-lines)\n\n const response: LogsApiResponse = {\n logs: tailLines.join(\"\\n\"),\n total: allLines.length\n }\n\n return Response.json(response)\n } catch (error) {\n const errorResponse: LogsApiError = {\n error: error instanceof Error ? error.message : \"Unknown error\"\n }\n return Response.json(errorResponse, { status: 500 })\n }\n}\n"],"names":[],"mappings":"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","ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../mcp-server/app/api/logs/append/route.ts","../../../../node_modules/.pnpm/next%4016.1.0_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-dom%4019.3.0_e847cfc4fa3461e8d29662afd6813493/node_modules/next/dist/esm/build/templates/app-route.js"],"sourcesContent":["import { appendFileSync, existsSync, mkdirSync } from \"fs\"\nimport type { NextRequest } from \"next/server\"\nimport { dirname } from \"path\"\n\ninterface LogEntry {\n entry: string\n source?: string\n}\n\nexport async function POST(request: NextRequest): Promise<Response> {\n try {\n const body = await request.json()\n const { entry, source }: LogEntry = body\n\n if (!entry) {\n return Response.json(\n { error: \"Log entry is required\" },\n {\n status: 400,\n headers: {\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Methods\": \"POST, OPTIONS\",\n \"Access-Control-Allow-Headers\": \"Content-Type\"\n }\n }\n )\n }\n\n const logPath = process.env.LOG_FILE_PATH || \"./ai-dev-tools/consolidated.log\"\n\n // Ensure directory exists\n const logDir = dirname(logPath)\n if (!existsSync(logDir)) {\n mkdirSync(logDir, { recursive: true })\n }\n\n // Append the log entry\n const logLine = `${entry}\\n`\n appendFileSync(logPath, logLine, \"utf-8\")\n\n return Response.json(\n {\n success: true,\n message: \"Log entry appended\",\n source: source || \"unknown\"\n },\n {\n headers: {\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Methods\": \"POST, OPTIONS\",\n \"Access-Control-Allow-Headers\": \"Content-Type\"\n }\n }\n )\n } catch (error) {\n console.error(\"Failed to append log:\", error)\n return Response.json(\n {\n error: error instanceof Error ? error.message : \"Unknown error\"\n },\n {\n status: 500,\n headers: {\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Methods\": \"POST, OPTIONS\",\n \"Access-Control-Allow-Headers\": \"Content-Type\"\n }\n }\n )\n }\n}\n\nexport async function OPTIONS(): Promise<Response> {\n return new Response(null, {\n status: 200,\n headers: {\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Methods\": \"POST, OPTIONS\",\n \"Access-Control-Allow-Headers\": \"Content-Type\"\n }\n })\n}\n","import { AppRouteRouteModule } from \"next/dist/esm/server/route-modules/app-route/module.compiled\";\nimport { RouteKind } from \"next/dist/esm/server/route-kind\";\nimport { patchFetch as _patchFetch } from \"next/dist/esm/server/lib/patch-fetch\";\nimport { addRequestMeta, getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { setManifestsSingleton } from \"next/dist/esm/server/app-render/manifests-singleton\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { NextRequestAdapter, signalFromNodeResponse } from \"next/dist/esm/server/web/spec-extension/adapters/next-request\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { sendResponse } from \"next/dist/esm/server/send-response\";\nimport { fromNodeOutgoingHttpHeaders, toNodeOutgoingHttpHeaders } from \"next/dist/esm/server/web/utils\";\nimport { getCacheControlHeader } from \"next/dist/esm/server/lib/cache-control\";\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from \"next/dist/esm/lib/constants\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\nimport { CachedRouteKind } from \"next/dist/esm/server/response-cache\";\nimport * as userland from \"INNER_APP_ROUTE\";\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/api/logs/append/route\",\n pathname: \"/api/logs/append\",\n filename: \"route\",\n bundlePath: \"\"\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: \"[project]/mcp-server/app/api/logs/append/route.ts\",\n nextConfigOutput,\n userland\n});\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\nexport { routeModule, workAsyncStorage, workUnitAsyncStorage, serverHooks, patchFetch, };\nexport async function handler(req, res, ctx) {\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());\n }\n let srcPage = \"/api/logs/append/route\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/';\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = process.env.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]);\n const render404 = async ()=>{\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return null;\n };\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]);\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404();\n }\n throw new NoFallbackError();\n }\n }\n }\n let cacheKey = null;\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname;\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n const supportsDynamicResponse = // If we're in development, we always support dynamic HTML\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr;\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse;\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest\n });\n }\n const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const context = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts)\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext)\n },\n sharedContext: {\n buildId\n }\n };\n const nodeNextReq = new NodeNextRequest(req);\n const nodeNextRes = new NodeNextResponse(res);\n const nextReq = NextRequestAdapter.fromNodeNextRequest(nodeNextReq, signalFromNodeResponse(res));\n try {\n const invokeRouteModule = async (span)=>{\n return routeModule.handle(nextReq, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${srcPage}`);\n }\n });\n };\n const isMinimalMode = Boolean(process.env.MINIMAL_MODE || getRequestMeta(req, 'minimalMode'));\n const handleResponse = async (currentSpan)=>{\n var _cacheEntry_value;\n const responseGenerator = async ({ previousCacheEntry })=>{\n try {\n if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n const response = await invokeRouteModule(currentSpan);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil;\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil);\n pendingWaitUntil = undefined;\n }\n }\n const cacheTags = context.renderOpts.collectedTags;\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob();\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers);\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type;\n }\n const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= INFINITE_CACHE ? false : context.renderOpts.collectedRevalidate;\n const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= INFINITE_CACHE ? undefined : context.renderOpts.collectedExpire;\n // Create the cache entry for the response.\n const cacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers\n },\n cacheControl: {\n revalidate,\n expire\n }\n };\n return cacheEntry;\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, context.renderOpts.pendingWaitUntil);\n return null;\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n throw err;\n }\n };\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode\n });\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null;\n }\n if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_ROUTE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E701\",\n enumerable: false,\n configurable: true\n });\n }\n if (!isMinimalMode) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers);\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER);\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) {\n headers.set('Cache-Control', getCacheControlHeader(cacheEntry.cacheControl));\n }\n await sendResponse(nodeNextReq, nodeNextRes, // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200\n }));\n return null;\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n // If this is during static generation, throw the error again.\n if (isIsr) throw err;\n // Otherwise, send a 500 response.\n await sendResponse(nodeNextReq, nodeNextRes, new Response(null, {\n status: 500\n }));\n return null;\n }\n}\n\n//# sourceMappingURL=app-route.js.map\n"],"names":[],"mappings":"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","ignoreList":[1]}
|