@sanity/plugin-kit

7.0.28.0.0
dist/verify-common-cNJ4BLlQ.js.map
dist/verify-common-cNJ4BLlQ.js.mapDeleted
−1
Index: package/dist/verify-common-cNJ4BLlQ.js.map
===================================================================
--- package/dist/verify-common-cNJ4BLlQ.js.map
+++ package/dist/verify-common-cNJ4BLlQ.js.map
@@ -1,1 +0,0 @@
-{"version":3,"file":"verify-common-cNJ4BLlQ.js","names":["sharedFlags"],"sources":["../src/dependencies/import-linter.ts","../src/util/ts.ts","../src/util/command-parser.ts","../src/actions/verify/verify-common.ts"],"sourcesContent":["import path from 'path'\n\nimport {ESLint} from 'eslint'\nimport outdent from 'outdent'\n\nimport {mergedPackages} from '../configs/banned-packages'\nimport {urls} from '../constants'\nimport log from '../util/log'\n\nconst removedImportSuffix = `imports where removed in Sanity v3. Please refer to the migration guide: ${urls.migrationGuideStudio}, or new API-reference docs: ${urls.refDocs}`\n\nexport async function validateImports({basePath}: {basePath: string}): Promise<string[]> {\n  log.debug('Running ESLint with Sanity Studio import hints...')\n  const eslintConfig: ESLint.Options['overrideConfig'] = {\n    ignorePatterns: ['node_modules'],\n    parserOptions: {\n      ecmaVersion: 'latest',\n      sourceType: 'module',\n    },\n    rules: {\n      'no-restricted-imports': [\n        'error',\n        {\n          patterns: [\n            ...mergedPackages.map((packageName) => ({\n              group: [`${packageName}*`],\n              message: `Use sanity instead of ${packageName}.`,\n            })),\n            {\n              group: ['config:*'],\n              message: `config: imports are no longer supported. Please see the new plugin API for alternatives: ${urls.migrationGuideStudio}`,\n            },\n            {\n              group: ['part:*'],\n              message: `part: ${removedImportSuffix}`,\n            },\n            {\n              group: ['all:part:*'],\n              message: `all:part: ${removedImportSuffix}`,\n            },\n            {\n              group: ['sanity:*'],\n              message: `sanity: ${removedImportSuffix}`,\n            },\n          ],\n        },\n      ],\n    },\n  }\n\n  const eslint = new ESLint({\n    cwd: basePath,\n    overrideConfig: eslintConfig,\n  })\n\n  try {\n    let results\n    try {\n      results = await eslint.lintFiles([path.join(basePath, '**/*.{js,jsx,ts,tsx}')])\n    } catch (error) {\n      const message = error instanceof Error ? error.message : String(error)\n      const shouldRetryWithoutUserConfig =\n        message.includes('@typescript-eslint') && message.includes(\"reading 'Cjs'\")\n\n      if (!shouldRetryWithoutUserConfig) {\n        throw error\n      }\n\n      log.debug('Retrying ESLint import check without user config: %s', message)\n      const fallbackEslint = new ESLint({\n        cwd: basePath,\n        useEslintrc: false,\n        overrideConfig: eslintConfig,\n      })\n      results = await fallbackEslint.lintFiles([path.join(basePath, '**/*.{js,jsx,ts,tsx}')])\n    }\n\n    const onlyImportErrors = results\n      .map((r) => {\n        const limitErrors = r.messages.filter((m) => m.ruleId === 'no-restricted-imports')\n        return {\n          ...r,\n          messages: limitErrors,\n          errorCount: limitErrors.length,\n        }\n      })\n      .filter((r) => r.errorCount)\n\n    if (onlyImportErrors.length) {\n      const formatter = await eslint.loadFormatter('stylish')\n      const resultText = await formatter.format(onlyImportErrors)\n\n      const additionalInfo = outdent`\n        ESLint detected Studio V2 imports that are no longer available.\n        It is recommended configure @sanity/eslint-config-no-v2-imports for ESLint.\n\n        Run:\n        npm install --save-dev @sanity/eslint-config-no-v2-imports\n\n        In .eslintrc add:\n        \"extends\": [\"@sanity/no-v2-imports\"]\n\n        This way, V2-imports can be identified directly in the IDE, or using eslint CLI.\n        For more, see ${urls.linterPackage}\n\n        If the plugin package does not use eslint, disable this check.\n    `\n      return [resultText + additionalInfo]\n    }\n  } catch (e) {\n    log.error('Failed to run eslint check', e)\n    return [\n      outdent`\n        Failed to run ESLint. Is ESLint configured?\n\n        If the package does not use eslint, disable this check.\n    `,\n    ]\n  }\n\n  return []\n}\n","import path from 'path'\n\n// The JS compiler API is loaded from the official `@typescript/typescript6` compat package\n// instead of the `typescript` peer dependency, as TypeScript 7 (the Go-native compiler) no longer\n// ships it\nimport * as ts from '@typescript/typescript6'\n\nimport {fileExists} from './files'\n\nexport async function readTSConfig(options: {basePath: string; filename: string}) {\n  const {basePath, filename} = options\n  const filePath = path.resolve(basePath, filename)\n  const exists = await fileExists(filePath)\n\n  if (!exists) return undefined\n\n  const {config} = ts.readConfigFile(filePath, ts.sys.readFile)\n\n  if (!config) return undefined\n\n  return ts.parseJsonConfigFileContent(config, ts.sys, basePath)\n}\n","import childProcess from 'child_process'\n\nimport npmRunPath from 'npm-run-path'\n\nimport log from './log'\n\ninterface Command {\n  command: string\n  args: string[]\n}\n\nfunction parseCommand(commandString: string): Command {\n  const normalized = commandString.replace(/ +/g, ' ')\n  const commandAndArg = normalized.split(' ')\n  return {\n    command: commandAndArg[0],\n    args: commandAndArg.length > 1 ? commandAndArg.slice(1) : [],\n  }\n}\n\nexport async function runCommand(commandString: string): Promise<{code: number}> {\n  log.info(`Running command: ${commandString}`)\n  const {command, args} = parseCommand(commandString)\n\n  let options: any = {stdio: 'inherit', env: npmRunPath.env()}\n\n  // ref: https://stackoverflow.com/questions/37459717/error-spawn-enoent-on-windows/37487465\n  options = process.platform === 'win32' ? {...options, shell: true} : options\n\n  return new Promise((resolve, reject) => {\n    childProcess\n      .spawn(command, args, options)\n      .on('error', reject)\n      .on('close', (exitCode) => {\n        resolve({code: exitCode ?? 0})\n      })\n  })\n}\n","import type {ParsedCommandLine} from '@typescript/typescript6'\nimport chalk from 'chalk'\nimport type {TypedFlags} from 'meow'\nimport outdent from 'outdent'\n\nimport sharedFlags from '../../sharedFlags'\nimport {runCommand} from '../../util/command-parser'\nimport log from '../../util/log'\n\nconst splitLine = `\\n----------------------------------------------------------`\n\nexport const verifyPackageConfigDefaults = {\n  'packageName': true,\n  'esmOnly': true,\n  'tsconfig': true,\n  'tsc': true,\n  'dependencies': true,\n  'deprecatedDependencies': true,\n  'babelConfig': true,\n  'incompatiblePlugin': true,\n  'eslintImports': true,\n  'scripts': true,\n  'pkg-utils': true,\n  'nodeEngine': true,\n  'studioConfig': true,\n  'srcIndex': true,\n  'bannedFiles': true,\n  'duplicateConfig': true,\n} as const\n\nexport type VerifyPackageConfig = Partial<Record<keyof typeof verifyPackageConfigDefaults, boolean>>\n\nexport const verifyFlags = {\n  ...sharedFlags,\n  single: {\n    default: false,\n    type: 'boolean',\n  },\n} as const\n\nexport type VerifyFlags = TypedFlags<typeof verifyFlags>\n\nfunction disableCheckText(checkKey: string) {\n  return chalk.grey(\n    outdent`\n              To skip this validation add the following to your package.json:\n              \"sanityPlugin\": {\n                 \"verifyPackage\": {\n                    \"${checkKey}\": false\n                 }\n              }\n          `.trimStart(),\n  )\n}\n\nexport function createValidator(\n  verifyConfig: VerifyPackageConfig,\n  flags: VerifyFlags,\n  errors: string[],\n) {\n  return async function validation(\n    checkKey: keyof VerifyPackageConfig,\n    task: () => Promise<string[] | undefined>,\n  ) {\n    if (verifyConfig[checkKey] !== false) {\n      const result = await task()\n      if (result?.length) {\n        result.push(disableCheckText(checkKey))\n        const errorMessage = result.join('\\n\\n')\n        errors.push(errorMessage)\n        log.error(`\\n` + errorMessage + splitLine)\n      }\n    }\n\n    if (flags.single && errors.length) {\n      throw new Error(\n        outdent`Detected outstanding upgrade issues.\n\n        Fail-fast (--single) mode enabled, stopping validation here.\n        `,\n      )\n    }\n  }\n}\n\nexport async function runTscMaybe(verifyConfig: VerifyPackageConfig, ts?: ParsedCommandLine) {\n  if (ts && verifyConfig.tsc !== false) {\n    log.info('All checks ok, running TypeScript compiler.')\n    const {code} = await runCommand('tsc --build')\n    if (code !== 0) {\n      throw new Error('Compilation failed. See output above.\\n\\n' + disableCheckText('tsc'))\n    }\n  }\n}\n"],"mappings":"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"}
\ No newline at end of file