dev3000 0.0.60 → 0.0.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/README.md +4 -0
  2. package/dist/cdp-monitor.d.ts +2 -1
  3. package/dist/cdp-monitor.d.ts.map +1 -1
  4. package/dist/cdp-monitor.js +34 -17
  5. package/dist/cdp-monitor.js.map +1 -1
  6. package/dist/cli.js +105 -13
  7. package/dist/cli.js.map +1 -1
  8. package/dist/dev-environment.d.ts +3 -0
  9. package/dist/dev-environment.d.ts.map +1 -1
  10. package/dist/dev-environment.js +93 -34
  11. package/dist/dev-environment.js.map +1 -1
  12. package/dist/services/parsers/error-detectors/base.d.ts +24 -0
  13. package/dist/services/parsers/error-detectors/base.d.ts.map +1 -0
  14. package/dist/services/parsers/error-detectors/base.js +44 -0
  15. package/dist/services/parsers/error-detectors/base.js.map +1 -0
  16. package/dist/services/parsers/error-detectors/index.d.ts +6 -0
  17. package/dist/services/parsers/error-detectors/index.d.ts.map +1 -0
  18. package/dist/services/parsers/error-detectors/index.js +6 -0
  19. package/dist/services/parsers/error-detectors/index.js.map +1 -0
  20. package/dist/services/parsers/error-detectors/nextjs.d.ts +9 -0
  21. package/dist/services/parsers/error-detectors/nextjs.d.ts.map +1 -0
  22. package/dist/services/parsers/error-detectors/nextjs.js +52 -0
  23. package/dist/services/parsers/error-detectors/nextjs.js.map +1 -0
  24. package/dist/services/parsers/index.d.ts +8 -0
  25. package/dist/services/parsers/index.d.ts.map +1 -0
  26. package/dist/services/parsers/index.js +10 -0
  27. package/dist/services/parsers/index.js.map +1 -0
  28. package/dist/services/parsers/log-parsers/base.d.ts +26 -0
  29. package/dist/services/parsers/log-parsers/base.d.ts.map +1 -0
  30. package/dist/services/parsers/log-parsers/base.js +6 -0
  31. package/dist/services/parsers/log-parsers/base.js.map +1 -0
  32. package/dist/services/parsers/log-parsers/index.d.ts +6 -0
  33. package/dist/services/parsers/log-parsers/index.d.ts.map +1 -0
  34. package/dist/services/parsers/log-parsers/index.js +5 -0
  35. package/dist/services/parsers/log-parsers/index.js.map +1 -0
  36. package/dist/services/parsers/log-parsers/standard.d.ts +9 -0
  37. package/dist/services/parsers/log-parsers/standard.d.ts.map +1 -0
  38. package/dist/services/parsers/log-parsers/standard.js +17 -0
  39. package/dist/services/parsers/log-parsers/standard.js.map +1 -0
  40. package/dist/services/parsers/output-processor.d.ts +39 -0
  41. package/dist/services/parsers/output-processor.d.ts.map +1 -0
  42. package/dist/services/parsers/output-processor.js +54 -0
  43. package/dist/services/parsers/output-processor.js.map +1 -0
  44. package/mcp-server/.next/BUILD_ID +1 -1
  45. package/mcp-server/.next/app-build-manifest.json +56 -15
  46. package/mcp-server/.next/build/chunks/[root-of-the-server]__974941ed._.js +2 -10
  47. package/mcp-server/.next/build/chunks/[root-of-the-server]__974941ed._.js.map +4 -4
  48. package/mcp-server/.next/build/chunks/[root-of-the-server]__c7ae8543._.js +2 -10
  49. package/mcp-server/.next/build/chunks/[root-of-the-server]__c7ae8543._.js.map +4 -4
  50. package/mcp-server/.next/build/chunks/node_modules__pnpm_806d01c0._.js +10 -35
  51. package/mcp-server/.next/build/chunks/node_modules__pnpm_806d01c0._.js.map +9 -9
  52. package/mcp-server/.next/build-manifest.json +9 -12
  53. package/mcp-server/.next/cache/.previewinfo +1 -1
  54. package/mcp-server/.next/cache/.rscinfo +1 -1
  55. package/mcp-server/.next/cache/.tsbuildinfo +1 -1
  56. package/mcp-server/.next/fallback-build-manifest.json +2 -2
  57. package/mcp-server/.next/prerender-manifest.json +106 -4
  58. package/mcp-server/.next/routes-manifest.json +82 -1
  59. package/mcp-server/.next/server/app/_global-error.html +2 -2
  60. package/mcp-server/.next/server/app/_global-error.rsc +1 -1
  61. package/mcp-server/.next/server/app/_not-found/page/app-build-manifest.json +1 -1
  62. package/mcp-server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  63. package/mcp-server/.next/server/app/_not-found.html +1 -1
  64. package/mcp-server/.next/server/app/_not-found.rsc +2 -2
  65. package/mcp-server/.next/server/app/api/tools/route/app-build-manifest.json +6 -9
  66. package/mcp-server/.next/server/app/api/tools/route/build-manifest.json +7 -10
  67. package/mcp-server/.next/server/app/api/tools/route.js +5 -4
  68. package/mcp-server/.next/server/app/index.html +1 -1
  69. package/mcp-server/.next/server/app/index.rsc +3 -3
  70. package/mcp-server/.next/server/app/logs/page/app-build-manifest.json +1 -1
  71. package/mcp-server/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  72. package/mcp-server/.next/server/app/page/app-build-manifest.json +10 -15
  73. package/mcp-server/.next/server/app/page/build-manifest.json +7 -10
  74. package/mcp-server/.next/server/app/page.js +9 -7
  75. package/mcp-server/.next/server/app/page_client-reference-manifest.js +1 -1
  76. package/mcp-server/.next/server/app/replay/page/app-build-manifest.json +1 -1
  77. package/mcp-server/.next/server/app/replay/page_client-reference-manifest.js +1 -1
  78. package/mcp-server/.next/server/app/replay.html +1 -1
  79. package/mcp-server/.next/server/app/replay.rsc +2 -2
  80. package/mcp-server/.next/server/app-paths-manifest.json +15 -1
  81. package/mcp-server/.next/server/chunks/[root-of-the-server]__7f1ecf7b._.js.map +1 -1
  82. package/mcp-server/.next/server/chunks/[root-of-the-server]__82298dd3._.js.map +1 -1
  83. package/mcp-server/.next/server/chunks/_next-internal_server_app_api_tools_route_actions_4a0d5a18.js +1 -5
  84. package/mcp-server/.next/server/chunks/_next-internal_server_app_api_tools_route_actions_4a0d5a18.js.map +1 -6
  85. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_client_components_builtin_forbidden_7b57efa5.js +1 -30
  86. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_client_components_builtin_forbidden_7b57efa5.js.map +1 -6
  87. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_client_components_builtin_global-error_118601bd.js +1 -22
  88. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_client_components_builtin_global-error_118601bd.js.map +1 -8
  89. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_client_components_builtin_unauthorized_6614f15c.js +1 -30
  90. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_client_components_builtin_unauthorized_6614f15c.js.map +1 -6
  91. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_client_components_f453b63e._.js +1 -148
  92. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_client_components_f453b63e._.js.map +1 -8
  93. package/mcp-server/.next/server/chunks/ssr/_dc26a647._.js +1 -1
  94. package/mcp-server/.next/server/chunks/ssr/_dc26a647._.js.map +1 -1
  95. package/mcp-server/.next/server/chunks/ssr/_next-internal_server_app_page_actions_39d4fc33.js +1 -5
  96. package/mcp-server/.next/server/chunks/ssr/_next-internal_server_app_page_actions_39d4fc33.js.map +1 -6
  97. package/mcp-server/.next/server/middleware-build-manifest.js +7 -10
  98. package/mcp-server/.next/server/pages/404.html +1 -1
  99. package/mcp-server/.next/server/pages/500.html +2 -2
  100. package/mcp-server/.next/server/pages-manifest.json +4 -1
  101. package/mcp-server/.next/server/server-reference-manifest.js +1 -1
  102. package/mcp-server/.next/server/server-reference-manifest.json +1 -1
  103. package/mcp-server/.next/standalone/.next/BUILD_ID +1 -1
  104. package/mcp-server/.next/standalone/.next/app-build-manifest.json +5 -5
  105. package/mcp-server/.next/standalone/.next/build-manifest.json +2 -2
  106. package/mcp-server/.next/standalone/.next/prerender-manifest.json +16 -16
  107. package/mcp-server/.next/standalone/.next/server/app/_global-error.html +2 -2
  108. package/mcp-server/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  109. package/mcp-server/.next/standalone/.next/server/app/_not-found/page/app-build-manifest.json +1 -1
  110. package/mcp-server/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  111. package/mcp-server/.next/standalone/.next/server/app/_not-found.html +1 -1
  112. package/mcp-server/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  113. package/mcp-server/.next/standalone/.next/server/app/index.html +1 -1
  114. package/mcp-server/.next/standalone/.next/server/app/index.rsc +3 -3
  115. package/mcp-server/.next/standalone/.next/server/app/logs/page/app-build-manifest.json +1 -1
  116. package/mcp-server/.next/standalone/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  117. package/mcp-server/.next/standalone/.next/server/app/page/app-build-manifest.json +2 -2
  118. package/mcp-server/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  119. package/mcp-server/.next/standalone/.next/server/app/replay/page/app-build-manifest.json +1 -1
  120. package/mcp-server/.next/standalone/.next/server/app/replay/page_client-reference-manifest.js +1 -1
  121. package/mcp-server/.next/standalone/.next/server/app/replay.html +1 -1
  122. package/mcp-server/.next/standalone/.next/server/app/replay.rsc +2 -2
  123. package/mcp-server/.next/standalone/.next/server/chunks/ssr/_dc26a647._.js +1 -1
  124. package/mcp-server/.next/standalone/.next/server/pages/404.html +1 -1
  125. package/mcp-server/.next/standalone/.next/server/pages/500.html +2 -2
  126. package/mcp-server/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  127. package/mcp-server/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  128. package/mcp-server/.next/standalone/app/api/mcp/[transport]/route.ts +93 -91
  129. package/mcp-server/.next/static/chunks/{5dfb96bedc33a0a5.css → 6634762c4edabf25.css} +1 -1
  130. package/mcp-server/.next/static/chunks/aac71a4d8cd0d1d1.js +1 -0
  131. package/mcp-server/.next/trace +1 -3
  132. package/package.json +1 -1
  133. package/mcp-server/.next/server/chunks/0916f_next_c68840f1._.js +0 -14728
  134. package/mcp-server/.next/server/chunks/0916f_next_c68840f1._.js.map +0 -118
  135. package/mcp-server/.next/server/chunks/[root-of-the-server]__3dccd82a._.js +0 -248
  136. package/mcp-server/.next/server/chunks/[root-of-the-server]__3dccd82a._.js.map +0 -6
  137. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_76a62e93._.js +0 -5831
  138. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_76a62e93._.js.map +0 -89
  139. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_d231ced7._.js +0 -15764
  140. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_d231ced7._.js.map +0 -145
  141. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_dbf009ef._.js +0 -9174
  142. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_dbf009ef._.js.map +0 -51
  143. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__1aaf5479._.js +0 -38
  144. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__1aaf5479._.js.map +0 -5
  145. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__7f148858._.js +0 -62
  146. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__7f148858._.js.map +0 -5
  147. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__95719760._.js +0 -54
  148. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__95719760._.js.map +0 -8
  149. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__b1782a10._.js +0 -813
  150. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__b1782a10._.js.map +0 -6
  151. package/mcp-server/.next/server/chunks/ssr/[turbopack]_browser_dev_hmr-client_hmr-client_ts_818f0fdf._.js +0 -467
  152. package/mcp-server/.next/server/chunks/ssr/[turbopack]_browser_dev_hmr-client_hmr-client_ts_818f0fdf._.js.map +0 -6
  153. package/mcp-server/.next/server/chunks/ssr/[turbopack]_browser_dev_hmr-client_hmr-client_ts_89c5f8e8._.js +0 -12
  154. package/mcp-server/.next/server/chunks/ssr/[turbopack]_browser_dev_hmr-client_hmr-client_ts_89c5f8e8._.js.map +0 -5
  155. package/mcp-server/.next/server/chunks/ssr/_9c0d7aa1._.js +0 -100
  156. package/mcp-server/.next/server/chunks/ssr/_9c0d7aa1._.js.map +0 -7
  157. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_cc7262c5._.js +0 -13866
  158. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_cc7262c5._.js.map +0 -152
  159. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_da0d0a14._.js +0 -13866
  160. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_da0d0a14._.js.map +0 -152
  161. package/mcp-server/.next/static/chunks/0916f_next_dist_2e70ccdb._.js +0 -4068
  162. package/mcp-server/.next/static/chunks/0916f_next_dist_2e70ccdb._.js.map +0 -64
  163. package/mcp-server/.next/static/chunks/0916f_next_dist_b3493ca8._.js +0 -2780
  164. package/mcp-server/.next/static/chunks/0916f_next_dist_b3493ca8._.js.map +0 -27
  165. package/mcp-server/.next/static/chunks/0916f_next_dist_build_polyfills_polyfill-nomodule.js +0 -1
  166. package/mcp-server/.next/static/chunks/0916f_next_dist_client_components_builtin_global-error_80971850.js +0 -7
  167. package/mcp-server/.next/static/chunks/0916f_next_dist_client_d3483330._.js +0 -10175
  168. package/mcp-server/.next/static/chunks/0916f_next_dist_client_d3483330._.js.map +0 -103
  169. package/mcp-server/.next/static/chunks/0916f_next_dist_compiled_8cc8c301._.js +0 -5009
  170. package/mcp-server/.next/static/chunks/0916f_next_dist_compiled_8cc8c301._.js.map +0 -21
  171. package/mcp-server/.next/static/chunks/0916f_next_dist_compiled_next-devtools_index_94228adb.js +0 -30477
  172. package/mcp-server/.next/static/chunks/0916f_next_dist_compiled_next-devtools_index_94228adb.js.map +0 -6
  173. package/mcp-server/.next/static/chunks/0916f_next_dist_compiled_react-dom_c74e1e00._.js +0 -14617
  174. package/mcp-server/.next/static/chunks/0916f_next_dist_compiled_react-dom_c74e1e00._.js.map +0 -9
  175. package/mcp-server/.next/static/chunks/1c2c4101e46d1c5e.js +0 -1
  176. package/mcp-server/.next/static/chunks/69652_@swc_helpers_cjs_77b72907._.js +0 -85
  177. package/mcp-server/.next/static/chunks/69652_@swc_helpers_cjs_77b72907._.js.map +0 -10
  178. package/mcp-server/.next/static/chunks/[turbopack]_browser_dev_hmr-client_hmr-client_ts_29af464a._.js +0 -7
  179. package/mcp-server/.next/static/chunks/[turbopack]_browser_dev_hmr-client_hmr-client_ts_c8c997ce._.js +0 -476
  180. package/mcp-server/.next/static/chunks/[turbopack]_browser_dev_hmr-client_hmr-client_ts_c8c997ce._.js.map +0 -6
  181. package/mcp-server/.next/static/chunks/[turbopack]_browser_dev_hmr-client_hmr-client_ts_d335a95d._.js +0 -13
  182. package/mcp-server/.next/static/chunks/[turbopack]_browser_dev_hmr-client_hmr-client_ts_d335a95d._.js.map +0 -5
  183. package/mcp-server/.next/static/chunks/_9429dbc3._.js +0 -2117
  184. package/mcp-server/.next/static/chunks/_9429dbc3._.js.map +0 -16
  185. package/mcp-server/.next/static/chunks/_a0ff3932._.js +0 -13
  186. package/mcp-server/.next/static/chunks/_efaa0516._.js.map +0 -10
  187. package/mcp-server/.next/static/chunks/app_244179ef._.css +0 -4548
  188. package/mcp-server/.next/static/chunks/app_244179ef._.css.map +0 -7
  189. package/mcp-server/.next/static/chunks/app_compiled_css_bad6b30c._.single.css +0 -2117
  190. package/mcp-server/.next/static/chunks/app_compiled_css_bad6b30c._.single.css.map +0 -6
  191. package/mcp-server/.next/static/chunks/app_globals_css_bad6b30c._.single.css +0 -2432
  192. package/mcp-server/.next/static/chunks/app_globals_css_bad6b30c._.single.css.map +0 -6
  193. package/mcp-server/.next/static/chunks/app_layout_tsx_80971850._.js +0 -7
  194. package/mcp-server/.next/static/chunks/app_page_tsx_6ea10ef3._.js +0 -7
  195. package/mcp-server/.next/static/chunks/turbopack-_efaa0516._.js +0 -1836
  196. package/mcp-server/.next/static/development/_ssgManifest.js +0 -1
  197. package/mcp-server/.next/static/vcdr8uFblpN3gCi_831po/_buildManifest.js +0 -11
  198. package/mcp-server/.next/static/vcdr8uFblpN3gCi_831po/_clientMiddlewareManifest.json +0 -1
  199. /package/mcp-server/.next/static/{development → fgx2Ltd5vbloYUQlVKX60}/_buildManifest.js +0 -0
  200. /package/mcp-server/.next/static/{development → fgx2Ltd5vbloYUQlVKX60}/_clientMiddlewareManifest.json +0 -0
  201. /package/mcp-server/.next/static/{vcdr8uFblpN3gCi_831po → fgx2Ltd5vbloYUQlVKX60}/_ssgManifest.js +0 -0
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Log format parsers module exports
3
+ */
4
+ export { StandardLogParser } from "./standard.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/parsers/log-parsers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Standard log parser for basic server logs
3
+ * Handles standard server logs without special process manager formatting
4
+ */
5
+ import type { LogFormatParser, ParsedLogLine } from "./base.js";
6
+ export declare class StandardLogParser implements LogFormatParser {
7
+ parse(text: string): ParsedLogLine[];
8
+ }
9
+ //# sourceMappingURL=standard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../../../../src/services/parsers/log-parsers/standard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAE/D,qBAAa,iBAAkB,YAAW,eAAe;IACvD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE;CAWrC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Standard log parser for basic server logs
3
+ * Handles standard server logs without special process manager formatting
4
+ */
5
+ export class StandardLogParser {
6
+ parse(text) {
7
+ if (!text || !text.trim()) {
8
+ return [];
9
+ }
10
+ const lines = text.trim().split("\n").filter(Boolean);
11
+ return lines.map((line) => ({
12
+ formatted: line,
13
+ message: line
14
+ }));
15
+ }
16
+ }
17
+ //# sourceMappingURL=standard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard.js","sourceRoot":"","sources":["../../../../src/services/parsers/log-parsers/standard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,OAAO,iBAAiB;IAC5B,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACrD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI;SACd,CAAC,CAAC,CAAA;IACL,CAAC;CACF"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Output processor that composes log format parsers and error detectors
3
+ * Provides the main API for processing server log output
4
+ */
5
+ import type { ErrorDetector } from "./error-detectors/index.js";
6
+ import type { LogFormatParser } from "./log-parsers/index.js";
7
+ /**
8
+ * Log entry structure for processed output
9
+ */
10
+ export interface LogEntry {
11
+ formatted: string;
12
+ isCritical?: boolean;
13
+ rawMessage?: string;
14
+ }
15
+ /**
16
+ * Output processor that combines log format parsing and error detection
17
+ * This is the main class that should be used for processing server log output
18
+ */
19
+ export declare class OutputProcessor {
20
+ private logFormatParser;
21
+ private errorDetector;
22
+ constructor(logFormatParser: LogFormatParser, errorDetector: ErrorDetector);
23
+ /**
24
+ * Process log text output from the server
25
+ * @param text Raw log text to process
26
+ * @param isError Whether this is from stderr (error stream)
27
+ * @returns Array of processed log entries
28
+ */
29
+ process(text: string, isError?: boolean): LogEntry[];
30
+ /**
31
+ * Get the current log format parser
32
+ */
33
+ getLogFormatParser(): LogFormatParser;
34
+ /**
35
+ * Get the current error detector
36
+ */
37
+ getErrorDetector(): ErrorDetector;
38
+ }
39
+ //# sourceMappingURL=output-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-processor.d.ts","sourceRoot":"","sources":["../../../src/services/parsers/output-processor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE7D;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,aAAa;gBADb,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa;IAGtC;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,QAAQ,EAAE;IAwB3D;;OAEG;IACH,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,gBAAgB,IAAI,aAAa;CAGlC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Output processor that composes log format parsers and error detectors
3
+ * Provides the main API for processing server log output
4
+ */
5
+ /**
6
+ * Output processor that combines log format parsing and error detection
7
+ * This is the main class that should be used for processing server log output
8
+ */
9
+ export class OutputProcessor {
10
+ logFormatParser;
11
+ errorDetector;
12
+ constructor(logFormatParser, errorDetector) {
13
+ this.logFormatParser = logFormatParser;
14
+ this.errorDetector = errorDetector;
15
+ }
16
+ /**
17
+ * Process log text output from the server
18
+ * @param text Raw log text to process
19
+ * @param isError Whether this is from stderr (error stream)
20
+ * @returns Array of processed log entries
21
+ */
22
+ process(text, isError = false) {
23
+ // First, parse the log format to extract structured information
24
+ const parsedLines = this.logFormatParser.parse(text);
25
+ // Then, apply error detection and create log entries
26
+ return parsedLines.map((line) => {
27
+ // For error output, check if it's critical
28
+ const isCritical = isError && this.errorDetector.isCritical(line.message);
29
+ // Build the log entry
30
+ const entry = {
31
+ formatted: isError ? `ERROR: ${line.formatted}` : line.formatted
32
+ };
33
+ // Add critical error information if applicable
34
+ if (isCritical) {
35
+ entry.isCritical = true;
36
+ entry.rawMessage = line.message;
37
+ }
38
+ return entry;
39
+ });
40
+ }
41
+ /**
42
+ * Get the current log format parser
43
+ */
44
+ getLogFormatParser() {
45
+ return this.logFormatParser;
46
+ }
47
+ /**
48
+ * Get the current error detector
49
+ */
50
+ getErrorDetector() {
51
+ return this.errorDetector;
52
+ }
53
+ }
54
+ //# sourceMappingURL=output-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-processor.js","sourceRoot":"","sources":["../../../src/services/parsers/output-processor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;;GAGG;AACH,MAAM,OAAO,eAAe;IAEhB;IACA;IAFV,YACU,eAAgC,EAChC,aAA4B;QAD5B,oBAAe,GAAf,eAAe,CAAiB;QAChC,kBAAa,GAAb,aAAa,CAAe;IACnC,CAAC;IAEJ;;;;;OAKG;IACH,OAAO,CAAC,IAAY,EAAE,UAAmB,KAAK;QAC5C,gEAAgE;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEpD,qDAAqD;QACrD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,2CAA2C;YAC3C,MAAM,UAAU,GAAG,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAEzE,sBAAsB;YACtB,MAAM,KAAK,GAAa;gBACtB,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;aACjE,CAAA;YAED,+CAA+C;YAC/C,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,CAAC,UAAU,GAAG,IAAI,CAAA;gBACvB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAA;YACjC,CAAC;YAED,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAA;IAC7B,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;CACF"}
@@ -1 +1 @@
1
- vcdr8uFblpN3gCi_831po
1
+ fgx2Ltd5vbloYUQlVKX60
@@ -1,21 +1,62 @@
1
1
  {
2
2
  "pages": {
3
+ "/_global-error/page": [
4
+ "static/chunks/044e917a180dc576.js",
5
+ "static/chunks/1415a83da347ea73.js",
6
+ "static/chunks/f7331e11d1cb0264.js",
7
+ "static/chunks/605beb21d5c11807.js",
8
+ "static/chunks/8a5ef92054eb3f68.js",
9
+ "static/chunks/5dd333b6181425ad.js",
10
+ "static/chunks/14ca28aed9ba7e16.js",
11
+ "static/chunks/turbopack-0005c9ba09919d66.js"
12
+ ],
13
+ "/_not-found/page": [
14
+ "static/chunks/6634762c4edabf25.css",
15
+ "static/chunks/044e917a180dc576.js",
16
+ "static/chunks/1415a83da347ea73.js",
17
+ "static/chunks/f7331e11d1cb0264.js",
18
+ "static/chunks/605beb21d5c11807.js",
19
+ "static/chunks/8a5ef92054eb3f68.js",
20
+ "static/chunks/5dd333b6181425ad.js",
21
+ "static/chunks/14ca28aed9ba7e16.js",
22
+ "static/chunks/turbopack-0005c9ba09919d66.js"
23
+ ],
24
+ "/logs/page": [
25
+ "static/chunks/044e917a180dc576.js",
26
+ "static/chunks/1415a83da347ea73.js",
27
+ "static/chunks/6634762c4edabf25.css",
28
+ "static/chunks/f83a9d423c663174.js",
29
+ "static/chunks/8176af981b47dde2.js",
30
+ "static/chunks/f7331e11d1cb0264.js",
31
+ "static/chunks/605beb21d5c11807.js",
32
+ "static/chunks/8a5ef92054eb3f68.js",
33
+ "static/chunks/5dd333b6181425ad.js",
34
+ "static/chunks/14ca28aed9ba7e16.js",
35
+ "static/chunks/turbopack-0005c9ba09919d66.js"
36
+ ],
3
37
  "/page": [
4
- "static/chunks/0916f_next_dist_b3493ca8._.js",
5
- "static/chunks/0916f_next_dist_client_components_builtin_global-error_80971850.js",
6
- "static/chunks/app_244179ef._.css",
7
- "static/chunks/app_layout_tsx_80971850._.js",
8
- "static/chunks/_9429dbc3._.js",
9
- "static/chunks/app_page_tsx_6ea10ef3._.js",
10
- "static/chunks/[turbopack]_browser_dev_hmr-client_hmr-client_ts_d335a95d._.js",
11
- "static/chunks/0916f_next_dist_compiled_react-dom_c74e1e00._.js",
12
- "static/chunks/0916f_next_dist_compiled_next-devtools_index_94228adb.js",
13
- "static/chunks/0916f_next_dist_compiled_8cc8c301._.js",
14
- "static/chunks/0916f_next_dist_client_d3483330._.js",
15
- "static/chunks/0916f_next_dist_2e70ccdb._.js",
16
- "static/chunks/69652_@swc_helpers_cjs_77b72907._.js",
17
- "static/chunks/_a0ff3932._.js",
18
- "static/chunks/turbopack-_efaa0516._.js"
38
+ "static/chunks/044e917a180dc576.js",
39
+ "static/chunks/1415a83da347ea73.js",
40
+ "static/chunks/6634762c4edabf25.css",
41
+ "static/chunks/aac71a4d8cd0d1d1.js",
42
+ "static/chunks/f7331e11d1cb0264.js",
43
+ "static/chunks/605beb21d5c11807.js",
44
+ "static/chunks/8a5ef92054eb3f68.js",
45
+ "static/chunks/5dd333b6181425ad.js",
46
+ "static/chunks/14ca28aed9ba7e16.js",
47
+ "static/chunks/turbopack-0005c9ba09919d66.js"
48
+ ],
49
+ "/replay/page": [
50
+ "static/chunks/044e917a180dc576.js",
51
+ "static/chunks/1415a83da347ea73.js",
52
+ "static/chunks/6634762c4edabf25.css",
53
+ "static/chunks/c964cee505b7b510.js",
54
+ "static/chunks/f7331e11d1cb0264.js",
55
+ "static/chunks/605beb21d5c11807.js",
56
+ "static/chunks/8a5ef92054eb3f68.js",
57
+ "static/chunks/5dd333b6181425ad.js",
58
+ "static/chunks/14ca28aed9ba7e16.js",
59
+ "static/chunks/turbopack-0005c9ba09919d66.js"
19
60
  ]
20
61
  }
21
62
  }
