@sentry/wizard 2.7.0 → 3.0.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 +12 -3
- package/dist/NextJs/configs/next.config.template.js +1 -1
- package/dist/bin.js +7 -3
- package/dist/bin.js.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/Constants.js +1 -1
- package/dist/lib/Constants.js.map +1 -1
- package/dist/lib/Helper/BottomBar.js +2 -2
- package/dist/lib/Helper/BottomBar.js.map +1 -1
- package/dist/lib/Helper/File.js +10 -12
- package/dist/lib/Helper/File.js.map +1 -1
- package/dist/lib/Helper/Logging.js +1 -1
- package/dist/lib/Helper/Logging.js.map +1 -1
- package/dist/lib/Helper/Package.js +10 -10
- package/dist/lib/Helper/Package.js.map +1 -1
- package/dist/lib/Helper/PackageManager.js +6 -9
- package/dist/lib/Helper/PackageManager.js.map +1 -1
- package/dist/lib/Helper/SentryCli.d.ts +3 -3
- package/dist/lib/Helper/SentryCli.js +3 -3
- package/dist/lib/Helper/SentryCli.js.map +1 -1
- package/dist/lib/Helper/Wizard.d.ts +4 -4
- package/dist/lib/Helper/Wizard.js +11 -11
- package/dist/lib/Helper/Wizard.js.map +1 -1
- package/dist/lib/Helper/__tests__/File.js +5 -5
- package/dist/lib/Helper/__tests__/File.js.map +1 -1
- package/dist/lib/Helper/__tests__/MergeConfig.js +9 -9
- package/dist/lib/Helper/__tests__/MergeConfig.js.map +1 -1
- package/dist/lib/Helper/__tests__/SentryCli.js.map +1 -1
- package/dist/lib/Setup.js +11 -9
- package/dist/lib/Setup.js.map +1 -1
- package/dist/lib/Steps/BaseStep.d.ts +2 -2
- package/dist/lib/Steps/BaseStep.js +3 -3
- package/dist/lib/Steps/BaseStep.js.map +1 -1
- package/dist/lib/Steps/ChooseIntegration.d.ts +1 -1
- package/dist/lib/Steps/ChooseIntegration.js +7 -5
- package/dist/lib/Steps/ChooseIntegration.js.map +1 -1
- package/dist/lib/Steps/ConfigureProject.d.ts +1 -1
- package/dist/lib/Steps/ConfigureProject.js +5 -3
- package/dist/lib/Steps/ConfigureProject.js.map +1 -1
- package/dist/lib/Steps/Initial.d.ts +1 -1
- package/dist/lib/Steps/Initial.js +6 -4
- package/dist/lib/Steps/Initial.js.map +1 -1
- package/dist/lib/Steps/Integrations/BaseIntegration.d.ts +2 -2
- package/dist/lib/Steps/Integrations/BaseIntegration.js +5 -4
- package/dist/lib/Steps/Integrations/BaseIntegration.js.map +1 -1
- package/dist/lib/Steps/Integrations/Cordova.d.ts +2 -2
- package/dist/lib/Steps/Integrations/Cordova.js +12 -10
- package/dist/lib/Steps/Integrations/Cordova.js.map +1 -1
- package/dist/lib/Steps/Integrations/Electron.d.ts +2 -2
- package/dist/lib/Steps/Integrations/Electron.js +23 -21
- package/dist/lib/Steps/Integrations/Electron.js.map +1 -1
- package/dist/lib/Steps/Integrations/MobileProject.d.ts +1 -1
- package/dist/lib/Steps/Integrations/MobileProject.js +7 -5
- package/dist/lib/Steps/Integrations/MobileProject.js.map +1 -1
- package/dist/lib/Steps/Integrations/NextJs.d.ts +2 -2
- package/dist/lib/Steps/Integrations/NextJs.js +56 -52
- package/dist/lib/Steps/Integrations/NextJs.js.map +1 -1
- package/dist/lib/Steps/Integrations/ReactNative.d.ts +2 -2
- package/dist/lib/Steps/Integrations/ReactNative.js +52 -51
- package/dist/lib/Steps/Integrations/ReactNative.js.map +1 -1
- package/dist/lib/Steps/Integrations/__tests__/ReactNative.js +1 -1
- package/dist/lib/Steps/Integrations/__tests__/ReactNative.js.map +1 -1
- package/dist/lib/Steps/OpenSentry.d.ts +1 -1
- package/dist/lib/Steps/OpenSentry.js +19 -17
- package/dist/lib/Steps/OpenSentry.js.map +1 -1
- package/dist/lib/Steps/PromptForParameters.d.ts +1 -1
- package/dist/lib/Steps/PromptForParameters.js +21 -19
- package/dist/lib/Steps/PromptForParameters.js.map +1 -1
- package/dist/lib/Steps/Result.d.ts +1 -1
- package/dist/lib/Steps/Result.js +7 -5
- package/dist/lib/Steps/Result.js.map +1 -1
- package/dist/lib/Steps/SentryProjectSelector.d.ts +1 -1
- package/dist/lib/Steps/SentryProjectSelector.js +6 -4
- package/dist/lib/Steps/SentryProjectSelector.js.map +1 -1
- package/dist/lib/Steps/ShouldConfigure.d.ts +1 -1
- package/dist/lib/Steps/ShouldConfigure.js +5 -3
- package/dist/lib/Steps/ShouldConfigure.js.map +1 -1
- package/dist/lib/Steps/WaitForSentry.d.ts +1 -1
- package/dist/lib/Steps/WaitForSentry.js +11 -9
- package/dist/lib/Steps/WaitForSentry.js.map +1 -1
- package/dist/lib/Steps/Welcome.d.ts +1 -1
- package/dist/lib/Steps/Welcome.js +7 -6
- package/dist/lib/Steps/Welcome.js.map +1 -1
- package/dist/lib/Steps/index.js +1 -0
- package/dist/lib/Steps/index.js.map +1 -1
- package/dist/lib/__tests__/Env.js +1 -1
- package/dist/lib/__tests__/Env.js.map +1 -1
- package/dist/lib/__tests__/Setup.js +1 -1
- package/dist/lib/__tests__/Setup.js.map +1 -1
- package/lib/Helper/File.ts +2 -8
- package/lib/Helper/SentryCli.ts +3 -3
- package/lib/Helper/Wizard.ts +6 -5
- package/lib/Helper/__tests__/File.ts +5 -5
- package/lib/Helper/__tests__/SentryCli.ts +3 -2
- package/lib/Helper/test-fixtures/next.config.1-merged.js +1 -1
- package/lib/Helper/test-fixtures/next.config.3-merged.js +1 -1
- package/lib/Helper/test-fixtures/next.config.4-merged.js +1 -1
- package/lib/Steps/BaseStep.ts +3 -3
- package/lib/Steps/ChooseIntegration.ts +2 -1
- package/lib/Steps/ConfigureProject.ts +1 -1
- package/lib/Steps/Initial.ts +1 -1
- package/lib/Steps/Integrations/BaseIntegration.ts +3 -3
- package/lib/Steps/Integrations/Cordova.ts +5 -5
- package/lib/Steps/Integrations/Electron.ts +7 -6
- package/lib/Steps/Integrations/MobileProject.ts +2 -1
- package/lib/Steps/Integrations/NextJs.ts +7 -6
- package/lib/Steps/Integrations/ReactNative.ts +44 -24
- package/lib/Steps/Integrations/__tests__/ReactNative.ts +3 -2
- package/lib/Steps/OpenSentry.ts +1 -1
- package/lib/Steps/PromptForParameters.ts +3 -2
- package/lib/Steps/Result.ts +1 -1
- package/lib/Steps/SentryProjectSelector.ts +3 -2
- package/lib/Steps/ShouldConfigure.ts +1 -1
- package/lib/Steps/WaitForSentry.ts +3 -3
- package/lib/Steps/Welcome.ts +1 -1
- package/lib/__tests__/Setup.ts +1 -1
- package/package.json +9 -13
- package/scripts/NextJs/configs/next.config.template.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cordova.js","sourceRoot":"","sources":["../../../../lib/Steps/Integrations/Cordova.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from 'fs';\nimport { Answers } from 'inquirer';\nimport * as path from 'path';\n\nimport { Args } from '../../Constants';\nimport { exists, matchesContent, patchMatchingFile } from '../../Helper/File';\nimport { green } from '../../Helper/Logging';\nimport { SentryCli } from '../../Helper/SentryCli';\nimport { BaseIntegration } from './BaseIntegration';\n\nconst xcode = require('xcode');\n\nexport class Cordova extends BaseIntegration {\n protected _sentryCli: SentryCli;\n protected _folderPrefix: string = 'platforms';\n protected _pluginFolder: string[] = ['.'];\n\n constructor(protected _argv: Args) {\n super(_argv);\n this._sentryCli = new SentryCli(this._argv);\n }\n\n public async emit(answers: Answers): Promise<Answers> {\n if (this._argv.uninstall) {\n return this.uninstall(answers);\n }\n\n const sentryCliProperties = this._sentryCli.convertAnswersToProperties(\n answers,\n );\n\n await patchMatchingFile(\n `${this._folderPrefix}/ios/*.xcodeproj/project.pbxproj`,\n this._patchXcodeProj.bind(this),\n );\n\n await this._addSentryProperties(sentryCliProperties);\n green(`Successfully set up for cordova`);\n\n return {};\n }\n\n public async uninstall(_answers: Answers): Promise<Answers> {\n await patchMatchingFile(\n '**/*.xcodeproj/project.pbxproj',\n this._unpatchXcodeProj.bind(this),\n );\n\n return {};\n }\n\n public async shouldConfigure(_answers: Answers): Promise<Answers> {\n if (this._shouldConfigure) {\n return this._shouldConfigure;\n }\n\n let result = false;\n if (!exists(path.join('sentry.properties'))) {\n result = true;\n this.debug(`sentry.properties not exists`);\n }\n\n if (\n !matchesContent('**/*.xcodeproj/project.pbxproj', /SENTRY_PROPERTIES/gi)\n ) {\n result = true;\n this.debug('**/*.xcodeproj/project.pbxproj not matched');\n }\n\n if (this._argv.uninstall) {\n // if we uninstall we need to invert the result so we remove already patched\n result = !result;\n }\n\n this._shouldConfigure = Promise.resolve({ cordova: result });\n // eslint-disable-next-line @typescript-eslint/unbound-method\n return this.shouldConfigure;\n }\n\n private _unpatchXcodeProj(filename: string): Promise<string> {\n const proj = xcode.project(filename);\n return new Promise((resolve, reject) => {\n proj.parse((err: any) => {\n if (err) {\n reject(err);\n return;\n }\n\n this._unpatchXcodeBuildScripts(proj);\n resolve(proj.writeSync());\n });\n });\n }\n\n private _unpatchXcodeBuildScripts(proj: any): void {\n const scripts = proj.hash.project.objects.PBXShellScriptBuildPhase || {};\n const firstTarget = proj.getFirstTarget().uuid;\n const nativeTargets = proj.hash.project.objects.PBXNativeTarget;\n\n // scripts to kill entirely.\n for (const key of Object.keys(scripts)) {\n const script = scripts[key];\n\n // ignore comments and keys that got deleted\n if (typeof script === 'string' || script === undefined) {\n continue;\n }\n\n if (\n script.shellScript.match(/SENTRY_PROPERTIES/) ||\n script.shellScript.match(/SENTRY_FRAMEWORK_PATCH/)\n ) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete scripts[key];\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete scripts[`${key}_comment`];\n const phases = nativeTargets[firstTarget].buildPhases;\n if (phases) {\n for (let i = 0; i < phases.length; i++) {\n if (phases[i].value === key) {\n phases.splice(i, 1);\n break;\n }\n }\n }\n continue;\n }\n }\n }\n\n private _patchXcodeProj(\n contents: string,\n filename: string,\n ): Promise<void | string> {\n const proj = xcode.project(filename);\n return new Promise((resolve, reject) => {\n proj.parse((err: any) => {\n if (err) {\n reject(err);\n return;\n }\n\n const buildScripts = [];\n for (const key in proj.hash.project.objects.PBXShellScriptBuildPhase ||\n {}) {\n if (\n // eslint-disable-next-line no-prototype-builtins\n proj.hash.project.objects.PBXShellScriptBuildPhase.hasOwnProperty(\n key,\n )\n ) {\n const val = proj.hash.project.objects.PBXShellScriptBuildPhase[key];\n if (val.isa) {\n buildScripts.push(val);\n }\n }\n }\n\n this._addNewXcodeBuildPhaseForSymbols(buildScripts, proj);\n this._addNewXcodeBuildPhaseForStripping(buildScripts, proj);\n\n // we always modify the xcode file in memory but we only want to save it\n // in case the user wants configuration for ios. This is why we check\n // here first if changes are made before we might prompt the platform\n // continue prompt.\n const newContents = proj.writeSync();\n if (newContents === contents) {\n resolve();\n } else {\n resolve(newContents);\n }\n });\n });\n }\n\n private _addNewXcodeBuildPhaseForSymbols(buildScripts: any, proj: any): void {\n for (const script of buildScripts) {\n if (script.shellScript.match(/SENTRY_PROPERTIES/)) {\n return;\n }\n }\n const cwd = path.join(process.cwd(), 'sentry.properties');\n proj.addBuildPhase(\n [],\n 'PBXShellScriptBuildPhase',\n 'Upload Debug Symbols to Sentry',\n null,\n {\n shellPath: '/bin/sh',\n shellScript:\n // eslint-disable-next-line prefer-template\n 'echo \"warning: uploading debug symbols - set SENTRY_SKIP_DSYM_UPLOAD=true to skip this\"\\\\n' +\n 'if [ -n \"$SENTRY_SKIP_DSYM_UPLOAD\" ]; then\\\\n' +\n ' echo \"warning: skipping debug symbol upload\"\\\\n' +\n ' exit 0\\\\n' +\n 'fi\\\\n' +\n 'export SENTRY_PROPERTIES=' +\n cwd +\n '\\\\n' +\n 'function getProperty {\\\\n' +\n ' PROP_KEY=$1\\\\n' +\n ' PROP_VALUE=`cat $SENTRY_PROPERTIES | grep \"$PROP_KEY\" | cut -d\\'=\\' -f2`\\\\n' +\n ' echo $PROP_VALUE\\\\n' +\n '}\\\\n' +\n 'if [ ! -f $SENTRY_PROPERTIES ]; then\\\\n' +\n ' echo \"warning: SENTRY: sentry.properties file not found! Skipping symbol upload.\"\\\\n' +\n ' exit 0\\\\n' +\n 'fi\\\\n' +\n 'echo \"# Reading property from $SENTRY_PROPERTIES\"\\\\n' +\n 'SENTRY_CLI=$(getProperty \"cli.executable\")\\\\n' +\n 'SENTRY_COMMAND=\"../../$SENTRY_CLI upload-dsym\"\\\\n' +\n '$SENTRY_COMMAND',\n },\n );\n }\n\n private _addNewXcodeBuildPhaseForStripping(\n buildScripts: any,\n proj: any,\n ): void {\n for (const script of buildScripts) {\n if (script.shellScript.match(/SENTRY_FRAMEWORK_PATCH/)) {\n return;\n }\n }\n // http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/\n proj.addBuildPhase(\n [],\n 'PBXShellScriptBuildPhase',\n 'Sentry strip unused archs from Framework',\n null,\n {\n shellPath: '/bin/sh',\n shellScript:\n '# SENTRY_FRAMEWORK_PATCH \\\\n' +\n 'echo \"warning: patching framework - set SENTRY_SKIP_FRAMEWORK_PATCH=true to skip this\"\\\\n' +\n 'if [ -n \"$SENTRY_SKIP_FRAMEWORK_PATCH\" ]; then\\\\n' +\n ' echo \"warning: skipping framework patch\"\\\\n' +\n ' exit 0\\\\n' +\n 'fi\\\\n' +\n 'APP_PATH=\"${TARGET_BUILD_DIR}/${WRAPPER_NAME}\"\\\\n' +\n 'find \"$APP_PATH\" -name \\'Sentry*.framework\\' -type d | while read -r FRAMEWORK\\\\n' +\n 'do\\\\n' +\n 'FRAMEWORK_EXECUTABLE_NAME=$(defaults read \"$FRAMEWORK/Info.plist\" CFBundleExecutable)\\\\n' +\n 'FRAMEWORK_EXECUTABLE_PATH=\"$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME\"\\\\n' +\n 'echo \"Executable is $FRAMEWORK_EXECUTABLE_PATH\"\\\\n' +\n 'EXTRACTED_ARCHS=()\\\\n' +\n 'for ARCH in $ARCHS\\\\n' +\n 'do\\\\n' +\n 'echo \"Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME\"\\\\n' +\n 'lipo -extract \"$ARCH\" \"$FRAMEWORK_EXECUTABLE_PATH\" -o \"$FRAMEWORK_EXECUTABLE_PATH-$ARCH\"\\\\n' +\n 'EXTRACTED_ARCHS+=(\"$FRAMEWORK_EXECUTABLE_PATH-$ARCH\")\\\\n' +\n 'done\\\\n' +\n 'echo \"Merging extracted architectures: ${ARCHS}\"\\\\n' +\n 'lipo -o \"$FRAMEWORK_EXECUTABLE_PATH-merged\" -create \"${EXTRACTED_ARCHS[@]}\"\\\\n' +\n 'rm \"${EXTRACTED_ARCHS[@]}\"\\\\n' +\n 'echo \"Replacing original executable with thinned version\"\\\\n' +\n 'rm \"$FRAMEWORK_EXECUTABLE_PATH\"\\\\n' +\n 'mv \"$FRAMEWORK_EXECUTABLE_PATH-merged\" \"$FRAMEWORK_EXECUTABLE_PATH\"\\\\n' +\n 'done',\n },\n );\n }\n\n private _addSentryProperties(properties: any): Promise<void> {\n let rv = Promise.resolve();\n const fn = path.join('sentry.properties');\n if (exists(fn)) {\n return rv;\n }\n rv = rv.then(() =>\n fs.writeFileSync(fn, this._sentryCli.dumpProperties(properties)),\n );\n\n return rv;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Cordova.js","sourceRoot":"","sources":["../../../../lib/Steps/Integrations/Cordova.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from 'fs';\nimport type { Answers } from 'inquirer';\nimport * as path from 'path';\n\nimport type { Args } from '../../Constants';\nimport { exists, matchesContent, patchMatchingFile } from '../../Helper/File';\nimport { green } from '../../Helper/Logging';\nimport { SentryCli } from '../../Helper/SentryCli';\nimport { BaseIntegration } from './BaseIntegration';\n\nconst xcode = require('xcode');\n\nexport class Cordova extends BaseIntegration {\n protected _sentryCli: SentryCli;\n protected _folderPrefix: string = 'platforms';\n protected _pluginFolder: string[] = ['.'];\n\n public constructor(protected _argv: Args) {\n super(_argv);\n this._sentryCli = new SentryCli(this._argv);\n }\n\n public async emit(answers: Answers): Promise<Answers> {\n if (this._argv.uninstall) {\n return this.uninstall(answers);\n }\n\n const sentryCliProperties = this._sentryCli.convertAnswersToProperties(\n answers,\n );\n\n await patchMatchingFile(\n `${this._folderPrefix}/ios/*.xcodeproj/project.pbxproj`,\n this._patchXcodeProj.bind(this),\n );\n\n await this._addSentryProperties(sentryCliProperties);\n green('Successfully set up for cordova');\n\n return {};\n }\n\n public async uninstall(_answers: Answers): Promise<Answers> {\n await patchMatchingFile(\n '**/*.xcodeproj/project.pbxproj',\n this._unpatchXcodeProj.bind(this),\n );\n\n return {};\n }\n\n public async shouldConfigure(_answers: Answers): Promise<Answers> {\n if (this._shouldConfigure) {\n return this._shouldConfigure;\n }\n\n let result = false;\n if (!exists(path.join('sentry.properties'))) {\n result = true;\n this.debug('sentry.properties not exists');\n }\n\n if (\n !matchesContent('**/*.xcodeproj/project.pbxproj', /SENTRY_PROPERTIES/gi)\n ) {\n result = true;\n this.debug('**/*.xcodeproj/project.pbxproj not matched');\n }\n\n if (this._argv.uninstall) {\n // if we uninstall we need to invert the result so we remove already patched\n result = !result;\n }\n\n this._shouldConfigure = Promise.resolve({ cordova: result });\n // eslint-disable-next-line @typescript-eslint/unbound-method\n return this.shouldConfigure;\n }\n\n private _unpatchXcodeProj(filename: string): Promise<string> {\n const proj = xcode.project(filename);\n return new Promise((resolve, reject) => {\n proj.parse((err: any) => {\n if (err) {\n reject(err);\n return;\n }\n\n this._unpatchXcodeBuildScripts(proj);\n resolve(proj.writeSync());\n });\n });\n }\n\n private _unpatchXcodeBuildScripts(proj: any): void {\n const scripts = proj.hash.project.objects.PBXShellScriptBuildPhase || {};\n const firstTarget = proj.getFirstTarget().uuid;\n const nativeTargets = proj.hash.project.objects.PBXNativeTarget;\n\n // scripts to kill entirely.\n for (const key of Object.keys(scripts)) {\n const script = scripts[key];\n\n // ignore comments and keys that got deleted\n if (typeof script === 'string' || script === undefined) {\n continue;\n }\n\n if (\n script.shellScript.match(/SENTRY_PROPERTIES/) ||\n script.shellScript.match(/SENTRY_FRAMEWORK_PATCH/)\n ) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete scripts[key];\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete scripts[`${key}_comment`];\n const phases = nativeTargets[firstTarget].buildPhases;\n if (phases) {\n for (let i = 0; i < phases.length; i++) {\n if (phases[i].value === key) {\n phases.splice(i, 1);\n break;\n }\n }\n }\n continue;\n }\n }\n }\n\n private _patchXcodeProj(\n contents: string,\n filename: string,\n ): Promise<void | string> {\n const proj = xcode.project(filename);\n return new Promise((resolve, reject) => {\n proj.parse((err: any) => {\n if (err) {\n reject(err);\n return;\n }\n\n const buildScripts = [];\n for (const key in proj.hash.project.objects.PBXShellScriptBuildPhase ||\n {}) {\n if (\n // eslint-disable-next-line no-prototype-builtins\n proj.hash.project.objects.PBXShellScriptBuildPhase.hasOwnProperty(\n key,\n )\n ) {\n const val = proj.hash.project.objects.PBXShellScriptBuildPhase[key];\n if (val.isa) {\n buildScripts.push(val);\n }\n }\n }\n\n this._addNewXcodeBuildPhaseForSymbols(buildScripts, proj);\n this._addNewXcodeBuildPhaseForStripping(buildScripts, proj);\n\n // we always modify the xcode file in memory but we only want to save it\n // in case the user wants configuration for ios. This is why we check\n // here first if changes are made before we might prompt the platform\n // continue prompt.\n const newContents = proj.writeSync();\n if (newContents === contents) {\n resolve();\n } else {\n resolve(newContents);\n }\n });\n });\n }\n\n private _addNewXcodeBuildPhaseForSymbols(buildScripts: any, proj: any): void {\n for (const script of buildScripts) {\n if (script.shellScript.match(/SENTRY_PROPERTIES/)) {\n return;\n }\n }\n const cwd = path.join(process.cwd(), 'sentry.properties');\n proj.addBuildPhase(\n [],\n 'PBXShellScriptBuildPhase',\n 'Upload Debug Symbols to Sentry',\n null,\n {\n shellPath: '/bin/sh',\n shellScript:\n // eslint-disable-next-line prefer-template\n 'echo \"warning: uploading debug symbols - set SENTRY_SKIP_DSYM_UPLOAD=true to skip this\"\\\\n' +\n 'if [ -n \"$SENTRY_SKIP_DSYM_UPLOAD\" ]; then\\\\n' +\n ' echo \"warning: skipping debug symbol upload\"\\\\n' +\n ' exit 0\\\\n' +\n 'fi\\\\n' +\n 'export SENTRY_PROPERTIES=' +\n cwd +\n '\\\\n' +\n 'function getProperty {\\\\n' +\n ' PROP_KEY=$1\\\\n' +\n ' PROP_VALUE=`cat $SENTRY_PROPERTIES | grep \"$PROP_KEY\" | cut -d\\'=\\' -f2`\\\\n' +\n ' echo $PROP_VALUE\\\\n' +\n '}\\\\n' +\n 'if [ ! -f $SENTRY_PROPERTIES ]; then\\\\n' +\n ' echo \"warning: SENTRY: sentry.properties file not found! Skipping symbol upload.\"\\\\n' +\n ' exit 0\\\\n' +\n 'fi\\\\n' +\n 'echo \"# Reading property from $SENTRY_PROPERTIES\"\\\\n' +\n 'SENTRY_CLI=$(getProperty \"cli.executable\")\\\\n' +\n 'SENTRY_COMMAND=\"../../$SENTRY_CLI upload-dsym\"\\\\n' +\n '$SENTRY_COMMAND',\n },\n );\n }\n\n private _addNewXcodeBuildPhaseForStripping(\n buildScripts: any,\n proj: any,\n ): void {\n for (const script of buildScripts) {\n if (script.shellScript.match(/SENTRY_FRAMEWORK_PATCH/)) {\n return;\n }\n }\n // http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/\n proj.addBuildPhase(\n [],\n 'PBXShellScriptBuildPhase',\n 'Sentry strip unused archs from Framework',\n null,\n {\n shellPath: '/bin/sh',\n shellScript:\n '# SENTRY_FRAMEWORK_PATCH \\\\n' +\n 'echo \"warning: patching framework - set SENTRY_SKIP_FRAMEWORK_PATCH=true to skip this\"\\\\n' +\n 'if [ -n \"$SENTRY_SKIP_FRAMEWORK_PATCH\" ]; then\\\\n' +\n ' echo \"warning: skipping framework patch\"\\\\n' +\n ' exit 0\\\\n' +\n 'fi\\\\n' +\n 'APP_PATH=\"${TARGET_BUILD_DIR}/${WRAPPER_NAME}\"\\\\n' +\n 'find \"$APP_PATH\" -name \\'Sentry*.framework\\' -type d | while read -r FRAMEWORK\\\\n' +\n 'do\\\\n' +\n 'FRAMEWORK_EXECUTABLE_NAME=$(defaults read \"$FRAMEWORK/Info.plist\" CFBundleExecutable)\\\\n' +\n 'FRAMEWORK_EXECUTABLE_PATH=\"$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME\"\\\\n' +\n 'echo \"Executable is $FRAMEWORK_EXECUTABLE_PATH\"\\\\n' +\n 'EXTRACTED_ARCHS=()\\\\n' +\n 'for ARCH in $ARCHS\\\\n' +\n 'do\\\\n' +\n 'echo \"Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME\"\\\\n' +\n 'lipo -extract \"$ARCH\" \"$FRAMEWORK_EXECUTABLE_PATH\" -o \"$FRAMEWORK_EXECUTABLE_PATH-$ARCH\"\\\\n' +\n 'EXTRACTED_ARCHS+=(\"$FRAMEWORK_EXECUTABLE_PATH-$ARCH\")\\\\n' +\n 'done\\\\n' +\n 'echo \"Merging extracted architectures: ${ARCHS}\"\\\\n' +\n 'lipo -o \"$FRAMEWORK_EXECUTABLE_PATH-merged\" -create \"${EXTRACTED_ARCHS[@]}\"\\\\n' +\n 'rm \"${EXTRACTED_ARCHS[@]}\"\\\\n' +\n 'echo \"Replacing original executable with thinned version\"\\\\n' +\n 'rm \"$FRAMEWORK_EXECUTABLE_PATH\"\\\\n' +\n 'mv \"$FRAMEWORK_EXECUTABLE_PATH-merged\" \"$FRAMEWORK_EXECUTABLE_PATH\"\\\\n' +\n 'done',\n },\n );\n }\n\n private _addSentryProperties(properties: any): Promise<void> {\n let rv = Promise.resolve();\n const fn = path.join('sentry.properties');\n if (exists(fn)) {\n return rv;\n }\n rv = rv.then(() =>\n fs.writeFileSync(fn, this._sentryCli.dumpProperties(properties)),\n );\n\n return rv;\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Answers } from 'inquirer';
|
|
2
|
-
import { Args } from '../../Constants';
|
|
1
|
+
import type { Answers } from 'inquirer';
|
|
2
|
+
import type { Args } from '../../Constants';
|
|
3
3
|
import { SentryCli } from '../../Helper/SentryCli';
|
|
4
4
|
import { BaseIntegration } from './BaseIntegration';
|
|
5
5
|
export declare class Electron extends BaseIntegration {
|
|
@@ -3,10 +3,12 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
3
3
|
var extendStatics = function (d, b) {
|
|
4
4
|
extendStatics = Object.setPrototypeOf ||
|
|
5
5
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
7
|
return extendStatics(d, b);
|
|
8
8
|
};
|
|
9
9
|
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
10
12
|
extendStatics(d, b);
|
|
11
13
|
function __() { this.constructor = d; }
|
|
12
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
@@ -27,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
27
29
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
28
30
|
function step(op) {
|
|
29
31
|
if (f) throw new TypeError("Generator is already executing.");
|
|
30
|
-
while (_) try {
|
|
32
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
31
33
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
32
34
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
33
35
|
switch (op[0]) {
|
|
@@ -64,11 +66,11 @@ var appPackage = {};
|
|
|
64
66
|
function printExample(example, title) {
|
|
65
67
|
if (title === void 0) { title = ''; }
|
|
66
68
|
if (title) {
|
|
67
|
-
Logging_1.l(title);
|
|
69
|
+
(0, Logging_1.l)(title);
|
|
68
70
|
}
|
|
69
|
-
Logging_1.nl();
|
|
70
|
-
Logging_1.dim(example.replace(/^/gm, ' '));
|
|
71
|
-
Logging_1.nl();
|
|
71
|
+
(0, Logging_1.nl)();
|
|
72
|
+
(0, Logging_1.dim)(example.replace(/^/gm, ' '));
|
|
73
|
+
(0, Logging_1.nl)();
|
|
72
74
|
}
|
|
73
75
|
try {
|
|
74
76
|
appPackage = require(path.join(process.cwd(), 'package.json'));
|
|
@@ -89,14 +91,14 @@ var Electron = /** @class */ (function (_super) {
|
|
|
89
91
|
var dsn, sentryCliProps;
|
|
90
92
|
return __generator(this, function (_a) {
|
|
91
93
|
dsn = _.get(answers, ['config', 'dsn', 'public'], null);
|
|
92
|
-
Logging_1.nl();
|
|
94
|
+
(0, Logging_1.nl)();
|
|
93
95
|
sentryCliProps = this._sentryCli.convertAnswersToProperties(answers);
|
|
94
96
|
fs.writeFileSync('./sentry.properties', this._sentryCli.dumpProperties(sentryCliProps));
|
|
95
|
-
Logging_1.green(
|
|
96
|
-
Logging_1.nl();
|
|
97
|
+
(0, Logging_1.green)('Successfully created sentry.properties');
|
|
98
|
+
(0, Logging_1.nl)();
|
|
97
99
|
printExample(CODE_EXAMPLE.replace('___DSN___', dsn), 'Put these lines in to your main and renderer processes to setup Sentry:');
|
|
98
|
-
Logging_1.l('For more information, see https://docs.sentry.io/clients/electron/');
|
|
99
|
-
Logging_1.nl();
|
|
100
|
+
(0, Logging_1.l)('For more information, see https://docs.sentry.io/clients/electron/');
|
|
101
|
+
(0, Logging_1.nl)();
|
|
100
102
|
return [2 /*return*/, {}];
|
|
101
103
|
});
|
|
102
104
|
});
|
|
@@ -111,13 +113,13 @@ var Electron = /** @class */ (function (_super) {
|
|
|
111
113
|
return [2 /*return*/, this._shouldConfigure];
|
|
112
114
|
}
|
|
113
115
|
success = true;
|
|
114
|
-
Logging_1.nl();
|
|
116
|
+
(0, Logging_1.nl)();
|
|
115
117
|
success =
|
|
116
118
|
this._checkDep('electron', MIN_ELECTRON_VERSION_STRING) && success;
|
|
117
119
|
success = this._checkDep('@sentry/electron') && success;
|
|
118
120
|
continued = { continue: true };
|
|
119
121
|
if (!(!success && !this._argv.quiet)) return [3 /*break*/, 2];
|
|
120
|
-
return [4 /*yield*/, inquirer_1.prompt({
|
|
122
|
+
return [4 /*yield*/, (0, inquirer_1.prompt)({
|
|
121
123
|
message: 'There were errors during your project checkup, do you still want to continue?',
|
|
122
124
|
name: 'continue',
|
|
123
125
|
default: false,
|
|
@@ -127,7 +129,7 @@ var Electron = /** @class */ (function (_super) {
|
|
|
127
129
|
continued = _a.sent();
|
|
128
130
|
_a.label = 2;
|
|
129
131
|
case 2:
|
|
130
|
-
Logging_1.nl();
|
|
132
|
+
(0, Logging_1.nl)();
|
|
131
133
|
if (!_.get(continued, 'continue', false)) {
|
|
132
134
|
throw new Error('Please install the required dependencies to continue.');
|
|
133
135
|
}
|
|
@@ -141,23 +143,23 @@ var Electron = /** @class */ (function (_super) {
|
|
|
141
143
|
Electron.prototype._checkDep = function (packageName, minVersion) {
|
|
142
144
|
var depVersion = parseInt(_.get(appPackage, ['dependencies', packageName], '0').replace(/\D+/g, ''), 10);
|
|
143
145
|
var devDepVersion = parseInt(_.get(appPackage, ['devDependencies', packageName], '0').replace(/\D+/g, ''), 10);
|
|
144
|
-
if (!_.get(appPackage, "dependencies."
|
|
145
|
-
!_.get(appPackage, "devDependencies."
|
|
146
|
-
Logging_1.red("\u2717 "
|
|
147
|
-
Logging_1.red(
|
|
146
|
+
if (!_.get(appPackage, "dependencies.".concat(packageName), false) &&
|
|
147
|
+
!_.get(appPackage, "devDependencies.".concat(packageName), false)) {
|
|
148
|
+
(0, Logging_1.red)("\u2717 ".concat(packageName, " isn't in your dependencies"));
|
|
149
|
+
(0, Logging_1.red)(' please install it with yarn/npm');
|
|
148
150
|
return false;
|
|
149
151
|
}
|
|
150
152
|
else if (minVersion &&
|
|
151
153
|
depVersion < MIN_ELECTRON_VERSION &&
|
|
152
154
|
devDepVersion < MIN_ELECTRON_VERSION) {
|
|
153
|
-
Logging_1.red("\u2717 Your installed version of "
|
|
155
|
+
(0, Logging_1.red)("\u2717 Your installed version of ".concat(packageName, " is to old, >").concat(MIN_ELECTRON_VERSION_STRING, " needed"));
|
|
154
156
|
return false;
|
|
155
157
|
}
|
|
156
158
|
else {
|
|
157
159
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
158
160
|
minVersion
|
|
159
|
-
? Logging_1.green("\u2713 "
|
|
160
|
-
: Logging_1.green("\u2713 "
|
|
161
|
+
? (0, Logging_1.green)("\u2713 ".concat(packageName, " > ").concat(minVersion, " is installed"))
|
|
162
|
+
: (0, Logging_1.green)("\u2713 ".concat(packageName, " is installed"));
|
|
161
163
|
return true;
|
|
162
164
|
}
|
|
163
165
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Electron.js","sourceRoot":"","sources":["../../../../lib/Steps/Integrations/Electron.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Electron.js","sourceRoot":"","sources":["../../../../lib/Steps/Integrations/Electron.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from 'fs';\nimport type { Answers} from 'inquirer';\nimport { prompt } from 'inquirer';\nimport * as _ from 'lodash';\nimport * as path from 'path';\n\nimport type { Args } from '../../Constants';\nimport { dim, green, l, nl, red } from '../../Helper/Logging';\nimport { SentryCli } from '../../Helper/SentryCli';\nimport { BaseIntegration } from './BaseIntegration';\n\nconst MIN_ELECTRON_VERSION_STRING = '2.0.0';\nconst MIN_ELECTRON_VERSION = parseInt(\n MIN_ELECTRON_VERSION_STRING.replace(/\\D+/g, ''),\n 10,\n);\n\nconst CODE_EXAMPLE = `const Sentry = require('@sentry/electron');\n\nSentry.init({\n dsn: '___DSN___',\n});`;\n\n\nlet appPackage: any = {};\n\nfunction printExample(example: string, title: string = ''): void {\n if (title) {\n l(title);\n }\n\n nl();\n dim(example.replace(/^/gm, ' '));\n nl();\n}\n\ntry {\n appPackage = require(path.join(process.cwd(), 'package.json'));\n} catch {\n // We don't need to have this\n}\n\nexport class Electron extends BaseIntegration {\n protected _sentryCli: SentryCli;\n\n public constructor(protected _argv: Args) {\n super(_argv);\n this._sentryCli = new SentryCli(this._argv);\n }\n\n public async emit(answers: Answers): Promise<Answers> {\n const dsn = _.get(answers, ['config', 'dsn', 'public'], null);\n nl();\n\n const sentryCliProps = this._sentryCli.convertAnswersToProperties(answers);\n fs.writeFileSync(\n './sentry.properties',\n this._sentryCli.dumpProperties(sentryCliProps),\n );\n green('Successfully created sentry.properties');\n nl();\n\n printExample(\n CODE_EXAMPLE.replace('___DSN___', dsn),\n 'Put these lines in to your main and renderer processes to setup Sentry:',\n );\n\n l('For more information, see https://docs.sentry.io/clients/electron/');\n nl();\n\n return {};\n }\n\n public async shouldConfigure(_answers: Answers): Promise<Answers> {\n if (this._shouldConfigure) {\n return this._shouldConfigure;\n }\n\n let success = true;\n nl();\n\n success =\n this._checkDep('electron', MIN_ELECTRON_VERSION_STRING) && success;\n success = this._checkDep('@sentry/electron') && success;\n\n let continued: Answers = { continue: true };\n if (!success && !this._argv.quiet) {\n continued = await prompt({\n message:\n 'There were errors during your project checkup, do you still want to continue?',\n name: 'continue',\n default: false,\n type: 'confirm',\n });\n }\n\n nl();\n\n if (!_.get(continued, 'continue', false)) {\n throw new Error('Please install the required dependencies to continue.');\n }\n\n this._shouldConfigure = Promise.resolve({ electron: true });\n // eslint-disable-next-line @typescript-eslint/unbound-method\n return this.shouldConfigure;\n }\n\n private _checkDep(packageName: string, minVersion?: string): boolean {\n const depVersion = parseInt(\n _.get(appPackage, ['dependencies', packageName], '0').replace(/\\D+/g, ''),\n 10,\n );\n const devDepVersion = parseInt(\n _.get(appPackage, ['devDependencies', packageName], '0').replace(\n /\\D+/g,\n '',\n ),\n 10,\n );\n\n if (\n !_.get(appPackage, `dependencies.${packageName}`, false) &&\n !_.get(appPackage, `devDependencies.${packageName}`, false)\n ) {\n red(`✗ ${packageName} isn't in your dependencies`);\n red(' please install it with yarn/npm');\n return false;\n } else if (\n minVersion &&\n depVersion < MIN_ELECTRON_VERSION &&\n devDepVersion < MIN_ELECTRON_VERSION\n ) {\n red(\n `✗ Your installed version of ${packageName} is to old, >${MIN_ELECTRON_VERSION_STRING} needed`,\n );\n return false;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n minVersion\n ? green(`✓ ${packageName} > ${minVersion} is installed`)\n : green(`✓ ${packageName} is installed`);\n return true;\n }\n }\n}\n"]}
|
|
@@ -3,10 +3,12 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
3
3
|
var extendStatics = function (d, b) {
|
|
4
4
|
extendStatics = Object.setPrototypeOf ||
|
|
5
5
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
7
|
return extendStatics(d, b);
|
|
8
8
|
};
|
|
9
9
|
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
10
12
|
extendStatics(d, b);
|
|
11
13
|
function __() { this.constructor = d; }
|
|
12
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
@@ -27,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
27
29
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
28
30
|
function step(op) {
|
|
29
31
|
if (f) throw new TypeError("Generator is already executing.");
|
|
30
|
-
while (_) try {
|
|
32
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
31
33
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
32
34
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
33
35
|
switch (op[0]) {
|
|
@@ -110,7 +112,7 @@ var MobileProject = /** @class */ (function (_super) {
|
|
|
110
112
|
_a[_b] = _c;
|
|
111
113
|
if (shouldConfigurePlatforms[platform] === false &&
|
|
112
114
|
this._argv.uninstall === false) {
|
|
113
|
-
Logging_1.dim("will not configure "
|
|
115
|
+
(0, Logging_1.dim)("will not configure ".concat(platform));
|
|
114
116
|
}
|
|
115
117
|
return [2 /*return*/];
|
|
116
118
|
}
|
|
@@ -125,9 +127,9 @@ var MobileProject = /** @class */ (function (_super) {
|
|
|
125
127
|
if (this._argv.quiet) {
|
|
126
128
|
throw new Error('You need to choose a platform');
|
|
127
129
|
}
|
|
128
|
-
return inquirer_1.prompt([
|
|
130
|
+
return (0, inquirer_1.prompt)([
|
|
129
131
|
{
|
|
130
|
-
choices: Constants_1.getPlatformChoices(),
|
|
132
|
+
choices: (0, Constants_1.getPlatformChoices)(),
|
|
131
133
|
message: 'Select the platforms you like to set up:',
|
|
132
134
|
name: 'platform',
|
|
133
135
|
type: 'checkbox',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileProject.js","sourceRoot":"","sources":["../../../../lib/Steps/Integrations/MobileProject.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MobileProject.js","sourceRoot":"","sources":["../../../../lib/Steps/Integrations/MobileProject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qCAAkC;AAClC,0BAA4B;AAE5B,6CAA+D;AAC/D,gDAA2C;AAC3C,qDAAoD;AAEpD;IAA4C,iCAAe;IAA3D;;IA2DA,CAAC;IAxDQ,oCAAY,GAAnB,UAAoB,OAAgB;QAClC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,0BAA0B,CAAC,EAAE;YAC/C,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACzC;QACD,IAAM,wBAAwB,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;QAC5E,OAAO,CAAC,CAAC,IAAI,CACX,CAAC,CAAC,MAAM,CAAC,wBAAwB,EAAE,UAAC,MAAe,IAAK,OAAA,MAAM,EAAN,CAAM,CAAC,CAChE,CAAC;IACJ,CAAC;IAEY,uCAAe,GAA5B,UAA6B,OAAgB;;;;;;;wBAC3C,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,0BAA0B,CAAC,EAAE;4BAC9C,sBAAO,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,0BAA0B,CAAC,EAAC;yBACnD;wBACK,aAAa,GACjB,IAAI,CAAC,KAAK,CAAC,QAAQ;4BACnB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;4BAClC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAE7B,KAAA,IAAI,CAAA;6BAAc,aAAa,EAAb,wBAAa;wBAC3B,KAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;;4BAClB,qBAAM,IAAI,CAAC,iBAAiB,EAAE,EAAA;;wBAA/B,KAAA,CAAC,SAA8B,CAAC,CAAC,QAAQ,CAAA;;;wBAF7C,GAAK,UAAU,KAE8B,CAAC;wBAExC,wBAAwB,GAAQ,EAAE,CAAC;wBACzC,CAAC,CAAC,IAAI,CAAC,oBAAQ,CAAC,CAAC,OAAO,CAAC,UAAO,QAAkB;;;;;wCAChD,KAAA,wBAAwB,CAAA;wCAAC,KAAA,QAAQ,CAAA;6CAC/B,CAAA,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA,EAAzC,wBAAyC;wCACrC,qBAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAA;;wCAA7C,KAAA,SAA6C,CAAA;;;wCAC7C,KAAA,KAAK,CAAA;;;wCAHX,MAAkC,KAGvB,CAAC;wCACZ,IACE,wBAAwB,CAAC,QAAQ,CAAC,KAAK,KAAK;4CAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,EAC9B;4CACA,IAAA,aAAG,EAAC,6BAAsB,QAAQ,CAAE,CAAC,CAAC;yCACvC;;;;6BACF,CAAC,CAAC;wBACH,sBAAO,EAAE,wBAAwB,0BAAA,EAAE,EAAC;;;;KACrC;IAES,yCAAiB,GAA3B;QACE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;QACD,OAAO,IAAA,iBAAM,EAAC;YACZ;gBACE,OAAO,EAAE,IAAA,8BAAkB,GAAE;gBAC7B,OAAO,EAAE,0CAA0C;gBACnD,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,UAAU;aACjB;SACF,CAAC,CAAC;IACL,CAAC;IAKH,oBAAC;AAAD,CAAC,AA3DD,CAA4C,iCAAe,GA2D1D;AA3DqB,sCAAa","sourcesContent":["import type { Answers} from 'inquirer';\nimport { prompt } from 'inquirer';\nimport * as _ from 'lodash';\n\nimport { getPlatformChoices, Platform } from '../../Constants';\nimport { dim } from '../../Helper/Logging';\nimport { BaseIntegration } from './BaseIntegration';\n\nexport abstract class MobileProject extends BaseIntegration {\n protected _platforms: Platform[];\n\n public getPlatforms(answers: Answers): string[] {\n if (!_.has(answers, 'shouldConfigurePlatforms')) {\n throw new Error('No platform selected');\n }\n const shouldConfigurePlatforms = _.get(answers, 'shouldConfigurePlatforms');\n return _.keys(\n _.pickBy(shouldConfigurePlatforms, (active: boolean) => active),\n );\n }\n\n public async shouldConfigure(answers: Answers): Promise<Answers> {\n if (_.get(answers, 'shouldConfigurePlatforms')) {\n return _.get(answers, 'shouldConfigurePlatforms');\n }\n const isPlatformSet =\n this._argv.platform &&\n Array.isArray(this._argv.platform) &&\n this._argv.platform.length;\n\n this._platforms = isPlatformSet\n ? this._argv.platform\n : (await this._platformSelector()).platform;\n\n const shouldConfigurePlatforms: any = {};\n _.keys(Platform).forEach(async (platform: Platform) => {\n shouldConfigurePlatforms[platform] =\n _.indexOf(this._platforms, platform) >= 0\n ? await this._shouldConfigurePlatform(platform)\n : false;\n if (\n shouldConfigurePlatforms[platform] === false &&\n this._argv.uninstall === false\n ) {\n dim(`will not configure ${platform}`);\n }\n });\n return { shouldConfigurePlatforms };\n }\n\n protected _platformSelector(): Promise<Answers> {\n if (this._argv.quiet) {\n throw new Error('You need to choose a platform');\n }\n return prompt([\n {\n choices: getPlatformChoices(),\n message: 'Select the platforms you like to set up:',\n name: 'platform',\n type: 'checkbox',\n },\n ]);\n }\n\n protected abstract _shouldConfigurePlatform(\n platform: Platform,\n ): Promise<boolean>;\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Answers } from 'inquirer';
|
|
2
|
-
import { Args } from '../../Constants';
|
|
1
|
+
import type { Answers } from 'inquirer';
|
|
2
|
+
import type { Args } from '../../Constants';
|
|
3
3
|
import { SentryCli } from '../../Helper/SentryCli';
|
|
4
4
|
import { BaseIntegration } from './BaseIntegration';
|
|
5
5
|
export declare class NextJs extends BaseIntegration {
|
|
@@ -3,10 +3,12 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
3
3
|
var extendStatics = function (d, b) {
|
|
4
4
|
extendStatics = Object.setPrototypeOf ||
|
|
5
5
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
7
|
return extendStatics(d, b);
|
|
8
8
|
};
|
|
9
9
|
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
10
12
|
extendStatics(d, b);
|
|
11
13
|
function __() { this.constructor = d; }
|
|
12
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
@@ -27,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
27
29
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
28
30
|
function step(op) {
|
|
29
31
|
if (f) throw new TypeError("Generator is already executing.");
|
|
30
|
-
while (_) try {
|
|
32
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
31
33
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
32
34
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
33
35
|
switch (op[0]) {
|
|
@@ -59,12 +61,14 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
59
61
|
}
|
|
60
62
|
return t;
|
|
61
63
|
};
|
|
62
|
-
var
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
65
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
66
|
+
if (ar || !(i in from)) {
|
|
67
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
68
|
+
ar[i] = from[i];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
68
72
|
};
|
|
69
73
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
70
74
|
exports.NextJs = void 0;
|
|
@@ -119,7 +123,7 @@ var NextJs = /** @class */ (function (_super) {
|
|
|
119
123
|
switch (_g.label) {
|
|
120
124
|
case 0:
|
|
121
125
|
dsn = _.get(answers, ['config', 'dsn', 'public'], null);
|
|
122
|
-
Logging_1.nl();
|
|
126
|
+
(0, Logging_1.nl)();
|
|
123
127
|
sentryCliProps = this._sentryCli.convertAnswersToProperties(answers);
|
|
124
128
|
return [4 /*yield*/, this._createSentryCliConfig(sentryCliProps)];
|
|
125
129
|
case 1:
|
|
@@ -132,8 +136,8 @@ var NextJs = /** @class */ (function (_super) {
|
|
|
132
136
|
_g.sent();
|
|
133
137
|
return [3 /*break*/, 4];
|
|
134
138
|
case 3:
|
|
135
|
-
Logging_1.debug("Couldn't find "
|
|
136
|
-
Logging_1.nl();
|
|
139
|
+
(0, Logging_1.debug)("Couldn't find ".concat(configDirectory, ", probably because you ran this from inside of `/lib` rather than `/dist`"));
|
|
140
|
+
(0, Logging_1.nl)();
|
|
137
141
|
_g.label = 4;
|
|
138
142
|
case 4:
|
|
139
143
|
selectedProjectSlug = (_b = (_a = answers.config) === null || _a === void 0 ? void 0 : _a.project) === null || _b === void 0 ? void 0 : _b.slug;
|
|
@@ -143,11 +147,11 @@ var NextJs = /** @class */ (function (_super) {
|
|
|
143
147
|
return [4 /*yield*/, this._setTemplate(templateDirectory, 'sentry_sample_error.js', ['pages', 'src/pages'], dsn)];
|
|
144
148
|
case 5:
|
|
145
149
|
_g.sent();
|
|
146
|
-
Logging_1.l(chalk_1.default.bgYellowBright("\n|------------------------------------------------------------------------|\n| Installation Complete |\n| To verify your installation and finish onboarding, launch your Next.js |\n| application, navigate to http://localhost:3000/sentry_sample_error |\n| and send us a sample error. |\n|------------------------------------------------------------------------|\n"));
|
|
150
|
+
(0, Logging_1.l)(chalk_1.default.bgYellowBright("\n|------------------------------------------------------------------------|\n| Installation Complete |\n| To verify your installation and finish onboarding, launch your Next.js |\n| application, navigate to http://localhost:3000/sentry_sample_error |\n| and send us a sample error. |\n|------------------------------------------------------------------------|\n"));
|
|
147
151
|
_g.label = 6;
|
|
148
152
|
case 6:
|
|
149
|
-
Logging_1.l('For more information, see https://docs.sentry.io/platforms/javascript/guides/nextjs/');
|
|
150
|
-
Logging_1.nl();
|
|
153
|
+
(0, Logging_1.l)('For more information, see https://docs.sentry.io/platforms/javascript/guides/nextjs/');
|
|
154
|
+
(0, Logging_1.nl)();
|
|
151
155
|
return [2 /*return*/, {}];
|
|
152
156
|
}
|
|
153
157
|
});
|
|
@@ -162,10 +166,10 @@ var NextJs = /** @class */ (function (_super) {
|
|
|
162
166
|
if (this._shouldConfigure) {
|
|
163
167
|
return [2 /*return*/, this._shouldConfigure];
|
|
164
168
|
}
|
|
165
|
-
Logging_1.nl();
|
|
169
|
+
(0, Logging_1.nl)();
|
|
166
170
|
userAnswers = { continue: true };
|
|
167
|
-
hasCompatibleNextjsVersion = Package_1.checkPackageVersion(appPackage, 'next', COMPATIBLE_NEXTJS_VERSIONS, true);
|
|
168
|
-
packageManager = PackageManager_1.getPackageMangerChoice();
|
|
171
|
+
hasCompatibleNextjsVersion = (0, Package_1.checkPackageVersion)(appPackage, 'next', COMPATIBLE_NEXTJS_VERSIONS, true);
|
|
172
|
+
packageManager = (0, PackageManager_1.getPackageMangerChoice)();
|
|
169
173
|
hasSdkInstalled = this._hasPackageInstalled('@sentry/nextjs');
|
|
170
174
|
hasCompatibleSdkVersion = false;
|
|
171
175
|
if (!(!hasSdkInstalled && packageManager && hasCompatibleNextjsVersion)) return [3 /*break*/, 2];
|
|
@@ -177,12 +181,12 @@ var NextJs = /** @class */ (function (_super) {
|
|
|
177
181
|
return [3 /*break*/, 3];
|
|
178
182
|
case 2:
|
|
179
183
|
// otherwise, let's check the version and spit out the appropriate error
|
|
180
|
-
hasCompatibleSdkVersion = Package_1.checkPackageVersion(appPackage, '@sentry/nextjs', COMPATIBLE_SDK_VERSIONS, true);
|
|
184
|
+
hasCompatibleSdkVersion = (0, Package_1.checkPackageVersion)(appPackage, '@sentry/nextjs', COMPATIBLE_SDK_VERSIONS, true);
|
|
181
185
|
_a.label = 3;
|
|
182
186
|
case 3:
|
|
183
187
|
hasAllPackagesCompatible = hasCompatibleNextjsVersion && hasCompatibleSdkVersion;
|
|
184
188
|
if (!(!hasAllPackagesCompatible && !this._argv.quiet)) return [3 /*break*/, 5];
|
|
185
|
-
return [4 /*yield*/, inquirer_1.prompt({
|
|
189
|
+
return [4 /*yield*/, (0, inquirer_1.prompt)({
|
|
186
190
|
message: 'There were errors during your project checkup, do you still want to continue?',
|
|
187
191
|
name: 'continue',
|
|
188
192
|
default: false,
|
|
@@ -192,7 +196,7 @@ var NextJs = /** @class */ (function (_super) {
|
|
|
192
196
|
userAnswers = _a.sent();
|
|
193
197
|
_a.label = 5;
|
|
194
198
|
case 5:
|
|
195
|
-
Logging_1.nl();
|
|
199
|
+
(0, Logging_1.nl)();
|
|
196
200
|
if (!userAnswers['continue']) {
|
|
197
201
|
throw new Error('Please install the required dependencies to continue.');
|
|
198
202
|
}
|
|
@@ -217,40 +221,40 @@ var NextJs = /** @class */ (function (_super) {
|
|
|
217
221
|
return [4 /*yield*/, fs.promises.appendFile(SENTRYCLIRC_FILENAME, this._sentryCli.dumpConfig({ auth: { token: authToken } }))];
|
|
218
222
|
case 2:
|
|
219
223
|
_c.sent();
|
|
220
|
-
Logging_1.green("\u2713 Successfully added the auth token to "
|
|
224
|
+
(0, Logging_1.green)("\u2713 Successfully added the auth token to ".concat(SENTRYCLIRC_FILENAME));
|
|
221
225
|
return [3 /*break*/, 4];
|
|
222
226
|
case 3:
|
|
223
227
|
_a = _c.sent();
|
|
224
|
-
Logging_1.red("\u26A0 Could not add the auth token to "
|
|
225
|
-
|
|
226
|
-
Logging_1.nl();
|
|
228
|
+
(0, Logging_1.red)("\u26A0 Could not add the auth token to ".concat(SENTRYCLIRC_FILENAME, ", ") +
|
|
229
|
+
"please add it to identify your user account:\n".concat(authToken));
|
|
230
|
+
(0, Logging_1.nl)();
|
|
227
231
|
return [3 /*break*/, 4];
|
|
228
232
|
case 4: return [3 /*break*/, 6];
|
|
229
233
|
case 5:
|
|
230
|
-
Logging_1.red("\u26A0 Did not find an auth token, please add your token to "
|
|
231
|
-
Logging_1.l('To generate an auth token, visit https://sentry.io/settings/account/api/auth-tokens/');
|
|
232
|
-
Logging_1.l('To learn how to configure Sentry CLI, visit ' +
|
|
234
|
+
(0, Logging_1.red)("\u26A0 Did not find an auth token, please add your token to ".concat(SENTRYCLIRC_FILENAME));
|
|
235
|
+
(0, Logging_1.l)('To generate an auth token, visit https://sentry.io/settings/account/api/auth-tokens/');
|
|
236
|
+
(0, Logging_1.l)('To learn how to configure Sentry CLI, visit ' +
|
|
233
237
|
'https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/#configure-sentry-cli');
|
|
234
238
|
_c.label = 6;
|
|
235
|
-
case 6: return [4 /*yield*/, this._addToGitignore(SENTRYCLIRC_FILENAME, "\u26A0 Could not add "
|
|
239
|
+
case 6: return [4 /*yield*/, this._addToGitignore(SENTRYCLIRC_FILENAME, "\u26A0 Could not add ".concat(SENTRYCLIRC_FILENAME, " to ").concat(GITIGNORE_FILENAME, ", ") +
|
|
236
240
|
'please add it to not commit your auth key.')];
|
|
237
241
|
case 7:
|
|
238
242
|
_c.sent();
|
|
239
243
|
_c.label = 8;
|
|
240
244
|
case 8:
|
|
241
245
|
_c.trys.push([8, 10, , 11]);
|
|
242
|
-
return [4 /*yield*/, fs.promises.writeFile("./"
|
|
246
|
+
return [4 /*yield*/, fs.promises.writeFile("./".concat(PROPERTIES_FILENAME), this._sentryCli.dumpProperties(cliPropsToWrite))];
|
|
243
247
|
case 9:
|
|
244
248
|
_c.sent();
|
|
245
|
-
Logging_1.green(
|
|
249
|
+
(0, Logging_1.green)('✓ Successfully created sentry.properties');
|
|
246
250
|
return [3 /*break*/, 11];
|
|
247
251
|
case 10:
|
|
248
252
|
_b = _c.sent();
|
|
249
|
-
Logging_1.red("\u26A0 Could not add org and project data to "
|
|
250
|
-
Logging_1.l('See docs for a manual setup: https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/#configure-sentry-cli');
|
|
253
|
+
(0, Logging_1.red)("\u26A0 Could not add org and project data to ".concat(PROPERTIES_FILENAME));
|
|
254
|
+
(0, Logging_1.l)('See docs for a manual setup: https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/#configure-sentry-cli');
|
|
251
255
|
return [3 /*break*/, 11];
|
|
252
256
|
case 11:
|
|
253
|
-
Logging_1.nl();
|
|
257
|
+
(0, Logging_1.nl)();
|
|
254
258
|
return [2 /*return*/];
|
|
255
259
|
}
|
|
256
260
|
});
|
|
@@ -263,14 +267,14 @@ var NextJs = /** @class */ (function (_super) {
|
|
|
263
267
|
switch (_b.label) {
|
|
264
268
|
case 0:
|
|
265
269
|
_b.trys.push([0, 2, , 3]);
|
|
266
|
-
return [4 /*yield*/, fs.promises.appendFile(GITIGNORE_FILENAME, "\n# Sentry\n"
|
|
270
|
+
return [4 /*yield*/, fs.promises.appendFile(GITIGNORE_FILENAME, "\n# Sentry\n".concat(filepath, "\n"))];
|
|
267
271
|
case 1:
|
|
268
272
|
_b.sent();
|
|
269
|
-
Logging_1.green("\u2713 "
|
|
273
|
+
(0, Logging_1.green)("\u2713 ".concat(filepath, " added to ").concat(GITIGNORE_FILENAME));
|
|
270
274
|
return [3 /*break*/, 3];
|
|
271
275
|
case 2:
|
|
272
276
|
_a = _b.sent();
|
|
273
|
-
Logging_1.red(errorMsg);
|
|
277
|
+
(0, Logging_1.red)(errorMsg);
|
|
274
278
|
return [3 /*break*/, 3];
|
|
275
279
|
case 3: return [2 /*return*/];
|
|
276
280
|
}
|
|
@@ -298,9 +302,9 @@ var NextJs = /** @class */ (function (_super) {
|
|
|
298
302
|
_i++;
|
|
299
303
|
return [3 /*break*/, 1];
|
|
300
304
|
case 4:
|
|
301
|
-
Logging_1.red('⚠ Performance monitoring is enabled capturing 100% of transactions.\n' +
|
|
305
|
+
(0, Logging_1.red)('⚠ Performance monitoring is enabled capturing 100% of transactions.\n' +
|
|
302
306
|
' Learn more in https://docs.sentry.io/product/performance/');
|
|
303
|
-
Logging_1.nl();
|
|
307
|
+
(0, Logging_1.nl)();
|
|
304
308
|
return [2 /*return*/];
|
|
305
309
|
}
|
|
306
310
|
});
|
|
@@ -334,22 +338,22 @@ var NextJs = /** @class */ (function (_super) {
|
|
|
334
338
|
}
|
|
335
339
|
else if (!fs.existsSync(mergeableFilePath)) {
|
|
336
340
|
this._fillAndCopyTemplate(templatePath, mergeableFilePath, dsn);
|
|
337
|
-
Logging_1.red("File `"
|
|
341
|
+
(0, Logging_1.red)("File `".concat(templateFile, "` already exists, so created `").concat(mergeableFilePath, "`.\n") +
|
|
338
342
|
'Please merge those files.');
|
|
339
|
-
Logging_1.nl();
|
|
343
|
+
(0, Logging_1.nl)();
|
|
340
344
|
}
|
|
341
345
|
else {
|
|
342
|
-
Logging_1.red("Both `"
|
|
346
|
+
(0, Logging_1.red)("Both `".concat(templateFile, "` and `").concat(mergeableFilePath, "` already exist.\n") +
|
|
343
347
|
'Please merge those files.');
|
|
344
|
-
Logging_1.nl();
|
|
348
|
+
(0, Logging_1.nl)();
|
|
345
349
|
}
|
|
346
350
|
return [2 /*return*/];
|
|
347
351
|
case 4:
|
|
348
352
|
_i++;
|
|
349
353
|
return [3 /*break*/, 1];
|
|
350
354
|
case 5:
|
|
351
|
-
Logging_1.red("Could not find appropriate destination for `"
|
|
352
|
-
Logging_1.nl();
|
|
355
|
+
(0, Logging_1.red)("Could not find appropriate destination for `".concat(templateFile, "`. Tried: ").concat(destinationOptions, "."));
|
|
356
|
+
(0, Logging_1.nl)();
|
|
353
357
|
return [2 /*return*/];
|
|
354
358
|
}
|
|
355
359
|
});
|
|
@@ -370,7 +374,7 @@ var NextJs = /** @class */ (function (_super) {
|
|
|
370
374
|
for (var _i = 3; _i < arguments.length; _i++) {
|
|
371
375
|
inserts[_i - 3] = arguments[_i];
|
|
372
376
|
}
|
|
373
|
-
arr.splice.apply(arr,
|
|
377
|
+
arr.splice.apply(arr, __spreadArray([start, deleteCount], inserts, false));
|
|
374
378
|
return arr;
|
|
375
379
|
};
|
|
376
380
|
NextJs.prototype._mergeNextConfig = function (destinationPath, templatePath, destinationDir, templateFile, configDirectory, mergeableFilePath) {
|
|
@@ -381,8 +385,8 @@ var NextJs = /** @class */ (function (_super) {
|
|
|
381
385
|
case 0:
|
|
382
386
|
if (!!fs.existsSync(destinationPath)) return [3 /*break*/, 1];
|
|
383
387
|
fs.copyFileSync(templatePath, destinationPath);
|
|
384
|
-
Logging_1.green('Created File `next.config.js`');
|
|
385
|
-
Logging_1.nl();
|
|
388
|
+
(0, Logging_1.green)('Created File `next.config.js`');
|
|
389
|
+
(0, Logging_1.nl)();
|
|
386
390
|
return [3 /*break*/, 5];
|
|
387
391
|
case 1:
|
|
388
392
|
originalFileName = this._spliceInPlace(templateFile.split('.'), -1, 0, 'original').join('.');
|
|
@@ -393,10 +397,10 @@ var NextJs = /** @class */ (function (_super) {
|
|
|
393
397
|
case 2:
|
|
394
398
|
_a.sent();
|
|
395
399
|
mergedTemplatePath = path.join(configDirectory, 'next.config.template.js');
|
|
396
|
-
if (!MergeConfig_1.mergeConfigFile(destinationPath, mergedTemplatePath)) return [3 /*break*/, 3];
|
|
397
|
-
Logging_1.green("Updated `"
|
|
400
|
+
if (!(0, MergeConfig_1.mergeConfigFile)(destinationPath, mergedTemplatePath)) return [3 /*break*/, 3];
|
|
401
|
+
(0, Logging_1.green)("Updated `".concat(templateFile, "` with Sentry. The original ").concat(templateFile, " was saved as `next.config.original.js`.\n") +
|
|
398
402
|
'Information on the changes made to the Next.js configuration file an be found at https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/');
|
|
399
|
-
Logging_1.nl();
|
|
403
|
+
(0, Logging_1.nl)();
|
|
400
404
|
return [3 /*break*/, 5];
|
|
401
405
|
case 3:
|
|
402
406
|
// if merge fails, we'll create a copy of the `next.config.js` template and ask them to merge
|
|
@@ -404,9 +408,9 @@ var NextJs = /** @class */ (function (_super) {
|
|
|
404
408
|
return [4 /*yield*/, this._addToGitignore(mergeableFilePath, 'Unable to add next.config.wizard.js template to gitignore')];
|
|
405
409
|
case 4:
|
|
406
410
|
_a.sent();
|
|
407
|
-
Logging_1.red("Unable to merge `"
|
|
411
|
+
(0, Logging_1.red)("Unable to merge `".concat(templateFile, "`, so created `").concat(mergeableFilePath, "`.\n") +
|
|
408
412
|
'Please integrate next.config.wizardcopy.js into your next.config.js or next.config.ts file');
|
|
409
|
-
Logging_1.nl();
|
|
413
|
+
(0, Logging_1.nl)();
|
|
410
414
|
_a.label = 5;
|
|
411
415
|
case 5: return [2 /*return*/];
|
|
412
416
|
}
|