snyk 1.855.0 → 1.856.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.
@@ -8,30 +8,28 @@ exports.modules = {
8
8
 
9
9
 
10
10
  Object.defineProperty(exports, "__esModule", ({ value: true }));
11
+ exports.findHelpFile = void 0;
11
12
  const fs = __webpack_require__(35747);
12
13
  const path = __webpack_require__(85622);
13
14
  const markdown_renderer_1 = __webpack_require__(99387);
14
- const DEFAULT_HELP = 'README';
15
- function readHelpFile(filename) {
16
- const file = fs.readFileSync(filename, 'utf8');
17
- return markdown_renderer_1.renderMarkdown(file);
18
- }
19
- async function help(item) {
20
- if (!item || item === true || typeof item !== 'string' || item === 'help') {
21
- item = DEFAULT_HELP;
22
- }
23
- // cleanse the filename to only contain letters
24
- // aka: /\W/g but figured this was easier to read
25
- item = item.replace(/[^a-z0-9-]/gi, '');
26
- try {
27
- const filename = path.resolve(__dirname, '../../help/cli-commands', // this is a relative path from the webpack dist directory
28
- item === DEFAULT_HELP ? `${DEFAULT_HELP}.md` : `${item}.md`);
29
- return readHelpFile(filename);
30
- }
31
- catch (error) {
32
- const filename = path.resolve(__dirname, '../../help/cli-commands', `${DEFAULT_HELP}.md`);
33
- return readHelpFile(filename);
15
+ function findHelpFile(helpArgs, helpFolderPath = '../../help/cli-commands') {
16
+ while (helpArgs.length > 0) {
17
+ // cleanse the filename to only contain letters
18
+ // aka: /\W/g but figured this was easier to read
19
+ const file = `${helpArgs.join('-').replace(/[^a-z0-9-]/gi, '')}.md`;
20
+ const testHelpAbsolutePath = path.resolve(__dirname, helpFolderPath, file);
21
+ if (fs.existsSync(testHelpAbsolutePath)) {
22
+ return testHelpAbsolutePath;
23
+ }
24
+ helpArgs = helpArgs.slice(0, -1);
34
25
  }
26
+ return path.resolve(__dirname, helpFolderPath, `README.md`); // Default help file
27
+ }
28
+ exports.findHelpFile = findHelpFile;
29
+ async function help(...args) {
30
+ const helpArgs = args.filter((arg) => typeof arg === 'string');
31
+ const helpFileAbsolutePath = findHelpFile(helpArgs);
32
+ return markdown_renderer_1.renderMarkdown(fs.readFileSync(helpFileAbsolutePath, 'utf8'));
35
33
  }
36
34
  exports.default = help;
37
35
 
@@ -1 +1 @@
1
- {"version":3,"file":"85.index.js","mappings":"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","sources":["webpack://snyk/./src/cli/commands/help/index.ts","webpack://snyk/./src/cli/commands/help/markdown-renderer.ts","webpack://snyk/./src/cli/commands/help/reflow-text.ts"],"sourcesContent":["import * as fs from 'fs';\nimport * as path from 'path';\nimport { renderMarkdown } from './markdown-renderer';\n\nconst DEFAULT_HELP = 'README';\n\nfunction readHelpFile(filename: string): string {\n const file = fs.readFileSync(filename, 'utf8');\n return renderMarkdown(file);\n}\n\nexport default async function help(item?: string | boolean): Promise<string> {\n if (!item || item === true || typeof item !== 'string' || item === 'help') {\n item = DEFAULT_HELP;\n }\n\n // cleanse the filename to only contain letters\n // aka: /\\W/g but figured this was easier to read\n item = item.replace(/[^a-z0-9-]/gi, '');\n\n try {\n const filename = path.resolve(\n __dirname,\n '../../help/cli-commands', // this is a relative path from the webpack dist directory\n item === DEFAULT_HELP ? `${DEFAULT_HELP}.md` : `${item}.md`,\n );\n return readHelpFile(filename);\n } catch (error) {\n const filename = path.resolve(\n __dirname,\n '../../help/cli-commands',\n `${DEFAULT_HELP}.md`,\n );\n return readHelpFile(filename);\n }\n}\n","import { marked } from 'marked';\nimport chalk from 'chalk';\nimport { reflowText } from './reflow-text';\n\n// stateful variable to control left-padding by header level\nlet currentHeader = 1;\nconst listItemSeparator = 'LISTITEMSEPARATOR'; // Helper string for rendering ListItems\n\n/**\n * @description get padding spaces depending on the last header level used\n * @returns string\n */\nfunction getLeftTextPadding(): string {\n return ' '.repeat(\n currentHeader === 1 || currentHeader === 2 ? 1 : currentHeader - 1,\n );\n}\n\n/**\n * @description Reads current terminal width if available to limit column width for text-reflowing\n * @returns {number}\n */\nconst defaultMaximumLineWidth = 100;\nfunction getIdealTextWidth(maximumLineWidth = defaultMaximumLineWidth): number {\n if (typeof process.stdout.columns === 'number') {\n if (process.stdout.columns < maximumLineWidth) {\n return process.stdout.columns - getLeftTextPadding().length - 5;\n }\n }\n return maximumLineWidth - getLeftTextPadding().length;\n}\n\n// Marked custom renderer class\nconst renderer = {\n em(text) {\n return chalk.italic(text);\n },\n strong(text) {\n return chalk.bold(text);\n },\n link(href, title, text) {\n // Don't render links to relative paths (like local files)\n if (href.startsWith('./') || !href.includes('://')) {\n return text;\n }\n const renderedLink = chalk.bold.blueBright(href);\n if (text && text !== href) {\n return `${text} ${renderedLink}`;\n }\n return renderedLink;\n },\n blockquote(quote) {\n return quote;\n },\n list(body, ordered, start) {\n return (\n body\n .split(listItemSeparator)\n .map((listItem, listItemIndex) => {\n const bulletPoint = ordered ? `${listItemIndex + start}. ` : '- ';\n return reflowText(listItem, getIdealTextWidth())\n .split('\\n')\n .map((listItemLine, listItemLineIndex) => {\n if (!listItemLine) {\n return '';\n }\n return `${getLeftTextPadding()}${\n listItemLineIndex === 0 ? bulletPoint : ' '\n }${listItemLine}`;\n })\n .join('\\n');\n })\n .join('\\n') + '\\n'\n );\n },\n listitem(text) {\n return text + listItemSeparator;\n },\n paragraph(text) {\n return (\n reflowText(text, getIdealTextWidth())\n .split('\\n')\n .map((s) => getLeftTextPadding() + chalk.reset() + s)\n .join('\\n') + '\\n\\n'\n );\n },\n codespan(text) {\n return chalk.italic.blueBright(`${text}`);\n },\n code(code) {\n return code + '\\n';\n },\n heading(text, level) {\n currentHeader = level;\n let coloring;\n switch (level) {\n case 1:\n coloring = chalk.bold.underline;\n break;\n case 3:\n case 4:\n coloring = chalk;\n break;\n default:\n coloring = chalk.bold;\n break;\n }\n return `${' '.repeat(level === 1 ? 0 : currentHeader - 2)}${coloring(\n text,\n )}\\n`;\n },\n};\n\nmarked.use({ renderer });\nmarked.setOptions({\n mangle: false,\n});\n\nconst htmlUnescapes = {\n '&amp;': '&',\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '\"',\n '&#39;': \"'\",\n '&#96;': '`',\n '&#x20;': '',\n};\n\n/**\n * @description Replace HTML entities with their non-encoded variant\n * @param {string} text\n * @returns {string}\n */\nfunction unescape(text: string): string {\n Object.entries(htmlUnescapes).forEach(([escapedChar, unescapedChar]) => {\n const escapedCharRegExp = new RegExp(escapedChar, 'g');\n text = text.replace(escapedCharRegExp, unescapedChar);\n });\n return text;\n}\n\nexport function renderMarkdown(markdown: string): string {\n return unescape(marked.parse(markdown));\n}\n","/**\nCode in this file is adapted from mikaelbr/marked-terminal\nhttps://github.com/mikaelbr/marked-terminal/blob/7501b8bb24a5ed52ec7d9114d4aeefa14f1bf5e6/index.js#L234-L330\n\n\nMIT License\n\nCopyright (c) 2017 Mikael Brevik\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n */\n\n// Compute length of str not including ANSI escape codes.\n// See http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\nfunction textLength(str: string): number {\n // eslint-disable-next-line no-control-regex\n return str.replace(/\\u001b\\[(?:\\d{1,3})(?:;\\d{1,3})*m/g, '').length;\n}\n\n// Munge \\n's and spaces in \"text\" so that the number of\n// characters between \\n's is less than or equal to \"width\".\nexport function reflowText(text: string, width: number): string {\n const HARD_RETURN = '\\r|\\n';\n const HARD_RETURN_GFM_RE = new RegExp(HARD_RETURN + '|<br ?/?>');\n\n const splitRe = HARD_RETURN_GFM_RE;\n const sections = text.split(splitRe);\n const reflowed = [] as string[];\n\n sections.forEach((section) => {\n // Split the section by escape codes so that we can\n // deal with them separately.\n // eslint-disable-next-line no-control-regex\n const fragments = section.split(/(\\u001b\\[(?:\\d{1,3})(?:;\\d{1,3})*m)/g);\n let column = 0;\n let currentLine = '';\n let lastWasEscapeChar = false;\n\n while (fragments.length) {\n const fragment = fragments[0];\n\n if (fragment === '') {\n fragments.splice(0, 1);\n lastWasEscapeChar = false;\n continue;\n }\n\n // This is an escape code - leave it whole and\n // move to the next fragment.\n if (!textLength(fragment)) {\n currentLine += fragment;\n fragments.splice(0, 1);\n lastWasEscapeChar = true;\n continue;\n }\n\n const words = fragment.split(/[ \\t\\n]+/);\n\n for (let i = 0; i < words.length; i++) {\n let word = words[i];\n let addSpace = column != 0;\n if (lastWasEscapeChar) addSpace = false;\n\n // If adding the new word overflows the required width\n if (column + word.length > width) {\n if (word.length <= width) {\n // If the new word is smaller than the required width\n // just add it at the beginning of a new line\n reflowed.push(currentLine);\n currentLine = word;\n column = word.length;\n } else {\n // If the new word is longer than the required width\n // split this word into smaller parts.\n const w = word.substr(0, width - column);\n if (addSpace) currentLine += ' ';\n currentLine += w;\n reflowed.push(currentLine);\n currentLine = '';\n column = 0;\n\n word = word.substr(w.length);\n while (word.length) {\n const w = word.substr(0, width);\n\n if (!w.length) break;\n\n if (w.length < width) {\n currentLine = w;\n column = w.length;\n break;\n } else {\n reflowed.push(w);\n word = word.substr(width);\n }\n }\n }\n } else {\n if (addSpace) {\n currentLine += ' ';\n column++;\n }\n\n currentLine += word;\n column += word.length;\n }\n\n lastWasEscapeChar = false;\n }\n\n fragments.splice(0, 1);\n }\n\n if (textLength(currentLine)) reflowed.push(currentLine);\n });\n\n return reflowed.join('\\n');\n}\n"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"85.index.js","mappings":"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","sources":["webpack://snyk/./src/cli/commands/help/index.ts","webpack://snyk/./src/cli/commands/help/markdown-renderer.ts","webpack://snyk/./src/cli/commands/help/reflow-text.ts"],"sourcesContent":["import * as fs from 'fs';\nimport * as path from 'path';\nimport { MethodArgs } from '../../args';\nimport { renderMarkdown } from './markdown-renderer';\n\nexport function findHelpFile(\n helpArgs: string[],\n helpFolderPath = '../../help/cli-commands', // this is a relative path from the webpack dist directory,\n): string {\n while (helpArgs.length > 0) {\n // cleanse the filename to only contain letters\n // aka: /\\W/g but figured this was easier to read\n const file = `${helpArgs.join('-').replace(/[^a-z0-9-]/gi, '')}.md`;\n const testHelpAbsolutePath = path.resolve(__dirname, helpFolderPath, file);\n if (fs.existsSync(testHelpAbsolutePath)) {\n return testHelpAbsolutePath;\n }\n helpArgs = helpArgs.slice(0, -1);\n }\n return path.resolve(__dirname, helpFolderPath, `README.md`); // Default help file\n}\n\nexport default async function help(...args: MethodArgs): Promise<string> {\n const helpArgs = args.filter((arg): arg is string => typeof arg === 'string');\n const helpFileAbsolutePath = findHelpFile(helpArgs);\n return renderMarkdown(fs.readFileSync(helpFileAbsolutePath, 'utf8'));\n}\n","import { marked } from 'marked';\nimport chalk from 'chalk';\nimport { reflowText } from './reflow-text';\n\n// stateful variable to control left-padding by header level\nlet currentHeader = 1;\nconst listItemSeparator = 'LISTITEMSEPARATOR'; // Helper string for rendering ListItems\n\n/**\n * @description get padding spaces depending on the last header level used\n * @returns string\n */\nfunction getLeftTextPadding(): string {\n return ' '.repeat(\n currentHeader === 1 || currentHeader === 2 ? 1 : currentHeader - 1,\n );\n}\n\n/**\n * @description Reads current terminal width if available to limit column width for text-reflowing\n * @returns {number}\n */\nconst defaultMaximumLineWidth = 100;\nfunction getIdealTextWidth(maximumLineWidth = defaultMaximumLineWidth): number {\n if (typeof process.stdout.columns === 'number') {\n if (process.stdout.columns < maximumLineWidth) {\n return process.stdout.columns - getLeftTextPadding().length - 5;\n }\n }\n return maximumLineWidth - getLeftTextPadding().length;\n}\n\n// Marked custom renderer class\nconst renderer = {\n em(text) {\n return chalk.italic(text);\n },\n strong(text) {\n return chalk.bold(text);\n },\n link(href, title, text) {\n // Don't render links to relative paths (like local files)\n if (href.startsWith('./') || !href.includes('://')) {\n return text;\n }\n const renderedLink = chalk.bold.blueBright(href);\n if (text && text !== href) {\n return `${text} ${renderedLink}`;\n }\n return renderedLink;\n },\n blockquote(quote) {\n return quote;\n },\n list(body, ordered, start) {\n return (\n body\n .split(listItemSeparator)\n .map((listItem, listItemIndex) => {\n const bulletPoint = ordered ? `${listItemIndex + start}. ` : '- ';\n return reflowText(listItem, getIdealTextWidth())\n .split('\\n')\n .map((listItemLine, listItemLineIndex) => {\n if (!listItemLine) {\n return '';\n }\n return `${getLeftTextPadding()}${\n listItemLineIndex === 0 ? bulletPoint : ' '\n }${listItemLine}`;\n })\n .join('\\n');\n })\n .join('\\n') + '\\n'\n );\n },\n listitem(text) {\n return text + listItemSeparator;\n },\n paragraph(text) {\n return (\n reflowText(text, getIdealTextWidth())\n .split('\\n')\n .map((s) => getLeftTextPadding() + chalk.reset() + s)\n .join('\\n') + '\\n\\n'\n );\n },\n codespan(text) {\n return chalk.italic.blueBright(`${text}`);\n },\n code(code) {\n return code + '\\n';\n },\n heading(text, level) {\n currentHeader = level;\n let coloring;\n switch (level) {\n case 1:\n coloring = chalk.bold.underline;\n break;\n case 3:\n case 4:\n coloring = chalk;\n break;\n default:\n coloring = chalk.bold;\n break;\n }\n return `${' '.repeat(level === 1 ? 0 : currentHeader - 2)}${coloring(\n text,\n )}\\n`;\n },\n};\n\nmarked.use({ renderer });\nmarked.setOptions({\n mangle: false,\n});\n\nconst htmlUnescapes = {\n '&amp;': '&',\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '\"',\n '&#39;': \"'\",\n '&#96;': '`',\n '&#x20;': '',\n};\n\n/**\n * @description Replace HTML entities with their non-encoded variant\n * @param {string} text\n * @returns {string}\n */\nfunction unescape(text: string): string {\n Object.entries(htmlUnescapes).forEach(([escapedChar, unescapedChar]) => {\n const escapedCharRegExp = new RegExp(escapedChar, 'g');\n text = text.replace(escapedCharRegExp, unescapedChar);\n });\n return text;\n}\n\nexport function renderMarkdown(markdown: string): string {\n return unescape(marked.parse(markdown));\n}\n","/**\nCode in this file is adapted from mikaelbr/marked-terminal\nhttps://github.com/mikaelbr/marked-terminal/blob/7501b8bb24a5ed52ec7d9114d4aeefa14f1bf5e6/index.js#L234-L330\n\n\nMIT License\n\nCopyright (c) 2017 Mikael Brevik\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n */\n\n// Compute length of str not including ANSI escape codes.\n// See http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\nfunction textLength(str: string): number {\n // eslint-disable-next-line no-control-regex\n return str.replace(/\\u001b\\[(?:\\d{1,3})(?:;\\d{1,3})*m/g, '').length;\n}\n\n// Munge \\n's and spaces in \"text\" so that the number of\n// characters between \\n's is less than or equal to \"width\".\nexport function reflowText(text: string, width: number): string {\n const HARD_RETURN = '\\r|\\n';\n const HARD_RETURN_GFM_RE = new RegExp(HARD_RETURN + '|<br ?/?>');\n\n const splitRe = HARD_RETURN_GFM_RE;\n const sections = text.split(splitRe);\n const reflowed = [] as string[];\n\n sections.forEach((section) => {\n // Split the section by escape codes so that we can\n // deal with them separately.\n // eslint-disable-next-line no-control-regex\n const fragments = section.split(/(\\u001b\\[(?:\\d{1,3})(?:;\\d{1,3})*m)/g);\n let column = 0;\n let currentLine = '';\n let lastWasEscapeChar = false;\n\n while (fragments.length) {\n const fragment = fragments[0];\n\n if (fragment === '') {\n fragments.splice(0, 1);\n lastWasEscapeChar = false;\n continue;\n }\n\n // This is an escape code - leave it whole and\n // move to the next fragment.\n if (!textLength(fragment)) {\n currentLine += fragment;\n fragments.splice(0, 1);\n lastWasEscapeChar = true;\n continue;\n }\n\n const words = fragment.split(/[ \\t\\n]+/);\n\n for (let i = 0; i < words.length; i++) {\n let word = words[i];\n let addSpace = column != 0;\n if (lastWasEscapeChar) addSpace = false;\n\n // If adding the new word overflows the required width\n if (column + word.length > width) {\n if (word.length <= width) {\n // If the new word is smaller than the required width\n // just add it at the beginning of a new line\n reflowed.push(currentLine);\n currentLine = word;\n column = word.length;\n } else {\n // If the new word is longer than the required width\n // split this word into smaller parts.\n const w = word.substr(0, width - column);\n if (addSpace) currentLine += ' ';\n currentLine += w;\n reflowed.push(currentLine);\n currentLine = '';\n column = 0;\n\n word = word.substr(w.length);\n while (word.length) {\n const w = word.substr(0, width);\n\n if (!w.length) break;\n\n if (w.length < width) {\n currentLine = w;\n column = w.length;\n break;\n } else {\n reflowed.push(w);\n word = word.substr(width);\n }\n }\n }\n } else {\n if (addSpace) {\n currentLine += ' ';\n column++;\n }\n\n currentLine += word;\n column += word.length;\n }\n\n lastWasEscapeChar = false;\n }\n\n fragments.splice(0, 1);\n }\n\n if (textLength(currentLine)) reflowed.push(currentLine);\n });\n\n return reflowed.join('\\n');\n}\n"],"names":[],"sourceRoot":""}
@@ -456,30 +456,28 @@ exports.default = apps;
456
456
  "use strict";
457
457
 
458
458
  Object.defineProperty(exports, "__esModule", ({ value: true }));
459
+ exports.findHelpFile = void 0;
459
460
  const fs = __webpack_require__(35747);
460
461
  const path = __webpack_require__(85622);
461
462
  const markdown_renderer_1 = __webpack_require__(99387);
462
- const DEFAULT_HELP = 'README';
463
- function readHelpFile(filename) {
464
- const file = fs.readFileSync(filename, 'utf8');
465
- return markdown_renderer_1.renderMarkdown(file);
466
- }
467
- async function help(item) {
468
- if (!item || item === true || typeof item !== 'string' || item === 'help') {
469
- item = DEFAULT_HELP;
470
- }
471
- // cleanse the filename to only contain letters
472
- // aka: /\W/g but figured this was easier to read
473
- item = item.replace(/[^a-z0-9-]/gi, '');
474
- try {
475
- const filename = path.resolve(__dirname, '../../help/cli-commands', // this is a relative path from the webpack dist directory
476
- item === DEFAULT_HELP ? `${DEFAULT_HELP}.md` : `${item}.md`);
477
- return readHelpFile(filename);
478
- }
479
- catch (error) {
480
- const filename = path.resolve(__dirname, '../../help/cli-commands', `${DEFAULT_HELP}.md`);
481
- return readHelpFile(filename);
463
+ function findHelpFile(helpArgs, helpFolderPath = '../../help/cli-commands') {
464
+ while (helpArgs.length > 0) {
465
+ // cleanse the filename to only contain letters
466
+ // aka: /\W/g but figured this was easier to read
467
+ const file = `${helpArgs.join('-').replace(/[^a-z0-9-]/gi, '')}.md`;
468
+ const testHelpAbsolutePath = path.resolve(__dirname, helpFolderPath, file);
469
+ if (fs.existsSync(testHelpAbsolutePath)) {
470
+ return testHelpAbsolutePath;
471
+ }
472
+ helpArgs = helpArgs.slice(0, -1);
482
473
  }
474
+ return path.resolve(__dirname, helpFolderPath, `README.md`); // Default help file
475
+ }
476
+ exports.findHelpFile = findHelpFile;
477
+ async function help(...args) {
478
+ const helpArgs = args.filter((arg) => typeof arg === 'string');
479
+ const helpFileAbsolutePath = findHelpFile(helpArgs);
480
+ return markdown_renderer_1.renderMarkdown(fs.readFileSync(helpFileAbsolutePath, 'utf8'));
483
481
  }
484
482
  exports.default = help;
485
483
 
@@ -1 +1 @@
1
- {"version":3,"file":"977.index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5VA,yCAA+B;AAC/B,0CAQ2B;AAC3B,6CAA6D;AAC7D,6CAA+C;AAE/C,MAAM,KAAK,GAAG,KAAK,CAAC,qBAAc,CAAC,CAAC;AAEpC;;;;;;;GAOG;AACI,KAAK,UAAU,SAAS,CAC7B,IAAuB;IAEvB,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxB,MAAM,EACJ,KAAK,EACL,WAAW,EAAE,IAAI,EACjB,mBAAmB,EAAE,YAAY,EACjC,aAAa,EAAE,MAAM,GACtB,GAAG,IAAI,CAAC;IACT,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,iBAAU,CAAC,eAAQ,CAAC,UAAU,EAAE,EAAE,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AW,CAAM,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AApBD,sCAoBC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9CD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA","sources":["webpack://snyk/./node_modules/lodash.flatten/index.js","webpack://snyk/./src/cli/commands/apps/create-app.ts","webpack://snyk/./src/cli/commands/apps/index.ts","webpack://snyk/./src/cli/commands/help/index.ts","webpack://snyk/./src/cli/commands/help/markdown-renderer.ts","webpack://snyk/./src/cli/commands/help/reflow-text.ts","webpack://snyk/./src/cli/commands/process-command-args.ts","webpack://snyk/./src/lib/apps/constants.ts","webpack://snyk/./src/lib/apps/create-app/index.ts","webpack://snyk/./src/lib/apps/index.ts","webpack://snyk/./src/lib/apps/input-validator.ts","webpack://snyk/./src/lib/apps/prompts.ts","webpack://snyk/./src/lib/apps/types.ts","webpack://snyk/./src/lib/apps/utils.ts","webpack://snyk/./src/lib/apps/v3-utils.ts","webpack://snyk/./src/lib/request/promise.ts","webpack://snyk/./node_modules/tslib/tslib.es6.js"],"sourcesContent":["/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array ? array.length : 0;\n return length ? baseFlatten(array, 1) : [];\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = flatten;\n","import * as Debug from 'debug';\nimport {\n EAppsURL,\n getAppsURL,\n handleCreateAppRes,\n handleV3Error,\n ICreateAppRequest,\n ICreateAppResponse,\n SNYK_APP_DEBUG,\n} from '../../../lib/apps';\nimport { makeRequestV3 } from '../../../lib/request/promise';\nimport { spinner } from '../../../lib/spinner';\n\nconst debug = Debug(SNYK_APP_DEBUG);\n\n/**\n * Function to process the app creation request and\n * handle any errors that are request error and print\n * in a formatted string. It throws is error is unknown\n * or cannot be handled.\n * @param {ICreateAppRequest} data to create the app\n * @returns {String} response formatted string\n */\nexport async function createApp(\n data: ICreateAppRequest,\n): Promise<string | void> {\n debug('App data', data);\n const {\n orgId,\n snykAppName: name,\n snykAppRedirectUris: redirectUris,\n snykAppScopes: scopes,\n } = data;\n const payload = {\n method: 'POST',\n url: getAppsURL(EAppsURL.CREATE_APP, { orgId }),\n body: {\n name,\n redirectUris,\n scopes,\n },\n qs: {\n version: '2021-08-11~experimental',\n },\n };\n\n try {\n await spinner('Creating your Snyk App');\n const response = await makeRequestV3<ICreateAppResponse>(payload);\n debug(response);\n spinner.clearAll();\n return handleCreateAppRes(response);\n } catch (error) {\n spinner.clearAll();\n handleV3Error(error);\n }\n}\n","import * as Debug from 'debug';\nimport { MethodArgs } from '../../args';\nimport { processCommandArgs } from '../process-command-args';\nimport {\n EValidSubCommands,\n validAppsSubCommands,\n SNYK_APP_DEBUG,\n ICreateAppOptions,\n AppsErrorMessages,\n} from '../../../lib/apps';\n\nimport { createApp } from './create-app';\n// import * as path from 'path';\nimport {\n createAppDataInteractive,\n createAppDataScriptable,\n} from '../../../lib/apps/create-app';\nimport help from '../help';\n\nconst debug = Debug(SNYK_APP_DEBUG);\n\nexport default async function apps(\n ...args0: MethodArgs\n): Promise<string | undefined | any> {\n debug('Snyk apps CLI called');\n\n const { options, paths } = processCommandArgs<ICreateAppOptions>(...args0);\n debug(options, paths);\n\n const commandVerb1 = paths[0];\n const validCommandVerb =\n commandVerb1 && validAppsSubCommands.includes(commandVerb1);\n if (!validCommandVerb) {\n // Display help md for apps\n debug(`Unknown subcommand: ${commandVerb1}`);\n return help('apps');\n }\n // Check if experimental flag is being used\n if (!options.experimental) throw new Error(AppsErrorMessages.useExperimental);\n\n if (commandVerb1 === EValidSubCommands.CREATE) {\n const createAppData = options.interactive\n ? await createAppDataInteractive()\n : createAppDataScriptable(options);\n return await createApp(createAppData);\n }\n}\n","import * as fs from 'fs';\nimport * as path from 'path';\nimport { renderMarkdown } from './markdown-renderer';\n\nconst DEFAULT_HELP = 'README';\n\nfunction readHelpFile(filename: string): string {\n const file = fs.readFileSync(filename, 'utf8');\n return renderMarkdown(file);\n}\n\nexport default async function help(item?: string | boolean): Promise<string> {\n if (!item || item === true || typeof item !== 'string' || item === 'help') {\n item = DEFAULT_HELP;\n }\n\n // cleanse the filename to only contain letters\n // aka: /\\W/g but figured this was easier to read\n item = item.replace(/[^a-z0-9-]/gi, '');\n\n try {\n const filename = path.resolve(\n __dirname,\n '../../help/cli-commands', // this is a relative path from the webpack dist directory\n item === DEFAULT_HELP ? `${DEFAULT_HELP}.md` : `${item}.md`,\n );\n return readHelpFile(filename);\n } catch (error) {\n const filename = path.resolve(\n __dirname,\n '../../help/cli-commands',\n `${DEFAULT_HELP}.md`,\n );\n return readHelpFile(filename);\n }\n}\n","import { marked } from 'marked';\nimport chalk from 'chalk';\nimport { reflowText } from './reflow-text';\n\n// stateful variable to control left-padding by header level\nlet currentHeader = 1;\nconst listItemSeparator = 'LISTITEMSEPARATOR'; // Helper string for rendering ListItems\n\n/**\n * @description get padding spaces depending on the last header level used\n * @returns string\n */\nfunction getLeftTextPadding(): string {\n return ' '.repeat(\n currentHeader === 1 || currentHeader === 2 ? 1 : currentHeader - 1,\n );\n}\n\n/**\n * @description Reads current terminal width if available to limit column width for text-reflowing\n * @returns {number}\n */\nconst defaultMaximumLineWidth = 100;\nfunction getIdealTextWidth(maximumLineWidth = defaultMaximumLineWidth): number {\n if (typeof process.stdout.columns === 'number') {\n if (process.stdout.columns < maximumLineWidth) {\n return process.stdout.columns - getLeftTextPadding().length - 5;\n }\n }\n return maximumLineWidth - getLeftTextPadding().length;\n}\n\n// Marked custom renderer class\nconst renderer = {\n em(text) {\n return chalk.italic(text);\n },\n strong(text) {\n return chalk.bold(text);\n },\n link(href, title, text) {\n // Don't render links to relative paths (like local files)\n if (href.startsWith('./') || !href.includes('://')) {\n return text;\n }\n const renderedLink = chalk.bold.blueBright(href);\n if (text && text !== href) {\n return `${text} ${renderedLink}`;\n }\n return renderedLink;\n },\n blockquote(quote) {\n return quote;\n },\n list(body, ordered, start) {\n return (\n body\n .split(listItemSeparator)\n .map((listItem, listItemIndex) => {\n const bulletPoint = ordered ? `${listItemIndex + start}. ` : '- ';\n return reflowText(listItem, getIdealTextWidth())\n .split('\\n')\n .map((listItemLine, listItemLineIndex) => {\n if (!listItemLine) {\n return '';\n }\n return `${getLeftTextPadding()}${\n listItemLineIndex === 0 ? bulletPoint : ' '\n }${listItemLine}`;\n })\n .join('\\n');\n })\n .join('\\n') + '\\n'\n );\n },\n listitem(text) {\n return text + listItemSeparator;\n },\n paragraph(text) {\n return (\n reflowText(text, getIdealTextWidth())\n .split('\\n')\n .map((s) => getLeftTextPadding() + chalk.reset() + s)\n .join('\\n') + '\\n\\n'\n );\n },\n codespan(text) {\n return chalk.italic.blueBright(`${text}`);\n },\n code(code) {\n return code + '\\n';\n },\n heading(text, level) {\n currentHeader = level;\n let coloring;\n switch (level) {\n case 1:\n coloring = chalk.bold.underline;\n break;\n case 3:\n case 4:\n coloring = chalk;\n break;\n default:\n coloring = chalk.bold;\n break;\n }\n return `${' '.repeat(level === 1 ? 0 : currentHeader - 2)}${coloring(\n text,\n )}\\n`;\n },\n};\n\nmarked.use({ renderer });\nmarked.setOptions({\n mangle: false,\n});\n\nconst htmlUnescapes = {\n '&amp;': '&',\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '\"',\n '&#39;': \"'\",\n '&#96;': '`',\n '&#x20;': '',\n};\n\n/**\n * @description Replace HTML entities with their non-encoded variant\n * @param {string} text\n * @returns {string}\n */\nfunction unescape(text: string): string {\n Object.entries(htmlUnescapes).forEach(([escapedChar, unescapedChar]) => {\n const escapedCharRegExp = new RegExp(escapedChar, 'g');\n text = text.replace(escapedCharRegExp, unescapedChar);\n });\n return text;\n}\n\nexport function renderMarkdown(markdown: string): string {\n return unescape(marked.parse(markdown));\n}\n","/**\nCode in this file is adapted from mikaelbr/marked-terminal\nhttps://github.com/mikaelbr/marked-terminal/blob/7501b8bb24a5ed52ec7d9114d4aeefa14f1bf5e6/index.js#L234-L330\n\n\nMIT License\n\nCopyright (c) 2017 Mikael Brevik\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n */\n\n// Compute length of str not including ANSI escape codes.\n// See http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\nfunction textLength(str: string): number {\n // eslint-disable-next-line no-control-regex\n return str.replace(/\\u001b\\[(?:\\d{1,3})(?:;\\d{1,3})*m/g, '').length;\n}\n\n// Munge \\n's and spaces in \"text\" so that the number of\n// characters between \\n's is less than or equal to \"width\".\nexport function reflowText(text: string, width: number): string {\n const HARD_RETURN = '\\r|\\n';\n const HARD_RETURN_GFM_RE = new RegExp(HARD_RETURN + '|<br ?/?>');\n\n const splitRe = HARD_RETURN_GFM_RE;\n const sections = text.split(splitRe);\n const reflowed = [] as string[];\n\n sections.forEach((section) => {\n // Split the section by escape codes so that we can\n // deal with them separately.\n // eslint-disable-next-line no-control-regex\n const fragments = section.split(/(\\u001b\\[(?:\\d{1,3})(?:;\\d{1,3})*m)/g);\n let column = 0;\n let currentLine = '';\n let lastWasEscapeChar = false;\n\n while (fragments.length) {\n const fragment = fragments[0];\n\n if (fragment === '') {\n fragments.splice(0, 1);\n lastWasEscapeChar = false;\n continue;\n }\n\n // This is an escape code - leave it whole and\n // move to the next fragment.\n if (!textLength(fragment)) {\n currentLine += fragment;\n fragments.splice(0, 1);\n lastWasEscapeChar = true;\n continue;\n }\n\n const words = fragment.split(/[ \\t\\n]+/);\n\n for (let i = 0; i < words.length; i++) {\n let word = words[i];\n let addSpace = column != 0;\n if (lastWasEscapeChar) addSpace = false;\n\n // If adding the new word overflows the required width\n if (column + word.length > width) {\n if (word.length <= width) {\n // If the new word is smaller than the required width\n // just add it at the beginning of a new line\n reflowed.push(currentLine);\n currentLine = word;\n column = word.length;\n } else {\n // If the new word is longer than the required width\n // split this word into smaller parts.\n const w = word.substr(0, width - column);\n if (addSpace) currentLine += ' ';\n currentLine += w;\n reflowed.push(currentLine);\n currentLine = '';\n column = 0;\n\n word = word.substr(w.length);\n while (word.length) {\n const w = word.substr(0, width);\n\n if (!w.length) break;\n\n if (w.length < width) {\n currentLine = w;\n column = w.length;\n break;\n } else {\n reflowed.push(w);\n word = word.substr(width);\n }\n }\n }\n } else {\n if (addSpace) {\n currentLine += ' ';\n column++;\n }\n\n currentLine += word;\n column += word.length;\n }\n\n lastWasEscapeChar = false;\n }\n\n fragments.splice(0, 1);\n }\n\n if (textLength(currentLine)) reflowed.push(currentLine);\n });\n\n return reflowed.join('\\n');\n}\n","import { Options } from '../../lib/types';\n\nexport function processCommandArgs<CommandOptions>(\n ...args\n): { paths: string[]; options: Options & CommandOptions } {\n let options = ({} as any) as Options & CommandOptions;\n\n if (typeof args[args.length - 1] === 'object') {\n options = (args.pop() as any) as Options & CommandOptions;\n }\n args = args.filter(Boolean);\n\n // For repository scanning, populate with default path (cwd) if no path given\n if (args.length === 0 && !options.docker) {\n args.unshift(process.cwd());\n }\n\n return { options, paths: args };\n}\n","import chalk from 'chalk';\n\nexport const SNYK_APP_NAME = 'snykAppName';\nexport const SNYK_APP_REDIRECT_URIS = 'snykAppRedirectUris';\nexport const SNYK_APP_SCOPES = 'snykAppScopes';\nexport const SNYK_APP_CLIENT_ID = 'snykAppClientId';\nexport const SNYK_APP_ORG_ID = 'snykAppOrgId';\nexport const SNYK_APP_DEBUG = 'snyk:apps';\n\nexport enum EValidSubCommands {\n CREATE = 'create',\n}\n\nexport enum EAppsURL {\n CREATE_APP,\n}\n\nexport const validAppsSubCommands = Object.values<string>(EValidSubCommands);\n\nexport const AppsErrorMessages = {\n orgRequired: `Option '--org' is required! For interactive mode, please use '--interactive' or '-i' flag. For more information please run the help command 'snyk apps --help' or 'snyk apps -h'.`,\n nameRequired: `Option '--name' is required! For interactive mode, please use '--interactive' or '-i' flag. For more information please run the help command 'snyk apps --help' or 'snyk apps -h'.`,\n redirectUrisRequired: `Option '--redirect-uris' is required! For interactive mode, please use '--interactive' or '-i' flag. For more information please run the help command 'snyk apps --help' or 'snyk apps -h'.`,\n scopesRequired: `Option '--scopes' is required! For interactive mode, please use '--interactive' or '-i' flag. For more information please run the help command 'snyk apps --help' or 'snyk apps -h'.`,\n useExperimental: `\\n${chalk.redBright(\n \"All 'apps' commands are only accessible behind the '--experimental' flag.\",\n )}\\n \nThe behaviour can change at any time, without prior notice. \nYou are kindly advised to use all the commands with caution.\n \n${chalk.bold('Usage')}\n ${chalk.italic('snyk apps <COMMAND> --experimental')}\\n`,\n};\n\nexport const CreateAppPromptData = {\n SNYK_APP_NAME: {\n name: SNYK_APP_NAME,\n message: `Name of the Snyk App (visible to users when they install the Snyk App)?`,\n },\n SNYK_APP_REDIRECT_URIS: {\n name: SNYK_APP_REDIRECT_URIS,\n message: `Your Snyk App's redirect URIs (comma seprated list. ${chalk.yellowBright(\n ' Ex: https://example1.com,https://example2.com',\n )})?: `,\n },\n SNYK_APP_SCOPES: {\n name: SNYK_APP_SCOPES,\n message: `Your Snyk App's permission scopes (comma separated list. ${chalk.yellowBright(\n ' Ex: apps:beta',\n )})?: `,\n },\n SNYK_APP_ORG_ID: {\n name: SNYK_APP_ORG_ID,\n message:\n 'Please provide the org id under which you want to create your Snyk App: ',\n },\n};\n","import {\n AppsErrorMessages,\n createAppPrompts,\n ICreateAppRequest,\n ICreateAppOptions,\n SNYK_APP_NAME,\n SNYK_APP_REDIRECT_URIS,\n SNYK_APP_SCOPES,\n SNYK_APP_ORG_ID,\n validateUUID,\n validateAllURL,\n} from '..';\nimport * as inquirer from '@snyk/inquirer';\nimport { ValidationError } from '../../errors';\n\n/**\n * Validates and parsed the data required to create app.\n * Throws error if option is not provided or is invalid\n * @param {ICreateAppOptions} options required to create an app\n * @returns {ICreateAppRequest} data that is used to make the request\n */\nexport function createAppDataScriptable(\n options: ICreateAppOptions,\n): ICreateAppRequest {\n if (!options.org) {\n throw new ValidationError(AppsErrorMessages.orgRequired);\n } else if (typeof validateUUID(options.org) === 'string') {\n // Combines to form \"Invalid UUID provided for org id\"\n throw new ValidationError(`${validateUUID(options.org)} for org id`);\n } else if (!options.name) {\n throw new ValidationError(AppsErrorMessages.nameRequired);\n } else if (!options['redirect-uris']) {\n throw new ValidationError(AppsErrorMessages.redirectUrisRequired);\n } else if (typeof validateAllURL(options['redirect-uris']) === 'string') {\n throw new ValidationError(\n validateAllURL(options['redirect-uris']) as string,\n );\n } else if (!options.scopes) {\n throw new ValidationError(AppsErrorMessages.scopesRequired);\n } else {\n return {\n orgId: options.org,\n snykAppName: options.name,\n snykAppRedirectUris: options['redirect-uris']\n .replace(/\\s+/g, '')\n .split(','),\n snykAppScopes: options.scopes.replace(/\\s+/g, '').split(','),\n };\n }\n}\n\n// Interactive format\nexport async function createAppDataInteractive(): Promise<ICreateAppRequest> {\n // Proceed with interactive\n const answers = await inquirer.prompt(createAppPrompts);\n // Process answers\n const snykAppName = answers[SNYK_APP_NAME].trim() as string;\n const snykAppRedirectUris = answers[SNYK_APP_REDIRECT_URIS].replace(\n /\\s+/g,\n '',\n ).split(',') as string[];\n const snykAppScopes = answers[SNYK_APP_SCOPES].replace(/\\s+/g, '').split(\n ',',\n ) as string[];\n const orgId = answers[SNYK_APP_ORG_ID].trim() as string;\n // POST: to create an app\n return {\n orgId,\n snykAppName,\n snykAppRedirectUris,\n snykAppScopes,\n };\n}\n","export * from './constants';\nexport * from './prompts';\nexport * from './types';\nexport * from './v3-utils';\nexport * from './utils';\nexport * from './input-validator';\n","import * as uuid from 'uuid';\n\n/**\n *\n * @param {String} input of space separated URL/URI passed by\n * user for redirect URIs\n * @returns { String | Boolean } complying with inquirer return values, the function\n * separates the string on space and validates each to see\n * if a valid URL/URI. Return a string if invalid and\n * boolean true if valid\n */\nexport function validateAllURL(input: string): string | boolean {\n const trimmedInput = input.trim();\n let errMessage = '';\n for (const i of trimmedInput.split(',')) {\n if (typeof validURL(i) == 'string')\n errMessage = errMessage + `\\n${validURL(i)}`;\n }\n\n if (errMessage) return errMessage;\n return true;\n}\n\n/**\n * Custom validation logic which takes in consideration\n * creation of Snyk Apps and thus allows localhost.com\n * as a valid URL.\n * @param {String} input of URI/URL value to validate using\n * regex\n * @returns {String | Boolean } string message is not valid\n * and boolean true if valid\n */\nexport function validURL(input: string): boolean | string {\n try {\n new URL(input);\n return true;\n } catch (error) {\n return `${input} is not a valid URL`;\n }\n}\n\n/**\n * Function validates if a valid UUID (version of UUID not tacken into account)\n * @param {String} input UUID to be validated\n * @returns {String | Boolean } string message is not valid\n * and boolean true if valid\n */\nexport function validateUUID(input: string): boolean | string {\n return uuid.validate(input) ? true : 'Invalid UUID provided';\n}\n\n/**\n * @param {String} input\n * @returns {String | Boolean } string message is not valid\n * and boolean true if valid\n */\nexport function validInput(input: string): string | boolean {\n if (!input) return 'Please enter something';\n return true;\n}\n","import { CreateAppPromptData } from './constants';\nimport { validInput, validateAllURL, validateUUID } from './input-validator';\n\n/**\n * Prompts for $snyk apps create command\n */\nexport const createAppPrompts = [\n {\n name: CreateAppPromptData.SNYK_APP_NAME.name,\n message: CreateAppPromptData.SNYK_APP_NAME.message,\n validate: validInput,\n },\n {\n name: CreateAppPromptData.SNYK_APP_REDIRECT_URIS.name,\n message: CreateAppPromptData.SNYK_APP_REDIRECT_URIS.message,\n validate: validateAllURL,\n },\n {\n name: CreateAppPromptData.SNYK_APP_SCOPES.name,\n message: CreateAppPromptData.SNYK_APP_SCOPES.message,\n validate: validInput,\n },\n {\n name: CreateAppPromptData.SNYK_APP_ORG_ID.name,\n message: CreateAppPromptData.SNYK_APP_ORG_ID.message,\n validate: validateUUID,\n },\n];\n","export interface IGetAppsURLOpts {\n orgId?: string;\n clientId?: string;\n}\n\ninterface IJSONApi {\n version: string;\n}\n\nexport interface ICreateAppResponse {\n jsonapi: IJSONApi;\n data: {\n type: string;\n id: string;\n attributes: {\n name: string;\n clientId: string;\n redirectUris: string[];\n scopes: string[];\n isPublic: boolean;\n clientSecret: string;\n };\n links: {\n self: string;\n };\n };\n}\n\nexport interface IV3ErrorResponse {\n jsonapi: IJSONApi;\n errors: [\n {\n status: string;\n detail: string;\n source?: any;\n meta?: any;\n },\n ];\n}\n\nexport interface IGenerateAppsOptions {\n interactive?: boolean;\n}\n\nexport interface ICreateAppOptions extends IGenerateAppsOptions {\n org?: string;\n name?: string;\n redirectUris?: string;\n scopes?: string;\n}\n\nexport interface ICreateAppRequest {\n orgId: string;\n snykAppName: string;\n snykAppRedirectUris: string[];\n snykAppScopes: string[];\n}\n","import * as fs from 'fs';\nimport { renderMarkdown } from '../../cli/commands/help/markdown-renderer';\n\nexport function readAppsHelpMarkdown(filename: string): string {\n const file = fs.readFileSync(filename, 'utf8');\n return renderMarkdown(file);\n}\n","/**\n * Collection of utility function for the\n * $snyk apps commands\n */\nimport {\n EAppsURL,\n ICreateAppResponse,\n IGetAppsURLOpts,\n IV3ErrorResponse,\n SNYK_APP_DEBUG,\n} from '.';\nimport chalk from 'chalk';\nimport { AuthFailedError, InternalServerError } from '../errors';\nimport * as Debug from 'debug';\nimport config from '../config';\n\nconst debug = Debug(SNYK_APP_DEBUG);\n\nexport function getAppsURL(\n selection: EAppsURL,\n opts: IGetAppsURLOpts = {},\n): string {\n // Get the V3 URL from user config\n // Environment variable takes precendence over config\n const baseURL = config.API_V3_URL;\n debug(`API v3 base URL => ${baseURL}`);\n\n switch (selection) {\n case EAppsURL.CREATE_APP:\n return `${baseURL}/orgs/${opts.orgId}/apps`;\n default:\n throw new Error('Invalid selection for URL');\n }\n}\n\nexport function handleV3Error(error: any): void {\n if (error.code) {\n if (error.code === 400) {\n // Bad request\n const responseJSON: IV3ErrorResponse = error.body;\n const errString = errorsToDisplayString(responseJSON);\n throw new Error(errString);\n } else if (error.code === 401) {\n // Unauthorized\n throw AuthFailedError();\n } else if (error.code === 403) {\n throw new Error(\n 'Forbidden! the authentication token does not have access to the resource.',\n );\n } else if (error.code === 404) {\n const responseJSON: IV3ErrorResponse = error.body;\n const errString = errorsToDisplayString(responseJSON);\n throw new Error(errString);\n } else if (error.code === 500) {\n throw new InternalServerError('Internal server error');\n } else {\n throw new Error(error.message);\n }\n } else {\n throw error;\n }\n}\n\n/**\n * @param errRes V3Error response\n * @returns {String} Iterates over error and\n * converts them into a readible string\n */\nfunction errorsToDisplayString(errRes: IV3ErrorResponse): string {\n const resString = `Uh oh! an error occurred while trying to create the Snyk App.\nPlease run the command with '--debug' or '-d' to get more information`;\n if (!errRes.errors) return resString;\n errRes.errors.forEach((e) => {\n let metaString = '',\n sourceString = '';\n if (e.meta) {\n for (const [key, value] of Object.entries(e.meta)) {\n metaString += `${key}: ${value}\\n`;\n }\n }\n if (e.source) {\n for (const [key, value] of Object.entries(e.source)) {\n sourceString += `${key}: ${value}\\n`;\n }\n }\n\n const meta = metaString || '-';\n const source = sourceString || '-';\n\n return `Uh oh! an error occured while trying to create the Snyk App.\n \nError Description:\\t${e.detail}\nRequest Status:\\t${e.status}\nSource:\\t${source}\nMeta:\\t${meta}`;\n });\n return resString;\n}\n\nexport function handleCreateAppRes(res: ICreateAppResponse): string {\n const {\n name,\n clientId,\n redirectUris,\n scopes,\n isPublic,\n clientSecret,\n } = res.data.attributes;\n\n return `Snyk App created successfully!\nPlease ensure you save the following details:\n\nApp Name:\\t${name}\nClient ID:\\t${clientId}\nRedirect URIs:\\t${redirectUris}\nScopes:\\t${scopes}\nIs App Public:\\t${isPublic}\nClient Secret (${chalk.redBright(\n 'keep it safe and protected',\n )}):\\t${clientSecret}`;\n}\n","import { getAuthHeader } from '../api-token';\nimport * as request from './index';\n\nexport async function makeRequest<T>(payload: any): Promise<T> {\n return new Promise((resolve, reject) => {\n request.makeRequest(payload, (error, res, body) => {\n if (error) {\n return reject(error);\n }\n if (res.statusCode !== 200) {\n return reject({\n code: res.statusCode,\n message: body?.message,\n });\n }\n resolve(body);\n });\n });\n}\n\n/**\n * All v3 request will essentially be the same and are JSON by default\n * Thus if no headers provided default headers are used\n * @param {any} payload for the request\n * @returns\n */\nexport async function makeRequestV3<T>(payload: any): Promise<T> {\n return new Promise((resolve, reject) => {\n payload.headers = payload.headers ?? {\n 'Content-Type': 'application/vnd.api+json',\n authorization: getAuthHeader(),\n };\n payload.json = true;\n request.makeRequest(payload, (error, res, body) => {\n if (error) {\n return reject(error);\n }\n if (res.statusCode >= 400) {\n return reject({\n code: res.statusCode,\n body: JSON.parse(body as any),\n });\n }\n resolve(JSON.parse(body as any) as T);\n });\n });\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"977.index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5VA,yCAA+B;AAC/B,0CAQ2B;AAC3B,6CAA6D;AAC7D,6CAA+C;AAE/C,MAAM,KAAK,GAAG,KAAK,CAAC,qBAAc,CAAC,CAAC;AAEpC;;;;;;;GAOG;AACI,KAAK,UAAU,SAAS,CAC7B,IAAuB;IAEvB,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxB,MAAM,EACJ,KAAK,EACL,WAAW,EAAE,IAAI,EACjB,mBAAmB,EAAE,YAAY,EACjC,aAAa,EAAE,MAAM,GACtB,GAAG,IAAI,CAAC;IACT,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,iBAAU,CAAC,eAAQ,CAAC,UAAU,EAAE,EAAE,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,IAAI,CAAC,KAAK,CAAC,IAAW,CAAM,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AApBD,sCAoBC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9CD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA","sources":["webpack://snyk/./node_modules/lodash.flatten/index.js","webpack://snyk/./src/cli/commands/apps/create-app.ts","webpack://snyk/./src/cli/commands/apps/index.ts","webpack://snyk/./src/cli/commands/help/index.ts","webpack://snyk/./src/cli/commands/help/markdown-renderer.ts","webpack://snyk/./src/cli/commands/help/reflow-text.ts","webpack://snyk/./src/cli/commands/process-command-args.ts","webpack://snyk/./src/lib/apps/constants.ts","webpack://snyk/./src/lib/apps/create-app/index.ts","webpack://snyk/./src/lib/apps/index.ts","webpack://snyk/./src/lib/apps/input-validator.ts","webpack://snyk/./src/lib/apps/prompts.ts","webpack://snyk/./src/lib/apps/types.ts","webpack://snyk/./src/lib/apps/utils.ts","webpack://snyk/./src/lib/apps/v3-utils.ts","webpack://snyk/./src/lib/request/promise.ts","webpack://snyk/./node_modules/tslib/tslib.es6.js"],"sourcesContent":["/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array ? array.length : 0;\n return length ? baseFlatten(array, 1) : [];\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = flatten;\n","import * as Debug from 'debug';\nimport {\n EAppsURL,\n getAppsURL,\n handleCreateAppRes,\n handleV3Error,\n ICreateAppRequest,\n ICreateAppResponse,\n SNYK_APP_DEBUG,\n} from '../../../lib/apps';\nimport { makeRequestV3 } from '../../../lib/request/promise';\nimport { spinner } from '../../../lib/spinner';\n\nconst debug = Debug(SNYK_APP_DEBUG);\n\n/**\n * Function to process the app creation request and\n * handle any errors that are request error and print\n * in a formatted string. It throws is error is unknown\n * or cannot be handled.\n * @param {ICreateAppRequest} data to create the app\n * @returns {String} response formatted string\n */\nexport async function createApp(\n data: ICreateAppRequest,\n): Promise<string | void> {\n debug('App data', data);\n const {\n orgId,\n snykAppName: name,\n snykAppRedirectUris: redirectUris,\n snykAppScopes: scopes,\n } = data;\n const payload = {\n method: 'POST',\n url: getAppsURL(EAppsURL.CREATE_APP, { orgId }),\n body: {\n name,\n redirectUris,\n scopes,\n },\n qs: {\n version: '2021-08-11~experimental',\n },\n };\n\n try {\n await spinner('Creating your Snyk App');\n const response = await makeRequestV3<ICreateAppResponse>(payload);\n debug(response);\n spinner.clearAll();\n return handleCreateAppRes(response);\n } catch (error) {\n spinner.clearAll();\n handleV3Error(error);\n }\n}\n","import * as Debug from 'debug';\nimport { MethodArgs } from '../../args';\nimport { processCommandArgs } from '../process-command-args';\nimport {\n EValidSubCommands,\n validAppsSubCommands,\n SNYK_APP_DEBUG,\n ICreateAppOptions,\n AppsErrorMessages,\n} from '../../../lib/apps';\n\nimport { createApp } from './create-app';\n// import * as path from 'path';\nimport {\n createAppDataInteractive,\n createAppDataScriptable,\n} from '../../../lib/apps/create-app';\nimport help from '../help';\n\nconst debug = Debug(SNYK_APP_DEBUG);\n\nexport default async function apps(\n ...args0: MethodArgs\n): Promise<string | undefined | any> {\n debug('Snyk apps CLI called');\n\n const { options, paths } = processCommandArgs<ICreateAppOptions>(...args0);\n debug(options, paths);\n\n const commandVerb1 = paths[0];\n const validCommandVerb =\n commandVerb1 && validAppsSubCommands.includes(commandVerb1);\n if (!validCommandVerb) {\n // Display help md for apps\n debug(`Unknown subcommand: ${commandVerb1}`);\n return help('apps');\n }\n // Check if experimental flag is being used\n if (!options.experimental) throw new Error(AppsErrorMessages.useExperimental);\n\n if (commandVerb1 === EValidSubCommands.CREATE) {\n const createAppData = options.interactive\n ? await createAppDataInteractive()\n : createAppDataScriptable(options);\n return await createApp(createAppData);\n }\n}\n","import * as fs from 'fs';\nimport * as path from 'path';\nimport { MethodArgs } from '../../args';\nimport { renderMarkdown } from './markdown-renderer';\n\nexport function findHelpFile(\n helpArgs: string[],\n helpFolderPath = '../../help/cli-commands', // this is a relative path from the webpack dist directory,\n): string {\n while (helpArgs.length > 0) {\n // cleanse the filename to only contain letters\n // aka: /\\W/g but figured this was easier to read\n const file = `${helpArgs.join('-').replace(/[^a-z0-9-]/gi, '')}.md`;\n const testHelpAbsolutePath = path.resolve(__dirname, helpFolderPath, file);\n if (fs.existsSync(testHelpAbsolutePath)) {\n return testHelpAbsolutePath;\n }\n helpArgs = helpArgs.slice(0, -1);\n }\n return path.resolve(__dirname, helpFolderPath, `README.md`); // Default help file\n}\n\nexport default async function help(...args: MethodArgs): Promise<string> {\n const helpArgs = args.filter((arg): arg is string => typeof arg === 'string');\n const helpFileAbsolutePath = findHelpFile(helpArgs);\n return renderMarkdown(fs.readFileSync(helpFileAbsolutePath, 'utf8'));\n}\n","import { marked } from 'marked';\nimport chalk from 'chalk';\nimport { reflowText } from './reflow-text';\n\n// stateful variable to control left-padding by header level\nlet currentHeader = 1;\nconst listItemSeparator = 'LISTITEMSEPARATOR'; // Helper string for rendering ListItems\n\n/**\n * @description get padding spaces depending on the last header level used\n * @returns string\n */\nfunction getLeftTextPadding(): string {\n return ' '.repeat(\n currentHeader === 1 || currentHeader === 2 ? 1 : currentHeader - 1,\n );\n}\n\n/**\n * @description Reads current terminal width if available to limit column width for text-reflowing\n * @returns {number}\n */\nconst defaultMaximumLineWidth = 100;\nfunction getIdealTextWidth(maximumLineWidth = defaultMaximumLineWidth): number {\n if (typeof process.stdout.columns === 'number') {\n if (process.stdout.columns < maximumLineWidth) {\n return process.stdout.columns - getLeftTextPadding().length - 5;\n }\n }\n return maximumLineWidth - getLeftTextPadding().length;\n}\n\n// Marked custom renderer class\nconst renderer = {\n em(text) {\n return chalk.italic(text);\n },\n strong(text) {\n return chalk.bold(text);\n },\n link(href, title, text) {\n // Don't render links to relative paths (like local files)\n if (href.startsWith('./') || !href.includes('://')) {\n return text;\n }\n const renderedLink = chalk.bold.blueBright(href);\n if (text && text !== href) {\n return `${text} ${renderedLink}`;\n }\n return renderedLink;\n },\n blockquote(quote) {\n return quote;\n },\n list(body, ordered, start) {\n return (\n body\n .split(listItemSeparator)\n .map((listItem, listItemIndex) => {\n const bulletPoint = ordered ? `${listItemIndex + start}. ` : '- ';\n return reflowText(listItem, getIdealTextWidth())\n .split('\\n')\n .map((listItemLine, listItemLineIndex) => {\n if (!listItemLine) {\n return '';\n }\n return `${getLeftTextPadding()}${\n listItemLineIndex === 0 ? bulletPoint : ' '\n }${listItemLine}`;\n })\n .join('\\n');\n })\n .join('\\n') + '\\n'\n );\n },\n listitem(text) {\n return text + listItemSeparator;\n },\n paragraph(text) {\n return (\n reflowText(text, getIdealTextWidth())\n .split('\\n')\n .map((s) => getLeftTextPadding() + chalk.reset() + s)\n .join('\\n') + '\\n\\n'\n );\n },\n codespan(text) {\n return chalk.italic.blueBright(`${text}`);\n },\n code(code) {\n return code + '\\n';\n },\n heading(text, level) {\n currentHeader = level;\n let coloring;\n switch (level) {\n case 1:\n coloring = chalk.bold.underline;\n break;\n case 3:\n case 4:\n coloring = chalk;\n break;\n default:\n coloring = chalk.bold;\n break;\n }\n return `${' '.repeat(level === 1 ? 0 : currentHeader - 2)}${coloring(\n text,\n )}\\n`;\n },\n};\n\nmarked.use({ renderer });\nmarked.setOptions({\n mangle: false,\n});\n\nconst htmlUnescapes = {\n '&amp;': '&',\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '\"',\n '&#39;': \"'\",\n '&#96;': '`',\n '&#x20;': '',\n};\n\n/**\n * @description Replace HTML entities with their non-encoded variant\n * @param {string} text\n * @returns {string}\n */\nfunction unescape(text: string): string {\n Object.entries(htmlUnescapes).forEach(([escapedChar, unescapedChar]) => {\n const escapedCharRegExp = new RegExp(escapedChar, 'g');\n text = text.replace(escapedCharRegExp, unescapedChar);\n });\n return text;\n}\n\nexport function renderMarkdown(markdown: string): string {\n return unescape(marked.parse(markdown));\n}\n","/**\nCode in this file is adapted from mikaelbr/marked-terminal\nhttps://github.com/mikaelbr/marked-terminal/blob/7501b8bb24a5ed52ec7d9114d4aeefa14f1bf5e6/index.js#L234-L330\n\n\nMIT License\n\nCopyright (c) 2017 Mikael Brevik\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n */\n\n// Compute length of str not including ANSI escape codes.\n// See http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\nfunction textLength(str: string): number {\n // eslint-disable-next-line no-control-regex\n return str.replace(/\\u001b\\[(?:\\d{1,3})(?:;\\d{1,3})*m/g, '').length;\n}\n\n// Munge \\n's and spaces in \"text\" so that the number of\n// characters between \\n's is less than or equal to \"width\".\nexport function reflowText(text: string, width: number): string {\n const HARD_RETURN = '\\r|\\n';\n const HARD_RETURN_GFM_RE = new RegExp(HARD_RETURN + '|<br ?/?>');\n\n const splitRe = HARD_RETURN_GFM_RE;\n const sections = text.split(splitRe);\n const reflowed = [] as string[];\n\n sections.forEach((section) => {\n // Split the section by escape codes so that we can\n // deal with them separately.\n // eslint-disable-next-line no-control-regex\n const fragments = section.split(/(\\u001b\\[(?:\\d{1,3})(?:;\\d{1,3})*m)/g);\n let column = 0;\n let currentLine = '';\n let lastWasEscapeChar = false;\n\n while (fragments.length) {\n const fragment = fragments[0];\n\n if (fragment === '') {\n fragments.splice(0, 1);\n lastWasEscapeChar = false;\n continue;\n }\n\n // This is an escape code - leave it whole and\n // move to the next fragment.\n if (!textLength(fragment)) {\n currentLine += fragment;\n fragments.splice(0, 1);\n lastWasEscapeChar = true;\n continue;\n }\n\n const words = fragment.split(/[ \\t\\n]+/);\n\n for (let i = 0; i < words.length; i++) {\n let word = words[i];\n let addSpace = column != 0;\n if (lastWasEscapeChar) addSpace = false;\n\n // If adding the new word overflows the required width\n if (column + word.length > width) {\n if (word.length <= width) {\n // If the new word is smaller than the required width\n // just add it at the beginning of a new line\n reflowed.push(currentLine);\n currentLine = word;\n column = word.length;\n } else {\n // If the new word is longer than the required width\n // split this word into smaller parts.\n const w = word.substr(0, width - column);\n if (addSpace) currentLine += ' ';\n currentLine += w;\n reflowed.push(currentLine);\n currentLine = '';\n column = 0;\n\n word = word.substr(w.length);\n while (word.length) {\n const w = word.substr(0, width);\n\n if (!w.length) break;\n\n if (w.length < width) {\n currentLine = w;\n column = w.length;\n break;\n } else {\n reflowed.push(w);\n word = word.substr(width);\n }\n }\n }\n } else {\n if (addSpace) {\n currentLine += ' ';\n column++;\n }\n\n currentLine += word;\n column += word.length;\n }\n\n lastWasEscapeChar = false;\n }\n\n fragments.splice(0, 1);\n }\n\n if (textLength(currentLine)) reflowed.push(currentLine);\n });\n\n return reflowed.join('\\n');\n}\n","import { Options } from '../../lib/types';\n\nexport function processCommandArgs<CommandOptions>(\n ...args\n): { paths: string[]; options: Options & CommandOptions } {\n let options = ({} as any) as Options & CommandOptions;\n\n if (typeof args[args.length - 1] === 'object') {\n options = (args.pop() as any) as Options & CommandOptions;\n }\n args = args.filter(Boolean);\n\n // For repository scanning, populate with default path (cwd) if no path given\n if (args.length === 0 && !options.docker) {\n args.unshift(process.cwd());\n }\n\n return { options, paths: args };\n}\n","import chalk from 'chalk';\n\nexport const SNYK_APP_NAME = 'snykAppName';\nexport const SNYK_APP_REDIRECT_URIS = 'snykAppRedirectUris';\nexport const SNYK_APP_SCOPES = 'snykAppScopes';\nexport const SNYK_APP_CLIENT_ID = 'snykAppClientId';\nexport const SNYK_APP_ORG_ID = 'snykAppOrgId';\nexport const SNYK_APP_DEBUG = 'snyk:apps';\n\nexport enum EValidSubCommands {\n CREATE = 'create',\n}\n\nexport enum EAppsURL {\n CREATE_APP,\n}\n\nexport const validAppsSubCommands = Object.values<string>(EValidSubCommands);\n\nexport const AppsErrorMessages = {\n orgRequired: `Option '--org' is required! For interactive mode, please use '--interactive' or '-i' flag. For more information please run the help command 'snyk apps --help' or 'snyk apps -h'.`,\n nameRequired: `Option '--name' is required! For interactive mode, please use '--interactive' or '-i' flag. For more information please run the help command 'snyk apps --help' or 'snyk apps -h'.`,\n redirectUrisRequired: `Option '--redirect-uris' is required! For interactive mode, please use '--interactive' or '-i' flag. For more information please run the help command 'snyk apps --help' or 'snyk apps -h'.`,\n scopesRequired: `Option '--scopes' is required! For interactive mode, please use '--interactive' or '-i' flag. For more information please run the help command 'snyk apps --help' or 'snyk apps -h'.`,\n useExperimental: `\\n${chalk.redBright(\n \"All 'apps' commands are only accessible behind the '--experimental' flag.\",\n )}\\n \nThe behaviour can change at any time, without prior notice. \nYou are kindly advised to use all the commands with caution.\n \n${chalk.bold('Usage')}\n ${chalk.italic('snyk apps <COMMAND> --experimental')}\\n`,\n};\n\nexport const CreateAppPromptData = {\n SNYK_APP_NAME: {\n name: SNYK_APP_NAME,\n message: `Name of the Snyk App (visible to users when they install the Snyk App)?`,\n },\n SNYK_APP_REDIRECT_URIS: {\n name: SNYK_APP_REDIRECT_URIS,\n message: `Your Snyk App's redirect URIs (comma seprated list. ${chalk.yellowBright(\n ' Ex: https://example1.com,https://example2.com',\n )})?: `,\n },\n SNYK_APP_SCOPES: {\n name: SNYK_APP_SCOPES,\n message: `Your Snyk App's permission scopes (comma separated list. ${chalk.yellowBright(\n ' Ex: apps:beta',\n )})?: `,\n },\n SNYK_APP_ORG_ID: {\n name: SNYK_APP_ORG_ID,\n message:\n 'Please provide the org id under which you want to create your Snyk App: ',\n },\n};\n","import {\n AppsErrorMessages,\n createAppPrompts,\n ICreateAppRequest,\n ICreateAppOptions,\n SNYK_APP_NAME,\n SNYK_APP_REDIRECT_URIS,\n SNYK_APP_SCOPES,\n SNYK_APP_ORG_ID,\n validateUUID,\n validateAllURL,\n} from '..';\nimport * as inquirer from '@snyk/inquirer';\nimport { ValidationError } from '../../errors';\n\n/**\n * Validates and parsed the data required to create app.\n * Throws error if option is not provided or is invalid\n * @param {ICreateAppOptions} options required to create an app\n * @returns {ICreateAppRequest} data that is used to make the request\n */\nexport function createAppDataScriptable(\n options: ICreateAppOptions,\n): ICreateAppRequest {\n if (!options.org) {\n throw new ValidationError(AppsErrorMessages.orgRequired);\n } else if (typeof validateUUID(options.org) === 'string') {\n // Combines to form \"Invalid UUID provided for org id\"\n throw new ValidationError(`${validateUUID(options.org)} for org id`);\n } else if (!options.name) {\n throw new ValidationError(AppsErrorMessages.nameRequired);\n } else if (!options['redirect-uris']) {\n throw new ValidationError(AppsErrorMessages.redirectUrisRequired);\n } else if (typeof validateAllURL(options['redirect-uris']) === 'string') {\n throw new ValidationError(\n validateAllURL(options['redirect-uris']) as string,\n );\n } else if (!options.scopes) {\n throw new ValidationError(AppsErrorMessages.scopesRequired);\n } else {\n return {\n orgId: options.org,\n snykAppName: options.name,\n snykAppRedirectUris: options['redirect-uris']\n .replace(/\\s+/g, '')\n .split(','),\n snykAppScopes: options.scopes.replace(/\\s+/g, '').split(','),\n };\n }\n}\n\n// Interactive format\nexport async function createAppDataInteractive(): Promise<ICreateAppRequest> {\n // Proceed with interactive\n const answers = await inquirer.prompt(createAppPrompts);\n // Process answers\n const snykAppName = answers[SNYK_APP_NAME].trim() as string;\n const snykAppRedirectUris = answers[SNYK_APP_REDIRECT_URIS].replace(\n /\\s+/g,\n '',\n ).split(',') as string[];\n const snykAppScopes = answers[SNYK_APP_SCOPES].replace(/\\s+/g, '').split(\n ',',\n ) as string[];\n const orgId = answers[SNYK_APP_ORG_ID].trim() as string;\n // POST: to create an app\n return {\n orgId,\n snykAppName,\n snykAppRedirectUris,\n snykAppScopes,\n };\n}\n","export * from './constants';\nexport * from './prompts';\nexport * from './types';\nexport * from './v3-utils';\nexport * from './utils';\nexport * from './input-validator';\n","import * as uuid from 'uuid';\n\n/**\n *\n * @param {String} input of space separated URL/URI passed by\n * user for redirect URIs\n * @returns { String | Boolean } complying with inquirer return values, the function\n * separates the string on space and validates each to see\n * if a valid URL/URI. Return a string if invalid and\n * boolean true if valid\n */\nexport function validateAllURL(input: string): string | boolean {\n const trimmedInput = input.trim();\n let errMessage = '';\n for (const i of trimmedInput.split(',')) {\n if (typeof validURL(i) == 'string')\n errMessage = errMessage + `\\n${validURL(i)}`;\n }\n\n if (errMessage) return errMessage;\n return true;\n}\n\n/**\n * Custom validation logic which takes in consideration\n * creation of Snyk Apps and thus allows localhost.com\n * as a valid URL.\n * @param {String} input of URI/URL value to validate using\n * regex\n * @returns {String | Boolean } string message is not valid\n * and boolean true if valid\n */\nexport function validURL(input: string): boolean | string {\n try {\n new URL(input);\n return true;\n } catch (error) {\n return `${input} is not a valid URL`;\n }\n}\n\n/**\n * Function validates if a valid UUID (version of UUID not tacken into account)\n * @param {String} input UUID to be validated\n * @returns {String | Boolean } string message is not valid\n * and boolean true if valid\n */\nexport function validateUUID(input: string): boolean | string {\n return uuid.validate(input) ? true : 'Invalid UUID provided';\n}\n\n/**\n * @param {String} input\n * @returns {String | Boolean } string message is not valid\n * and boolean true if valid\n */\nexport function validInput(input: string): string | boolean {\n if (!input) return 'Please enter something';\n return true;\n}\n","import { CreateAppPromptData } from './constants';\nimport { validInput, validateAllURL, validateUUID } from './input-validator';\n\n/**\n * Prompts for $snyk apps create command\n */\nexport const createAppPrompts = [\n {\n name: CreateAppPromptData.SNYK_APP_NAME.name,\n message: CreateAppPromptData.SNYK_APP_NAME.message,\n validate: validInput,\n },\n {\n name: CreateAppPromptData.SNYK_APP_REDIRECT_URIS.name,\n message: CreateAppPromptData.SNYK_APP_REDIRECT_URIS.message,\n validate: validateAllURL,\n },\n {\n name: CreateAppPromptData.SNYK_APP_SCOPES.name,\n message: CreateAppPromptData.SNYK_APP_SCOPES.message,\n validate: validInput,\n },\n {\n name: CreateAppPromptData.SNYK_APP_ORG_ID.name,\n message: CreateAppPromptData.SNYK_APP_ORG_ID.message,\n validate: validateUUID,\n },\n];\n","export interface IGetAppsURLOpts {\n orgId?: string;\n clientId?: string;\n}\n\ninterface IJSONApi {\n version: string;\n}\n\nexport interface ICreateAppResponse {\n jsonapi: IJSONApi;\n data: {\n type: string;\n id: string;\n attributes: {\n name: string;\n clientId: string;\n redirectUris: string[];\n scopes: string[];\n isPublic: boolean;\n clientSecret: string;\n };\n links: {\n self: string;\n };\n };\n}\n\nexport interface IV3ErrorResponse {\n jsonapi: IJSONApi;\n errors: [\n {\n status: string;\n detail: string;\n source?: any;\n meta?: any;\n },\n ];\n}\n\nexport interface IGenerateAppsOptions {\n interactive?: boolean;\n}\n\nexport interface ICreateAppOptions extends IGenerateAppsOptions {\n org?: string;\n name?: string;\n redirectUris?: string;\n scopes?: string;\n}\n\nexport interface ICreateAppRequest {\n orgId: string;\n snykAppName: string;\n snykAppRedirectUris: string[];\n snykAppScopes: string[];\n}\n","import * as fs from 'fs';\nimport { renderMarkdown } from '../../cli/commands/help/markdown-renderer';\n\nexport function readAppsHelpMarkdown(filename: string): string {\n const file = fs.readFileSync(filename, 'utf8');\n return renderMarkdown(file);\n}\n","/**\n * Collection of utility function for the\n * $snyk apps commands\n */\nimport {\n EAppsURL,\n ICreateAppResponse,\n IGetAppsURLOpts,\n IV3ErrorResponse,\n SNYK_APP_DEBUG,\n} from '.';\nimport chalk from 'chalk';\nimport { AuthFailedError, InternalServerError } from '../errors';\nimport * as Debug from 'debug';\nimport config from '../config';\n\nconst debug = Debug(SNYK_APP_DEBUG);\n\nexport function getAppsURL(\n selection: EAppsURL,\n opts: IGetAppsURLOpts = {},\n): string {\n // Get the V3 URL from user config\n // Environment variable takes precendence over config\n const baseURL = config.API_V3_URL;\n debug(`API v3 base URL => ${baseURL}`);\n\n switch (selection) {\n case EAppsURL.CREATE_APP:\n return `${baseURL}/orgs/${opts.orgId}/apps`;\n default:\n throw new Error('Invalid selection for URL');\n }\n}\n\nexport function handleV3Error(error: any): void {\n if (error.code) {\n if (error.code === 400) {\n // Bad request\n const responseJSON: IV3ErrorResponse = error.body;\n const errString = errorsToDisplayString(responseJSON);\n throw new Error(errString);\n } else if (error.code === 401) {\n // Unauthorized\n throw AuthFailedError();\n } else if (error.code === 403) {\n throw new Error(\n 'Forbidden! the authentication token does not have access to the resource.',\n );\n } else if (error.code === 404) {\n const responseJSON: IV3ErrorResponse = error.body;\n const errString = errorsToDisplayString(responseJSON);\n throw new Error(errString);\n } else if (error.code === 500) {\n throw new InternalServerError('Internal server error');\n } else {\n throw new Error(error.message);\n }\n } else {\n throw error;\n }\n}\n\n/**\n * @param errRes V3Error response\n * @returns {String} Iterates over error and\n * converts them into a readible string\n */\nfunction errorsToDisplayString(errRes: IV3ErrorResponse): string {\n const resString = `Uh oh! an error occurred while trying to create the Snyk App.\nPlease run the command with '--debug' or '-d' to get more information`;\n if (!errRes.errors) return resString;\n errRes.errors.forEach((e) => {\n let metaString = '',\n sourceString = '';\n if (e.meta) {\n for (const [key, value] of Object.entries(e.meta)) {\n metaString += `${key}: ${value}\\n`;\n }\n }\n if (e.source) {\n for (const [key, value] of Object.entries(e.source)) {\n sourceString += `${key}: ${value}\\n`;\n }\n }\n\n const meta = metaString || '-';\n const source = sourceString || '-';\n\n return `Uh oh! an error occured while trying to create the Snyk App.\n \nError Description:\\t${e.detail}\nRequest Status:\\t${e.status}\nSource:\\t${source}\nMeta:\\t${meta}`;\n });\n return resString;\n}\n\nexport function handleCreateAppRes(res: ICreateAppResponse): string {\n const {\n name,\n clientId,\n redirectUris,\n scopes,\n isPublic,\n clientSecret,\n } = res.data.attributes;\n\n return `Snyk App created successfully!\nPlease ensure you save the following details:\n\nApp Name:\\t${name}\nClient ID:\\t${clientId}\nRedirect URIs:\\t${redirectUris}\nScopes:\\t${scopes}\nIs App Public:\\t${isPublic}\nClient Secret (${chalk.redBright(\n 'keep it safe and protected',\n )}):\\t${clientSecret}`;\n}\n","import { getAuthHeader } from '../api-token';\nimport * as request from './index';\n\nexport async function makeRequest<T>(payload: any): Promise<T> {\n return new Promise((resolve, reject) => {\n request.makeRequest(payload, (error, res, body) => {\n if (error) {\n return reject(error);\n }\n if (res.statusCode !== 200) {\n return reject({\n code: res.statusCode,\n message: body?.message,\n });\n }\n resolve(body);\n });\n });\n}\n\n/**\n * All v3 request will essentially be the same and are JSON by default\n * Thus if no headers provided default headers are used\n * @param {any} payload for the request\n * @returns\n */\nexport async function makeRequestV3<T>(payload: any): Promise<T> {\n return new Promise((resolve, reject) => {\n payload.headers = payload.headers ?? {\n 'Content-Type': 'application/vnd.api+json',\n authorization: getAuthHeader(),\n };\n payload.json = true;\n request.makeRequest(payload, (error, res, body) => {\n if (error) {\n return reject(error);\n }\n if (res.statusCode >= 400) {\n return reject({\n code: res.statusCode,\n body: JSON.parse(body as any),\n });\n }\n resolve(JSON.parse(body as any) as T);\n });\n });\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n"],"names":[],"sourceRoot":""}
@@ -1 +1,3 @@
1
- export default function help(item?: string | boolean): Promise<string>;
1
+ import { MethodArgs } from '../../args';
2
+ export declare function findHelpFile(helpArgs: string[], helpFolderPath?: string): string;
3
+ export default function help(...args: MethodArgs): Promise<string>;
package/dist/cli/index.js CHANGED
@@ -26922,8 +26922,12 @@ function args(rawArgv) {
26922
26922
  // Late require, see the note re "debug" option above.
26923
26923
  const cli = __webpack_require__(64971);
26924
26924
  // the first argument is the command we'll execute, everything else will be
26925
- // an argument to our command, like `snyk help protect`
26926
- let command = argv._.shift(); // can actually be undefined
26925
+ // an argument to our command, like `snyk test package2test`
26926
+ let command = argv._[0] || '';
26927
+ // since we are handling documentation for subcommands now, we should keep all the arguments
26928
+ if (!argv.help) {
26929
+ command = argv._.shift(); // can actually be undefined
26930
+ }
26927
26931
  // snyk [mode?] [command] [paths?] [options-double-dash]
26928
26932
  command = modes_1.displayModeHelp(command, argv);
26929
26933
  command = modes_1.parseMode(command, argv);