veryfront 0.1.71 → 0.1.73

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 (110) hide show
  1. package/esm/cli/commands/files/command-help.d.ts +3 -0
  2. package/esm/cli/commands/files/command-help.d.ts.map +1 -0
  3. package/esm/cli/commands/files/command-help.js +38 -0
  4. package/esm/cli/commands/files/command.d.ts +105 -0
  5. package/esm/cli/commands/files/command.d.ts.map +1 -0
  6. package/esm/cli/commands/files/command.js +250 -0
  7. package/esm/cli/commands/files/handler.d.ts +3 -0
  8. package/esm/cli/commands/files/handler.d.ts.map +1 -0
  9. package/esm/cli/commands/files/handler.js +4 -0
  10. package/esm/cli/commands/files/index.d.ts +4 -0
  11. package/esm/cli/commands/files/index.d.ts.map +1 -0
  12. package/esm/cli/commands/files/index.js +2 -0
  13. package/esm/cli/commands/knowledge/command-help.d.ts +3 -0
  14. package/esm/cli/commands/knowledge/command-help.d.ts.map +1 -0
  15. package/esm/cli/commands/knowledge/command-help.js +38 -0
  16. package/esm/cli/commands/knowledge/command.d.ts +122 -0
  17. package/esm/cli/commands/knowledge/command.d.ts.map +1 -0
  18. package/esm/cli/commands/knowledge/command.js +382 -0
  19. package/esm/cli/commands/knowledge/handler.d.ts +3 -0
  20. package/esm/cli/commands/knowledge/handler.d.ts.map +1 -0
  21. package/esm/cli/commands/knowledge/handler.js +4 -0
  22. package/esm/cli/commands/knowledge/index.d.ts +3 -0
  23. package/esm/cli/commands/knowledge/index.d.ts.map +1 -0
  24. package/esm/cli/commands/knowledge/index.js +2 -0
  25. package/esm/cli/commands/knowledge/parser-source.d.ts +2 -0
  26. package/esm/cli/commands/knowledge/parser-source.d.ts.map +1 -0
  27. package/esm/cli/commands/knowledge/parser-source.js +415 -0
  28. package/esm/cli/commands/uploads/command-help.d.ts +3 -0
  29. package/esm/cli/commands/uploads/command-help.d.ts.map +1 -0
  30. package/esm/cli/commands/uploads/command-help.js +43 -0
  31. package/esm/cli/commands/uploads/command.d.ts +140 -0
  32. package/esm/cli/commands/uploads/command.d.ts.map +1 -0
  33. package/esm/cli/commands/uploads/command.js +323 -0
  34. package/esm/cli/commands/uploads/handler.d.ts +3 -0
  35. package/esm/cli/commands/uploads/handler.d.ts.map +1 -0
  36. package/esm/cli/commands/uploads/handler.js +4 -0
  37. package/esm/cli/commands/uploads/index.d.ts +4 -0
  38. package/esm/cli/commands/uploads/index.d.ts.map +1 -0
  39. package/esm/cli/commands/uploads/index.js +2 -0
  40. package/esm/cli/help/command-definitions.d.ts.map +1 -1
  41. package/esm/cli/help/command-definitions.js +6 -0
  42. package/esm/cli/router.d.ts.map +1 -1
  43. package/esm/cli/router.js +6 -0
  44. package/esm/deno.js +1 -1
  45. package/esm/src/errors/error-registry.d.ts +2 -0
  46. package/esm/src/errors/error-registry.d.ts.map +1 -1
  47. package/esm/src/errors/error-registry.js +8 -0
  48. package/esm/src/errors/index.d.ts +1 -1
  49. package/esm/src/errors/index.d.ts.map +1 -1
  50. package/esm/src/errors/index.js +1 -1
  51. package/esm/src/html/html-shell-generator.d.ts.map +1 -1
  52. package/esm/src/html/html-shell-generator.js +6 -0
  53. package/esm/src/platform/compat/media-types.d.ts +5 -0
  54. package/esm/src/platform/compat/media-types.d.ts.map +1 -0
  55. package/esm/src/platform/compat/media-types.js +19 -0
  56. package/esm/src/platform/index.d.ts +1 -0
  57. package/esm/src/platform/index.d.ts.map +1 -1
  58. package/esm/src/platform/index.js +2 -0
  59. package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
  60. package/esm/src/rendering/orchestrator/pipeline.js +116 -105
  61. package/esm/src/server/bootstrap.js +5 -1
  62. package/esm/src/server/dev-server/error-overlay/error-formatter.d.ts +4 -0
  63. package/esm/src/server/dev-server/error-overlay/error-formatter.d.ts.map +1 -1
  64. package/esm/src/server/dev-server/error-overlay/error-formatter.js +15 -0
  65. package/esm/src/server/dev-server/error-overlay/html-template.d.ts +1 -1
  66. package/esm/src/server/dev-server/error-overlay/html-template.d.ts.map +1 -1
  67. package/esm/src/server/dev-server/error-overlay/html-template.js +131 -8
  68. package/esm/src/server/dev-server/error-overlay/index.d.ts +1 -1
  69. package/esm/src/server/dev-server/error-overlay/index.d.ts.map +1 -1
  70. package/esm/src/server/dev-server/error-overlay/index.js +1 -1
  71. package/esm/src/server/dev-server/error-overlay/overlay-renderer.d.ts +1 -1
  72. package/esm/src/server/dev-server/error-overlay/overlay-renderer.d.ts.map +1 -1
  73. package/esm/src/server/dev-server/error-overlay/overlay-renderer.js +2 -2
  74. package/esm/src/server/dev-server/request-handler.d.ts.map +1 -1
  75. package/esm/src/server/dev-server/request-handler.js +6 -2
  76. package/esm/src/server/services/rendering/ssr.service.d.ts.map +1 -1
  77. package/esm/src/server/services/rendering/ssr.service.js +9 -2
  78. package/esm/src/server/utils/error-html.d.ts.map +1 -1
  79. package/esm/src/server/utils/error-html.js +26 -6
  80. package/package.json +2 -1
  81. package/src/cli/commands/files/command-help.ts +40 -0
  82. package/src/cli/commands/files/command.ts +328 -0
  83. package/src/cli/commands/files/handler.ts +6 -0
  84. package/src/cli/commands/files/index.ts +19 -0
  85. package/src/cli/commands/knowledge/command-help.ts +40 -0
  86. package/src/cli/commands/knowledge/command.ts +513 -0
  87. package/src/cli/commands/knowledge/handler.ts +6 -0
  88. package/src/cli/commands/knowledge/index.ts +2 -0
  89. package/src/cli/commands/knowledge/parser-source.ts +415 -0
  90. package/src/cli/commands/uploads/command-help.ts +45 -0
  91. package/src/cli/commands/uploads/command.ts +465 -0
  92. package/src/cli/commands/uploads/handler.ts +6 -0
  93. package/src/cli/commands/uploads/index.ts +23 -0
  94. package/src/cli/help/command-definitions.ts +6 -0
  95. package/src/cli/router.ts +6 -0
  96. package/src/deno.js +1 -1
  97. package/src/src/errors/error-registry.ts +9 -0
  98. package/src/src/errors/index.ts +1 -0
  99. package/src/src/html/html-shell-generator.ts +9 -0
  100. package/src/src/platform/compat/media-types.ts +23 -0
  101. package/src/src/platform/index.ts +3 -0
  102. package/src/src/rendering/orchestrator/pipeline.ts +186 -172
  103. package/src/src/server/bootstrap.ts +6 -1
  104. package/src/src/server/dev-server/error-overlay/error-formatter.ts +21 -0
  105. package/src/src/server/dev-server/error-overlay/html-template.ts +139 -8
  106. package/src/src/server/dev-server/error-overlay/index.ts +1 -0
  107. package/src/src/server/dev-server/error-overlay/overlay-renderer.ts +2 -1
  108. package/src/src/server/dev-server/request-handler.ts +6 -2
  109. package/src/src/server/services/rendering/ssr.service.ts +9 -2
  110. package/src/src/server/utils/error-html.ts +29 -6
