@sentry/wizard 1.4.0 → 1.4.1
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
CHANGED
|
@@ -62,7 +62,7 @@ var PromptForParameters = /** @class */ (function (_super) {
|
|
|
62
62
|
}
|
|
63
63
|
PromptForParameters.prototype.emit = function (answers) {
|
|
64
64
|
return __awaiter(this, void 0, void 0, function () {
|
|
65
|
-
var url, organization, project, dsn, auth;
|
|
65
|
+
var url, organization, project, dsnKeyUrl, dsn, auth;
|
|
66
66
|
var _this = this;
|
|
67
67
|
return __generator(this, function (_a) {
|
|
68
68
|
switch (_a.label) {
|
|
@@ -109,6 +109,7 @@ var PromptForParameters = /** @class */ (function (_super) {
|
|
|
109
109
|
case 3:
|
|
110
110
|
project = _a.sent();
|
|
111
111
|
url = this._getFullUrl(answers, organization.slug, project.slug);
|
|
112
|
+
dsnKeyUrl = this._getDSNKeyUrl(answers, project.slug);
|
|
112
113
|
return [4 /*yield*/, inquirer_1.prompt([
|
|
113
114
|
{
|
|
114
115
|
message: 'DSN:',
|
|
@@ -118,7 +119,7 @@ var PromptForParameters = /** @class */ (function (_super) {
|
|
|
118
119
|
validate: this._validateDSN,
|
|
119
120
|
when: this._shouldAsk(answers, 'config.dsn.secret', function () {
|
|
120
121
|
Logging_1.dim('Please copy/paste your DSN');
|
|
121
|
-
Logging_1.dim("It can be found here: " +
|
|
122
|
+
Logging_1.dim("It can be found here: " + dsnKeyUrl);
|
|
122
123
|
}),
|
|
123
124
|
},
|
|
124
125
|
])];
|
|
@@ -158,6 +159,11 @@ var PromptForParameters = /** @class */ (function (_super) {
|
|
|
158
159
|
var projSlug = _.get(answers, 'config.project.slug', projectSlug || 'project_slug');
|
|
159
160
|
return "" + baseUrl + orgSlug + "/" + projSlug;
|
|
160
161
|
};
|
|
162
|
+
PromptForParameters.prototype._getDSNKeyUrl = function (answers, projectSlug) {
|
|
163
|
+
var baseUrl = this._argv.url;
|
|
164
|
+
var projSlug = _.get(answers, 'config.project.slug', projectSlug || 'project_slug');
|
|
165
|
+
return baseUrl + "settings/projects/" + projSlug + "/keys";
|
|
166
|
+
};
|
|
161
167
|
PromptForParameters.prototype._shouldAsk = function (answers, configKey, preHook) {
|
|
162
168
|
var shouldAsk = _.get(answers, configKey, null) === null;
|
|
163
169
|
if (shouldAsk && preHook) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromptForParameters.js","sourceRoot":"","sources":["../../../lib/Steps/PromptForParameters.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAA2C;AAC3C,0BAA4B;AAE5B,6CAAwC;AACxC,2CAAyD;AACzD,uCAAsC;AAEtC;IAAyC,uCAAQ;IAAjD;;
|
|
1
|
+
{"version":3,"file":"PromptForParameters.js","sourceRoot":"","sources":["../../../lib/Steps/PromptForParameters.ts"],"names":[],"mappings":"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","sourcesContent":["import { Answers, prompt } from 'inquirer';\nimport * as _ from 'lodash';\n\nimport { dim } from '../Helper/Logging';\nimport { getCurrentIntegration } from '../Helper/Wizard';\nimport { BaseStep } from './BaseStep';\n\nexport class PromptForParameters extends BaseStep {\n public async emit(answers: Answers): Promise<Answers> {\n this.debug(answers);\n if (!(await getCurrentIntegration(answers).shouldEmit(answers))) {\n return {};\n }\n if (this._argv.quiet) {\n return {};\n }\n\n let url = this._getFullUrl(answers);\n const organization: any = await prompt([\n {\n message: 'Organization Slug:',\n name: 'slug',\n type: 'input',\n // eslint-disable-next-line @typescript-eslint/unbound-method\n validate: this._validateSlug,\n when: this._shouldAsk(answers, 'config.organization.slug', () => {\n dim('Please copy/paste your organization slug');\n dim(`It can be found in the url ${url}`);\n }),\n },\n ]);\n\n url = this._getFullUrl(answers, organization.slug);\n const project: any = await prompt([\n {\n message: 'Project Slug:',\n name: 'slug',\n type: 'input',\n // eslint-disable-next-line @typescript-eslint/unbound-method\n validate: this._validateSlug,\n when: this._shouldAsk(answers, 'config.project.slug', () => {\n dim('Please copy/paste your project slug');\n dim(`It can be found in the url ${url}`);\n }),\n },\n ]);\n\n url = this._getFullUrl(answers, organization.slug, project.slug);\n const dsnKeyUrl = this._getDSNKeyUrl(answers, project.slug);\n const dsn = await prompt([\n {\n message: 'DSN:',\n name: 'secret',\n type: 'input',\n // eslint-disable-next-line @typescript-eslint/unbound-method\n validate: this._validateDSN,\n when: this._shouldAsk(answers, 'config.dsn.secret', () => {\n dim('Please copy/paste your DSN');\n dim(`It can be found here: ${dsnKeyUrl}`);\n }),\n },\n ]);\n\n const auth = await prompt([\n {\n message: 'Auth Token:',\n name: 'token',\n type: 'input',\n // eslint-disable-next-line @typescript-eslint/unbound-method\n validate: this._validateAuthToken,\n when: this._shouldAsk(answers, 'config.auth.token', () => {\n dim('Please copy/paste your auth token');\n dim(`It can be found here: ${this._argv.url}api/`);\n dim(\n 'In case there is none yet, create one with [project:releases] permission',\n );\n }),\n },\n ]);\n\n return {\n config: _.merge(_.get(answers, 'config'), {\n auth,\n dsn,\n project,\n organization,\n }),\n };\n }\n\n private _getFullUrl(\n answers: Answers,\n organizationSlug?: string,\n projectSlug?: string,\n ): string {\n const baseUrl = this._argv.url;\n const orgSlug = _.get(\n answers,\n 'config.organization.slug',\n organizationSlug || 'organization_slug',\n );\n const projSlug = _.get(\n answers,\n 'config.project.slug',\n projectSlug || 'project_slug',\n );\n return `${baseUrl}${orgSlug}/${projSlug}`;\n }\n\n private _getDSNKeyUrl(answers: Answers, projectSlug?: string): string {\n const baseUrl = this._argv.url;\n const projSlug = _.get(\n answers,\n 'config.project.slug',\n projectSlug || 'project_slug',\n );\n return `${baseUrl}settings/projects/${projSlug}/keys`;\n }\n\n private _shouldAsk(\n answers: Answers,\n configKey: string,\n preHook?: () => void,\n ): boolean {\n const shouldAsk = _.get(answers, configKey, null) === null;\n if (shouldAsk && preHook) {\n preHook();\n }\n return shouldAsk;\n }\n\n private _validateAuthToken(input: string): boolean | string {\n if (!input.match(/[0-9a-f]{64}/g)) {\n return 'Make sure you copied the correct auth token, it should be 64 hex chars';\n }\n return true;\n }\n\n private _validateSlug(input: string): boolean | string {\n if (input.match(/[A-Z]/g)) {\n return 'Please copy the slug from the url, it should be all lowercase';\n }\n if (input.length === 0) {\n return 'Can\\'t be empty';\n }\n return true;\n }\n\n private _validateDSN(input: string): boolean | string {\n const match = input.match(\n /^(?:(\\w+):)?\\/\\/(?:(\\w+)(:\\w+)?@)?([\\w.-]+)(?::(\\d+))?(\\/.*)$/,\n );\n if (!match) {\n return 'Invalid DSN format';\n }\n if (match[1] !== 'http' && match[1] !== 'https') {\n return `Unsupported protocol for DSN: ${match[1]}`;\n }\n return true;\n }\n}\n"]}
|
|
@@ -46,6 +46,7 @@ export class PromptForParameters extends BaseStep {
|
|
|
46
46
|
]);
|
|
47
47
|
|
|
48
48
|
url = this._getFullUrl(answers, organization.slug, project.slug);
|
|
49
|
+
const dsnKeyUrl = this._getDSNKeyUrl(answers, project.slug);
|
|
49
50
|
const dsn = await prompt([
|
|
50
51
|
{
|
|
51
52
|
message: 'DSN:',
|
|
@@ -55,7 +56,7 @@ export class PromptForParameters extends BaseStep {
|
|
|
55
56
|
validate: this._validateDSN,
|
|
56
57
|
when: this._shouldAsk(answers, 'config.dsn.secret', () => {
|
|
57
58
|
dim('Please copy/paste your DSN');
|
|
58
|
-
dim(`It can be found here: ${
|
|
59
|
+
dim(`It can be found here: ${dsnKeyUrl}`);
|
|
59
60
|
}),
|
|
60
61
|
},
|
|
61
62
|
]);
|
|
@@ -106,6 +107,16 @@ export class PromptForParameters extends BaseStep {
|
|
|
106
107
|
return `${baseUrl}${orgSlug}/${projSlug}`;
|
|
107
108
|
}
|
|
108
109
|
|
|
110
|
+
private _getDSNKeyUrl(answers: Answers, projectSlug?: string): string {
|
|
111
|
+
const baseUrl = this._argv.url;
|
|
112
|
+
const projSlug = _.get(
|
|
113
|
+
answers,
|
|
114
|
+
'config.project.slug',
|
|
115
|
+
projectSlug || 'project_slug',
|
|
116
|
+
);
|
|
117
|
+
return `${baseUrl}settings/projects/${projSlug}/keys`;
|
|
118
|
+
}
|
|
119
|
+
|
|
109
120
|
private _shouldAsk(
|
|
110
121
|
answers: Answers,
|
|
111
122
|
configKey: string,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentry/wizard",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"homepage": "https://github.com/getsentry/sentry-wizard",
|
|
5
5
|
"repository": "https://github.com/getsentry/sentry-wizard",
|
|
6
6
|
"description": "Sentry wizard helping you to configure your project",
|
|
@@ -17,6 +17,10 @@
|
|
|
17
17
|
"bin": {
|
|
18
18
|
"sentry-wizard": "dist/bin.js"
|
|
19
19
|
},
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public",
|
|
22
|
+
"tag": "v1"
|
|
23
|
+
},
|
|
20
24
|
"main": "dist/index.js",
|
|
21
25
|
"typings": "dist/index.d.ts",
|
|
22
26
|
"typescript": {
|