@sentry/wizard 3.10.0 → 3.11.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.
Files changed (131) hide show
  1. package/CHANGELOG.md +47 -7
  2. package/dist/lib/Constants.d.ts +1 -0
  3. package/dist/lib/Constants.js +5 -0
  4. package/dist/lib/Constants.js.map +1 -1
  5. package/dist/lib/Steps/ChooseIntegration.js +8 -4
  6. package/dist/lib/Steps/ChooseIntegration.js.map +1 -1
  7. package/dist/lib/Steps/Integrations/Android.d.ts +9 -0
  8. package/dist/lib/Steps/Integrations/Android.js +86 -0
  9. package/dist/lib/Steps/Integrations/Android.js.map +1 -0
  10. package/dist/lib/Steps/Integrations/ReactNative.js +3 -3
  11. package/dist/lib/Steps/Integrations/ReactNative.js.map +1 -1
  12. package/dist/lib/Steps/PromptForParameters.js +36 -3
  13. package/dist/lib/Steps/PromptForParameters.js.map +1 -1
  14. package/dist/lib/Steps/SentryProjectSelector.js +1 -1
  15. package/dist/lib/Steps/SentryProjectSelector.js.map +1 -1
  16. package/dist/package.json +4 -3
  17. package/dist/src/android/android-wizard.d.ts +2 -0
  18. package/dist/src/android/android-wizard.js +217 -0
  19. package/dist/src/android/android-wizard.js.map +1 -0
  20. package/dist/src/android/code-tools.d.ts +39 -0
  21. package/dist/src/android/code-tools.js +161 -0
  22. package/dist/src/android/code-tools.js.map +1 -0
  23. package/dist/src/android/gradle.d.ts +62 -0
  24. package/dist/src/android/gradle.js +281 -0
  25. package/dist/src/android/gradle.js.map +1 -0
  26. package/dist/src/android/manifest.d.ts +57 -0
  27. package/dist/src/android/manifest.js +183 -0
  28. package/dist/src/android/manifest.js.map +1 -0
  29. package/dist/src/android/templates.d.ts +11 -0
  30. package/dist/src/android/templates.js +34 -0
  31. package/dist/src/android/templates.js.map +1 -0
  32. package/dist/src/apple/apple-wizard.js +123 -64
  33. package/dist/src/apple/apple-wizard.js.map +1 -1
  34. package/dist/src/apple/cocoapod.js +4 -3
  35. package/dist/src/apple/cocoapod.js.map +1 -1
  36. package/dist/src/apple/code-tools.d.ts +1 -1
  37. package/dist/src/apple/code-tools.js +43 -19
  38. package/dist/src/apple/code-tools.js.map +1 -1
  39. package/dist/src/apple/fastlane.d.ts +1 -1
  40. package/dist/src/apple/fastlane.js +12 -6
  41. package/dist/src/apple/fastlane.js.map +1 -1
  42. package/dist/src/apple/templates.d.ts +2 -2
  43. package/dist/src/apple/templates.js +4 -4
  44. package/dist/src/apple/templates.js.map +1 -1
  45. package/dist/src/apple/xcode-manager.d.ts +19 -3
  46. package/dist/src/apple/xcode-manager.js +126 -24
  47. package/dist/src/apple/xcode-manager.js.map +1 -1
  48. package/dist/src/nextjs/nextjs-wizard.js +49 -11
  49. package/dist/src/nextjs/nextjs-wizard.js.map +1 -1
  50. package/dist/src/nextjs/templates.d.ts +2 -0
  51. package/dist/src/nextjs/templates.js +6 -2
  52. package/dist/src/nextjs/templates.js.map +1 -1
  53. package/dist/src/remix/remix-wizard.js +10 -20
  54. package/dist/src/remix/remix-wizard.js.map +1 -1
  55. package/dist/src/sourcemaps/sourcemaps-wizard.js +26 -13
  56. package/dist/src/sourcemaps/sourcemaps-wizard.js.map +1 -1
  57. package/dist/src/sourcemaps/tools/nextjs.js +1 -1
  58. package/dist/src/sourcemaps/tools/nextjs.js.map +1 -1
  59. package/dist/src/sourcemaps/tools/sentry-cli.js +19 -16
  60. package/dist/src/sourcemaps/tools/sentry-cli.js.map +1 -1
  61. package/dist/src/sourcemaps/tools/vite.d.ts +2 -1
  62. package/dist/src/sourcemaps/tools/vite.js +99 -12
  63. package/dist/src/sourcemaps/tools/vite.js.map +1 -1
  64. package/dist/src/sourcemaps/utils/detect-tool.d.ts +1 -1
  65. package/dist/src/sourcemaps/utils/detect-tool.js.map +1 -1
  66. package/dist/src/sveltekit/sdk-setup.js +3 -3
  67. package/dist/src/sveltekit/sdk-setup.js.map +1 -1
  68. package/dist/src/sveltekit/sveltekit-wizard.js +34 -44
  69. package/dist/src/sveltekit/sveltekit-wizard.js.map +1 -1
  70. package/dist/src/telemetry.js +1 -0
  71. package/dist/src/telemetry.js.map +1 -1
  72. package/dist/src/utils/ast-utils.d.ts +2 -2
  73. package/dist/src/utils/ast-utils.js +7 -7
  74. package/dist/src/utils/ast-utils.js.map +1 -1
  75. package/dist/src/utils/clack-utils.d.ts +22 -28
  76. package/dist/src/utils/clack-utils.js +270 -264
  77. package/dist/src/utils/clack-utils.js.map +1 -1
  78. package/dist/src/utils/package-manager.d.ts +10 -0
  79. package/dist/{lib/Helper/PackageManager.js → src/utils/package-manager.js} +42 -74
  80. package/dist/src/utils/package-manager.js.map +1 -0
  81. package/dist/src/utils/release-registry.d.ts +1 -0
  82. package/dist/src/utils/release-registry.js +68 -0
  83. package/dist/src/utils/release-registry.js.map +1 -0
  84. package/dist/src/utils/sentrycli-utils.d.ts +4 -0
  85. package/dist/src/utils/sentrycli-utils.js +41 -0
  86. package/dist/src/utils/sentrycli-utils.js.map +1 -0
  87. package/dist/test/sourcemaps/tools/vite.test.d.ts +1 -0
  88. package/dist/test/sourcemaps/tools/vite.test.js +132 -0
  89. package/dist/test/sourcemaps/tools/vite.test.js.map +1 -0
  90. package/lib/Constants.ts +5 -0
  91. package/lib/Steps/ChooseIntegration.ts +7 -3
  92. package/lib/Steps/Integrations/Android.ts +23 -0
  93. package/lib/Steps/Integrations/ReactNative.ts +9 -3
  94. package/lib/Steps/PromptForParameters.ts +48 -3
  95. package/lib/Steps/SentryProjectSelector.ts +3 -1
  96. package/package.json +4 -3
  97. package/src/android/android-wizard.ts +196 -0
  98. package/src/android/code-tools.ts +156 -0
  99. package/src/android/gradle.ts +245 -0
  100. package/src/android/manifest.ts +180 -0
  101. package/src/android/templates.ts +88 -0
  102. package/src/apple/apple-wizard.ts +113 -35
  103. package/src/apple/cocoapod.ts +6 -3
  104. package/src/apple/code-tools.ts +46 -18
  105. package/src/apple/fastlane.ts +6 -12
  106. package/src/apple/templates.ts +2 -8
  107. package/src/apple/xcode-manager.ts +167 -25
  108. package/src/nextjs/nextjs-wizard.ts +72 -8
  109. package/src/nextjs/templates.ts +16 -2
  110. package/src/remix/remix-wizard.ts +10 -15
  111. package/src/sourcemaps/sourcemaps-wizard.ts +19 -5
  112. package/src/sourcemaps/tools/nextjs.ts +2 -2
  113. package/src/sourcemaps/tools/sentry-cli.ts +8 -7
  114. package/src/sourcemaps/tools/vite.ts +136 -6
  115. package/src/sourcemaps/utils/detect-tool.ts +2 -1
  116. package/src/sveltekit/sdk-setup.ts +4 -4
  117. package/src/sveltekit/sveltekit-wizard.ts +5 -14
  118. package/src/telemetry.ts +2 -0
  119. package/src/utils/ast-utils.ts +7 -5
  120. package/src/utils/clack-utils.ts +337 -283
  121. package/src/utils/package-manager.ts +61 -0
  122. package/src/utils/release-registry.ts +19 -0
  123. package/src/utils/sentrycli-utils.ts +22 -0
  124. package/test/sourcemaps/tools/vite.test.ts +149 -0
  125. package/dist/lib/Helper/PackageManager.d.ts +0 -22
  126. package/dist/lib/Helper/PackageManager.js.map +0 -1
  127. package/dist/src/utils/vendor/clack-custom-select.d.ts +0 -21
  128. package/dist/src/utils/vendor/clack-custom-select.js +0 -137
  129. package/dist/src/utils/vendor/clack-custom-select.js.map +0 -1
  130. package/lib/Helper/PackageManager.ts +0 -59
  131. package/src/utils/vendor/clack-custom-select.ts +0 -160
