@sentry/wizard
Version:
Sentry wizard helping you to configure your project
173 lines • 6.26 kB
JavaScript
#!/usr/bin/env node
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const semver_1 = require("semver");
const Logging_1 = require("./lib/Helper/Logging");
const yargs_1 = __importDefault(require("yargs"));
const helpers_1 = require("yargs/helpers");
const NODE_VERSION_RANGE = '>=18.20.0';
// Have to run this above the other imports because they are importing clack that
// has the problematic imports.
if (!(0, semver_1.satisfies)(process.version, NODE_VERSION_RANGE)) {
(0, Logging_1.red)(`Sentry wizard requires Node.js ${NODE_VERSION_RANGE}. You are using Node.js ${process.version}. Please upgrade your Node.js version.`);
process.exit(1);
}
const Constants_1 = require("./lib/Constants");
const run_1 = require("./src/run");
const version_1 = require("./src/version");
__exportStar(require("./lib/Setup"), exports);
const PRESELECTED_PROJECT_OPTIONS = {
'preSelectedProject.authToken': {
describe: 'Preselected project auth token',
hidden: true,
},
'preSelectedProject.selfHosted': {
describe: 'Preselected project is self-hosted',
hidden: true,
},
'preSelectedProject.dsn': {
describe: 'Preselected project DSN',
hidden: true,
},
'preSelectedProject.id': {
describe: 'Preselected project id',
hidden: true,
},
'preSelectedProject.projectSlug': {
describe: 'Preselected project slug',
hidden: true,
},
'preSelectedProject.projectName': {
describe: 'Preselected project name',
hidden: true,
},
'preSelectedProject.orgId': {
describe: 'Preselected organization id',
hidden: true,
},
'preSelectedProject.orgName': {
describe: 'Preselected organization name',
hidden: true,
},
'preSelectedProject.orgSlug': {
describe: 'Preselected organization slug',
hidden: true,
},
};
const xcodeProjectDirOption = {
default: undefined,
describe: 'Path to the project containing the Xcode project file. Only applies to the Apple wizard.',
type: 'string',
// This is a hidden option because it is used as an internal option
hidden: true,
};
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
const argv = (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv), process.cwd())
.options({
debug: {
default: false,
describe: 'Enable verbose logging\nenv: SENTRY_WIZARD_DEBUG',
type: 'boolean',
},
uninstall: {
default: false,
describe: 'Revert project setup process\nenv: SENTRY_WIZARD_UNINSTALL',
type: 'boolean',
},
'skip-connect': {
default: false,
describe: 'Skips the connection to the server\nenv: SENTRY_WIZARD_SKIP_CONNECT',
type: 'boolean',
},
quiet: {
default: false,
describe: 'Do not fallback to prompting user asking questions\nenv: SENTRY_WIZARD_QUIET',
type: 'boolean',
},
i: {
alias: 'integration',
choices: Object.keys(Constants_1.Integration),
describe: 'Choose the integration to setup\nenv: SENTRY_WIZARD_INTEGRATION',
},
p: {
alias: 'platform',
choices: Object.keys(Constants_1.Platform),
describe: 'Choose platform(s)\nenv: SENTRY_WIZARD_PLATFORM',
type: 'array',
},
u: {
alias: 'url',
describe: 'The url to your Sentry installation\nenv: SENTRY_WIZARD_URL',
},
project: {
type: 'string',
describe: 'The Sentry project slug to use',
defaultDescription: 'Select project during setup',
default: undefined,
},
org: {
type: 'string',
describe: 'The Sentry org slug to use',
defaultDescription: 'Select org during setup',
default: undefined,
},
saas: {
default: false,
describe: 'Skip the self-hosted or SaaS URL selection process',
defaultDescription: 'Select self-hosted or SaaS during setup',
type: 'boolean',
},
s: {
alias: 'signup',
default: false,
describe: 'Redirect to signup page if not logged in',
type: 'boolean',
},
'disable-telemetry': {
default: false,
describe: "Don't send telemetry data to Sentry",
type: 'boolean',
},
'promo-code': {
alias: 'promo-code',
describe: 'A promo code that will be applied during signup',
type: 'string',
},
'force-install': {
default: false,
describe: 'Force install the SDK NPM package',
type: 'boolean',
},
'ignore-git-changes': {
default: false,
describe: 'Ignore git changes in the project',
type: 'boolean',
},
'xcode-project-dir': xcodeProjectDirOption,
...PRESELECTED_PROJECT_OPTIONS,
})
// This prevents `yargs` from trying to read the local package.json
// as it's not available in the Node Single Executable Binary artifacts versions
.version(version_1.WIZARD_VERSION).argv;
// @ts-expect-error - for some reason TS doesn't recognize the aliases as valid properties
// meaning it only knows e.g. u but not url. Maybe a bug in this old version of yargs?
// Can't upgrade yargs though without dropping support for Node 14.
void (0, run_1.run)(argv);
//# sourceMappingURL=bin.js.map