@shopify/cli-kit 3.0.22 → 3.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/archiver.d.ts +9 -0
- package/dist/archiver.d.ts.map +1 -0
- package/dist/index.d.ts +111 -47
- package/dist/index.js +3259 -41
- package/dist/index.js.map +1 -1
- package/dist/local-d0094ffe.js +1344 -0
- package/dist/local-d0094ffe.js.map +1 -0
- package/dist/node/archiver.js +44 -0
- package/dist/node/archiver.js.map +1 -0
- package/package.json +22 -18
- package/dist/index-12e22439.js +0 -175294
- package/dist/index-12e22439.js.map +0 -1
- package/dist/multipart-parser-7996d1f9.js +0 -477
- package/dist/multipart-parser-7996d1f9.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-d0094ffe.js","sources":["../src/path.ts","../src/constants.ts","../src/environment/utilities.ts","../src/error.ts","../src/file.ts","../../../node_modules/ansi-colors/symbols.js","../../../node_modules/ansi-colors/index.js","../src/output.ts","../src/os.ts","../src/system.ts","../src/environment/spin.ts","../src/environment/local.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport commondir from 'commondir'\nimport {relative, dirname, join, normalize, resolve, basename, extname, isAbsolute} from 'pathe'\nimport {fileURLToPath} from 'url'\n\nexport {join, relative, dirname, normalize, resolve, basename, extname, isAbsolute}\n\nexport {findUp} from 'find-up'\nexport {default as glob} from 'fast-glob'\nexport {pathToFileURL} from 'node:url'\n\n/**\n * Given an absolute filesystem path, it makes it relative to\n * the current working directory. This is useful when logging paths\n * to allow the users to click on the file and let the OS open it\n * in the editor of choice.\n * @param path {string} Path to relativize\n * @returns {string} Relativized path.\n */\nexport function relativize(path: string): string {\n const result = commondir([path, process.cwd()])\n const relativePath = relative(process.cwd(), path)\n const relativeComponents = relativePath.split('/').filter((component) => component === '..').length\n if (result === '/' || relativeComponents > 2) {\n return path\n } else {\n return relativePath\n }\n}\n\n/**\n * Given a module's import.meta.url it returns the directory containing the module.\n * @param moduleURL {string} The value of import.meta.url in the context of the caller module.\n * @returns {string} The path to the directory containing the caller module.\n */\nexport function moduleDirectory(moduleURL: string): string {\n return dirname(fileURLToPath(moduleURL))\n}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport {join as pathJoin} from './path'\nimport {version as cliKitVersion} from '../package.json'\nimport envPaths from 'env-paths'\n\nconst identifier = 'shopify-cli'\n\nconst cacheFolder = () => {\n if (process.env.XDG_CACHE_HOME) return process.env.XDG_CACHE_HOME\n return envPaths(identifier).cache\n}\n\nconst constants = {\n environmentVariables: {\n unitTest: 'SHOPIFY_UNIT_TEST',\n shopifyConfig: 'SHOPIFY_CONFIG',\n runAsUser: 'SHOPIFY_RUN_AS_USER',\n partnersEnv: 'SHOPIFY_PARTNERS_ENV',\n shopifyEnv: 'SHOPIFY_SHOPIFY_ENV',\n identityEnv: 'SHOPIFY_IDENTITY_ENV',\n spin: 'SPIN',\n spinInstance: 'SPIN_INSTANCE',\n spinWorkspace: 'SPIN_WORKSPACE',\n spinNamespace: 'SPIN_NAMESPACE',\n spinHost: 'SPIN_HOST',\n partnersToken: 'SHOPIFY_CLI_PARTNERS_TOKEN',\n verbose: 'SHOPIFY_FLAG_VERBOSE',\n noAnalytics: 'SHOPIFY_CLI_NO_ANALYTICS',\n },\n paths: {\n executables: {\n dev: '/opt/dev/bin/dev',\n },\n directories: {\n cache: {\n path: () => {\n return cacheFolder()\n },\n vendor: {\n path: () => {\n return pathJoin(cacheFolder(), 'vendor')\n },\n binaries: () => {\n return pathJoin(cacheFolder(), 'vendor', 'binaries')\n },\n },\n },\n },\n },\n /**\n * Versions are resolved at build time by Rollup's JSON plugin.\n */\n versions: {\n cliKit: cliKitVersion,\n },\n keychain: {\n service: 'shopify-cli',\n },\n session: {\n expirationTimeMarginInMinutes: 4,\n },\n}\n\nexport default constants\n","/**\n * Returns whether an environment variable value represents a truthy value.\n * @param variable {string | undefined} Given a environment variable value, it returns true if it represents a truthy value.\n * @returns {boolean}\n */\nexport function isTruthy(variable: string | undefined): boolean {\n if (!variable) {\n return false\n }\n return ['1', 'true', 'TRUE', 'yes', 'YES'].includes(variable)\n}\n","import * as ouput from './output'\nimport {Message, stringifyMessage} from './output'\nimport {Errors} from '@oclif/core'\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport sourceMapSupport from 'source-map-support'\n\nexport {ExtendableError} from 'ts-error'\nexport {AbortSignal} from 'abort-controller'\n\nsourceMapSupport.install()\n\nenum FatalErrorType {\n Abort,\n AbortSilent,\n Bug,\n}\n\nexport class CancelExecution extends Error {}\n\n/**\n * A fatal error represents an error shouldn't be rescued and that causes the execution to terminate.\n * There shouldn't be code that catches fatal errors.\n */\nexport abstract class Fatal extends Error {\n tryMessage: string | null\n type: FatalErrorType\n constructor(message: Message, type: FatalErrorType, tryMessage: Message | null = null) {\n super(stringifyMessage(message))\n this.tryMessage = tryMessage ? stringifyMessage(tryMessage) : null\n this.type = type\n }\n}\n\n/**\n * An abort error is a fatal error that shouldn't be reported as a bug.\n * Those usually represent unexpected scenarios that we can't handle and that usually require some action from the developer\n */\nexport class Abort extends Fatal {\n constructor(message: Message, tryMessage: Message | null = null) {\n super(message, FatalErrorType.Abort, tryMessage)\n }\n}\n\nexport class AbortSilent extends Fatal {\n constructor() {\n super('', FatalErrorType.AbortSilent)\n }\n}\n\n/**\n * A bug error is an error that represents a bug and therefore should be reported.\n */\nexport class Bug extends Fatal {\n constructor(message: Message, tryMessage: string | null = null) {\n super(message, FatalErrorType.Bug, tryMessage)\n }\n}\n\n/**\n * A function that handles errors that blow up in the CLI.\n * @param error Error to be handled.\n * @returns A promise that resolves with the error passed.\n */\nexport async function handler(error: Error): Promise<Error> {\n let fatal: Fatal\n if (isFatal(error)) {\n fatal = error as Fatal\n } else {\n fatal = new Bug(error.message)\n }\n\n if (fatal.type === FatalErrorType.Bug) {\n fatal.stack = error.stack\n }\n\n await ouput.error(fatal)\n return Promise.resolve(error)\n}\n\nexport function mapper(error: Error): Promise<Error> {\n if (error instanceof Errors.CLIError) {\n const mappedError = new Abort(error.message)\n mappedError.stack = error.stack\n return Promise.resolve(mappedError)\n } else {\n return Promise.resolve(error)\n }\n}\n\nexport function isFatal(error: Error): boolean {\n return Object.prototype.hasOwnProperty.call(error, 'type')\n}\n\nexport function shouldReport(error: Error): boolean {\n if (!isFatal(error)) {\n return true\n }\n if ((error as Fatal).type === FatalErrorType.Bug) {\n return true\n }\n return false\n}\n","import {content as outputContent, token, debug} from './output'\nimport fs from 'fs-extra'\nimport del from 'del'\nimport tempy from 'tempy'\nimport {sep, join, extname} from 'pathe'\nimport prettier from 'prettier'\nimport type {Options} from 'prettier'\n\nconst DEFAULT_PRETTIER_CONFIG: Options = {\n arrowParens: 'always',\n singleQuote: true,\n bracketSpacing: false,\n trailingComma: 'all',\n}\n\nexport function stripUp(path: string, strip: number) {\n const parts = path.split(sep)\n return join(...parts.slice(strip))\n}\n\n/**\n * Creates a temporary directory and ties its lifecycle ot the lifecycle of the callback.\n * @param callback - The callback that receives the temporary directory.\n */\nexport async function inTemporaryDirectory<T>(callback: (tmpDir: string) => T | Promise<T>): Promise<T> {\n return tempy.directory.task(callback)\n}\n\n/**\n * It reads a file and returns its content as a string using the\n * utf-8 encoding\n * @param path {string} Path to the file to read.\n * @returns {Promise<string>} A promise that resolves with the content of the file.\n */\nexport async function read(path: string, options: object = {encoding: 'utf-8'}): Promise<string> {\n debug(outputContent`Reading the content of file at ${token.path(path)}...`)\n const content = await fs.readFile(path, options)\n return content\n}\n\nexport function readSync(path: string, options: object = {encoding: 'utf-8'}): string {\n debug(outputContent`Sync-reading the content of file at ${token.path(path)}...`)\n const content = fs.readFileSync(path, options)\n return content.toString()\n}\n\n/**\n * Copies a file\n * @param from {string} Path to the directory or file to be copied.\n * @param to {string} Destination path.\n */\nexport async function copy(from: string, to: string): Promise<void> {\n debug(outputContent`Copying file from ${token.path(from)} to ${token.path(to)}...`)\n await fs.copy(from, to)\n}\n\nexport async function touch(path: string): Promise<void> {\n debug(outputContent`Creating an empty file at ${token.path(path)}...`)\n await fs.ensureFile(path)\n}\n\nexport async function touchSync(path: string): Promise<void> {\n debug(outputContent`Creating an empty file at ${token.path(path)}...`)\n await fs.ensureFileSync(path)\n}\n\nexport async function write(path: string, data: string): Promise<void> {\n debug(outputContent`Writing some content to file at ${token.path(path)}...`)\n await fs.writeFile(path, data)\n}\n\nexport function writeSync(path: string, data: string): void {\n debug(outputContent`File-writing some content to file at ${token.path(path)}...`)\n fs.writeFileSync(path, data)\n}\n\nexport async function append(path: string, data: string): Promise<void> {\n await fs.appendFile(path, data)\n}\n\nexport async function mkdir(path: string): Promise<void> {\n debug(outputContent`Creating directory at ${token.path(path)}...`)\n await fs.mkdirp(path)\n}\n\nexport function mkdirSync(path: string): void {\n debug(outputContent`Sync-reating directory at ${token.path(path)}...`)\n fs.mkdirpSync(path)\n}\n\nexport async function remove(path: string): Promise<void> {\n debug(outputContent`Removing file at ${token.path(path)}...`)\n await fs.remove(path)\n}\n\nexport async function rmdir(path: string, {force}: {force?: boolean} = {}): Promise<void> {\n debug(outputContent`Removing directory at ${token.path(path)}...`)\n await del(path, {force})\n}\n\nexport async function mkTmpDir(): Promise<string> {\n debug(outputContent`Creating a temporary directory...`)\n const directory = await fs.mkdtemp('tmp-')\n return directory\n}\n\nexport async function isDirectory(path: string): Promise<boolean> {\n debug(outputContent`Checking if ${token.path(path)} is a directory...`)\n return (await fs.promises.lstat(path)).isDirectory()\n}\n\nexport async function size(path: string): Promise<number> {\n debug(outputContent`Getting the size of file file at ${token.path(path)}...`)\n return (await fs.stat(path)).size\n}\n\nexport function sizeSync(path: string): number {\n debug(outputContent`Sync-getting the size of file file at ${token.path(path)}...`)\n return fs.statSync(path).size\n}\n\n/**\n * Moves a file.\n * @param src {string} File to be moved.\n * @param dest {string} Path to be moved to.\n * @param options {object} Moving options.\n */\nexport async function move(src: string, dest: string, options: {overwrite?: boolean} = {}): Promise<void> {\n await fs.move(src, dest, options)\n}\n\n/**\n * Changes the permissions of a directory or file.\n * @param path {string} Path to the file or directory whose permissions will be modified.\n * @param mode {string | numbers} Permissions to set to the file or directory.\n */\nexport async function chmod(path: string, mode: number | string): Promise<void> {\n await fs.promises.chmod(path, mode)\n}\n\n/**\n * Checks if a file has executable permissions.\n * @param path {string} Path to the file whose permissions will be checked.\n */\nexport async function hasExecutablePermissions(path: string): Promise<boolean> {\n try {\n await fs.promises.access(path, fs.constants.X_OK)\n return true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch {\n return false\n }\n}\n\n/**\n * Returns true if a file or directory exists\n * @param path {string} Path to the directory or file.\n * @returns {boolean} True if it exists.\n */\nexport async function exists(path: string): Promise<boolean> {\n try {\n await fs.promises.access(path)\n return true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch {\n return false\n }\n}\n\n/**\n * Format a string using prettier. Return the formatted content.\n */\nexport async function format(content: string, options: {path: string}) {\n const ext = extname(options.path)\n const prettierConfig: Options = {\n ...DEFAULT_PRETTIER_CONFIG,\n parser: 'babel',\n }\n\n switch (ext) {\n case '.html':\n case '.css':\n prettierConfig.parser = ext.slice(1)\n break\n }\n\n const formattedContent = await prettier.format(content, prettierConfig)\n\n return formattedContent\n}\n","'use strict';\n\nconst isHyper = typeof process !== 'undefined' && process.env.TERM_PROGRAM === 'Hyper';\nconst isWindows = typeof process !== 'undefined' && process.platform === 'win32';\nconst isLinux = typeof process !== 'undefined' && process.platform === 'linux';\n\nconst common = {\n ballotDisabled: '☒',\n ballotOff: '☐',\n ballotOn: '☑',\n bullet: '•',\n bulletWhite: '◦',\n fullBlock: '█',\n heart: '❤',\n identicalTo: '≡',\n line: '─',\n mark: '※',\n middot: '·',\n minus: '-',\n multiplication: '×',\n obelus: '÷',\n pencilDownRight: '✎',\n pencilRight: '✏',\n pencilUpRight: '✐',\n percent: '%',\n pilcrow2: '❡',\n pilcrow: '¶',\n plusMinus: '±',\n question: '?',\n section: '§',\n starsOff: '☆',\n starsOn: '★',\n upDownArrow: '↕'\n};\n\nconst windows = Object.assign({}, common, {\n check: '√',\n cross: '×',\n ellipsisLarge: '...',\n ellipsis: '...',\n info: 'i',\n questionSmall: '?',\n pointer: '>',\n pointerSmall: '»',\n radioOff: '( )',\n radioOn: '(*)',\n warning: '‼'\n});\n\nconst other = Object.assign({}, common, {\n ballotCross: '✘',\n check: '✔',\n cross: '✖',\n ellipsisLarge: '⋯',\n ellipsis: '…',\n info: 'ℹ',\n questionFull: '?',\n questionSmall: '﹖',\n pointer: isLinux ? '▸' : '❯',\n pointerSmall: isLinux ? '‣' : '›',\n radioOff: '◯',\n radioOn: '◉',\n warning: '⚠'\n});\n\nmodule.exports = (isWindows && !isHyper) ? windows : other;\nReflect.defineProperty(module.exports, 'common', { enumerable: false, value: common });\nReflect.defineProperty(module.exports, 'windows', { enumerable: false, value: windows });\nReflect.defineProperty(module.exports, 'other', { enumerable: false, value: other });\n","'use strict';\n\nconst isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\n\n/* eslint-disable no-control-regex */\n// this is a modified version of https://github.com/chalk/ansi-regex (MIT License)\nconst ANSI_REGEX = /[\\u001b\\u009b][[\\]#;?()]*(?:(?:(?:[^\\W_]*;?[^\\W_]*)\\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g;\n\nconst hasColor = () => {\n if (typeof process !== 'undefined') {\n return process.env.FORCE_COLOR !== '0';\n }\n return false;\n};\n\nconst create = () => {\n const colors = {\n enabled: hasColor(),\n visible: true,\n styles: {},\n keys: {}\n };\n\n const ansi = style => {\n let open = style.open = `\\u001b[${style.codes[0]}m`;\n let close = style.close = `\\u001b[${style.codes[1]}m`;\n let regex = style.regex = new RegExp(`\\\\u001b\\\\[${style.codes[1]}m`, 'g');\n style.wrap = (input, newline) => {\n if (input.includes(close)) input = input.replace(regex, close + open);\n let output = open + input + close;\n // see https://github.com/chalk/chalk/pull/92, thanks to the\n // chalk contributors for this fix. However, we've confirmed that\n // this issue is also present in Windows terminals\n return newline ? output.replace(/\\r*\\n/g, `${close}$&${open}`) : output;\n };\n return style;\n };\n\n const wrap = (style, input, newline) => {\n return typeof style === 'function' ? style(input) : style.wrap(input, newline);\n };\n\n const style = (input, stack) => {\n if (input === '' || input == null) return '';\n if (colors.enabled === false) return input;\n if (colors.visible === false) return '';\n let str = '' + input;\n let nl = str.includes('\\n');\n let n = stack.length;\n if (n > 0 && stack.includes('unstyle')) {\n stack = [...new Set(['unstyle', ...stack])].reverse();\n }\n while (n-- > 0) str = wrap(colors.styles[stack[n]], str, nl);\n return str;\n };\n\n const define = (name, codes, type) => {\n colors.styles[name] = ansi({ name, codes });\n let keys = colors.keys[type] || (colors.keys[type] = []);\n keys.push(name);\n\n Reflect.defineProperty(colors, name, {\n configurable: true,\n enumerable: true,\n set(value) {\n colors.alias(name, value);\n },\n get() {\n let color = input => style(input, color.stack);\n Reflect.setPrototypeOf(color, colors);\n color.stack = this.stack ? this.stack.concat(name) : [name];\n return color;\n }\n });\n };\n\n define('reset', [0, 0], 'modifier');\n define('bold', [1, 22], 'modifier');\n define('dim', [2, 22], 'modifier');\n define('italic', [3, 23], 'modifier');\n define('underline', [4, 24], 'modifier');\n define('inverse', [7, 27], 'modifier');\n define('hidden', [8, 28], 'modifier');\n define('strikethrough', [9, 29], 'modifier');\n\n define('black', [30, 39], 'color');\n define('red', [31, 39], 'color');\n define('green', [32, 39], 'color');\n define('yellow', [33, 39], 'color');\n define('blue', [34, 39], 'color');\n define('magenta', [35, 39], 'color');\n define('cyan', [36, 39], 'color');\n define('white', [37, 39], 'color');\n define('gray', [90, 39], 'color');\n define('grey', [90, 39], 'color');\n\n define('bgBlack', [40, 49], 'bg');\n define('bgRed', [41, 49], 'bg');\n define('bgGreen', [42, 49], 'bg');\n define('bgYellow', [43, 49], 'bg');\n define('bgBlue', [44, 49], 'bg');\n define('bgMagenta', [45, 49], 'bg');\n define('bgCyan', [46, 49], 'bg');\n define('bgWhite', [47, 49], 'bg');\n\n define('blackBright', [90, 39], 'bright');\n define('redBright', [91, 39], 'bright');\n define('greenBright', [92, 39], 'bright');\n define('yellowBright', [93, 39], 'bright');\n define('blueBright', [94, 39], 'bright');\n define('magentaBright', [95, 39], 'bright');\n define('cyanBright', [96, 39], 'bright');\n define('whiteBright', [97, 39], 'bright');\n\n define('bgBlackBright', [100, 49], 'bgBright');\n define('bgRedBright', [101, 49], 'bgBright');\n define('bgGreenBright', [102, 49], 'bgBright');\n define('bgYellowBright', [103, 49], 'bgBright');\n define('bgBlueBright', [104, 49], 'bgBright');\n define('bgMagentaBright', [105, 49], 'bgBright');\n define('bgCyanBright', [106, 49], 'bgBright');\n define('bgWhiteBright', [107, 49], 'bgBright');\n\n colors.ansiRegex = ANSI_REGEX;\n colors.hasColor = colors.hasAnsi = str => {\n colors.ansiRegex.lastIndex = 0;\n return typeof str === 'string' && str !== '' && colors.ansiRegex.test(str);\n };\n\n colors.alias = (name, color) => {\n let fn = typeof color === 'string' ? colors[color] : color;\n\n if (typeof fn !== 'function') {\n throw new TypeError('Expected alias to be the name of an existing color (string) or a function');\n }\n\n if (!fn.stack) {\n Reflect.defineProperty(fn, 'name', { value: name });\n colors.styles[name] = fn;\n fn.stack = [name];\n }\n\n Reflect.defineProperty(colors, name, {\n configurable: true,\n enumerable: true,\n set(value) {\n colors.alias(name, value);\n },\n get() {\n let color = input => style(input, color.stack);\n Reflect.setPrototypeOf(color, colors);\n color.stack = this.stack ? this.stack.concat(fn.stack) : fn.stack;\n return color;\n }\n });\n };\n\n colors.theme = custom => {\n if (!isObject(custom)) throw new TypeError('Expected theme to be an object');\n for (let name of Object.keys(custom)) {\n colors.alias(name, custom[name]);\n }\n return colors;\n };\n\n colors.alias('unstyle', str => {\n if (typeof str === 'string' && str !== '') {\n colors.ansiRegex.lastIndex = 0;\n return str.replace(colors.ansiRegex, '');\n }\n return '';\n });\n\n colors.alias('noop', str => str);\n colors.none = colors.clear = colors.noop;\n\n colors.stripColor = colors.unstyle;\n colors.symbols = require('./symbols');\n colors.define = define;\n return colors;\n};\n\nmodule.exports = create();\nmodule.exports.create = create;\n","/* eslint-disable no-console */\nimport {Fatal, Bug} from './error'\nimport {isUnitTest, isVerbose} from './environment/local'\nimport constants from './constants'\nimport {DependencyManager} from './dependency'\nimport {\n append as fileAppend,\n mkdirSync as fileMkdirSync,\n readSync as fileReadSync,\n sizeSync as fileSizeSync,\n writeSync as fileWriteSync,\n touchSync as fileTouchSync,\n} from './file'\nimport {join as pathJoin, relativize as relativizePath} from './path'\nimport {page} from './system'\nimport terminalLink from 'terminal-link'\nimport colors from 'ansi-colors'\nimport StackTracey from 'stacktracey'\nimport {AbortController, AbortSignal} from 'abort-controller'\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport cjs from 'color-json'\nimport {Writable} from 'node:stream'\n\nlet logFile: string\n\nexport function initiateLogging({\n logDir = constants.paths.directories.cache.path(),\n filename = 'shopify.log',\n}: {\n logDir?: string\n filename?: string\n}) {\n fileMkdirSync(logDir)\n logFile = pathJoin(logDir, filename)\n fileTouchSync(logFile)\n truncateLogs()\n}\n\n// Shaves off the first 10,000 log lines (circa 1MB) if logs are over 5MB long.\n// Rescues in case the file hasn't been created yet.\nfunction truncateLogs() {\n try {\n if (fileSizeSync(logFile) > 5 * 1024 * 1024) {\n const contents = fileReadSync(logFile)\n const splitContents = contents.split('\\n')\n const newContents = splitContents.slice(10000, splitContents.length).join('\\n')\n fileWriteSync(logFile, newContents)\n }\n // eslint-disable-next-line no-empty, no-catch-all/no-catch-all\n } catch {}\n}\n\nenum ContentTokenType {\n Raw,\n Command,\n Json,\n Path,\n Link,\n Heading,\n SubHeading,\n Italic,\n ErrorText,\n Yellow,\n Cyan,\n Magenta,\n Green,\n}\n\ninterface ContentMetadata {\n link?: string\n}\n\nclass ContentToken {\n type: ContentTokenType\n value: Message\n metadata: ContentMetadata\n\n constructor(value: Message, metadata: ContentMetadata = {}, type: ContentTokenType) {\n this.type = type\n this.value = value\n this.metadata = metadata\n }\n}\n\nexport const token = {\n raw: (value: Message) => {\n return new ContentToken(value, {}, ContentTokenType.Raw)\n },\n genericShellCommand: (value: Message) => {\n return new ContentToken(value, {}, ContentTokenType.Command)\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n json: (value: any) => {\n return new ContentToken(value, {}, ContentTokenType.Json)\n },\n path: (value: Message) => {\n return new ContentToken(value, {}, ContentTokenType.Path)\n },\n link: (value: Message, link: string) => {\n return new ContentToken(value, {link}, ContentTokenType.Link)\n },\n heading: (value: Message) => {\n return new ContentToken(value, {}, ContentTokenType.Heading)\n },\n subheading: (value: Message) => {\n return new ContentToken(value, {}, ContentTokenType.SubHeading)\n },\n italic: (value: Message) => {\n return new ContentToken(value, {}, ContentTokenType.Italic)\n },\n errorText: (value: Message) => {\n return new ContentToken(value, {}, ContentTokenType.ErrorText)\n },\n cyan: (value: Message) => {\n return new ContentToken(value, {}, ContentTokenType.Cyan)\n },\n yellow: (value: Message) => {\n return new ContentToken(value, {}, ContentTokenType.Yellow)\n },\n magenta: (value: Message) => {\n return new ContentToken(value, {}, ContentTokenType.Magenta)\n },\n green: (value: Message) => {\n return new ContentToken(value, {}, ContentTokenType.Green)\n },\n packagejsonScript: (dependencyManager: DependencyManager, scriptName: string, ...scriptArgs: string[]) => {\n return new ContentToken(\n formatPackageManagerCommand(dependencyManager, scriptName, scriptArgs),\n {},\n ContentTokenType.Command,\n )\n },\n successIcon: () => {\n return new ContentToken('✔', {}, ContentTokenType.Green)\n },\n failIcon: () => {\n return new ContentToken('✖', {}, ContentTokenType.ErrorText)\n },\n}\n\nfunction formatPackageManagerCommand(\n dependencyManager: DependencyManager,\n scriptName: string,\n scriptArgs: string[],\n): string {\n switch (dependencyManager) {\n case 'yarn': {\n const pieces = ['yarn', scriptName, ...scriptArgs]\n return pieces.join(' ')\n }\n case 'pnpm':\n case 'npm': {\n const pieces = [dependencyManager, 'run', scriptName]\n if (scriptArgs.length > 0) {\n pieces.push('--')\n pieces.push(...scriptArgs)\n }\n return pieces.join(' ')\n }\n }\n}\n\nexport class TokenizedString {\n value: string\n constructor(value: string) {\n this.value = value\n }\n}\n\nexport type Message = string | TokenizedString\n\nexport function content(strings: TemplateStringsArray, ...keys: (ContentToken | string)[]): TokenizedString {\n let output = ``\n strings.forEach((string, i) => {\n output += string\n if (i >= keys.length) {\n return\n }\n const token = keys[i]\n\n if (typeof token === 'string') {\n output += token\n } else {\n const enumToken = token as ContentToken\n switch (enumToken.type) {\n case ContentTokenType.Raw:\n output += enumToken.value\n break\n case ContentTokenType.Command:\n output += colors.bold(colors.yellow(stringifyMessage(enumToken.value)))\n break\n case ContentTokenType.Path:\n output += relativizePath(stringifyMessage(enumToken.value))\n break\n case ContentTokenType.Json:\n try {\n output += cjs(stringifyMessage(enumToken.value) ?? {})\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (_) {\n output += JSON.stringify(stringifyMessage(enumToken.value) ?? {}, null, 2)\n }\n break\n case ContentTokenType.Link:\n output += terminalLink(colors.green(stringifyMessage(enumToken.value)), enumToken.metadata.link ?? '')\n break\n case ContentTokenType.Heading:\n output += colors.bold.underline(stringifyMessage(enumToken.value))\n break\n case ContentTokenType.SubHeading:\n output += colors.underline(stringifyMessage(enumToken.value))\n break\n case ContentTokenType.Italic:\n output += colors.italic(stringifyMessage(enumToken.value))\n break\n case ContentTokenType.ErrorText:\n output += colors.bold.redBright(stringifyMessage(enumToken.value))\n break\n case ContentTokenType.Yellow:\n output += colors.yellow(stringifyMessage(enumToken.value))\n break\n case ContentTokenType.Cyan:\n output += colors.cyan(stringifyMessage(enumToken.value))\n break\n case ContentTokenType.Magenta:\n output += colors.magenta(stringifyMessage(enumToken.value))\n break\n case ContentTokenType.Green:\n output += colors.green(stringifyMessage(enumToken.value))\n break\n }\n }\n })\n return new TokenizedString(output)\n}\n\n/** Log levels */\nexport type LogLevel = 'fatal' | 'error' | 'warn' | 'info' | 'debug' | 'trace' | 'silent'\n\n/**\n * It maps a level to a numeric value.\n * @param level {LogLevel} The level for which we'll return its numeric value.\n * @returns The numeric value of the level.\n */\nconst logLevelValue = (level: LogLevel): number => {\n switch (level) {\n case 'trace':\n return 10\n case 'debug':\n return 20\n case 'info':\n return 30\n case 'warn':\n return 40\n case 'error':\n return 50\n case 'fatal':\n return 60\n default:\n return 30\n }\n}\n\n/**\n *\n * @returns {LogLevel} It returns the log level set by the user.\n */\nexport const currentLogLevel = (): LogLevel => {\n if (isVerbose()) {\n return 'debug'\n } else {\n return 'info'\n }\n}\n\nexport const shouldOutput = (logLevel: LogLevel): boolean => {\n if (isUnitTest()) {\n return false\n }\n const currentLogLevelValue = logLevelValue(currentLogLevel())\n const messageLogLevelValue = logLevelValue(logLevel)\n return messageLogLevelValue >= currentLogLevelValue\n}\n\n/**\n * Ouputs information to the user. This is akin to \"console.log\"\n * Info messages don't get additional formatting.\n * Note: Info messages are sent through the standard output.\n * @param content {string} The content to be output to the user.\n */\nexport const info = (content: Message) => {\n message(content, 'info')\n}\n\n/**\n * Outputs a success message to the user.\n * Success message receive a special formatting to make them stand out in the console.\n * Note: Success messages are sent through the standard output.\n * @param content {string} The content to be output to the user.\n */\nexport const success = (content: Message) => {\n const message = colors.bold(`✅ Success! ${stringifyMessage(content)}.`)\n outputWhereAppropriate('info', consoleLog, message)\n}\n\n/**\n * Outputs a completed message to the user.\n * Completed message receive a special formatting to make them stand out in the console.\n * Note: Completed messages are sent through the standard output.\n * @param content {string} The content to be output to the user.\n */\nexport const completed = (content: Message) => {\n const message = `${colors.green('✔')} ${stringifyMessage(content)}`\n outputWhereAppropriate('info', consoleLog, message)\n}\n\n/**\n * Ouputs debug information to the user. By default these output is hidden unless the user calls the CLI with --verbose.\n * Debug messages don't get additional formatting.\n * Note: Debug messages are sent through the standard output.\n * @param content {string} The content to be output to the user.\n */\nexport const debug = (content: Message) => {\n message(colors.gray(stringifyMessage(content)), 'debug')\n}\n\n/**\n * Outputs a warning message to the user.\n * Warning messages receive a special formatting to make them stand out in the console.\n * Note: Warning messages are sent through the standard output.\n * @param content {string} The content to be output to the user.\n */\nexport const warn = (content: Message) => {\n consoleWarn(colors.yellow(stringifyMessage(content)))\n}\n\n/**\n * Prints a new line in the terminal.\n */\nexport const newline = () => {\n console.log()\n}\n\n/**\n * Formats and outputs a fatal error.\n * Note: This API is not intended to be used internally. If you want to\n * abort the execution due to an error, raise a fatal error and let the\n * error handler handle and format it.\n * @param content {Fatal} The fatal error to be output.\n */\nexport const error = async (content: Fatal) => {\n if (!content.message) {\n return\n }\n let outputString = ''\n const message = content.message\n const padding = ' '\n const header = colors.redBright(`\\n━━━━━━ Error ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n`)\n const footer = colors.redBright('\\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n')\n outputString += header\n const lines = message.split('\\n')\n for (const line of lines) {\n outputString += `${padding}${line}\\n`\n }\n if (content.tryMessage) {\n outputString += `\\n${padding}${colors.bold('What to try:')}\\n`\n const lines = content.tryMessage.split('\\n')\n for (const line of lines) {\n outputString += `${padding}${line}\\n`\n }\n }\n\n let stack = await new StackTracey(content).withSourcesAsync()\n stack = stack\n .filter((entry) => {\n return !entry.file.includes('@oclif/core')\n })\n .map((item) => {\n item.calleeShort = colors.yellow(item.calleeShort)\n /** We make the paths relative to the packages/ directory */\n const fileShortComponents = item.fileShort.split('packages/')\n item.fileShort = fileShortComponents.length === 2 ? fileShortComponents[1] : fileShortComponents[0]\n return item\n })\n if (content instanceof Bug) {\n if (stack.items.length !== 0) {\n outputString += `\\n${padding}${colors.bold('Stack trace:')}`\n const stackLines = stack.asTable({}).split('\\n')\n for (const stackLine of stackLines) {\n outputString += `${padding}${stackLine}\\n`\n }\n }\n }\n outputString += footer\n outputWhereAppropriate('error', consoleError, outputString)\n}\n\nexport function stringifyMessage(message: Message): string {\n if (message instanceof TokenizedString) {\n return message.value\n } else {\n return message\n }\n}\n\nconst message = (content: Message, level: LogLevel = 'info') => {\n const stringifiedMessage = stringifyMessage(content)\n outputWhereAppropriate(level, consoleLog, stringifiedMessage)\n}\n\nexport interface OutputProcess {\n /** The prefix to include in the logs\n * [vite] Output coming from Vite\n */\n prefix: string\n /**\n * A callback to invoke the process. stdout and stderr should be used\n * to send standard output and error data that gets formatted with the\n * right prefix.\n */\n action: (stdout: Writable, stderr: Writable, signal: AbortSignal) => Promise<void>\n}\n\n/**\n * Use this function when you have multiple concurrent processes that send data events\n * and we need to output them ensuring that they can visually differenciated by the user.\n *\n * @param processes {OutputProcess[]} A list of processes to run concurrently.\n */\nexport async function concurrent(\n processes: OutputProcess[],\n callback: ((signal: AbortSignal) => void) | undefined = undefined,\n) {\n const abortController = new AbortController()\n\n // eslint-disable-next-line node/callback-return\n if (callback) callback(abortController.signal)\n\n const concurrentColors = [token.yellow, token.cyan, token.magenta, token.green]\n const prefixColumnSize = Math.max(...processes.map((process) => process.prefix.length))\n\n function linePrefix(prefix: string, index: number) {\n const colorIndex = index < concurrentColors.length ? index : index % concurrentColors.length\n const color = concurrentColors[colorIndex]\n return color(`${prefix}${' '.repeat(prefixColumnSize - prefix.length)} ${colors.bold('|')} `)\n }\n\n try {\n await Promise.all(\n processes.map(async (process, index) => {\n const stdout = new Writable({\n write(chunk, _encoding, next) {\n const lines = stripAnsiEraseCursorEscapeCharacters(chunk.toString('ascii')).split(/\\n/)\n for (const line of lines) {\n info(content`${linePrefix(process.prefix, index)}${line}`)\n }\n next()\n },\n })\n const stderr = new Writable({\n write(chunk, _encoding, next) {\n const lines = stripAnsiEraseCursorEscapeCharacters(chunk.toString('ascii')).split(/\\n/)\n for (const line of lines) {\n message(content`${linePrefix(process.prefix, index)}${colors.bold(line)}`, 'error')\n }\n next()\n },\n })\n await process.action(stdout, stderr, abortController.signal)\n }),\n )\n } catch (_error) {\n // We abort any running process\n abortController.abort()\n throw _error\n }\n}\n\n/**\n * This regex can be used to find the erase cursor Ansii characters\n * to strip them from the string.\n * https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797#erase-functions\n */\nconst eraseCursorAnsiRegex = [\n // Erase the entire line\n '2K',\n // Clear vertical tab stop at current line\n '1G',\n]\n .map((element) => `[\\\\u001B\\\\u009B][[\\\\]()#;?]*${element}`)\n .join('|')\n\n/**\n * The data sent through the standard pipelines of the sub-processes that we execute\n * might contain ansii escape characters to move the cursor. That causes any additional\n * formatting to break. This function takes a string and strips escape characters that\n * manage the cursor in the terminal.\n * @param value {string} String whose erase cursor escape characters will be stripped.\n * @returns {string} Stripped string.\n */\nfunction stripAnsiEraseCursorEscapeCharacters(value: string): string {\n return value.replace(/(\\n)$/, '').replace(new RegExp(eraseCursorAnsiRegex, 'g'), '')\n}\n\nfunction consoleLog(message: string): void {\n console.log(withOrWithoutStyle(message))\n}\n\nfunction consoleError(message: string): void {\n console.error(withOrWithoutStyle(message))\n}\n\nfunction consoleWarn(message: string): void {\n console.warn(withOrWithoutStyle(message))\n}\n\nfunction outputWhereAppropriate(logLevel: LogLevel, logFunc: (message: string) => void, message: string): void {\n if (shouldOutput(logLevel)) {\n logFunc(message)\n }\n logToFile(message, logLevel.toUpperCase())\n}\n\nfunction logFileExists(): boolean {\n return Boolean(logFile)\n}\n\nfunction logToFile(message: string, logLevel: string): void {\n // If file logging hasn't been initiated, skip it\n if (!logFileExists()) return\n const timestamp = new Date().toISOString()\n fileAppend(logFile, `[${timestamp} ${logLevel}]: ${message}\\n`)\n}\n\nfunction withOrWithoutStyle(message: string): string {\n if (shouldDisplayColors()) {\n return message\n } else {\n return unstyled(message)\n }\n}\n\nexport function unstyled(message: string): string {\n return colors.unstyle(message)\n}\n\nexport function shouldDisplayColors(): boolean {\n return Boolean(process.stdout.isTTY || process.env.FORCE_COLOR)\n}\n\nexport async function pageLogs() {\n await page(logFile)\n}\n\n/* eslint-enable no-console */\n","import {debug, content} from './output'\nimport {execa} from 'execa'\nimport {platform as processPlatform} from 'node:process'\nimport {userInfo as osUserInfo, arch as osArch} from 'node:os'\n\nconst getEnvironmentVariable = () => {\n const {env} = process\n\n return env.SUDO_USER || env.C9_USER || env.LOGNAME || env.USER || env.LNAME || env.USERNAME\n}\n\nconst getUsernameFromOsUserInfo = (): string | null => {\n try {\n return osUserInfo().username\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch {\n return null\n }\n}\n\nconst cleanWindowsCommand = (value: string) => value.replace(/^.*\\\\/, '')\n\nconst makeUsernameFromId = (userId: string) => `no-username-${userId}`\n\n// This code has been vendored from https://github.com/sindresorhus/username\n// because adding it as a transtive dependency causes conflicts with other\n// packages that haven't been yet migrated to the latest version.\nexport const username = async (platform: typeof processPlatform = processPlatform): Promise<string | null> => {\n debug(content`Obtaining user name...`)\n const environmentVariable = getEnvironmentVariable()\n if (environmentVariable) {\n return environmentVariable\n }\n\n const userInfoUsername = getUsernameFromOsUserInfo()\n if (userInfoUsername) {\n return userInfoUsername\n }\n\n /**\n\tFirst we try to get the ID of the user and then the actual username. We do this because in `docker run --user <uid>:<gid>` context, we don't have \"username\" available. Therefore, we have a fallback to `makeUsernameFromId` for such scenario. Applies also to the `sync()` method below.\n\t*/\n try {\n if (platform === 'win32') {\n const {stdout} = await execa('whoami')\n return cleanWindowsCommand(stdout)\n }\n\n const {stdout: userId} = await execa('id', ['-u'])\n try {\n const {stdout} = await execa('id', ['-un', userId])\n return stdout\n\n // eslint-disable-next-line no-catch-all/no-catch-all,no-empty\n } catch {}\n return makeUsernameFromId(userId)\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch {\n return null\n }\n}\n\n/**\n * Returns the platform and architecture.\n * @returns {{platform: string, arch: string}} Returns the current platform and architecture.\n */\nexport const platformAndArch = (\n platform: typeof processPlatform = processPlatform,\n): {platform: string; arch: string} => {\n let arch = osArch()\n if (arch === 'x64') {\n arch = 'amd64'\n }\n let platformString = platform as string\n if (platform.match(/^win.+/)) {\n platformString = 'windows'\n }\n return {platform: platformString, arch}\n}\n","import {concurrent as concurrentOutput, shouldDisplayColors, debug} from './output'\nimport {platformAndArch} from './os'\nimport {Abort} from './error'\nimport {execa, ExecaChildProcess} from 'execa'\nimport {AbortSignal} from 'abort-controller'\nimport type {Writable, Readable} from 'node:stream'\n\nexport interface ExecOptions {\n cwd?: string\n env?: {[key: string]: string | undefined}\n stdout?: Writable | 'inherit'\n stderr?: Writable\n stdio?: Readable | 'inherit'\n stdin?: string\n signal?: AbortSignal\n}\nexport type WritableExecOptions = Omit<ExecOptions, 'stdout'> & {stdout?: Writable}\n\nexport const open = async (url: string) => {\n const externalOpen = await import('open')\n await externalOpen.default(url)\n}\n\n/**\n * Runs a command asynchronously, aggregates the stdout data, and returns it.\n * @param command {string} Command to be executed.\n * @param args {string[]} Arguments to pass to the command.\n * @returns A promise that resolves with the aggregatted stdout of the command.\n */\nexport const captureOutput = async (command: string, args: string[], options?: ExecOptions): Promise<string> => {\n const result = await buildExec(command, args, options)\n return result.stdout\n}\n\nexport const exec = async (command: string, args: string[], options?: ExecOptions) => {\n const commandProcess = buildExec(command, args, options)\n if (options?.stderr) {\n commandProcess.stderr?.pipe(options.stderr)\n }\n if (options?.stdout && options.stdout !== 'inherit') {\n commandProcess.stdout?.pipe(options.stdout)\n }\n options?.signal?.addEventListener('abort', () => {\n commandProcess.kill('SIGTERM', {forceKillAfterTimeout: 1000})\n })\n try {\n await commandProcess\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (processError: any) {\n const abortError = new Abort(processError.message)\n abortError.stack = processError.stack\n throw abortError\n }\n}\n\nconst buildExec = (command: string, args: string[], options?: ExecOptions): ExecaChildProcess<string> => {\n const env = options?.env ?? process.env\n if (shouldDisplayColors()) {\n env.FORCE_COLOR = '1'\n }\n const commandProcess = execa(command, args, {\n env,\n cwd: options?.cwd,\n input: options?.stdin,\n stdout: options?.stdout === 'inherit' ? 'inherit' : undefined,\n })\n debug(`\nRunning system process:\n · Command: ${command} ${args.join(' ')}\n · Working directory: ${options?.cwd ?? process.cwd()}\n`)\n return commandProcess\n}\n\ninterface ConcurrentExecCommand {\n prefix: string\n executable: string\n args: string[]\n cwd: string\n}\n\n/**\n * Runs commands concurrently and combines the standard output and error data\n * into a single stream that differenciates the sources using a colored prefix:\n *\n * Example:\n * [my-extension] Log coming from my-extension\n * [my-script] Log coming from my script\n *\n * If one of the processes fails, it aborts the running ones and exits with that error.\n * @param commands {ConcurrentExecCommand[]} Commands to execute.\n */\nexport const concurrentExec = async (commands: ConcurrentExecCommand[]): Promise<void> => {\n await concurrentOutput(\n commands.map((command) => {\n return {\n prefix: command.prefix,\n action: async (stdout, stderr, signal) => {\n await exec(command.executable, command.args, {\n stdout,\n stderr,\n cwd: command.cwd,\n signal,\n })\n },\n }\n }),\n )\n}\n\n/**\n * Displays a large file using the terminal pager set by the user, or a\n * reasonable default for the user's OS:\n *\n * @param filename string The path to the file to be displayed.\n */\nexport async function page(filename: string) {\n let executable: string\n if (process.env.PAGER) {\n executable = process.env.PAGER\n } else if ((await platformAndArch()).platform === 'windows') {\n executable = 'more'\n } else {\n executable = 'less -NR'\n }\n const [command, ...args] = [...executable.split(' '), filename]\n await exec(command, args, {stdout: 'inherit', stdin: 'inherit'})\n}\n\nexport async function sleep(seconds: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, 1000 * seconds)\n })\n}\n","import {isTruthy} from './utilities'\nimport constants from '../constants'\nimport {captureOutput} from '../system'\nimport {Abort} from '../error'\nimport {content, token} from '../output'\n\nexport const SpinInstanceNotFound = (spinInstance: string | undefined, error: string) => {\n const errorMessage = content`${token.genericShellCommand(\n `spin`,\n )} yielded the following error trying to obtain the fully qualified domain name of the Spin instance:\n${error}\n `\n let nextSteps: string | undefined\n if (spinInstance) {\n nextSteps = `Make sure ${spinInstance} is the instance name and not a fully qualified domain name`\n }\n return new Abort(errorMessage, nextSteps)\n}\n\n/**\n * When ran in a Spin environment, it returns the fqdn of the instance.\n * @returns {string} fqdn of the Spin environment.\n */\nexport async function fqdn(env = process.env): Promise<string> {\n const spinInstance = await instance(env)\n const showResponse = await show(spinInstance, env)\n return showResponse.fqdn\n}\n\n/**\n * Runs \"spin show\" and returns the JSON-parsed output.\n * @param {latest} Whether to pass --latest when running the command.\n * @returns The JSON-parsed output of the Spin CLI.\n * @throws Any error raised from the underlying Spin CLI.\n */\nexport async function show(spinInstance: string | undefined, env = process.env): Promise<{fqdn: string}> {\n const latest = spinInstance === undefined\n const args = latest ? ['show', '--latest', '--json'] : ['show', '--json']\n const output = await captureOutput('spin', args, {env})\n const json = JSON.parse(output)\n if (json.error) {\n throw SpinInstanceNotFound(spinInstance, json.error)\n } else {\n return json\n }\n}\n\n/**\n * Returns true if the CLI is running in a Spin environment.\n * @param env {[key: string]: string} Environment variables\n * @returns {boolean} True if the CLI is running in a Spin environment.\n */\nexport function isSpin(env = process.env): boolean {\n return isTruthy(env[constants.environmentVariables.spin])\n}\n\n/**\n * Returns the value of the SPIN_INSTANCE environment variable.\n * @param env {[key: string]: string} Environment variables\n * @returns {string | undefined} The value of the SPIN_INSTANCE environment variable.\n */\nexport function instance(env = process.env): string | undefined {\n return env[constants.environmentVariables.spinInstance]\n}\n\n/**\n * Returns the value of the SPIN_WORKSPACE environment variable.\n * @param env {[key: string]: string} Environment variables\n * @returns {string | undefined} The value of the SPIN_WORKSPACE environment variable.\n */\nexport function workspace(env = process.env): string | undefined {\n return env[constants.environmentVariables.spinWorkspace]\n}\n\n/**\n * Returns the value of the SPIN_NAMESPACE environment variable.\n * @param env {[key: string]: string} Environment variables\n * @returns {string | undefined} The value of the SPIN_NAMESPACE environment variable.\n */\nexport function namespace(env = process.env): string | undefined {\n return env[constants.environmentVariables.spinNamespace]\n}\n\n/**\n * Returns the value of the SPIN_HOST environment variable.\n * @param env {[key: string]: string} Environment variables\n * @returns {string | undefined} The value of the SPIN_HOST environment variable.\n */\nexport function host(env = process.env): string | undefined {\n return env[constants.environmentVariables.spinHost]\n}\n","import {isTruthy} from './utilities'\nimport {isSpin} from './spin'\nimport constants from '../constants'\nimport {exists as fileExists} from '../file'\nimport {exec} from '../system'\nimport isInteractive from 'is-interactive'\nimport {homedir} from 'node:os'\n\n/**\n * It returns true if the terminal is interactive.\n * @returns {boolean} True if the terminal is interactive.\n */\nexport function isTerminalInteractive(): boolean {\n return isInteractive()\n}\n\n/**\n * Returns the path to the user's home directory.\n * @returns {string} The path to the user's home directory.\n */\nexport function homeDirectory(): string {\n return homedir()\n}\n\n/**\n * Returns true if the CLI is running in debug mode.\n * @param env The environment variables from the environment of the current process.\n * @returns true if SHOPIFY_CONFIG is debug\n */\nexport function isDebug(env = process.env): boolean {\n return env[constants.environmentVariables.shopifyConfig] === 'debug'\n}\n\n/**\n * Returns true if the CLI is running in verbose mode.\n * @param env The environment variables from the environment of the current process.\n * @returns true if SHOPIFY_FLAG_VERBOSE is truthy or the flag --verbose has been passed\n */\nexport function isVerbose(env = process.env): boolean {\n return isTruthy(env[constants.environmentVariables.verbose]) || process.argv.includes('--verbose')\n}\n\n/**\n * Returns true if the environment in which the CLI is running is either\n * a local environment (where dev is present) or a cloud environment (spin).\n * @returns {boolean} True if the CLI is used in a Shopify environment.\n */\nexport async function isShopify(env = process.env): Promise<boolean> {\n if (Object.prototype.hasOwnProperty.call(env, constants.environmentVariables.runAsUser)) {\n return !isTruthy(env[constants.environmentVariables.runAsUser])\n }\n const devInstalled = await fileExists(constants.paths.executables.dev)\n return devInstalled || isSpin()\n}\n\n/**\n * This variable is used when running unit tests to indicate that the CLI's business logic\n * is run as a subject of a unit test. We can use this variable to disable output through\n * the standard streams.\n * @param env The environment variables from the environment of the current process.\n * @returns True if the SHOPIFY_UNIT_TEST environment variable is truthy.\n */\nexport function isUnitTest(env = process.env): boolean {\n return isTruthy(env[constants.environmentVariables.unitTest])\n}\n\n/**\n * Returns true if reporting analytics is enabled.\n * @param env The environment variables from the environment of the current process.\n * @returns true unless SHOPIFY_CLI_NO_ANALYTICS is truthy.\n */\nexport function analyticsDisabled(env = process.env): boolean {\n return isTruthy(env[constants.environmentVariables.noAnalytics])\n}\n\n/**\n * Returns whether the environment has Git available.\n * @returns {Promise<boolean>} A promise that resolves with the value.\n */\nexport async function hasGit(): Promise<boolean> {\n try {\n await exec('git', ['--version'])\n return true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch {\n return false\n }\n}\n"],"names":["pathJoin","cliKitVersion","error","ouput.error","outputContent","content","require$$0","ansiColorsModule","ansiColors","fileMkdirSync","fileTouchSync","fileSizeSync","fileReadSync","fileWriteSync","colors","relativizePath","fileAppend","osUserInfo","platform","processPlatform","arch","osArch","concurrentOutput","fileExists"],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { o as debug, b as content, t as token } from '../local-d0094ffe.js';
|
|
2
|
+
import { zip as zip$1 } from 'cross-zip';
|
|
3
|
+
import 'commondir';
|
|
4
|
+
import 'pathe';
|
|
5
|
+
import 'url';
|
|
6
|
+
import 'find-up';
|
|
7
|
+
import 'fast-glob';
|
|
8
|
+
import 'node:url';
|
|
9
|
+
import 'env-paths';
|
|
10
|
+
import '@oclif/core';
|
|
11
|
+
import 'source-map-support';
|
|
12
|
+
import 'ts-error';
|
|
13
|
+
import 'abort-controller';
|
|
14
|
+
import 'fs-extra';
|
|
15
|
+
import 'del';
|
|
16
|
+
import 'tempy';
|
|
17
|
+
import 'prettier';
|
|
18
|
+
import 'is-interactive';
|
|
19
|
+
import 'node:os';
|
|
20
|
+
import 'terminal-link';
|
|
21
|
+
import 'stacktracey';
|
|
22
|
+
import 'color-json';
|
|
23
|
+
import 'node:stream';
|
|
24
|
+
import 'execa';
|
|
25
|
+
import 'node:process';
|
|
26
|
+
|
|
27
|
+
async function zip(inputDirectory, outputZipPath) {
|
|
28
|
+
debug(content`Zipping ${token.path(inputDirectory)} into ${token.path(outputZipPath)}`);
|
|
29
|
+
const cwd = process.cwd();
|
|
30
|
+
process.chdir(inputDirectory);
|
|
31
|
+
await new Promise((resolve, reject) => {
|
|
32
|
+
zip$1("./", outputZipPath, (error) => {
|
|
33
|
+
process.chdir(cwd);
|
|
34
|
+
if (error) {
|
|
35
|
+
reject(error);
|
|
36
|
+
} else {
|
|
37
|
+
resolve();
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export { zip };
|
|
44
|
+
//# sourceMappingURL=archiver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archiver.js","sources":["../../src/node/archiver.ts"],"sourcesContent":["import {debug, content, token} from '../output'\nimport {zip as crossZip} from 'cross-zip'\n\n/**\n * It zips a directory.\n * @param inputDirectory {string} The absolute path to the directory to be zipped.\n * @param outputZipPath {string} The absolute path to the output zip file.\n */\nexport async function zip(inputDirectory: string, outputZipPath: string): Promise<void> {\n debug(content`Zipping ${token.path(inputDirectory)} into ${token.path(outputZipPath)}`)\n const cwd = process.cwd()\n process.chdir(inputDirectory)\n\n await new Promise<void>((resolve, reject) => {\n crossZip('./', outputZipPath, (error) => {\n process.chdir(cwd)\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n })\n })\n}\n"],"names":["crossZip"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,eAAA,GAAA,CAA0B,gBAAwB,aAAsC,EAAA;AACtF,EAAM,KAAA,CAAA,OAAA,CAAA,QAAA,EAAkB,MAAM,IAAK,CAAA,cAAc,UAAU,KAAM,CAAA,IAAA,CAAK,aAAa,CAAG,CAAA,CAAA,CAAA,CAAA;AACtF,EAAM,MAAA,GAAA,GAAM,QAAQ,GAAI,EAAA,CAAA;AACxB,EAAA,OAAA,CAAQ,MAAM,cAAc,CAAA,CAAA;AAE5B,EAAA,MAAM,IAAI,OAAA,CAAc,CAAC,OAAA,EAAS,MAAW,KAAA;AAC3C,IAASA,KAAA,CAAA,IAAA,EAAM,aAAe,EAAA,CAAC,KAAU,KAAA;AACvC,MAAA,OAAA,CAAQ,MAAM,GAAG,CAAA,CAAA;AACjB,MAAA,IAAI,KAAO,EAAA;AACT,QAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,OACP,MAAA;AACL,QAAQ,OAAA,EAAA,CAAA;AAAA,OACV;AAAA,KACD,CAAA,CAAA;AAAA,GACF,CAAA,CAAA;AACH;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shopify/cli-kit",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.25",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A set of utilities, interfaces, and models that are common across all the platform features",
|
|
6
6
|
"keywords": [
|
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
".": {
|
|
17
17
|
"import": "./dist/index.js",
|
|
18
18
|
"types": "./dist/index.d.ts"
|
|
19
|
+
},
|
|
20
|
+
"./node/*": {
|
|
21
|
+
"node": "./dist/node/*.js",
|
|
22
|
+
"types": "./dist/node/*.d.ts"
|
|
19
23
|
}
|
|
20
24
|
},
|
|
21
25
|
"files": [
|
|
@@ -30,7 +34,7 @@
|
|
|
30
34
|
"clean": "shx rm -rf dist",
|
|
31
35
|
"build": "rimraf dist/ && rollup -c",
|
|
32
36
|
"prepack": "cross-env NODE_ENV=production yarn run build",
|
|
33
|
-
"lint": "prettier -c src/** && eslint
|
|
37
|
+
"lint": "prettier -c src/** && eslint \"src/**/*.ts\"",
|
|
34
38
|
"lint:fix": "eslint 'src/**/*.ts' --fix",
|
|
35
39
|
"test": "vitest run",
|
|
36
40
|
"test:watch": "vitest watch",
|
|
@@ -59,16 +63,14 @@
|
|
|
59
63
|
"open": "^8.4.0",
|
|
60
64
|
"prettier": "^2.6.2",
|
|
61
65
|
"source-map-support": "^0.5.21",
|
|
62
|
-
"stacktracey": "^2.1.8"
|
|
63
|
-
|
|
64
|
-
"devDependencies": {
|
|
65
|
-
"@iarna/toml": "^2.2.5",
|
|
66
|
-
"@types/cross-zip": "^4.0.0",
|
|
67
|
-
"@types/inquirer": "^8.2.1",
|
|
68
|
-
"@types/js-yaml": "^4.0.5",
|
|
69
|
-
"@types/semver": "^7.3.9",
|
|
66
|
+
"stacktracey": "^2.1.8",
|
|
67
|
+
"pathe": "0.2.0",
|
|
70
68
|
"abort-controller": "^3.0.0",
|
|
71
|
-
"
|
|
69
|
+
"ts-error": "^1.0.6",
|
|
70
|
+
"find-up": "^6.2.0",
|
|
71
|
+
"execa": "^6.0.0",
|
|
72
|
+
"listr2": "^4.0.5",
|
|
73
|
+
"@iarna/toml": "^2.2.5",
|
|
72
74
|
"change-case": "^4.1.2",
|
|
73
75
|
"color-json": "^2.0.1",
|
|
74
76
|
"commondir": "^1.0.1",
|
|
@@ -77,9 +79,7 @@
|
|
|
77
79
|
"del": "^6.0.0",
|
|
78
80
|
"enquirer": "^2.3.6",
|
|
79
81
|
"env-paths": "^3.0.0",
|
|
80
|
-
"execa": "^6.0.0",
|
|
81
82
|
"fast-glob": "^3.2.11",
|
|
82
|
-
"find-up": "^6.2.0",
|
|
83
83
|
"find-versions": "^5.0.0",
|
|
84
84
|
"form-data": "^4.0.0",
|
|
85
85
|
"fs-extra": "^10.0.0",
|
|
@@ -91,17 +91,21 @@
|
|
|
91
91
|
"js-yaml": "^4.1.0",
|
|
92
92
|
"latest-version": "^6.0.0",
|
|
93
93
|
"liquidjs": "^9.36.0",
|
|
94
|
-
"listr2": "^4.0.5",
|
|
95
94
|
"md5-file": "^5.0.0",
|
|
96
95
|
"node-fetch": "^3.2.4",
|
|
97
|
-
"pathe": "^0.2.0",
|
|
98
|
-
"semver": "^7.3.6",
|
|
99
96
|
"simple-git": "^3.5.0",
|
|
100
97
|
"tempy": "^2.0.0",
|
|
101
98
|
"term-size": "^3.0.1",
|
|
102
99
|
"terminal-link": "^3.0.0",
|
|
103
|
-
"ts-error": "^1.0.6",
|
|
104
|
-
"vitest": "^0.15.1",
|
|
105
100
|
"zod": "^3.17.3"
|
|
101
|
+
},
|
|
102
|
+
"devDependencies": {
|
|
103
|
+
"@types/cross-zip": "^4.0.0",
|
|
104
|
+
"@types/inquirer": "^8.2.1",
|
|
105
|
+
"@types/js-yaml": "^4.0.5",
|
|
106
|
+
"@types/semver": "^7.3.9",
|
|
107
|
+
"vitest": "^0.15.1",
|
|
108
|
+
"semver": "^7.3.6",
|
|
109
|
+
"ansi-colors": "^4.1.1"
|
|
106
110
|
}
|
|
107
111
|
}
|