@@ -144,16 +144,8 @@ function getProperError(err) {
144
144
  if (isError(err)) {
145
145
  return err;
146
146
  }
147
- if ("TURBOPACK compile-time truthy", 1) {
148
- // Provide a better error message for cases where `throw undefined`
149
- // is called in development
150
- if (typeof err === 'undefined') {
151
- return new Error('`undefined` was thrown instead of a real error');
152
- }
153
- if (err === null) {
154
- return new Error('`null` was thrown instead of a real error');
155
- }
156
- }
147
+ if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
148
+ ;
157
149
  return new Error(isPlainObject(err) ? JSON.stringify(err) : err + '');
158
150
  }
159
151
  function getObjectClassLabel(value) {
@@ -4,8 +4,8 @@
4
4
  "sections": [
5
5
  {"offset": {"line": 3, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/globals.ts"],"sourcesContent":["// @ts-ignore\nprocess.turbopack = {}\n"],"names":[],"mappings":"AAAA,aAAa;AACb,QAAQ,SAAS,GAAG,CAAC"}},
6
6
  {"offset": {"line": 21, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/compiled/stacktrace-parser/index.js"],"sourcesContent":["if (typeof __nccwpck_require__ !== \"undefined\")\n __nccwpck_require__.ab = __dirname + \"/\";\n\nvar n = \"<unknown>\";\nexport function parse(e) {\n var r = e.split(\"\\n\");\n return r.reduce(function (e, r) {\n var n =\n parseChrome(r) ||\n parseWinjs(r) ||\n parseGecko(r) ||\n parseNode(r) ||\n parseJSC(r);\n if (n) {\n e.push(n);\n }\n return e;\n }, []);\n}\nvar a =\n /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar l = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\nfunction parseChrome(e) {\n var r = a.exec(e);\n if (!r) {\n return null;\n }\n var u = r[2] && r[2].indexOf(\"native\") === 0;\n var t = r[2] && r[2].indexOf(\"eval\") === 0;\n var i = l.exec(r[2]);\n if (t && i != null) {\n r[2] = i[1];\n r[3] = i[2];\n r[4] = i[3];\n }\n return {\n file: !u ? r[2] : null,\n methodName: r[1] || n,\n arguments: u ? [r[2]] : [],\n lineNumber: r[3] ? +r[3] : null,\n column: r[4] ? +r[4] : null,\n };\n}\nvar u =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nfunction parseWinjs(e) {\n var r = u.exec(e);\n if (!r) {\n return null;\n }\n return {\n file: r[2],\n methodName: r[1] || n,\n arguments: [],\n lineNumber: +r[3],\n column: r[4] ? +r[4] : null,\n };\n}\nvar t =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar i = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nfunction parseGecko(e) {\n var r = t.exec(e);\n if (!r) {\n return null;\n }\n var a = r[3] && r[3].indexOf(\" > eval\") > -1;\n var l = i.exec(r[3]);\n if (a && l != null) {\n r[3] = l[1];\n r[4] = l[2];\n r[5] = null;\n }\n return {\n file: r[3],\n methodName: r[1] || n,\n arguments: r[2] ? r[2].split(\",\") : [],\n lineNumber: r[4] ? +r[4] : null,\n column: r[5] ? +r[5] : null,\n };\n}\nvar s = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\nfunction parseJSC(e) {\n var r = s.exec(e);\n if (!r) {\n return null;\n }\n return {\n file: r[3],\n methodName: r[1] || n,\n arguments: [],\n lineNumber: +r[4],\n column: r[5] ? +r[5] : null,\n };\n}\nvar o =\n /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nfunction parseNode(e) {\n var r = o.exec(e);\n if (!r) {\n return null;\n }\n return {\n file: r[2],\n methodName: r[1] || n,\n arguments: [],\n lineNumber: +r[3],\n column: r[4] ? +r[4] : null,\n };\n}\n"],"names":[],"mappings":"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"}},
7
- {"offset": {"line": 130, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/error.ts"],"sourcesContent":["// merged from next.js\n// https://github.com/vercel/next.js/blob/e657741b9908cf0044aaef959c0c4defb19ed6d8/packages/next/src/lib/is-error.ts\n// https://github.com/vercel/next.js/blob/e657741b9908cf0044aaef959c0c4defb19ed6d8/packages/next/src/shared/lib/is-plain-object.ts\n\nexport default function isError(err: unknown): err is Error {\n return (\n typeof err === 'object' && err !== null && 'name' in err && 'message' in err\n )\n}\n\nexport function getProperError(err: unknown): Error {\n if (isError(err)) {\n return err\n }\n\n if (process.env.NODE_ENV === 'development') {\n // Provide a better error message for cases where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return new Error('`undefined` was thrown instead of a real error')\n }\n\n if (err === null) {\n return new Error('`null` was thrown instead of a real error')\n }\n }\n\n return new Error(isPlainObject(err) ? JSON.stringify(err) : err + '')\n}\n\nfunction getObjectClassLabel(value: any): string {\n return Object.prototype.toString.call(value)\n}\n\nfunction isPlainObject(value: any): boolean {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */\n return prototype === null || prototype.hasOwnProperty('isPrototypeOf')\n}\n"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,oHAAoH;AACpH,kIAAkI;;;;;;;AAEnH,SAAS,QAAQ,GAAY;IAC1C,OACE,OAAO,QAAQ,YAAY,QAAQ,QAAQ,UAAU,OAAO,aAAa;AAE7E;AAEO,SAAS,eAAe,GAAY;IACzC,IAAI,QAAQ,MAAM;QAChB,OAAO;IACT;IAEA,wCAA4C;QAC1C,mEAAmE;QACnE,2BAA2B;QAC3B,IAAI,OAAO,QAAQ,aAAa;YAC9B,OAAO,IAAI,MAAM;QACnB;QAEA,IAAI,QAAQ,MAAM;YAChB,OAAO,IAAI,MAAM;QACnB;IACF;IAEA,OAAO,IAAI,MAAM,cAAc,OAAO,KAAK,SAAS,CAAC,OAAO,MAAM;AACpE;AAEA,SAAS,oBAAoB,KAAU;IACrC,OAAO,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;AACxC;AAEA,SAAS,cAAc,KAAU;IAC/B,IAAI,oBAAoB,WAAW,mBAAmB;QACpD,OAAO;IACT;IAEA,MAAM,YAAY,OAAO,cAAc,CAAC;IAExC;;;;;;;;GAQC,GACD,OAAO,cAAc,QAAQ,UAAU,cAAc,CAAC;AACxD"}},
8
- {"offset": {"line": 180, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/index.ts"],"sourcesContent":["import { createConnection } from 'node:net'\nimport { Writable } from 'node:stream'\nimport type { StackFrame } from '../compiled/stacktrace-parser'\nimport { parse as parseStackTrace } from '../compiled/stacktrace-parser'\nimport { getProperError } from './error'\n\nexport type StructuredError = {\n name: string\n message: string\n stack: StackFrame[]\n cause: StructuredError | undefined\n}\n\nexport function structuredError(e: unknown): StructuredError {\n e = getProperError(e)\n\n return {\n name: e.name,\n message: e.message,\n stack: typeof e.stack === 'string' ? parseStackTrace(e.stack) : [],\n cause: e.cause ? structuredError(getProperError(e.cause)) : undefined,\n }\n}\n\ntype State =\n | {\n type: 'waiting'\n }\n | {\n type: 'packet'\n length: number\n }\n\nexport type Ipc<TIncoming, TOutgoing> = {\n recv(): Promise<TIncoming>\n send(message: TOutgoing): Promise<void>\n sendError(error: Error | string): Promise<never>\n sendReady(): Promise<void>\n}\n\nfunction createIpc<TIncoming, TOutgoing>(\n port: number\n): Ipc<TIncoming, TOutgoing> {\n const socket = createConnection({\n port,\n host: '127.0.0.1',\n })\n\n /**\n * A writable stream that writes to the socket.\n * We don't write directly to the socket because we need to\n * handle backpressure and wait for the socket to be drained\n * before writing more data.\n */\n const socketWritable = new Writable({\n write(chunk, _enc, cb) {\n if (socket.write(chunk)) {\n cb()\n } else {\n socket.once('drain', cb)\n }\n },\n final(cb) {\n socket.end(cb)\n },\n })\n\n const packetQueue: Buffer[] = []\n const recvPromiseResolveQueue: Array<(message: TIncoming) => void> = []\n\n function pushPacket(packet: Buffer) {\n const recvPromiseResolve = recvPromiseResolveQueue.shift()\n if (recvPromiseResolve != null) {\n recvPromiseResolve(JSON.parse(packet.toString('utf8')) as TIncoming)\n } else {\n packetQueue.push(packet)\n }\n }\n\n let state: State = { type: 'waiting' }\n let buffer: Buffer = Buffer.alloc(0)\n socket.once('connect', () => {\n socket.on('data', (chunk) => {\n buffer = Buffer.concat([buffer, chunk])\n\n loop: while (true) {\n switch (state.type) {\n case 'waiting': {\n if (buffer.length >= 4) {\n const length = buffer.readUInt32BE(0)\n buffer = buffer.subarray(4)\n state = { type: 'packet', length }\n } else {\n break loop\n }\n break\n }\n case 'packet': {\n if (buffer.length >= state.length) {\n const packet = buffer.subarray(0, state.length)\n buffer = buffer.subarray(state.length)\n state = { type: 'waiting' }\n pushPacket(packet)\n } else {\n break loop\n }\n break\n }\n default:\n invariant(state, (state) => `Unknown state type: ${state?.type}`)\n }\n }\n })\n })\n // When the socket is closed, this process is no longer needed.\n // This might happen e. g. when parent process is killed or\n // node.js pool is garbage collected.\n socket.once('close', () => {\n process.exit(0)\n })\n\n // TODO(lukesandberg): some of the messages being sent are very large and contain lots\n // of redundant information. Consider adding gzip compression to our stream.\n function doSend(message: string): Promise<void> {\n return new Promise((resolve, reject) => {\n // Reserve 4 bytes for our length prefix, we will over-write after encoding.\n const packet = Buffer.from('0000' + message, 'utf8')\n packet.writeUInt32BE(packet.length - 4, 0)\n socketWritable.write(packet, (err) => {\n process.stderr.write(`TURBOPACK_OUTPUT_D\\n`)\n process.stdout.write(`TURBOPACK_OUTPUT_D\\n`)\n if (err != null) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n }\n\n function send(message: any): Promise<void> {\n return doSend(JSON.stringify(message))\n }\n function sendReady(): Promise<void> {\n return doSend('')\n }\n\n return {\n async recv() {\n const packet = packetQueue.shift()\n if (packet != null) {\n return JSON.parse(packet.toString('utf8')) as TIncoming\n }\n\n const result = await new Promise<TIncoming>((resolve) => {\n recvPromiseResolveQueue.push((result) => {\n resolve(result)\n })\n })\n\n return result\n },\n\n send(message: TOutgoing) {\n return send(message)\n },\n\n sendReady,\n\n async sendError(error: Error): Promise<never> {\n try {\n await send({\n type: 'error',\n ...structuredError(error),\n })\n } catch (err) {\n console.error('failed to send error back to rust:', err)\n // ignore and exit anyway\n process.exit(1)\n }\n\n process.exit(0)\n },\n }\n}\n\nconst PORT = process.argv[2]\n\nexport const IPC = createIpc<unknown, unknown>(parseInt(PORT, 10))\n\nprocess.on('uncaughtException', (err) => {\n IPC.sendError(err)\n})\n\nconst improveConsole = (name: string, stream: string, addStack: boolean) => {\n // @ts-ignore\n const original = console[name]\n // @ts-ignore\n const stdio = process[stream]\n // @ts-ignore\n console[name] = (...args: any[]) => {\n stdio.write(`TURBOPACK_OUTPUT_B\\n`)\n original(...args)\n if (addStack) {\n const stack = new Error().stack?.replace(/^.+\\n.+\\n/, '') + '\\n'\n stdio.write('TURBOPACK_OUTPUT_S\\n')\n stdio.write(stack)\n }\n stdio.write('TURBOPACK_OUTPUT_E\\n')\n }\n}\n\nimproveConsole('error', 'stderr', true)\nimproveConsole('warn', 'stderr', true)\nimproveConsole('count', 'stdout', true)\nimproveConsole('trace', 'stderr', false)\nimproveConsole('log', 'stdout', true)\nimproveConsole('group', 'stdout', true)\nimproveConsole('groupCollapsed', 'stdout', true)\nimproveConsole('table', 'stdout', true)\nimproveConsole('debug', 'stdout', true)\nimproveConsole('info', 'stdout', true)\nimproveConsole('dir', 'stdout', true)\nimproveConsole('dirxml', 'stdout', true)\nimproveConsole('timeEnd', 'stdout', true)\nimproveConsole('timeLog', 'stdout', true)\nimproveConsole('timeStamp', 'stdout', true)\nimproveConsole('assert', 'stderr', true)\n\n/**\n * Utility function to ensure all variants of an enum are handled.\n */\nfunction invariant(never: never, computeMessage: (arg: any) => string): never {\n throw new Error(`Invariant: ${computeMessage(never)}`)\n}\n"],"names":[],"mappings":"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"}},
9
- {"offset": {"line": 390, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/evaluate.ts"],"sourcesContent":["import { IPC } from './index'\nimport type { Ipc as GenericIpc } from './index'\n\ntype IpcIncomingMessage =\n | {\n type: 'evaluate'\n args: string[]\n }\n | {\n type: 'result'\n id: number\n error: string | null\n data: any | null\n }\n\ntype IpcOutgoingMessage =\n | {\n type: 'end'\n data: string | undefined\n duration: number\n }\n | {\n type: 'info'\n data: any\n }\n | {\n type: 'request'\n id: number\n data: any\n }\n\nexport type Ipc<IM, RM> = {\n sendInfo(message: IM): Promise<void>\n sendRequest(message: RM): Promise<unknown>\n sendError(error: Error): Promise<never>\n}\nconst ipc = IPC as GenericIpc<IpcIncomingMessage, IpcOutgoingMessage>\n\nconst queue: string[][] = []\n\nexport const run = async (\n moduleFactory: () => Promise<{\n init?: () => Promise<void>\n default: (ipc: Ipc<any, any>, ...deserializedArgs: any[]) => any\n }>\n) => {\n let nextId = 1\n const requests = new Map()\n const internalIpc = {\n sendInfo: (message: any) =>\n ipc.send({\n type: 'info',\n data: message,\n }),\n sendRequest: (message: any) => {\n const id = nextId++\n let resolve, reject\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n requests.set(id, { resolve, reject })\n return ipc\n .send({ type: 'request', id, data: message })\n .then(() => promise)\n },\n sendError: (error: Error) => {\n return ipc.sendError(error)\n },\n }\n\n // Initialize module and send ready message\n let getValue: (ipc: Ipc<any, any>, ...deserializedArgs: any[]) => any\n try {\n const module = await moduleFactory()\n if (typeof module.init === 'function') {\n await module.init()\n }\n getValue = module.default\n await ipc.sendReady()\n } catch (err) {\n await ipc.sendReady()\n await ipc.sendError(err as Error)\n }\n\n // Queue handling\n let isRunning = false\n const run = async () => {\n while (queue.length > 0) {\n const args = queue.shift()!\n try {\n const value = await getValue(internalIpc, ...args)\n await ipc.send({\n type: 'end',\n data:\n value === undefined ? undefined : JSON.stringify(value, null, 2),\n duration: 0,\n })\n } catch (e) {\n await ipc.sendError(e as Error)\n }\n }\n isRunning = false\n }\n\n // Communication handling\n while (true) {\n const msg = await ipc.recv()\n\n switch (msg.type) {\n case 'evaluate': {\n queue.push(msg.args)\n if (!isRunning) {\n isRunning = true\n run()\n }\n break\n }\n case 'result': {\n const request = requests.get(msg.id)\n if (request) {\n requests.delete(msg.id)\n if (msg.error) {\n request.reject(new Error(msg.error))\n } else {\n request.resolve(msg.data)\n }\n }\n break\n }\n default: {\n console.error('unexpected message type', (msg as any).type)\n process.exit(1)\n }\n }\n }\n}\n\nexport type { IpcIncomingMessage, IpcOutgoingMessage }\n"],"names":[],"mappings":";;;;AAAA;;AAoCA,MAAM,MAAM,0HAAG;AAEf,MAAM,QAAoB,EAAE;AAErB,MAAM,MAAM,OACjB;IAKA,IAAI,SAAS;IACb,MAAM,WAAW,IAAI;IACrB,MAAM,cAAc;QAClB,UAAU,CAAC,UACT,IAAI,IAAI,CAAC;gBACP,MAAM;gBACN,MAAM;YACR;QACF,aAAa,CAAC;YACZ,MAAM,KAAK;YACX,IAAI,SAAS;YACb,MAAM,UAAU,IAAI,QAAQ,CAAC,KAAK;gBAChC,UAAU;gBACV,SAAS;YACX;YACA,SAAS,GAAG,CAAC,IAAI;gBAAE;gBAAS;YAAO;YACnC,OAAO,IACJ,IAAI,CAAC;gBAAE,MAAM;gBAAW;gBAAI,MAAM;YAAQ,GAC1C,IAAI,CAAC,IAAM;QAChB;QACA,WAAW,CAAC;YACV,OAAO,IAAI,SAAS,CAAC;QACvB;IACF;IAEA,2CAA2C;IAC3C,IAAI;IACJ,IAAI;QACF,MAAM,SAAS,MAAM;QACrB,IAAI,OAAO,OAAO,IAAI,KAAK,YAAY;YACrC,MAAM,OAAO,IAAI;QACnB;QACA,WAAW,OAAO,OAAO;QACzB,MAAM,IAAI,SAAS;IACrB,EAAE,OAAO,KAAK;QACZ,MAAM,IAAI,SAAS;QACnB,MAAM,IAAI,SAAS,CAAC;IACtB;IAEA,iBAAiB;IACjB,IAAI,YAAY;IAChB,MAAM,MAAM;QACV,MAAO,MAAM,MAAM,GAAG,EAAG;YACvB,MAAM,OAAO,MAAM,KAAK;YACxB,IAAI;gBACF,MAAM,QAAQ,MAAM,SAAS,gBAAgB;gBAC7C,MAAM,IAAI,IAAI,CAAC;oBACb,MAAM;oBACN,MACE,UAAU,YAAY,YAAY,KAAK,SAAS,CAAC,OAAO,MAAM;oBAChE,UAAU;gBACZ;YACF,EAAE,OAAO,GAAG;gBACV,MAAM,IAAI,SAAS,CAAC;YACtB;QACF;QACA,YAAY;IACd;IAEA,yBAAyB;IACzB,MAAO,KAAM;QACX,MAAM,MAAM,MAAM,IAAI,IAAI;QAE1B,OAAQ,IAAI,IAAI;YACd,KAAK;gBAAY;oBACf,MAAM,IAAI,CAAC,IAAI,IAAI;oBACnB,IAAI,CAAC,WAAW;wBACd,YAAY;wBACZ;oBACF;oBACA;gBACF;YACA,KAAK;gBAAU;oBACb,MAAM,UAAU,SAAS,GAAG,CAAC,IAAI,EAAE;oBACnC,IAAI,SAAS;wBACX,SAAS,MAAM,CAAC,IAAI,EAAE;wBACtB,IAAI,IAAI,KAAK,EAAE;4BACb,QAAQ,MAAM,CAAC,IAAI,MAAM,IAAI,KAAK;wBACpC,OAAO;4BACL,QAAQ,OAAO,CAAC,IAAI,IAAI;wBAC1B;oBACF;oBACA;gBACF;YACA;gBAAS;oBACP,QAAQ,KAAK,CAAC,2BAA2B,AAAC,IAAY,IAAI;oBAC1D,QAAQ,IAAI,CAAC;gBACf;QACF;IACF;AACF"}},
10
- {"offset": {"line": 496, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/evaluate.ts/evaluate.js"],"sourcesContent":["import { run } from 'RUNTIME'; run(() => import('INNER'))"],"names":[],"mappings":";AAAA;;AAA+B,IAAA,6HAAG,EAAC"}}]
7
+ {"offset": {"line": 130, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/error.ts"],"sourcesContent":["// merged from next.js\n// https://github.com/vercel/next.js/blob/e657741b9908cf0044aaef959c0c4defb19ed6d8/packages/next/src/lib/is-error.ts\n// https://github.com/vercel/next.js/blob/e657741b9908cf0044aaef959c0c4defb19ed6d8/packages/next/src/shared/lib/is-plain-object.ts\n\nexport default function isError(err: unknown): err is Error {\n return (\n typeof err === 'object' && err !== null && 'name' in err && 'message' in err\n )\n}\n\nexport function getProperError(err: unknown): Error {\n if (isError(err)) {\n return err\n }\n\n if (process.env.NODE_ENV === 'development') {\n // Provide a better error message for cases where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return new Error('`undefined` was thrown instead of a real error')\n }\n\n if (err === null) {\n return new Error('`null` was thrown instead of a real error')\n }\n }\n\n return new Error(isPlainObject(err) ? JSON.stringify(err) : err + '')\n}\n\nfunction getObjectClassLabel(value: any): string {\n return Object.prototype.toString.call(value)\n}\n\nfunction isPlainObject(value: any): boolean {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */\n return prototype === null || prototype.hasOwnProperty('isPrototypeOf')\n}\n"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,oHAAoH;AACpH,kIAAkI;;;;;;;AAEnH,SAAS,QAAQ,GAAY;IAC1C,OACE,OAAO,QAAQ,YAAY,QAAQ,QAAQ,UAAU,OAAO,aAAa;AAE7E;AAEO,SAAS,eAAe,GAAY;IACzC,IAAI,QAAQ,MAAM;QAChB,OAAO;IACT;IAEA;;IAYA,OAAO,IAAI,MAAM,cAAc,OAAO,KAAK,SAAS,CAAC,OAAO,MAAM;AACpE;AAEA,SAAS,oBAAoB,KAAU;IACrC,OAAO,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;AACxC;AAEA,SAAS,cAAc,KAAU;IAC/B,IAAI,oBAAoB,WAAW,mBAAmB;QACpD,OAAO;IACT;IAEA,MAAM,YAAY,OAAO,cAAc,CAAC;IAExC;;;;;;;;GAQC,GACD,OAAO,cAAc,QAAQ,UAAU,cAAc,CAAC;AACxD"}},
8
+ {"offset": {"line": 172, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/index.ts"],"sourcesContent":["import { createConnection } from 'node:net'\nimport { Writable } from 'node:stream'\nimport type { StackFrame } from '../compiled/stacktrace-parser'\nimport { parse as parseStackTrace } from '../compiled/stacktrace-parser'\nimport { getProperError } from './error'\n\nexport type StructuredError = {\n name: string\n message: string\n stack: StackFrame[]\n cause: StructuredError | undefined\n}\n\nexport function structuredError(e: unknown): StructuredError {\n e = getProperError(e)\n\n return {\n name: e.name,\n message: e.message,\n stack: typeof e.stack === 'string' ? parseStackTrace(e.stack) : [],\n cause: e.cause ? structuredError(getProperError(e.cause)) : undefined,\n }\n}\n\ntype State =\n | {\n type: 'waiting'\n }\n | {\n type: 'packet'\n length: number\n }\n\nexport type Ipc<TIncoming, TOutgoing> = {\n recv(): Promise<TIncoming>\n send(message: TOutgoing): Promise<void>\n sendError(error: Error | string): Promise<never>\n sendReady(): Promise<void>\n}\n\nfunction createIpc<TIncoming, TOutgoing>(\n port: number\n): Ipc<TIncoming, TOutgoing> {\n const socket = createConnection({\n port,\n host: '127.0.0.1',\n })\n\n /**\n * A writable stream that writes to the socket.\n * We don't write directly to the socket because we need to\n * handle backpressure and wait for the socket to be drained\n * before writing more data.\n */\n const socketWritable = new Writable({\n write(chunk, _enc, cb) {\n if (socket.write(chunk)) {\n cb()\n } else {\n socket.once('drain', cb)\n }\n },\n final(cb) {\n socket.end(cb)\n },\n })\n\n const packetQueue: Buffer[] = []\n const recvPromiseResolveQueue: Array<(message: TIncoming) => void> = []\n\n function pushPacket(packet: Buffer) {\n const recvPromiseResolve = recvPromiseResolveQueue.shift()\n if (recvPromiseResolve != null) {\n recvPromiseResolve(JSON.parse(packet.toString('utf8')) as TIncoming)\n } else {\n packetQueue.push(packet)\n }\n }\n\n let state: State = { type: 'waiting' }\n let buffer: Buffer = Buffer.alloc(0)\n socket.once('connect', () => {\n socket.on('data', (chunk) => {\n buffer = Buffer.concat([buffer, chunk])\n\n loop: while (true) {\n switch (state.type) {\n case 'waiting': {\n if (buffer.length >= 4) {\n const length = buffer.readUInt32BE(0)\n buffer = buffer.subarray(4)\n state = { type: 'packet', length }\n } else {\n break loop\n }\n break\n }\n case 'packet': {\n if (buffer.length >= state.length) {\n const packet = buffer.subarray(0, state.length)\n buffer = buffer.subarray(state.length)\n state = { type: 'waiting' }\n pushPacket(packet)\n } else {\n break loop\n }\n break\n }\n default:\n invariant(state, (state) => `Unknown state type: ${state?.type}`)\n }\n }\n })\n })\n // When the socket is closed, this process is no longer needed.\n // This might happen e. g. when parent process is killed or\n // node.js pool is garbage collected.\n socket.once('close', () => {\n process.exit(0)\n })\n\n // TODO(lukesandberg): some of the messages being sent are very large and contain lots\n // of redundant information. Consider adding gzip compression to our stream.\n function doSend(message: string): Promise<void> {\n return new Promise((resolve, reject) => {\n // Reserve 4 bytes for our length prefix, we will over-write after encoding.\n const packet = Buffer.from('0000' + message, 'utf8')\n packet.writeUInt32BE(packet.length - 4, 0)\n socketWritable.write(packet, (err) => {\n process.stderr.write(`TURBOPACK_OUTPUT_D\\n`)\n process.stdout.write(`TURBOPACK_OUTPUT_D\\n`)\n if (err != null) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n }\n\n function send(message: any): Promise<void> {\n return doSend(JSON.stringify(message))\n }\n function sendReady(): Promise<void> {\n return doSend('')\n }\n\n return {\n async recv() {\n const packet = packetQueue.shift()\n if (packet != null) {\n return JSON.parse(packet.toString('utf8')) as TIncoming\n }\n\n const result = await new Promise<TIncoming>((resolve) => {\n recvPromiseResolveQueue.push((result) => {\n resolve(result)\n })\n })\n\n return result\n },\n\n send(message: TOutgoing) {\n return send(message)\n },\n\n sendReady,\n\n async sendError(error: Error): Promise<never> {\n try {\n await send({\n type: 'error',\n ...structuredError(error),\n })\n } catch (err) {\n console.error('failed to send error back to rust:', err)\n // ignore and exit anyway\n process.exit(1)\n }\n\n process.exit(0)\n },\n }\n}\n\nconst PORT = process.argv[2]\n\nexport const IPC = createIpc<unknown, unknown>(parseInt(PORT, 10))\n\nprocess.on('uncaughtException', (err) => {\n IPC.sendError(err)\n})\n\nconst improveConsole = (name: string, stream: string, addStack: boolean) => {\n // @ts-ignore\n const original = console[name]\n // @ts-ignore\n const stdio = process[stream]\n // @ts-ignore\n console[name] = (...args: any[]) => {\n stdio.write(`TURBOPACK_OUTPUT_B\\n`)\n original(...args)\n if (addStack) {\n const stack = new Error().stack?.replace(/^.+\\n.+\\n/, '') + '\\n'\n stdio.write('TURBOPACK_OUTPUT_S\\n')\n stdio.write(stack)\n }\n stdio.write('TURBOPACK_OUTPUT_E\\n')\n }\n}\n\nimproveConsole('error', 'stderr', true)\nimproveConsole('warn', 'stderr', true)\nimproveConsole('count', 'stdout', true)\nimproveConsole('trace', 'stderr', false)\nimproveConsole('log', 'stdout', true)\nimproveConsole('group', 'stdout', true)\nimproveConsole('groupCollapsed', 'stdout', true)\nimproveConsole('table', 'stdout', true)\nimproveConsole('debug', 'stdout', true)\nimproveConsole('info', 'stdout', true)\nimproveConsole('dir', 'stdout', true)\nimproveConsole('dirxml', 'stdout', true)\nimproveConsole('timeEnd', 'stdout', true)\nimproveConsole('timeLog', 'stdout', true)\nimproveConsole('timeStamp', 'stdout', true)\nimproveConsole('assert', 'stderr', true)\n\n/**\n * Utility function to ensure all variants of an enum are handled.\n */\nfunction invariant(never: never, computeMessage: (arg: any) => string): never {\n throw new Error(`Invariant: ${computeMessage(never)}`)\n}\n"],"names":[],"mappings":"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"}},
9
+ {"offset": {"line": 382, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/evaluate.ts"],"sourcesContent":["import { IPC } from './index'\nimport type { Ipc as GenericIpc } from './index'\n\ntype IpcIncomingMessage =\n | {\n type: 'evaluate'\n args: string[]\n }\n | {\n type: 'result'\n id: number\n error: string | null\n data: any | null\n }\n\ntype IpcOutgoingMessage =\n | {\n type: 'end'\n data: string | undefined\n duration: number\n }\n | {\n type: 'info'\n data: any\n }\n | {\n type: 'request'\n id: number\n data: any\n }\n\nexport type Ipc<IM, RM> = {\n sendInfo(message: IM): Promise<void>\n sendRequest(message: RM): Promise<unknown>\n sendError(error: Error): Promise<never>\n}\nconst ipc = IPC as GenericIpc<IpcIncomingMessage, IpcOutgoingMessage>\n\nconst queue: string[][] = []\n\nexport const run = async (\n moduleFactory: () => Promise<{\n init?: () => Promise<void>\n default: (ipc: Ipc<any, any>, ...deserializedArgs: any[]) => any\n }>\n) => {\n let nextId = 1\n const requests = new Map()\n const internalIpc = {\n sendInfo: (message: any) =>\n ipc.send({\n type: 'info',\n data: message,\n }),\n sendRequest: (message: any) => {\n const id = nextId++\n let resolve, reject\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n requests.set(id, { resolve, reject })\n return ipc\n .send({ type: 'request', id, data: message })\n .then(() => promise)\n },\n sendError: (error: Error) => {\n return ipc.sendError(error)\n },\n }\n\n // Initialize module and send ready message\n let getValue: (ipc: Ipc<any, any>, ...deserializedArgs: any[]) => any\n try {\n const module = await moduleFactory()\n if (typeof module.init === 'function') {\n await module.init()\n }\n getValue = module.default\n await ipc.sendReady()\n } catch (err) {\n await ipc.sendReady()\n await ipc.sendError(err as Error)\n }\n\n // Queue handling\n let isRunning = false\n const run = async () => {\n while (queue.length > 0) {\n const args = queue.shift()!\n try {\n const value = await getValue(internalIpc, ...args)\n await ipc.send({\n type: 'end',\n data:\n value === undefined ? undefined : JSON.stringify(value, null, 2),\n duration: 0,\n })\n } catch (e) {\n await ipc.sendError(e as Error)\n }\n }\n isRunning = false\n }\n\n // Communication handling\n while (true) {\n const msg = await ipc.recv()\n\n switch (msg.type) {\n case 'evaluate': {\n queue.push(msg.args)\n if (!isRunning) {\n isRunning = true\n run()\n }\n break\n }\n case 'result': {\n const request = requests.get(msg.id)\n if (request) {\n requests.delete(msg.id)\n if (msg.error) {\n request.reject(new Error(msg.error))\n } else {\n request.resolve(msg.data)\n }\n }\n break\n }\n default: {\n console.error('unexpected message type', (msg as any).type)\n process.exit(1)\n }\n }\n }\n}\n\nexport type { IpcIncomingMessage, IpcOutgoingMessage }\n"],"names":[],"mappings":";;;;AAAA;;AAoCA,MAAM,MAAM,0HAAG;AAEf,MAAM,QAAoB,EAAE;AAErB,MAAM,MAAM,OACjB;IAKA,IAAI,SAAS;IACb,MAAM,WAAW,IAAI;IACrB,MAAM,cAAc;QAClB,UAAU,CAAC,UACT,IAAI,IAAI,CAAC;gBACP,MAAM;gBACN,MAAM;YACR;QACF,aAAa,CAAC;YACZ,MAAM,KAAK;YACX,IAAI,SAAS;YACb,MAAM,UAAU,IAAI,QAAQ,CAAC,KAAK;gBAChC,UAAU;gBACV,SAAS;YACX;YACA,SAAS,GAAG,CAAC,IAAI;gBAAE;gBAAS;YAAO;YACnC,OAAO,IACJ,IAAI,CAAC;gBAAE,MAAM;gBAAW;gBAAI,MAAM;YAAQ,GAC1C,IAAI,CAAC,IAAM;QAChB;QACA,WAAW,CAAC;YACV,OAAO,IAAI,SAAS,CAAC;QACvB;IACF;IAEA,2CAA2C;IAC3C,IAAI;IACJ,IAAI;QACF,MAAM,SAAS,MAAM;QACrB,IAAI,OAAO,OAAO,IAAI,KAAK,YAAY;YACrC,MAAM,OAAO,IAAI;QACnB;QACA,WAAW,OAAO,OAAO;QACzB,MAAM,IAAI,SAAS;IACrB,EAAE,OAAO,KAAK;QACZ,MAAM,IAAI,SAAS;QACnB,MAAM,IAAI,SAAS,CAAC;IACtB;IAEA,iBAAiB;IACjB,IAAI,YAAY;IAChB,MAAM,MAAM;QACV,MAAO,MAAM,MAAM,GAAG,EAAG;YACvB,MAAM,OAAO,MAAM,KAAK;YACxB,IAAI;gBACF,MAAM,QAAQ,MAAM,SAAS,gBAAgB;gBAC7C,MAAM,IAAI,IAAI,CAAC;oBACb,MAAM;oBACN,MACE,UAAU,YAAY,YAAY,KAAK,SAAS,CAAC,OAAO,MAAM;oBAChE,UAAU;gBACZ;YACF,EAAE,OAAO,GAAG;gBACV,MAAM,IAAI,SAAS,CAAC;YACtB;QACF;QACA,YAAY;IACd;IAEA,yBAAyB;IACzB,MAAO,KAAM;QACX,MAAM,MAAM,MAAM,IAAI,IAAI;QAE1B,OAAQ,IAAI,IAAI;YACd,KAAK;gBAAY;oBACf,MAAM,IAAI,CAAC,IAAI,IAAI;oBACnB,IAAI,CAAC,WAAW;wBACd,YAAY;wBACZ;oBACF;oBACA;gBACF;YACA,KAAK;gBAAU;oBACb,MAAM,UAAU,SAAS,GAAG,CAAC,IAAI,EAAE;oBACnC,IAAI,SAAS;wBACX,SAAS,MAAM,CAAC,IAAI,EAAE;wBACtB,IAAI,IAAI,KAAK,EAAE;4BACb,QAAQ,MAAM,CAAC,IAAI,MAAM,IAAI,KAAK;wBACpC,OAAO;4BACL,QAAQ,OAAO,CAAC,IAAI,IAAI;wBAC1B;oBACF;oBACA;gBACF;YACA;gBAAS;oBACP,QAAQ,KAAK,CAAC,2BAA2B,AAAC,IAAY,IAAI;oBAC1D,QAAQ,IAAI,CAAC;gBACf;QACF;IACF;AACF"}},
10
+ {"offset": {"line": 488, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/evaluate.ts/evaluate.js"],"sourcesContent":["import { run } from 'RUNTIME'; run(() => import('INNER'))"],"names":[],"mappings":";AAAA;;AAA+B,IAAA,6HAAG,EAAC"}}]
11
11
  }
@@ -144,16 +144,8 @@ function getProperError(err) {
144
144
  if (isError(err)) {
145
145
  return err;
146
146
  }
147
- if ("TURBOPACK compile-time truthy", 1) {
148
- // Provide a better error message for cases where `throw undefined`
149
- // is called in development
150
- if (typeof err === 'undefined') {
151
- return new Error('`undefined` was thrown instead of a real error');
152
- }
153
- if (err === null) {
154
- return new Error('`null` was thrown instead of a real error');
155
- }
156
- }
147
+ if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
148
+ ;
157
149
  return new Error(isPlainObject(err) ? JSON.stringify(err) : err + '');
158
150
  }
159
151
  function getObjectClassLabel(value) {
@@ -4,8 +4,8 @@
4
4
  "sections": [
5
5
  {"offset": {"line": 3, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/globals.ts"],"sourcesContent":["// @ts-ignore\nprocess.turbopack = {}\n"],"names":[],"mappings":"AAAA,aAAa;AACb,QAAQ,SAAS,GAAG,CAAC"}},
6
6
  {"offset": {"line": 21, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/compiled/stacktrace-parser/index.js"],"sourcesContent":["if (typeof __nccwpck_require__ !== \"undefined\")\n __nccwpck_require__.ab = __dirname + \"/\";\n\nvar n = \"<unknown>\";\nexport function parse(e) {\n var r = e.split(\"\\n\");\n return r.reduce(function (e, r) {\n var n =\n parseChrome(r) ||\n parseWinjs(r) ||\n parseGecko(r) ||\n parseNode(r) ||\n parseJSC(r);\n if (n) {\n e.push(n);\n }\n return e;\n }, []);\n}\nvar a =\n /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar l = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\nfunction parseChrome(e) {\n var r = a.exec(e);\n if (!r) {\n return null;\n }\n var u = r[2] && r[2].indexOf(\"native\") === 0;\n var t = r[2] && r[2].indexOf(\"eval\") === 0;\n var i = l.exec(r[2]);\n if (t && i != null) {\n r[2] = i[1];\n r[3] = i[2];\n r[4] = i[3];\n }\n return {\n file: !u ? r[2] : null,\n methodName: r[1] || n,\n arguments: u ? [r[2]] : [],\n lineNumber: r[3] ? +r[3] : null,\n column: r[4] ? +r[4] : null,\n };\n}\nvar u =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nfunction parseWinjs(e) {\n var r = u.exec(e);\n if (!r) {\n return null;\n }\n return {\n file: r[2],\n methodName: r[1] || n,\n arguments: [],\n lineNumber: +r[3],\n column: r[4] ? +r[4] : null,\n };\n}\nvar t =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar i = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nfunction parseGecko(e) {\n var r = t.exec(e);\n if (!r) {\n return null;\n }\n var a = r[3] && r[3].indexOf(\" > eval\") > -1;\n var l = i.exec(r[3]);\n if (a && l != null) {\n r[3] = l[1];\n r[4] = l[2];\n r[5] = null;\n }\n return {\n file: r[3],\n methodName: r[1] || n,\n arguments: r[2] ? r[2].split(\",\") : [],\n lineNumber: r[4] ? +r[4] : null,\n column: r[5] ? +r[5] : null,\n };\n}\nvar s = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\nfunction parseJSC(e) {\n var r = s.exec(e);\n if (!r) {\n return null;\n }\n return {\n file: r[3],\n methodName: r[1] || n,\n arguments: [],\n lineNumber: +r[4],\n column: r[5] ? +r[5] : null,\n };\n}\nvar o =\n /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nfunction parseNode(e) {\n var r = o.exec(e);\n if (!r) {\n return null;\n }\n return {\n file: r[2],\n methodName: r[1] || n,\n arguments: [],\n lineNumber: +r[3],\n column: r[4] ? +r[4] : null,\n };\n}\n"],"names":[],"mappings":";;;;AAAA,IAAI,OAAO,wBAAwB,aACjC,oBAAoB,EAAE,GAAG,uEAAY;AAEvC,IAAI,IAAI;AACD,SAAS,MAAM,CAAC;IACrB,IAAI,IAAI,EAAE,KAAK,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,SAAU,CAAC,EAAE,CAAC;QAC5B,IAAI,IACF,YAAY,MACZ,WAAW,MACX,WAAW,MACX,UAAU,MACV,SAAS;QACX,IAAI,GAAG;YACL,EAAE,IAAI,CAAC;QACT;QACA,OAAO;IACT,GAAG,EAAE;AACP;AACA,IAAI,IACF;AACF,IAAI,IAAI;AACR,SAAS,YAAY,CAAC;IACpB,IAAI,IAAI,EAAE,IAAI,CAAC;IACf,IAAI,CAAC,GAAG;QACN,OAAO;IACT;IACA,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc;IAC3C,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY;IACzC,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;IACnB,IAAI,KAAK,KAAK,MAAM;QAClB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;QACX,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;QACX,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACb;IACA,OAAO;QACL,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG;QAClB,YAAY,CAAC,CAAC,EAAE,IAAI;QACpB,WAAW,IAAI;YAAC,CAAC,CAAC,EAAE;SAAC,GAAG,EAAE;QAC1B,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;QAC3B,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;IACzB;AACF;AACA,IAAI,IACF;AACF,SAAS,WAAW,CAAC;IACnB,IAAI,IAAI,EAAE,IAAI,CAAC;IACf,IAAI,CAAC,GAAG;QACN,OAAO;IACT;IACA,OAAO;QACL,MAAM,CAAC,CAAC,EAAE;QACV,YAAY,CAAC,CAAC,EAAE,IAAI;QACpB,WAAW,EAAE;QACb,YAAY,CAAC,CAAC,CAAC,EAAE;QACjB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;IACzB;AACF;AACA,IAAI,IACF;AACF,IAAI,IAAI;AACR,SAAS,WAAW,CAAC;IACnB,IAAI,IAAI,EAAE,IAAI,CAAC;IACf,IAAI,CAAC,GAAG;QACN,OAAO;IACT;IACA,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;IAC3C,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;IACnB,IAAI,KAAK,KAAK,MAAM;QAClB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;QACX,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;QACX,CAAC,CAAC,EAAE,GAAG;IACT;IACA,OAAO;QACL,MAAM,CAAC,CAAC,EAAE;QACV,YAAY,CAAC,CAAC,EAAE,IAAI;QACpB,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE;QACtC,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;QAC3B,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;IACzB;AACF;AACA,IAAI,IAAI;AACR,SAAS,SAAS,CAAC;IACjB,IAAI,IAAI,EAAE,IAAI,CAAC;IACf,IAAI,CAAC,GAAG;QACN,OAAO;IACT;IACA,OAAO;QACL,MAAM,CAAC,CAAC,EAAE;QACV,YAAY,CAAC,CAAC,EAAE,IAAI;QACpB,WAAW,EAAE;QACb,YAAY,CAAC,CAAC,CAAC,EAAE;QACjB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;IACzB;AACF;AACA,IAAI,IACF;AACF,SAAS,UAAU,CAAC;IAClB,IAAI,IAAI,EAAE,IAAI,CAAC;IACf,IAAI,CAAC,GAAG;QACN,OAAO;IACT;IACA,OAAO;QACL,MAAM,CAAC,CAAC,EAAE;QACV,YAAY,CAAC,CAAC,EAAE,IAAI;QACpB,WAAW,EAAE;QACb,YAAY,CAAC,CAAC,CAAC,EAAE;QACjB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;IACzB;AACF"}},
7
- {"offset": {"line": 130, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/error.ts"],"sourcesContent":["// merged from next.js\n// https://github.com/vercel/next.js/blob/e657741b9908cf0044aaef959c0c4defb19ed6d8/packages/next/src/lib/is-error.ts\n// https://github.com/vercel/next.js/blob/e657741b9908cf0044aaef959c0c4defb19ed6d8/packages/next/src/shared/lib/is-plain-object.ts\n\nexport default function isError(err: unknown): err is Error {\n return (\n typeof err === 'object' && err !== null && 'name' in err && 'message' in err\n )\n}\n\nexport function getProperError(err: unknown): Error {\n if (isError(err)) {\n return err\n }\n\n if (process.env.NODE_ENV === 'development') {\n // Provide a better error message for cases where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return new Error('`undefined` was thrown instead of a real error')\n }\n\n if (err === null) {\n return new Error('`null` was thrown instead of a real error')\n }\n }\n\n return new Error(isPlainObject(err) ? JSON.stringify(err) : err + '')\n}\n\nfunction getObjectClassLabel(value: any): string {\n return Object.prototype.toString.call(value)\n}\n\nfunction isPlainObject(value: any): boolean {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */\n return prototype === null || prototype.hasOwnProperty('isPrototypeOf')\n}\n"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,oHAAoH;AACpH,kIAAkI;;;;;;;AAEnH,SAAS,QAAQ,GAAY;IAC1C,OACE,OAAO,QAAQ,YAAY,QAAQ,QAAQ,UAAU,OAAO,aAAa;AAE7E;AAEO,SAAS,eAAe,GAAY;IACzC,IAAI,QAAQ,MAAM;QAChB,OAAO;IACT;IAEA,wCAA4C;QAC1C,mEAAmE;QACnE,2BAA2B;QAC3B,IAAI,OAAO,QAAQ,aAAa;YAC9B,OAAO,IAAI,MAAM;QACnB;QAEA,IAAI,QAAQ,MAAM;YAChB,OAAO,IAAI,MAAM;QACnB;IACF;IAEA,OAAO,IAAI,MAAM,cAAc,OAAO,KAAK,SAAS,CAAC,OAAO,MAAM;AACpE;AAEA,SAAS,oBAAoB,KAAU;IACrC,OAAO,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;AACxC;AAEA,SAAS,cAAc,KAAU;IAC/B,IAAI,oBAAoB,WAAW,mBAAmB;QACpD,OAAO;IACT;IAEA,MAAM,YAAY,OAAO,cAAc,CAAC;IAExC;;;;;;;;GAQC,GACD,OAAO,cAAc,QAAQ,UAAU,cAAc,CAAC;AACxD"}},
8
- {"offset": {"line": 180, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/index.ts"],"sourcesContent":["import { createConnection } from 'node:net'\nimport { Writable } from 'node:stream'\nimport type { StackFrame } from '../compiled/stacktrace-parser'\nimport { parse as parseStackTrace } from '../compiled/stacktrace-parser'\nimport { getProperError } from './error'\n\nexport type StructuredError = {\n name: string\n message: string\n stack: StackFrame[]\n cause: StructuredError | undefined\n}\n\nexport function structuredError(e: unknown): StructuredError {\n e = getProperError(e)\n\n return {\n name: e.name,\n message: e.message,\n stack: typeof e.stack === 'string' ? parseStackTrace(e.stack) : [],\n cause: e.cause ? structuredError(getProperError(e.cause)) : undefined,\n }\n}\n\ntype State =\n | {\n type: 'waiting'\n }\n | {\n type: 'packet'\n length: number\n }\n\nexport type Ipc<TIncoming, TOutgoing> = {\n recv(): Promise<TIncoming>\n send(message: TOutgoing): Promise<void>\n sendError(error: Error | string): Promise<never>\n sendReady(): Promise<void>\n}\n\nfunction createIpc<TIncoming, TOutgoing>(\n port: number\n): Ipc<TIncoming, TOutgoing> {\n const socket = createConnection({\n port,\n host: '127.0.0.1',\n })\n\n /**\n * A writable stream that writes to the socket.\n * We don't write directly to the socket because we need to\n * handle backpressure and wait for the socket to be drained\n * before writing more data.\n */\n const socketWritable = new Writable({\n write(chunk, _enc, cb) {\n if (socket.write(chunk)) {\n cb()\n } else {\n socket.once('drain', cb)\n }\n },\n final(cb) {\n socket.end(cb)\n },\n })\n\n const packetQueue: Buffer[] = []\n const recvPromiseResolveQueue: Array<(message: TIncoming) => void> = []\n\n function pushPacket(packet: Buffer) {\n const recvPromiseResolve = recvPromiseResolveQueue.shift()\n if (recvPromiseResolve != null) {\n recvPromiseResolve(JSON.parse(packet.toString('utf8')) as TIncoming)\n } else {\n packetQueue.push(packet)\n }\n }\n\n let state: State = { type: 'waiting' }\n let buffer: Buffer = Buffer.alloc(0)\n socket.once('connect', () => {\n socket.on('data', (chunk) => {\n buffer = Buffer.concat([buffer, chunk])\n\n loop: while (true) {\n switch (state.type) {\n case 'waiting': {\n if (buffer.length >= 4) {\n const length = buffer.readUInt32BE(0)\n buffer = buffer.subarray(4)\n state = { type: 'packet', length }\n } else {\n break loop\n }\n break\n }\n case 'packet': {\n if (buffer.length >= state.length) {\n const packet = buffer.subarray(0, state.length)\n buffer = buffer.subarray(state.length)\n state = { type: 'waiting' }\n pushPacket(packet)\n } else {\n break loop\n }\n break\n }\n default:\n invariant(state, (state) => `Unknown state type: ${state?.type}`)\n }\n }\n })\n })\n // When the socket is closed, this process is no longer needed.\n // This might happen e. g. when parent process is killed or\n // node.js pool is garbage collected.\n socket.once('close', () => {\n process.exit(0)\n })\n\n // TODO(lukesandberg): some of the messages being sent are very large and contain lots\n // of redundant information. Consider adding gzip compression to our stream.\n function doSend(message: string): Promise<void> {\n return new Promise((resolve, reject) => {\n // Reserve 4 bytes for our length prefix, we will over-write after encoding.\n const packet = Buffer.from('0000' + message, 'utf8')\n packet.writeUInt32BE(packet.length - 4, 0)\n socketWritable.write(packet, (err) => {\n process.stderr.write(`TURBOPACK_OUTPUT_D\\n`)\n process.stdout.write(`TURBOPACK_OUTPUT_D\\n`)\n if (err != null) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n }\n\n function send(message: any): Promise<void> {\n return doSend(JSON.stringify(message))\n }\n function sendReady(): Promise<void> {\n return doSend('')\n }\n\n return {\n async recv() {\n const packet = packetQueue.shift()\n if (packet != null) {\n return JSON.parse(packet.toString('utf8')) as TIncoming\n }\n\n const result = await new Promise<TIncoming>((resolve) => {\n recvPromiseResolveQueue.push((result) => {\n resolve(result)\n })\n })\n\n return result\n },\n\n send(message: TOutgoing) {\n return send(message)\n },\n\n sendReady,\n\n async sendError(error: Error): Promise<never> {\n try {\n await send({\n type: 'error',\n ...structuredError(error),\n })\n } catch (err) {\n console.error('failed to send error back to rust:', err)\n // ignore and exit anyway\n process.exit(1)\n }\n\n process.exit(0)\n },\n }\n}\n\nconst PORT = process.argv[2]\n\nexport const IPC = createIpc<unknown, unknown>(parseInt(PORT, 10))\n\nprocess.on('uncaughtException', (err) => {\n IPC.sendError(err)\n})\n\nconst improveConsole = (name: string, stream: string, addStack: boolean) => {\n // @ts-ignore\n const original = console[name]\n // @ts-ignore\n const stdio = process[stream]\n // @ts-ignore\n console[name] = (...args: any[]) => {\n stdio.write(`TURBOPACK_OUTPUT_B\\n`)\n original(...args)\n if (addStack) {\n const stack = new Error().stack?.replace(/^.+\\n.+\\n/, '') + '\\n'\n stdio.write('TURBOPACK_OUTPUT_S\\n')\n stdio.write(stack)\n }\n stdio.write('TURBOPACK_OUTPUT_E\\n')\n }\n}\n\nimproveConsole('error', 'stderr', true)\nimproveConsole('warn', 'stderr', true)\nimproveConsole('count', 'stdout', true)\nimproveConsole('trace', 'stderr', false)\nimproveConsole('log', 'stdout', true)\nimproveConsole('group', 'stdout', true)\nimproveConsole('groupCollapsed', 'stdout', true)\nimproveConsole('table', 'stdout', true)\nimproveConsole('debug', 'stdout', true)\nimproveConsole('info', 'stdout', true)\nimproveConsole('dir', 'stdout', true)\nimproveConsole('dirxml', 'stdout', true)\nimproveConsole('timeEnd', 'stdout', true)\nimproveConsole('timeLog', 'stdout', true)\nimproveConsole('timeStamp', 'stdout', true)\nimproveConsole('assert', 'stderr', true)\n\n/**\n * Utility function to ensure all variants of an enum are handled.\n */\nfunction invariant(never: never, computeMessage: (arg: any) => string): never {\n throw new Error(`Invariant: ${computeMessage(never)}`)\n}\n"],"names":[],"mappings":"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"}},
9
- {"offset": {"line": 390, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/evaluate.ts"],"sourcesContent":["import { IPC } from './index'\nimport type { Ipc as GenericIpc } from './index'\n\ntype IpcIncomingMessage =\n | {\n type: 'evaluate'\n args: string[]\n }\n | {\n type: 'result'\n id: number\n error: string | null\n data: any | null\n }\n\ntype IpcOutgoingMessage =\n | {\n type: 'end'\n data: string | undefined\n duration: number\n }\n | {\n type: 'info'\n data: any\n }\n | {\n type: 'request'\n id: number\n data: any\n }\n\nexport type Ipc<IM, RM> = {\n sendInfo(message: IM): Promise<void>\n sendRequest(message: RM): Promise<unknown>\n sendError(error: Error): Promise<never>\n}\nconst ipc = IPC as GenericIpc<IpcIncomingMessage, IpcOutgoingMessage>\n\nconst queue: string[][] = []\n\nexport const run = async (\n moduleFactory: () => Promise<{\n init?: () => Promise<void>\n default: (ipc: Ipc<any, any>, ...deserializedArgs: any[]) => any\n }>\n) => {\n let nextId = 1\n const requests = new Map()\n const internalIpc = {\n sendInfo: (message: any) =>\n ipc.send({\n type: 'info',\n data: message,\n }),\n sendRequest: (message: any) => {\n const id = nextId++\n let resolve, reject\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n requests.set(id, { resolve, reject })\n return ipc\n .send({ type: 'request', id, data: message })\n .then(() => promise)\n },\n sendError: (error: Error) => {\n return ipc.sendError(error)\n },\n }\n\n // Initialize module and send ready message\n let getValue: (ipc: Ipc<any, any>, ...deserializedArgs: any[]) => any\n try {\n const module = await moduleFactory()\n if (typeof module.init === 'function') {\n await module.init()\n }\n getValue = module.default\n await ipc.sendReady()\n } catch (err) {\n await ipc.sendReady()\n await ipc.sendError(err as Error)\n }\n\n // Queue handling\n let isRunning = false\n const run = async () => {\n while (queue.length > 0) {\n const args = queue.shift()!\n try {\n const value = await getValue(internalIpc, ...args)\n await ipc.send({\n type: 'end',\n data:\n value === undefined ? undefined : JSON.stringify(value, null, 2),\n duration: 0,\n })\n } catch (e) {\n await ipc.sendError(e as Error)\n }\n }\n isRunning = false\n }\n\n // Communication handling\n while (true) {\n const msg = await ipc.recv()\n\n switch (msg.type) {\n case 'evaluate': {\n queue.push(msg.args)\n if (!isRunning) {\n isRunning = true\n run()\n }\n break\n }\n case 'result': {\n const request = requests.get(msg.id)\n if (request) {\n requests.delete(msg.id)\n if (msg.error) {\n request.reject(new Error(msg.error))\n } else {\n request.resolve(msg.data)\n }\n }\n break\n }\n default: {\n console.error('unexpected message type', (msg as any).type)\n process.exit(1)\n }\n }\n }\n}\n\nexport type { IpcIncomingMessage, IpcOutgoingMessage }\n"],"names":[],"mappings":";;;;AAAA;;AAoCA,MAAM,MAAM,kIAAG;AAEf,MAAM,QAAoB,EAAE;AAErB,MAAM,MAAM,OACjB;IAKA,IAAI,SAAS;IACb,MAAM,WAAW,IAAI;IACrB,MAAM,cAAc;QAClB,UAAU,CAAC,UACT,IAAI,IAAI,CAAC;gBACP,MAAM;gBACN,MAAM;YACR;QACF,aAAa,CAAC;YACZ,MAAM,KAAK;YACX,IAAI,SAAS;YACb,MAAM,UAAU,IAAI,QAAQ,CAAC,KAAK;gBAChC,UAAU;gBACV,SAAS;YACX;YACA,SAAS,GAAG,CAAC,IAAI;gBAAE;gBAAS;YAAO;YACnC,OAAO,IACJ,IAAI,CAAC;gBAAE,MAAM;gBAAW;gBAAI,MAAM;YAAQ,GAC1C,IAAI,CAAC,IAAM;QAChB;QACA,WAAW,CAAC;YACV,OAAO,IAAI,SAAS,CAAC;QACvB;IACF;IAEA,2CAA2C;IAC3C,IAAI;IACJ,IAAI;QACF,MAAM,SAAS,MAAM;QACrB,IAAI,OAAO,OAAO,IAAI,KAAK,YAAY;YACrC,MAAM,OAAO,IAAI;QACnB;QACA,WAAW,OAAO,OAAO;QACzB,MAAM,IAAI,SAAS;IACrB,EAAE,OAAO,KAAK;QACZ,MAAM,IAAI,SAAS;QACnB,MAAM,IAAI,SAAS,CAAC;IACtB;IAEA,iBAAiB;IACjB,IAAI,YAAY;IAChB,MAAM,MAAM;QACV,MAAO,MAAM,MAAM,GAAG,EAAG;YACvB,MAAM,OAAO,MAAM,KAAK;YACxB,IAAI;gBACF,MAAM,QAAQ,MAAM,SAAS,gBAAgB;gBAC7C,MAAM,IAAI,IAAI,CAAC;oBACb,MAAM;oBACN,MACE,UAAU,YAAY,YAAY,KAAK,SAAS,CAAC,OAAO,MAAM;oBAChE,UAAU;gBACZ;YACF,EAAE,OAAO,GAAG;gBACV,MAAM,IAAI,SAAS,CAAC;YACtB;QACF;QACA,YAAY;IACd;IAEA,yBAAyB;IACzB,MAAO,KAAM;QACX,MAAM,MAAM,MAAM,IAAI,IAAI;QAE1B,OAAQ,IAAI,IAAI;YACd,KAAK;gBAAY;oBACf,MAAM,IAAI,CAAC,IAAI,IAAI;oBACnB,IAAI,CAAC,WAAW;wBACd,YAAY;wBACZ;oBACF;oBACA;gBACF;YACA,KAAK;gBAAU;oBACb,MAAM,UAAU,SAAS,GAAG,CAAC,IAAI,EAAE;oBACnC,IAAI,SAAS;wBACX,SAAS,MAAM,CAAC,IAAI,EAAE;wBACtB,IAAI,IAAI,KAAK,EAAE;4BACb,QAAQ,MAAM,CAAC,IAAI,MAAM,IAAI,KAAK;wBACpC,OAAO;4BACL,QAAQ,OAAO,CAAC,IAAI,IAAI;wBAC1B;oBACF;oBACA;gBACF;YACA;gBAAS;oBACP,QAAQ,KAAK,CAAC,2BAA2B,AAAC,IAAY,IAAI;oBAC1D,QAAQ,IAAI,CAAC;gBACf;QACF;IACF;AACF"}},
10
- {"offset": {"line": 496, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/evaluate.ts/evaluate.js"],"sourcesContent":["import { run } from 'RUNTIME'; run(() => import('INNER'))"],"names":[],"mappings":";AAAA;;AAA+B,IAAA,qIAAG,EAAC"}}]
7
+ {"offset": {"line": 130, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/error.ts"],"sourcesContent":["// merged from next.js\n// https://github.com/vercel/next.js/blob/e657741b9908cf0044aaef959c0c4defb19ed6d8/packages/next/src/lib/is-error.ts\n// https://github.com/vercel/next.js/blob/e657741b9908cf0044aaef959c0c4defb19ed6d8/packages/next/src/shared/lib/is-plain-object.ts\n\nexport default function isError(err: unknown): err is Error {\n return (\n typeof err === 'object' && err !== null && 'name' in err && 'message' in err\n )\n}\n\nexport function getProperError(err: unknown): Error {\n if (isError(err)) {\n return err\n }\n\n if (process.env.NODE_ENV === 'development') {\n // Provide a better error message for cases where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return new Error('`undefined` was thrown instead of a real error')\n }\n\n if (err === null) {\n return new Error('`null` was thrown instead of a real error')\n }\n }\n\n return new Error(isPlainObject(err) ? JSON.stringify(err) : err + '')\n}\n\nfunction getObjectClassLabel(value: any): string {\n return Object.prototype.toString.call(value)\n}\n\nfunction isPlainObject(value: any): boolean {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */\n return prototype === null || prototype.hasOwnProperty('isPrototypeOf')\n}\n"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,oHAAoH;AACpH,kIAAkI;;;;;;;AAEnH,SAAS,QAAQ,GAAY;IAC1C,OACE,OAAO,QAAQ,YAAY,QAAQ,QAAQ,UAAU,OAAO,aAAa;AAE7E;AAEO,SAAS,eAAe,GAAY;IACzC,IAAI,QAAQ,MAAM;QAChB,OAAO;IACT;IAEA;;IAYA,OAAO,IAAI,MAAM,cAAc,OAAO,KAAK,SAAS,CAAC,OAAO,MAAM;AACpE;AAEA,SAAS,oBAAoB,KAAU;IACrC,OAAO,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;AACxC;AAEA,SAAS,cAAc,KAAU;IAC/B,IAAI,oBAAoB,WAAW,mBAAmB;QACpD,OAAO;IACT;IAEA,MAAM,YAAY,OAAO,cAAc,CAAC;IAExC;;;;;;;;GAQC,GACD,OAAO,cAAc,QAAQ,UAAU,cAAc,CAAC;AACxD"}},
8
+ {"offset": {"line": 172, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/index.ts"],"sourcesContent":["import { createConnection } from 'node:net'\nimport { Writable } from 'node:stream'\nimport type { StackFrame } from '../compiled/stacktrace-parser'\nimport { parse as parseStackTrace } from '../compiled/stacktrace-parser'\nimport { getProperError } from './error'\n\nexport type StructuredError = {\n name: string\n message: string\n stack: StackFrame[]\n cause: StructuredError | undefined\n}\n\nexport function structuredError(e: unknown): StructuredError {\n e = getProperError(e)\n\n return {\n name: e.name,\n message: e.message,\n stack: typeof e.stack === 'string' ? parseStackTrace(e.stack) : [],\n cause: e.cause ? structuredError(getProperError(e.cause)) : undefined,\n }\n}\n\ntype State =\n | {\n type: 'waiting'\n }\n | {\n type: 'packet'\n length: number\n }\n\nexport type Ipc<TIncoming, TOutgoing> = {\n recv(): Promise<TIncoming>\n send(message: TOutgoing): Promise<void>\n sendError(error: Error | string): Promise<never>\n sendReady(): Promise<void>\n}\n\nfunction createIpc<TIncoming, TOutgoing>(\n port: number\n): Ipc<TIncoming, TOutgoing> {\n const socket = createConnection({\n port,\n host: '127.0.0.1',\n })\n\n /**\n * A writable stream that writes to the socket.\n * We don't write directly to the socket because we need to\n * handle backpressure and wait for the socket to be drained\n * before writing more data.\n */\n const socketWritable = new Writable({\n write(chunk, _enc, cb) {\n if (socket.write(chunk)) {\n cb()\n } else {\n socket.once('drain', cb)\n }\n },\n final(cb) {\n socket.end(cb)\n },\n })\n\n const packetQueue: Buffer[] = []\n const recvPromiseResolveQueue: Array<(message: TIncoming) => void> = []\n\n function pushPacket(packet: Buffer) {\n const recvPromiseResolve = recvPromiseResolveQueue.shift()\n if (recvPromiseResolve != null) {\n recvPromiseResolve(JSON.parse(packet.toString('utf8')) as TIncoming)\n } else {\n packetQueue.push(packet)\n }\n }\n\n let state: State = { type: 'waiting' }\n let buffer: Buffer = Buffer.alloc(0)\n socket.once('connect', () => {\n socket.on('data', (chunk) => {\n buffer = Buffer.concat([buffer, chunk])\n\n loop: while (true) {\n switch (state.type) {\n case 'waiting': {\n if (buffer.length >= 4) {\n const length = buffer.readUInt32BE(0)\n buffer = buffer.subarray(4)\n state = { type: 'packet', length }\n } else {\n break loop\n }\n break\n }\n case 'packet': {\n if (buffer.length >= state.length) {\n const packet = buffer.subarray(0, state.length)\n buffer = buffer.subarray(state.length)\n state = { type: 'waiting' }\n pushPacket(packet)\n } else {\n break loop\n }\n break\n }\n default:\n invariant(state, (state) => `Unknown state type: ${state?.type}`)\n }\n }\n })\n })\n // When the socket is closed, this process is no longer needed.\n // This might happen e. g. when parent process is killed or\n // node.js pool is garbage collected.\n socket.once('close', () => {\n process.exit(0)\n })\n\n // TODO(lukesandberg): some of the messages being sent are very large and contain lots\n // of redundant information. Consider adding gzip compression to our stream.\n function doSend(message: string): Promise<void> {\n return new Promise((resolve, reject) => {\n // Reserve 4 bytes for our length prefix, we will over-write after encoding.\n const packet = Buffer.from('0000' + message, 'utf8')\n packet.writeUInt32BE(packet.length - 4, 0)\n socketWritable.write(packet, (err) => {\n process.stderr.write(`TURBOPACK_OUTPUT_D\\n`)\n process.stdout.write(`TURBOPACK_OUTPUT_D\\n`)\n if (err != null) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n }\n\n function send(message: any): Promise<void> {\n return doSend(JSON.stringify(message))\n }\n function sendReady(): Promise<void> {\n return doSend('')\n }\n\n return {\n async recv() {\n const packet = packetQueue.shift()\n if (packet != null) {\n return JSON.parse(packet.toString('utf8')) as TIncoming\n }\n\n const result = await new Promise<TIncoming>((resolve) => {\n recvPromiseResolveQueue.push((result) => {\n resolve(result)\n })\n })\n\n return result\n },\n\n send(message: TOutgoing) {\n return send(message)\n },\n\n sendReady,\n\n async sendError(error: Error): Promise<never> {\n try {\n await send({\n type: 'error',\n ...structuredError(error),\n })\n } catch (err) {\n console.error('failed to send error back to rust:', err)\n // ignore and exit anyway\n process.exit(1)\n }\n\n process.exit(0)\n },\n }\n}\n\nconst PORT = process.argv[2]\n\nexport const IPC = createIpc<unknown, unknown>(parseInt(PORT, 10))\n\nprocess.on('uncaughtException', (err) => {\n IPC.sendError(err)\n})\n\nconst improveConsole = (name: string, stream: string, addStack: boolean) => {\n // @ts-ignore\n const original = console[name]\n // @ts-ignore\n const stdio = process[stream]\n // @ts-ignore\n console[name] = (...args: any[]) => {\n stdio.write(`TURBOPACK_OUTPUT_B\\n`)\n original(...args)\n if (addStack) {\n const stack = new Error().stack?.replace(/^.+\\n.+\\n/, '') + '\\n'\n stdio.write('TURBOPACK_OUTPUT_S\\n')\n stdio.write(stack)\n }\n stdio.write('TURBOPACK_OUTPUT_E\\n')\n }\n}\n\nimproveConsole('error', 'stderr', true)\nimproveConsole('warn', 'stderr', true)\nimproveConsole('count', 'stdout', true)\nimproveConsole('trace', 'stderr', false)\nimproveConsole('log', 'stdout', true)\nimproveConsole('group', 'stdout', true)\nimproveConsole('groupCollapsed', 'stdout', true)\nimproveConsole('table', 'stdout', true)\nimproveConsole('debug', 'stdout', true)\nimproveConsole('info', 'stdout', true)\nimproveConsole('dir', 'stdout', true)\nimproveConsole('dirxml', 'stdout', true)\nimproveConsole('timeEnd', 'stdout', true)\nimproveConsole('timeLog', 'stdout', true)\nimproveConsole('timeStamp', 'stdout', true)\nimproveConsole('assert', 'stderr', true)\n\n/**\n * Utility function to ensure all variants of an enum are handled.\n */\nfunction invariant(never: never, computeMessage: (arg: any) => string): never {\n throw new Error(`Invariant: ${computeMessage(never)}`)\n}\n"],"names":[],"mappings":"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"}},
9
+ {"offset": {"line": 382, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/evaluate.ts"],"sourcesContent":["import { IPC } from './index'\nimport type { Ipc as GenericIpc } from './index'\n\ntype IpcIncomingMessage =\n | {\n type: 'evaluate'\n args: string[]\n }\n | {\n type: 'result'\n id: number\n error: string | null\n data: any | null\n }\n\ntype IpcOutgoingMessage =\n | {\n type: 'end'\n data: string | undefined\n duration: number\n }\n | {\n type: 'info'\n data: any\n }\n | {\n type: 'request'\n id: number\n data: any\n }\n\nexport type Ipc<IM, RM> = {\n sendInfo(message: IM): Promise<void>\n sendRequest(message: RM): Promise<unknown>\n sendError(error: Error): Promise<never>\n}\nconst ipc = IPC as GenericIpc<IpcIncomingMessage, IpcOutgoingMessage>\n\nconst queue: string[][] = []\n\nexport const run = async (\n moduleFactory: () => Promise<{\n init?: () => Promise<void>\n default: (ipc: Ipc<any, any>, ...deserializedArgs: any[]) => any\n }>\n) => {\n let nextId = 1\n const requests = new Map()\n const internalIpc = {\n sendInfo: (message: any) =>\n ipc.send({\n type: 'info',\n data: message,\n }),\n sendRequest: (message: any) => {\n const id = nextId++\n let resolve, reject\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n requests.set(id, { resolve, reject })\n return ipc\n .send({ type: 'request', id, data: message })\n .then(() => promise)\n },\n sendError: (error: Error) => {\n return ipc.sendError(error)\n },\n }\n\n // Initialize module and send ready message\n let getValue: (ipc: Ipc<any, any>, ...deserializedArgs: any[]) => any\n try {\n const module = await moduleFactory()\n if (typeof module.init === 'function') {\n await module.init()\n }\n getValue = module.default\n await ipc.sendReady()\n } catch (err) {\n await ipc.sendReady()\n await ipc.sendError(err as Error)\n }\n\n // Queue handling\n let isRunning = false\n const run = async () => {\n while (queue.length > 0) {\n const args = queue.shift()!\n try {\n const value = await getValue(internalIpc, ...args)\n await ipc.send({\n type: 'end',\n data:\n value === undefined ? undefined : JSON.stringify(value, null, 2),\n duration: 0,\n })\n } catch (e) {\n await ipc.sendError(e as Error)\n }\n }\n isRunning = false\n }\n\n // Communication handling\n while (true) {\n const msg = await ipc.recv()\n\n switch (msg.type) {\n case 'evaluate': {\n queue.push(msg.args)\n if (!isRunning) {\n isRunning = true\n run()\n }\n break\n }\n case 'result': {\n const request = requests.get(msg.id)\n if (request) {\n requests.delete(msg.id)\n if (msg.error) {\n request.reject(new Error(msg.error))\n } else {\n request.resolve(msg.data)\n }\n }\n break\n }\n default: {\n console.error('unexpected message type', (msg as any).type)\n process.exit(1)\n }\n }\n }\n}\n\nexport type { IpcIncomingMessage, IpcOutgoingMessage }\n"],"names":[],"mappings":";;;;AAAA;;AAoCA,MAAM,MAAM,kIAAG;AAEf,MAAM,QAAoB,EAAE;AAErB,MAAM,MAAM,OACjB;IAKA,IAAI,SAAS;IACb,MAAM,WAAW,IAAI;IACrB,MAAM,cAAc;QAClB,UAAU,CAAC,UACT,IAAI,IAAI,CAAC;gBACP,MAAM;gBACN,MAAM;YACR;QACF,aAAa,CAAC;YACZ,MAAM,KAAK;YACX,IAAI,SAAS;YACb,MAAM,UAAU,IAAI,QAAQ,CAAC,KAAK;gBAChC,UAAU;gBACV,SAAS;YACX;YACA,SAAS,GAAG,CAAC,IAAI;gBAAE;gBAAS;YAAO;YACnC,OAAO,IACJ,IAAI,CAAC;gBAAE,MAAM;gBAAW;gBAAI,MAAM;YAAQ,GAC1C,IAAI,CAAC,IAAM;QAChB;QACA,WAAW,CAAC;YACV,OAAO,IAAI,SAAS,CAAC;QACvB;IACF;IAEA,2CAA2C;IAC3C,IAAI;IACJ,IAAI;QACF,MAAM,SAAS,MAAM;QACrB,IAAI,OAAO,OAAO,IAAI,KAAK,YAAY;YACrC,MAAM,OAAO,IAAI;QACnB;QACA,WAAW,OAAO,OAAO;QACzB,MAAM,IAAI,SAAS;IACrB,EAAE,OAAO,KAAK;QACZ,MAAM,IAAI,SAAS;QACnB,MAAM,IAAI,SAAS,CAAC;IACtB;IAEA,iBAAiB;IACjB,IAAI,YAAY;IAChB,MAAM,MAAM;QACV,MAAO,MAAM,MAAM,GAAG,EAAG;YACvB,MAAM,OAAO,MAAM,KAAK;YACxB,IAAI;gBACF,MAAM,QAAQ,MAAM,SAAS,gBAAgB;gBAC7C,MAAM,IAAI,IAAI,CAAC;oBACb,MAAM;oBACN,MACE,UAAU,YAAY,YAAY,KAAK,SAAS,CAAC,OAAO,MAAM;oBAChE,UAAU;gBACZ;YACF,EAAE,OAAO,GAAG;gBACV,MAAM,IAAI,SAAS,CAAC;YACtB;QACF;QACA,YAAY;IACd;IAEA,yBAAyB;IACzB,MAAO,KAAM;QACX,MAAM,MAAM,MAAM,IAAI,IAAI;QAE1B,OAAQ,IAAI,IAAI;YACd,KAAK;gBAAY;oBACf,MAAM,IAAI,CAAC,IAAI,IAAI;oBACnB,IAAI,CAAC,WAAW;wBACd,YAAY;wBACZ;oBACF;oBACA;gBACF;YACA,KAAK;gBAAU;oBACb,MAAM,UAAU,SAAS,GAAG,CAAC,IAAI,EAAE;oBACnC,IAAI,SAAS;wBACX,SAAS,MAAM,CAAC,IAAI,EAAE;wBACtB,IAAI,IAAI,KAAK,EAAE;4BACb,QAAQ,MAAM,CAAC,IAAI,MAAM,IAAI,KAAK;wBACpC,OAAO;4BACL,QAAQ,OAAO,CAAC,IAAI,IAAI;wBAC1B;oBACF;oBACA;gBACF;YACA;gBAAS;oBACP,QAAQ,KAAK,CAAC,2BAA2B,AAAC,IAAY,IAAI;oBAC1D,QAAQ,IAAI,CAAC;gBACf;QACF;IACF;AACF"}},
10
+ {"offset": {"line": 488, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack-node]/ipc/evaluate.ts/evaluate.js"],"sourcesContent":["import { run } from 'RUNTIME'; run(() => import('INNER'))"],"names":[],"mappings":";AAAA;;AAA+B,IAAA,qIAAG,EAAC"}}]
11
11
  }
@@ -5853,17 +5853,8 @@ function parse(css, opts) {
5853
5853
  try {
5854
5854
  parser.parse();
5855
5855
  } catch (e) {
5856
- if ("TURBOPACK compile-time truthy", 1) {
5857
- if (e.name === 'CssSyntaxError' && opts && opts.from) {
5858
- if (/\.scss$/i.test(opts.from)) {
5859
- e.message += '\nYou tried to parse SCSS with ' + 'the standard CSS parser; ' + 'try again with the postcss-scss parser';
5860
- } else if (/\.sass/i.test(opts.from)) {
5861
- e.message += '\nYou tried to parse Sass with ' + 'the standard CSS parser; ' + 'try again with the postcss-sass parser';
5862
- } else if (/\.less$/i.test(opts.from)) {
5863
- e.message += '\nYou tried to parse Less with ' + 'the standard CSS parser; ' + 'try again with the postcss-less parser';
5864
- }
5865
- }
5866
- }
5856
+ if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
5857
+ ;
5867
5858
  throw e;
5868
5859
  }
5869
5860
  return parser.root;
@@ -6164,17 +6155,8 @@ class LazyResult {
6164
6155
  error.plugin = plugin.postcssPlugin;
6165
6156
  error.setMessage();
6166
6157
  } else if (plugin.postcssVersion) {
6167
- if ("TURBOPACK compile-time truthy", 1) {
6168
- let pluginName = plugin.postcssPlugin;
6169
- let pluginVer = plugin.postcssVersion;
6170
- let runtimeVer = this.result.processor.version;
6171
- let a = pluginVer.split('.');
6172
- let b = runtimeVer.split('.');
6173
- if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {
6174
- // eslint-disable-next-line no-console
6175
- console.error('Unknown error from PostCSS plugin. Your current PostCSS ' + 'version is ' + runtimeVer + ', but ' + pluginName + ' uses ' + pluginVer + '. Perhaps this is the source of the error below.');
6176
- }
6177
- }
6158
+ if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
6159
+ ;
6178
6160
  }
6179
6161
  } catch (err) {
6180
6162
  /* c8 ignore next 3 */ // eslint-disable-next-line no-console
@@ -6335,11 +6317,8 @@ class LazyResult {
6335
6317
  return this.result;
6336
6318
  }
6337
6319
  then(onFulfilled, onRejected) {
6338
- if ("TURBOPACK compile-time truthy", 1) {
6339
- if (!('from' in this.opts)) {
6340
- warnOnce('Without `from` option PostCSS could generate wrong source map ' + 'and will not find Browserslist config. Set it to CSS file path ' + 'or to `undefined` to prevent this warning.');
6341
- }
6342
- }
6320
+ if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
6321
+ ;
6343
6322
  return this.async().then(onFulfilled, onRejected);
6344
6323
  }
6345
6324
  toString() {
@@ -6538,11 +6517,8 @@ class NoWorkResult {
6538
6517
  return this.result;
6539
6518
  }
6540
6519
  then(onFulfilled, onRejected) {
6541
- if ("TURBOPACK compile-time truthy", 1) {
6542
- if (!('from' in this._opts)) {
6543
- warnOnce('Without `from` option PostCSS could generate wrong source map ' + 'and will not find Browserslist config. Set it to CSS file path ' + 'or to `undefined` to prevent this warning.');
6544
- }
6545
- }
6520
+ if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
6521
+ ;
6546
6522
  return this.async().then(onFulfilled, onRejected);
6547
6523
  }
6548
6524
  toString() {
@@ -6582,9 +6558,8 @@ class Processor {
6582
6558
  } else if (typeof i === 'function') {
6583
6559
  normalized.push(i);
6584
6560
  } else if (typeof i === 'object' && (i.parse || i.stringify)) {
6585
- if ("TURBOPACK compile-time truthy", 1) {
6586
- throw new Error('PostCSS syntaxes cannot be used as plugins. Instead, please use ' + 'one of the syntax/parser/stringifier options as outlined ' + 'in your PostCSS runner documentation.');
6587
- }
6561
+ if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
6562
+ ;
6588
6563
  } else {
6589
6564
  throw new Error(i + ' is not a PostCSS plugin');
6590
6565
  }