@sentry/wizard 3.20.5 → 3.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -2
- package/dist/package.json +1 -1
- package/dist/src/nextjs/nextjs-wizard.js +67 -7
- package/dist/src/nextjs/nextjs-wizard.js.map +1 -1
- package/dist/src/nextjs/templates.d.ts +5 -1
- package/dist/src/nextjs/templates.js +8 -3
- package/dist/src/nextjs/templates.js.map +1 -1
- package/dist/src/remix/codemods/express-server.d.ts +1 -2
- package/dist/src/remix/codemods/express-server.js +1 -26
- package/dist/src/remix/codemods/express-server.js.map +1 -1
- package/dist/src/remix/remix-wizard.js +26 -1
- package/dist/src/remix/remix-wizard.js.map +1 -1
- package/dist/src/remix/sdk-example.d.ts +17 -0
- package/dist/src/remix/sdk-example.js +101 -0
- package/dist/src/remix/sdk-example.js.map +1 -0
- package/dist/src/sveltekit/templates.js +1 -1
- package/dist/src/sveltekit/templates.js.map +1 -1
- package/package.json +1 -1
- package/src/nextjs/nextjs-wizard.ts +56 -5
- package/src/nextjs/templates.ts +24 -4
- package/src/remix/codemods/express-server.ts +0 -32
- package/src/remix/remix-wizard.ts +16 -0
- package/src/remix/sdk-example.ts +116 -0
- package/src/sveltekit/templates.ts +3 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
// @ts-ignore - clack is ESM and TS complains about that. It works though
|
|
4
|
+
import clack from '@clack/prompts';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Creates an example Remix page to test Sentry
|
|
8
|
+
*/
|
|
9
|
+
export async function createExamplePage(options: {
|
|
10
|
+
selfHosted: boolean;
|
|
11
|
+
orgSlug: string;
|
|
12
|
+
projectId: string;
|
|
13
|
+
url: string;
|
|
14
|
+
isTS: boolean;
|
|
15
|
+
}) {
|
|
16
|
+
const exampleRoutePath = `app/routes/sentry-example-page.${
|
|
17
|
+
options.isTS ? 'ts' : 'js'
|
|
18
|
+
}x`;
|
|
19
|
+
|
|
20
|
+
if (fs.existsSync(exampleRoutePath)) {
|
|
21
|
+
clack.log.warn(
|
|
22
|
+
`It seems like a sentry example page already exists (${path.basename(
|
|
23
|
+
exampleRoutePath,
|
|
24
|
+
)}). Skipping creation of example route.`,
|
|
25
|
+
);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
await fs.promises.writeFile(
|
|
30
|
+
exampleRoutePath,
|
|
31
|
+
getSentryExamplePageContents(options),
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
clack.log.info(`Created sentry example page at ${exampleRoutePath}.`);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function getSentryExamplePageContents(options: {
|
|
38
|
+
selfHosted: boolean;
|
|
39
|
+
orgSlug: string;
|
|
40
|
+
projectId: string;
|
|
41
|
+
url: string;
|
|
42
|
+
isTS?: boolean;
|
|
43
|
+
}) {
|
|
44
|
+
const issuesPageLink = options.selfHosted
|
|
45
|
+
? `${options.url}organizations/${options.orgSlug}/issues/?project=${options.projectId}`
|
|
46
|
+
: `https://${options.orgSlug}.sentry.io/issues/?project=${options.projectId}`;
|
|
47
|
+
|
|
48
|
+
return `
|
|
49
|
+
import * as Sentry from '@sentry/remix';
|
|
50
|
+
|
|
51
|
+
export default function SentryExamplePage() {
|
|
52
|
+
return (
|
|
53
|
+
<div>
|
|
54
|
+
<main
|
|
55
|
+
style={{
|
|
56
|
+
minHeight: "100vh",
|
|
57
|
+
display: "flex",
|
|
58
|
+
flexDirection: "column",
|
|
59
|
+
justifyContent: "center",
|
|
60
|
+
alignItems: "center",
|
|
61
|
+
}}
|
|
62
|
+
>
|
|
63
|
+
|
|
64
|
+
<h1 style={{ fontSize: "4rem", margin: "14px 0" }}>
|
|
65
|
+
{/* biome-ignore lint/a11y/noSvgWithoutTitle: <explanation> */}
|
|
66
|
+
<svg
|
|
67
|
+
style={{
|
|
68
|
+
height: "1em",
|
|
69
|
+
}}
|
|
70
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
71
|
+
viewBox="0 0 200 44"
|
|
72
|
+
>
|
|
73
|
+
<path
|
|
74
|
+
fill="currentColor"
|
|
75
|
+
d="M124.32,28.28,109.56,9.22h-3.68V34.77h3.73V15.19l15.18,19.58h3.26V9.22h-3.73ZM87.15,23.54h13.23V20.22H87.14V12.53h14.93V9.21H83.34V34.77h18.92V31.45H87.14ZM71.59,20.3h0C66.44,19.06,65,18.08,65,15.7c0-2.14,1.89-3.59,4.71-3.59a12.06,12.06,0,0,1,7.07,2.55l2-2.83a14.1,14.1,0,0,0-9-3c-5.06,0-8.59,3-8.59,7.27,0,4.6,3,6.19,8.46,7.52C74.51,24.74,76,25.78,76,28.11s-2,3.77-5.09,3.77a12.34,12.34,0,0,1-8.3-3.26l-2.25,2.69a15.94,15.94,0,0,0,10.42,3.85c5.48,0,9-2.95,9-7.51C79.75,23.79,77.47,21.72,71.59,20.3ZM195.7,9.22l-7.69,12-7.64-12h-4.46L186,24.67V34.78h3.84V24.55L200,9.22Zm-64.63,3.46h8.37v22.1h3.84V12.68h8.37V9.22H131.08ZM169.41,24.8c3.86-1.07,6-3.77,6-7.63,0-4.91-3.59-8-9.38-8H154.67V34.76h3.8V25.58h6.45l6.48,9.2h4.44l-7-9.82Zm-10.95-2.5V12.6h7.17c3.74,0,5.88,1.77,5.88,4.84s-2.29,4.86-5.84,4.86Z M29,2.26a4.67,4.67,0,0,0-8,0L14.42,13.53A32.21,32.21,0,0,1,32.17,40.19H27.55A27.68,27.68,0,0,0,12.09,17.47L6,28a15.92,15.92,0,0,1,9.23,12.17H4.62A.76.76,0,0,1,4,39.06l2.94-5a10.74,10.74,0,0,0-3.36-1.9l-2.91,5a4.54,4.54,0,0,0,1.69,6.24A4.66,4.66,0,0,0,4.62,44H19.15a19.4,19.4,0,0,0-8-17.31l2.31-4A23.87,23.87,0,0,1,23.76,44H36.07a35.88,35.88,0,0,0-16.41-31.8l4.67-8a.77.77,0,0,1,1.05-.27c.53.29,20.29,34.77,20.66,35.17a.76.76,0,0,1-.68,1.13H40.6q.09,1.91,0,3.81h4.78A4.59,4.59,0,0,0,50,39.43a4.49,4.49,0,0,0-.62-2.28Z"
|
|
76
|
+
/>
|
|
77
|
+
</svg>
|
|
78
|
+
</h1>
|
|
79
|
+
|
|
80
|
+
<p>Get started by sending us a sample error:</p>
|
|
81
|
+
|
|
82
|
+
<button
|
|
83
|
+
type="button"
|
|
84
|
+
style={{
|
|
85
|
+
padding: "12px",
|
|
86
|
+
cursor: "pointer",
|
|
87
|
+
backgroundColor: "#AD6CAA",
|
|
88
|
+
borderRadius: "4px",
|
|
89
|
+
border: "none",
|
|
90
|
+
color: "white",
|
|
91
|
+
fontSize: "14px",
|
|
92
|
+
margin: "18px",
|
|
93
|
+
}}
|
|
94
|
+
onClick={() => {
|
|
95
|
+
throw new Error("Sentry Example Frontend Error");
|
|
96
|
+
}}
|
|
97
|
+
>
|
|
98
|
+
Throw error!
|
|
99
|
+
</button>
|
|
100
|
+
|
|
101
|
+
<p>
|
|
102
|
+
Next, look for the error on the{" "}
|
|
103
|
+
<a href="${issuesPageLink}">Issues Page</a>.
|
|
104
|
+
</p>
|
|
105
|
+
<p style={{ marginTop: "24px" }}>
|
|
106
|
+
For more information, see{" "}
|
|
107
|
+
<a href="https://docs.sentry.io/platforms/javascript/guides/remix/">
|
|
108
|
+
https://docs.sentry.io/platforms/javascript/guides/remix/
|
|
109
|
+
</a>
|
|
110
|
+
</p>
|
|
111
|
+
</main>
|
|
112
|
+
</div>
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
`;
|
|
116
|
+
}
|
|
@@ -31,6 +31,9 @@ import * as Sentry from '@sentry/sveltekit';
|
|
|
31
31
|
Sentry.init({
|
|
32
32
|
dsn: '${dsn}',
|
|
33
33
|
tracesSampleRate: 1.0,
|
|
34
|
+
|
|
35
|
+
// uncomment the line below to enable Spotlight (https://spotlightjs.com)
|
|
36
|
+
// spotlight: import.meta.env.DEV,
|
|
34
37
|
});
|
|
35
38
|
|
|
36
39
|
// If you have custom handlers, make sure to place them after \`sentryHandle()\` in the \`sequence\` function.
|