@@ -15,7 +15,7 @@ import {
15
15
  startRenderSession,
16
16
  } from "../../../transforms/mdx/esm-module-loader/module-fetcher/index.js";
17
17
  import { getErrorCollector } from "../../../observability/error-collector.js";
18
- import { ErrorOverlay } from "../../dev-server/error-overlay/index.js";
18
+ import { ErrorOverlay, parseErrorLocation } from "../../dev-server/error-overlay/index.js";
19
19
  import { ErrorPages } from "../../utils/error-html.js";
20
20
  import {
21
21
  HTTP_INTERNAL_SERVER_ERROR,
@@ -240,9 +240,16 @@ export class SSRService {
240
240
  slug,
241
241
  });
242
242
 
243
+ const sourceFile = (errorObj as Error & { sourceFile?: string }).sourceFile;
244
+ const location = sourceFile ? parseErrorLocation(errorObj, sourceFile) : {};
243
245
  return {
244
246
  status: HTTP_INTERNAL_SERVER_ERROR,
245
- html: ErrorOverlay.createHTML({ error: errorObj, type: "runtime" }),
247
+ html: ErrorOverlay.createHTML({
248
+ error: errorObj,
249
+ type: "runtime",
250
+ ...(sourceFile ? { file: sourceFile } : {}),
251
+ ...location,
252
+ }, ctx.projectSlug),
246
253
  isStreaming: false,
247
254
  cacheStrategy: "no-cache",
248
255
  error: errorObj,
@@ -1,3 +1,5 @@
1
+ import { escapeHTML } from "../../html/html-escape.js";
2
+
1
3
  interface ErrorHtmlOptions {
2
4
  statusCode: number;
3
5
  title: string;
@@ -19,13 +21,18 @@ export function generateErrorHtml(options: ErrorHtmlOptions): string {
19
21
  }
20
22
 
21
23
  function generateStyledErrorHtml(statusCode: number, title: string, message: string): string {
24
+ const errorMessage = title === "Not Found" ? `Page not found: ${message}` : message;
25
+
26
+ // 4xx = warning (routing/config issue), 5xx = error (something broke)
27
+ const errorType = statusCode >= 500 ? "error" : "warning";
28
+
22
29
  return `<!DOCTYPE html>
23
30
  <html lang="en">
24
31
  <head>
25
32
  <meta charset="utf-8">
26
33
  <meta name="viewport" content="width=device-width">
27
34
  <link rel="icon" type="image/png" href="https://cdn.veryfront.com/images/veryfront-favicon.png">
28
- <title>${statusCode} ${title} — Veryfront</title>
35
+ <title>${statusCode} ${escapeHTML(title)} — Veryfront</title>
29
36
  <style>
30
37
  :root {
31
38
  --bg: #ffffff;
@@ -74,9 +81,25 @@ function generateStyledErrorHtml(statusCode: number, title: string, message: str
74
81
  </head>
75
82
  <body>
76
83
  <div class="container">
77
- <h1 class="title">${title}</h1>
78
- <p class="message">${message}</p>
84
+ <h1 class="title">${escapeHTML(title)}</h1>
85
+ <p class="message">${escapeHTML(message)}</p>
79
86
  </div>
87
+ <script>
88
+ if (window.parent !== window) {
89
+ try {
90
+ window.parent.postMessage({
91
+ action: 'appUpdated',
92
+ isInitialLoad: true,
93
+ hasError: true,
94
+ url: window.location.href,
95
+ errors: [{
96
+ type: '${errorType}',
97
+ message: ${JSON.stringify(errorMessage).replace(/</g, "\\u003c")}
98
+ }]
99
+ }, '*');
100
+ } catch (e) { /* postMessage may fail in cross-origin iframes */ }
101
+ }
102
+ </script>
80
103
  </body>
81
104
  </html>`;
82
105
  }
@@ -94,11 +117,11 @@ function generateMinimalErrorHtml(
94
117
  <head>
95
118
  <meta charset="utf-8"/>
96
119
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
97
- <title>${statusCode} ${title}</title>
120
+ <title>${statusCode} ${escapeHTML(title)}</title>
98
121
  </head>
99
122
  <body>
100
- <h1>${statusCode} ${title}</h1>
101
- <p>${fullMessage}</p>
123
+ <h1>${statusCode} ${escapeHTML(title)}</h1>
124
+ <p>${escapeHTML(fullMessage)}</p>
102
125
  </body>
103
126
  </html>`;
104
127
  }