@sanity/plugin-kit 7.0.0 → 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- var name = "@sanity/plugin-kit", version = "7.0.0", binname = "plugin-kit";
1
+ var name = "@sanity/plugin-kit", version = "7.0.1", binname = "plugin-kit";
2
2
  export { name as n, version as r, binname as t };
3
3
 
4
4
  //# sourceMappingURL=package2.js.map
@@ -11,36 +11,52 @@ import npmRunPath from "npm-run-path";
11
11
  const removedImportSuffix = `imports where removed in Sanity v3. Please refer to the migration guide: ${urls.migrationGuideStudio}, or new API-reference docs: ${urls.refDocs}`;
12
12
  async function validateImports({ basePath }) {
13
13
  log_default.debug("Running ESLint with Sanity Studio import hints...");
14
- let eslint = new ESLint({
14
+ let eslintConfig = {
15
+ ignorePatterns: ["node_modules"],
16
+ parserOptions: {
17
+ ecmaVersion: "latest",
18
+ sourceType: "module"
19
+ },
20
+ rules: { "no-restricted-imports": ["error", { patterns: [
21
+ ...mergedPackages.map((packageName) => ({
22
+ group: [`${packageName}*`],
23
+ message: `Use sanity instead of ${packageName}.`
24
+ })),
25
+ {
26
+ group: ["config:*"],
27
+ message: `config: imports are no longer supported. Please see the new plugin API for alternatives: ${urls.migrationGuideStudio}`
28
+ },
29
+ {
30
+ group: ["part:*"],
31
+ message: `part: ${removedImportSuffix}`
32
+ },
33
+ {
34
+ group: ["all:part:*"],
35
+ message: `all:part: ${removedImportSuffix}`
36
+ },
37
+ {
38
+ group: ["sanity:*"],
39
+ message: `sanity: ${removedImportSuffix}`
40
+ }
41
+ ] }] }
42
+ }, eslint = new ESLint({
15
43
  cwd: basePath,
16
- overrideConfig: {
17
- ignorePatterns: ["node_modules"],
18
- rules: { "no-restricted-imports": ["error", { patterns: [
19
- ...mergedPackages.map((packageName) => ({
20
- group: [`${packageName}*`],
21
- message: `Use sanity instead of ${packageName}.`
22
- })),
23
- {
24
- group: ["config:*"],
25
- message: `config: imports are no longer supported. Please see the new plugin API for alternatives: ${urls.migrationGuideStudio}`
26
- },
27
- {
28
- group: ["part:*"],
29
- message: `part: ${removedImportSuffix}`
30
- },
31
- {
32
- group: ["all:part:*"],
33
- message: `all:part: ${removedImportSuffix}`
34
- },
35
- {
36
- group: ["sanity:*"],
37
- message: `sanity: ${removedImportSuffix}`
38
- }
39
- ] }] }
40
- }
44
+ overrideConfig: eslintConfig
41
45
  });
42
46
  try {
43
- let onlyImportErrors = (await eslint.lintFiles([path.join(basePath, "**/*.{js,jsx,ts,tsx}")])).map((r) => {
47
+ let results;
48
+ try {
49
+ results = await eslint.lintFiles([path.join(basePath, "**/*.{js,jsx,ts,tsx}")]);
50
+ } catch (error) {
51
+ let message = error instanceof Error ? error.message : String(error);
52
+ if (!(message.includes("@typescript-eslint") && message.includes("reading 'Cjs'"))) throw error;
53
+ log_default.debug("Retrying ESLint import check without user config: %s", message), results = await new ESLint({
54
+ cwd: basePath,
55
+ useEslintrc: !1,
56
+ overrideConfig: eslintConfig
57
+ }).lintFiles([path.join(basePath, "**/*.{js,jsx,ts,tsx}")]);
58
+ }
59
+ let onlyImportErrors = results.map((r) => {
44
60
  let limitErrors = r.messages.filter((m) => m.ruleId === "no-restricted-imports");
45
61
  return {
46
62
  ...r,
@@ -1 +1 @@
1
- {"version":3,"file":"verify-common.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 eslint = new ESLint({\n cwd: basePath,\n overrideConfig: {\n ignorePatterns: ['node_modules'],\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\n try {\n const results = await eslint.lintFiles([path.join(basePath, '**/*.{js,jsx,ts,tsx}')])\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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"}
1
+ {"version":3,"file":"verify-common.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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanity/plugin-kit",
3
- "version": "7.0.0",
3
+ "version": "7.0.1",
4
4
  "description": "Enhanced Sanity.io plugin development experience",
5
5
  "keywords": [
6
6
  "bootstrap",
@@ -80,10 +80,10 @@
80
80
  "prettier": "^3.9.5",
81
81
  "react": "^19.2.7",
82
82
  "react-dom": "^19.2.7",
83
- "sanity": "^6.3.0",
83
+ "sanity": "^6.4.0",
84
84
  "styled-components": "^6.4.3",
85
85
  "tsdown": "^0.22.5",
86
- "typescript": "6.0.3"
86
+ "typescript": "7.0.2"
87
87
  },
88
88
  "peerDependencies": {
89
89
  "@sanity/pkg-utils": "^11.0.1",