@@ -49,9 +49,9 @@ var sdk_example_1 = require("./sdk-example");
49
49
  var sdk_setup_1 = require("./sdk-setup");
50
50
  function runSvelteKitWizard(options) {
51
51
  return __awaiter(this, void 0, void 0, function () {
52
- var packageJson, _a, sentryUrl, selfHosted, _b, projects, apiKeys, selectedProject, svelteConfig, e_1, e_2;
53
- return __generator(this, function (_c) {
54
- switch (_c.label) {
52
+ var packageJson, _a, selectedProject, selfHosted, sentryUrl, authToken, svelteConfig, e_1, e_2;
53
+ return __generator(this, function (_b) {
54
+ switch (_b.label) {
55
55
  case 0:
56
56
  (0, clack_utils_1.printWelcome)({
57
57
  wizardName: 'Sentry SvelteKit Wizard',
@@ -59,41 +59,31 @@ function runSvelteKitWizard(options) {
59
59
  });
60
60
  return [4 /*yield*/, (0, clack_utils_1.confirmContinueEvenThoughNoGitRepo)()];
61
61
  case 1:
62
- _c.sent();
62
+ _b.sent();
63
63
  return [4 /*yield*/, (0, clack_utils_1.getPackageDotJson)()];
64
64
  case 2:
65
- packageJson = _c.sent();
65
+ packageJson = _b.sent();
66
66
  return [4 /*yield*/, (0, clack_utils_1.ensurePackageIsInstalled)(packageJson, '@sveltejs/kit', 'Sveltekit')];
67
67
  case 3:
68
- _c.sent();
69
- return [4 /*yield*/, (0, clack_utils_1.askForSelfHosted)(options.url)];
68
+ _b.sent();
69
+ return [4 /*yield*/, (0, clack_utils_1.getOrAskForProjectData)(options, 'javascript-sveltekit')];
70
70
  case 4:
71
- _a = _c.sent(), sentryUrl = _a.url, selfHosted = _a.selfHosted;
72
- return [4 /*yield*/, (0, clack_utils_1.askForWizardLogin)({
73
- promoCode: options.promoCode,
74
- url: sentryUrl,
75
- platform: 'javascript-sveltekit',
76
- })];
77
- case 5:
78
- _b = _c.sent(), projects = _b.projects, apiKeys = _b.apiKeys;
79
- return [4 /*yield*/, (0, clack_utils_1.askForProjectSelection)(projects)];
80
- case 6:
81
- selectedProject = _c.sent();
71
+ _a = _b.sent(), selectedProject = _a.selectedProject, selfHosted = _a.selfHosted, sentryUrl = _a.sentryUrl, authToken = _a.authToken;
82
72
  return [4 /*yield*/, (0, clack_utils_1.installPackage)({
83
73
  packageName: '@sentry/sveltekit',
84
74
  alreadyInstalled: (0, package_json_1.hasPackageInstalled)('@sentry/sveltekit', packageJson),
85
75
  })];
76
+ case 5:
77
+ _b.sent();
78
+ return [4 /*yield*/, (0, clack_utils_1.addSentryCliConfig)(authToken)];
79
+ case 6:
80
+ _b.sent();
81
+ return [4 /*yield*/, (0, sdk_setup_1.loadSvelteConfig)()];
86
82
  case 7:
87
- _c.sent();
88
- return [4 /*yield*/, (0, clack_utils_1.addSentryCliRc)(apiKeys.token)];
83
+ svelteConfig = _b.sent();
84
+ _b.label = 8;
89
85
  case 8:
90
- _c.sent();
91
- return [4 /*yield*/, (0, sdk_setup_1.loadSvelteConfig)()];
92
- case 9:
93
- svelteConfig = _c.sent();
94
- _c.label = 10;
95
- case 10:
96
- _c.trys.push([10, 12, , 14]);
86
+ _b.trys.push([8, 10, , 12]);
97
87
  return [4 /*yield*/, (0, sdk_setup_1.createOrMergeSvelteKitFiles)({
98
88
  dsn: selectedProject.keys[0].dsn.public,
99
89
  org: selectedProject.organization.slug,
@@ -101,11 +91,11 @@ function runSvelteKitWizard(options) {
101
91
  selfHosted: selfHosted,
102
92
  url: sentryUrl,
103
93
  }, svelteConfig)];
104
- case 11:
105
- _c.sent();
106
- return [3 /*break*/, 14];
107
- case 12:
108
- e_1 = _c.sent();
94
+ case 9:
95
+ _b.sent();
96
+ return [3 /*break*/, 12];
97
+ case 10:
98
+ e_1 = _b.sent();
109
99
  prompts_1.default.log.error('Error while setting up the SvelteKit SDK:');
110
100
  prompts_1.default.log.info(chalk_1.default.dim(typeof e_1 === 'object' && e_1 != null && 'toString' in e_1
111
101
  ? e_1.toString()
@@ -113,22 +103,22 @@ function runSvelteKitWizard(options) {
113
103
  ? e_1
114
104
  : 'Unknown error'));
115
105
  return [4 /*yield*/, (0, clack_utils_1.abort)('Exiting Wizard')];
116
- case 13:
117
- _c.sent();
106
+ case 11:
107
+ _b.sent();
118
108
  return [2 /*return*/];
119
- case 14:
120
- _c.trys.push([14, 16, , 18]);
109
+ case 12:
110
+ _b.trys.push([12, 14, , 16]);
121
111
  return [4 /*yield*/, (0, sdk_example_1.createExamplePage)(svelteConfig, {
122
112
  selfHosted: selfHosted,
123
113
  url: sentryUrl,
124
114
  orgSlug: selectedProject.organization.slug,
125
115
  projectId: selectedProject.id,
126
116
  })];
127
- case 15:
128
- _c.sent();
129
- return [3 /*break*/, 18];
130
- case 16:
131
- e_2 = _c.sent();
117
+ case 13:
118
+ _b.sent();
119
+ return [3 /*break*/, 16];
120
+ case 14:
121
+ e_2 = _b.sent();
132
122
  prompts_1.default.log.error('Error while creating an example page to test Sentry:');
133
123
  prompts_1.default.log.info(chalk_1.default.dim(typeof e_2 === 'object' && e_2 != null && 'toString' in e_2
134
124
  ? e_2.toString()
@@ -136,10 +126,10 @@ function runSvelteKitWizard(options) {
136
126
  ? e_2
137
127
  : 'Unknown error'));
138
128
  return [4 /*yield*/, (0, clack_utils_1.abort)('Exiting Wizard')];
139
- case 17:
140
- _c.sent();
129
+ case 15:
130
+ _b.sent();
141
131
  return [2 /*return*/];
142
- case 18:
132
+ case 16:
143
133
  prompts_1.default.outro("\n".concat(chalk_1.default.green('Successfully installed the Sentry SvelteKit SDK!'), "\n\n").concat(chalk_1.default.cyan('You can validate your setup by starting your dev environment (`npm run dev`) and visiting "/sentry-example".'), "\n\nCheck out the SDK documentation for further configuration:\nhttps://docs.sentry.io/platforms/javascript/guides/sveltekit/\n "));
144
134
  return [2 /*return*/];
145
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sveltekit-wizard.js","sourceRoot":"","sources":["../../../src/sveltekit/sveltekit-wizard.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-ignore - clack is ESM and TS complains about that. It works though\nimport clack from '@clack/prompts';\nimport chalk from 'chalk';\n\nimport {\n abort,\n addSentryCliRc,\n askForProjectSelection,\n askForSelfHosted,\n askForWizardLogin,\n confirmContinueEvenThoughNoGitRepo,\n ensurePackageIsInstalled,\n getPackageDotJson,\n installPackage,\n printWelcome,\n} from '../utils/clack-utils';\nimport { hasPackageInstalled } from '../utils/package-json';\nimport { WizardOptions } from '../utils/types';\nimport { createExamplePage } from './sdk-example';\nimport { createOrMergeSvelteKitFiles, loadSvelteConfig } from './sdk-setup';\n\nexport async function runSvelteKitWizard(\n options: WizardOptions,\n): Promise<void> {\n printWelcome({\n wizardName: 'Sentry SvelteKit Wizard',\n promoCode: options.promoCode,\n });\n\n await confirmContinueEvenThoughNoGitRepo();\n\n const packageJson = await getPackageDotJson();\n await ensurePackageIsInstalled(packageJson, '@sveltejs/kit', 'Sveltekit');\n\n const { url: sentryUrl, selfHosted } = await askForSelfHosted(options.url);\n\n const { projects, apiKeys } = await askForWizardLogin({\n promoCode: options.promoCode,\n url: sentryUrl,\n platform: 'javascript-sveltekit',\n });\n\n const selectedProject = await askForProjectSelection(projects);\n\n await installPackage({\n packageName: '@sentry/sveltekit',\n alreadyInstalled: hasPackageInstalled('@sentry/sveltekit', packageJson),\n });\n\n await addSentryCliRc(apiKeys.token);\n\n const svelteConfig = await loadSvelteConfig();\n\n try {\n await createOrMergeSvelteKitFiles(\n {\n dsn: selectedProject.keys[0].dsn.public,\n org: selectedProject.organization.slug,\n project: selectedProject.slug,\n selfHosted,\n url: sentryUrl,\n },\n svelteConfig,\n );\n } catch (e: unknown) {\n clack.log.error('Error while setting up the SvelteKit SDK:');\n clack.log.info(\n chalk.dim(\n typeof e === 'object' && e != null && 'toString' in e\n ? e.toString()\n : typeof e === 'string'\n ? e\n : 'Unknown error',\n ),\n );\n await abort('Exiting Wizard');\n return;\n }\n\n try {\n await createExamplePage(svelteConfig, {\n selfHosted,\n url: sentryUrl,\n orgSlug: selectedProject.organization.slug,\n projectId: selectedProject.id,\n });\n } catch (e: unknown) {\n clack.log.error('Error while creating an example page to test Sentry:');\n clack.log.info(\n chalk.dim(\n typeof e === 'object' && e != null && 'toString' in e\n ? e.toString()\n : typeof e === 'string'\n ? e\n : 'Unknown error',\n ),\n );\n await abort('Exiting Wizard');\n return;\n }\n\n clack.outro(`\n${chalk.green('Successfully installed the Sentry SvelteKit SDK!')}\n\n${chalk.cyan(\n 'You can validate your setup by starting your dev environment (`npm run dev`) and visiting \"/sentry-example\".',\n)}\n\nCheck out the SDK documentation for further configuration:\nhttps://docs.sentry.io/platforms/javascript/guides/sveltekit/\n `);\n}\n"]}
1
+ {"version":3,"file":"sveltekit-wizard.js","sourceRoot":"","sources":["../../../src/sveltekit/sveltekit-wizard.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-ignore - clack is ESM and TS complains about that. It works though\nimport clack from '@clack/prompts';\nimport chalk from 'chalk';\n\nimport {\n abort,\n addSentryCliConfig,\n confirmContinueEvenThoughNoGitRepo,\n ensurePackageIsInstalled,\n getOrAskForProjectData,\n getPackageDotJson,\n installPackage,\n printWelcome,\n} from '../utils/clack-utils';\nimport { hasPackageInstalled } from '../utils/package-json';\nimport { WizardOptions } from '../utils/types';\nimport { createExamplePage } from './sdk-example';\nimport { createOrMergeSvelteKitFiles, loadSvelteConfig } from './sdk-setup';\n\nexport async function runSvelteKitWizard(\n options: WizardOptions,\n): Promise<void> {\n printWelcome({\n wizardName: 'Sentry SvelteKit Wizard',\n promoCode: options.promoCode,\n });\n\n await confirmContinueEvenThoughNoGitRepo();\n\n const packageJson = await getPackageDotJson();\n await ensurePackageIsInstalled(packageJson, '@sveltejs/kit', 'Sveltekit');\n\n const { selectedProject, selfHosted, sentryUrl, authToken } =\n await getOrAskForProjectData(options, 'javascript-sveltekit');\n\n await installPackage({\n packageName: '@sentry/sveltekit',\n alreadyInstalled: hasPackageInstalled('@sentry/sveltekit', packageJson),\n });\n\n await addSentryCliConfig(authToken);\n\n const svelteConfig = await loadSvelteConfig();\n\n try {\n await createOrMergeSvelteKitFiles(\n {\n dsn: selectedProject.keys[0].dsn.public,\n org: selectedProject.organization.slug,\n project: selectedProject.slug,\n selfHosted,\n url: sentryUrl,\n },\n svelteConfig,\n );\n } catch (e: unknown) {\n clack.log.error('Error while setting up the SvelteKit SDK:');\n clack.log.info(\n chalk.dim(\n typeof e === 'object' && e != null && 'toString' in e\n ? e.toString()\n : typeof e === 'string'\n ? e\n : 'Unknown error',\n ),\n );\n await abort('Exiting Wizard');\n return;\n }\n\n try {\n await createExamplePage(svelteConfig, {\n selfHosted,\n url: sentryUrl,\n orgSlug: selectedProject.organization.slug,\n projectId: selectedProject.id,\n });\n } catch (e: unknown) {\n clack.log.error('Error while creating an example page to test Sentry:');\n clack.log.info(\n chalk.dim(\n typeof e === 'object' && e != null && 'toString' in e\n ? e.toString()\n : typeof e === 'string'\n ? e\n : 'Unknown error',\n ),\n );\n await abort('Exiting Wizard');\n return;\n }\n\n clack.outro(`\n${chalk.green('Successfully installed the Sentry SvelteKit SDK!')}\n\n${chalk.cyan(\n 'You can validate your setup by starting your dev environment (`npm run dev`) and visiting \"/sentry-example\".',\n)}\n\nCheck out the SDK documentation for further configuration:\nhttps://docs.sentry.io/platforms/javascript/guides/sveltekit/\n `);\n}\n"]}
@@ -86,6 +86,7 @@ function createSentryInstance(enabled, integration) {
86
86
  var client = new node_1.NodeClient({
87
87
  dsn: 'https://8871d3ff64814ed8960c96d1fcc98a27@o1.ingest.sentry.io/4505425820712960',
88
88
  enabled: enabled,
89
+ environment: "production-".concat(integration),
89
90
  tracesSampleRate: 1,
90
91
  sampleRate: 1,
91
92
  release: package_json_1.default.version,
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n defaultStackParser,\n Hub,\n Integrations,\n makeMain,\n makeNodeTransport,\n NodeClient,\n runWithAsyncContext,\n trace,\n} from '@sentry/node';\nimport packageJson from '../package.json';\n\nexport async function withTelemetry<F>(\n options: {\n enabled: boolean;\n integration: string;\n },\n callback: () => F | Promise<F>,\n): Promise<F> {\n const { sentryHub, sentryClient } = createSentryInstance(\n options.enabled,\n options.integration,\n );\n\n makeMain(sentryHub);\n\n const transaction = sentryHub.startTransaction({\n name: 'sentry-wizard-execution',\n status: 'ok',\n op: 'wizard.flow',\n });\n sentryHub.getScope().setSpan(transaction);\n const sentrySession = sentryHub.startSession();\n sentryHub.captureSession();\n\n try {\n return await runWithAsyncContext(() => callback());\n } catch (e) {\n sentryHub.captureException('Error during wizard execution.');\n transaction.setStatus('internal_error');\n sentrySession.status = 'crashed';\n throw e;\n } finally {\n transaction.finish();\n sentryHub.endSession();\n await sentryClient.flush(3000);\n }\n}\n\nfunction createSentryInstance(enabled: boolean, integration: string) {\n const client = new NodeClient({\n dsn: 'https://8871d3ff64814ed8960c96d1fcc98a27@o1.ingest.sentry.io/4505425820712960',\n enabled: enabled,\n\n tracesSampleRate: 1,\n sampleRate: 1,\n\n release: packageJson.version,\n integrations: [new Integrations.Http()],\n tracePropagationTargets: [/^https:\\/\\/sentry.io\\//],\n\n stackParser: defaultStackParser,\n\n beforeSendTransaction: (event) => {\n delete event.server_name; // Server name might contain PII\n return event;\n },\n\n beforeSend: (event) => {\n event.exception?.values?.forEach((exception) => {\n delete exception.stacktrace;\n });\n\n delete event.server_name; // Server name might contain PII\n return event;\n },\n\n transport: makeNodeTransport,\n\n debug: true,\n });\n\n const hub = new Hub(client);\n\n hub.setTag('integration', integration);\n hub.setTag('node', process.version);\n hub.setTag('platform', process.platform);\n\n return { sentryHub: hub, sentryClient: client };\n}\n\nexport function traceStep<T>(step: string, callback: () => T): T {\n return trace({ name: step, op: 'wizard.step' }, () => callback());\n}\n"]}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n defaultStackParser,\n Hub,\n Integrations,\n makeMain,\n makeNodeTransport,\n NodeClient,\n runWithAsyncContext,\n trace,\n} from '@sentry/node';\nimport packageJson from '../package.json';\n\nexport async function withTelemetry<F>(\n options: {\n enabled: boolean;\n integration: string;\n },\n callback: () => F | Promise<F>,\n): Promise<F> {\n const { sentryHub, sentryClient } = createSentryInstance(\n options.enabled,\n options.integration,\n );\n\n makeMain(sentryHub);\n\n const transaction = sentryHub.startTransaction({\n name: 'sentry-wizard-execution',\n status: 'ok',\n op: 'wizard.flow',\n });\n sentryHub.getScope().setSpan(transaction);\n const sentrySession = sentryHub.startSession();\n sentryHub.captureSession();\n\n try {\n return await runWithAsyncContext(() => callback());\n } catch (e) {\n sentryHub.captureException('Error during wizard execution.');\n transaction.setStatus('internal_error');\n sentrySession.status = 'crashed';\n throw e;\n } finally {\n transaction.finish();\n sentryHub.endSession();\n await sentryClient.flush(3000);\n }\n}\n\nfunction createSentryInstance(enabled: boolean, integration: string) {\n const client = new NodeClient({\n dsn: 'https://8871d3ff64814ed8960c96d1fcc98a27@o1.ingest.sentry.io/4505425820712960',\n enabled: enabled,\n\n environment: `production-${integration}`,\n\n tracesSampleRate: 1,\n sampleRate: 1,\n\n release: packageJson.version,\n integrations: [new Integrations.Http()],\n tracePropagationTargets: [/^https:\\/\\/sentry.io\\//],\n\n stackParser: defaultStackParser,\n\n beforeSendTransaction: (event) => {\n delete event.server_name; // Server name might contain PII\n return event;\n },\n\n beforeSend: (event) => {\n event.exception?.values?.forEach((exception) => {\n delete exception.stacktrace;\n });\n\n delete event.server_name; // Server name might contain PII\n return event;\n },\n\n transport: makeNodeTransport,\n\n debug: true,\n });\n\n const hub = new Hub(client);\n\n hub.setTag('integration', integration);\n hub.setTag('node', process.version);\n hub.setTag('platform', process.platform);\n\n return { sentryHub: hub, sentryClient: client };\n}\n\nexport function traceStep<T>(step: string, callback: () => T): T {\n return trace({ name: step, op: 'wizard.step' }, () => callback());\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import { ProxifiedModule } from 'magicast';
2
2
  /**
3
- * Checks if a JS/TS file where we don't know its concrete file type yet exists
3
+ * Checks if a file where we don't know its concrete file type yet exists
4
4
  * and returns the full path to the file with the correct file type.
5
5
  */
6
- export declare function findScriptFile(hooksFile: string): string | undefined;
6
+ export declare function findFile(filePath: string, fileTypes?: string[]): string | undefined;
7
7
  /** Checks if a Sentry package is already mentioned in the file */
8
8
  export declare function hasSentryContent(mod: ProxifiedModule<object>): boolean;
@@ -23,19 +23,19 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.hasSentryContent = exports.findScriptFile = void 0;
26
+ exports.hasSentryContent = exports.findFile = void 0;
27
27
  var fs = __importStar(require("fs"));
28
28
  /**
29
- * Checks if a JS/TS file where we don't know its concrete file type yet exists
29
+ * Checks if a file where we don't know its concrete file type yet exists
30
30
  * and returns the full path to the file with the correct file type.
31
31
  */
32
- function findScriptFile(hooksFile) {
33
- var possibleFileTypes = ['.js', '.ts', '.mjs'];
34
- return possibleFileTypes
35
- .map(function (type) { return "".concat(hooksFile).concat(type); })
32
+ function findFile(filePath, fileTypes) {
33
+ if (fileTypes === void 0) { fileTypes = ['.js', '.ts', '.mjs']; }
34
+ return fileTypes
35
+ .map(function (type) { return "".concat(filePath).concat(type); })
36
36
  .find(function (file) { return fs.existsSync(file); });
37
37
  }
38
- exports.findScriptFile = findScriptFile;
38
+ exports.findFile = findFile;
39
39
  /** Checks if a Sentry package is already mentioned in the file */
40
40
  function hasSentryContent(mod) {
41
41
  var imports = mod.imports.$items.map(function (i) { return i.from; });
@@ -1 +1 @@
1
- {"version":3,"file":"ast-utils.js","sourceRoot":"","sources":["../../../src/utils/ast-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyB;AAIzB;;;GAGG;AACH,SAAgB,cAAc,CAAC,SAAiB;IAC9C,IAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,iBAAiB;SACrB,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,UAAG,SAAS,SAAG,IAAI,CAAE,EAArB,CAAqB,CAAC;SACpC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAnB,CAAmB,CAAC,CAAC;AACzC,CAAC;AALD,wCAKC;AAED,kEAAkE;AAClE,SAAgB,gBAAgB,CAAC,GAA4B;IAC3D,IAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;IACtD,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAxB,CAAwB,CAAC,CAAC;AACzD,CAAC;AAHD,4CAGC","sourcesContent":["import * as fs from 'fs';\n// @ts-ignore - magicast is ESM and TS complains about that. It works though\nimport { ProxifiedModule } from 'magicast';\n\n/**\n * Checks if a JS/TS file where we don't know its concrete file type yet exists\n * and returns the full path to the file with the correct file type.\n */\nexport function findScriptFile(hooksFile: string): string | undefined {\n const possibleFileTypes = ['.js', '.ts', '.mjs'];\n return possibleFileTypes\n .map((type) => `${hooksFile}${type}`)\n .find((file) => fs.existsSync(file));\n}\n\n/** Checks if a Sentry package is already mentioned in the file */\nexport function hasSentryContent(mod: ProxifiedModule<object>): boolean {\n const imports = mod.imports.$items.map((i) => i.from);\n return !!imports.find((i) => i.startsWith('@sentry/'));\n}\n"]}
1
+ {"version":3,"file":"ast-utils.js","sourceRoot":"","sources":["../../../src/utils/ast-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyB;AAIzB;;;GAGG;AACH,SAAgB,QAAQ,CACtB,QAAgB,EAChB,SAA4C;IAA5C,0BAAA,EAAA,aAAuB,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;IAE5C,OAAO,SAAS;SACb,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,UAAG,QAAQ,SAAG,IAAI,CAAE,EAApB,CAAoB,CAAC;SACnC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAnB,CAAmB,CAAC,CAAC;AACzC,CAAC;AAPD,4BAOC;AAED,kEAAkE;AAClE,SAAgB,gBAAgB,CAAC,GAA4B;IAC3D,IAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;IACtD,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAxB,CAAwB,CAAC,CAAC;AACzD,CAAC;AAHD,4CAGC","sourcesContent":["import * as fs from 'fs';\n// @ts-ignore - magicast is ESM and TS complains about that. It works though\nimport { ProxifiedModule } from 'magicast';\n\n/**\n * Checks if a file where we don't know its concrete file type yet exists\n * and returns the full path to the file with the correct file type.\n */\nexport function findFile(\n filePath: string,\n fileTypes: string[] = ['.js', '.ts', '.mjs'],\n): string | undefined {\n return fileTypes\n .map((type) => `${filePath}${type}`)\n .find((file) => fs.existsSync(file));\n}\n\n/** Checks if a Sentry package is already mentioned in the file */\nexport function hasSentryContent(mod: ProxifiedModule<object>): boolean {\n const imports = mod.imports.$items.map((i) => i.from);\n return !!imports.find((i) => i.startsWith('@sentry/'));\n}\n"]}
@@ -2,12 +2,16 @@ import { PackageDotJson } from './package-json';
2
2
  import { SentryProjectData, WizardOptions } from './types';
3
3
  export declare const SENTRY_DOT_ENV_FILE = ".env.sentry-build-plugin";
4
4
  export declare const SENTRY_CLI_RC_FILE = ".sentryclirc";
5
- interface WizardProjectData {
6
- apiKeys: {
7
- token: string;
8
- };
9
- projects: SentryProjectData[];
5
+ export declare const SENTRY_PROPERTIES_FILE = "sentry.properties";
6
+ export interface CliSetupConfig {
7
+ filename: string;
8
+ name: string;
9
+ likelyAlreadyHasAuthToken(contents: string): boolean;
10
+ tokenContent(authToken: string): string;
11
+ likelyAlreadyHasOrgAndProject(contents: string): boolean;
12
+ orgAndProjContent(org: string, project: string): string;
10
13
  }
14
+ export declare const sourceMapsCliSetupConfig: CliSetupConfig;
11
15
  export declare function abort(message?: string, status?: number): Promise<never>;
12
16
  export declare function abortIfCancelled<T>(input: T | Promise<T>): Promise<Exclude<T, symbol>>;
13
17
  export declare function printWelcome(options: {
@@ -18,44 +22,34 @@ export declare function printWelcome(options: {
18
22
  }): void;
19
23
  export declare function confirmContinueEvenThoughNoGitRepo(): Promise<void>;
20
24
  export declare function askToInstallSentryCLI(): Promise<boolean>;
21
- export declare function askForWizardLogin(options: {
22
- url: string;
23
- promoCode?: string;
24
- platform?: 'javascript-nextjs' | 'javascript-remix' | 'javascript-sveltekit' | 'apple-ios';
25
- }): Promise<WizardProjectData>;
26
25
  export declare function askForItemSelection(items: string[], message: string): Promise<{
27
26
  value: string;
28
27
  index: number;
29
28
  }>;
30
- export declare function askForProjectSelection(projects: SentryProjectData[]): Promise<SentryProjectData>;
31
29
  export declare function installPackage({ packageName, alreadyInstalled, askBeforeUpdating, }: {
32
30
  packageName: string;
33
31
  alreadyInstalled: boolean;
34
32
  askBeforeUpdating?: boolean;
35
33
  }): Promise<void>;
36
- /**
37
- * Asks users if they are using SaaS or self-hosted Sentry and returns the validated URL.
38
- *
39
- * If users started the wizard with a --url arg, that URL is used as the default and we skip
40
- * the self-hosted question. However, the passed url is still validated and in case it's
41
- * invalid, users are asked to enter a new one until it is valid.
42
- *
43
- * @param urlFromArgs the url passed via the --url arg
44
- */
45
- export declare function askForSelfHosted(urlFromArgs?: string): Promise<{
46
- url: string;
47
- selfHosted: boolean;
48
- }>;
49
- export declare function addSentryCliRc(authToken: string, orgSlug?: string, projectSlug?: string): Promise<void>;
34
+ export declare function addSentryCliConfig(authToken: string, setupConfig?: CliSetupConfig, orgSlug?: string, projectSlug?: string): Promise<void>;
50
35
  export declare function addDotEnvSentryBuildPluginFile(authToken: string): Promise<void>;
51
36
  export declare function ensurePackageIsInstalled(packageJson: PackageDotJson, packageId: string, packageName: string): Promise<void>;
52
37
  export declare function getPackageDotJson(): Promise<PackageDotJson>;
53
- export declare function detectPackageManager(): 'yarn' | 'npm' | 'pnpm' | undefined;
54
38
  export declare function isUsingTypeScript(): boolean;
55
- export declare function getOrAskForProjectData(options: WizardOptions): Promise<{
39
+ /**
40
+ * Checks if we already got project data from a previous wizard invocation.
41
+ * If yes, this data is returned.
42
+ * Otherwise, we start the login flow and ask the user to select a project.
43
+ *
44
+ * Use this function to get project data for the wizard.
45
+ *
46
+ * @param options wizard options
47
+ * @param platform the platform of the wizard
48
+ * @returns project data (org, project, token, url)
49
+ */
50
+ export declare function getOrAskForProjectData(options: WizardOptions, platform?: 'javascript-nextjs' | 'javascript-remix' | 'javascript-sveltekit' | 'apple-ios' | 'android'): Promise<{
56
51
  sentryUrl: string;
57
52
  selfHosted: boolean;
58
53
  selectedProject: SentryProjectData;
59
54
  authToken: string;
60
55
  }>;
61
- export {};