@sanity/plugin-kit 4.0.19 → 4.0.20
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/LICENSE +1 -1
- package/dist/_chunks-cjs/cli.js.map +1 -1
- package/dist/_chunks-cjs/init.js +9 -11
- package/dist/_chunks-cjs/init.js.map +1 -1
- package/dist/_chunks-cjs/init2.js.map +1 -1
- package/dist/_chunks-cjs/inject.js.map +1 -1
- package/dist/_chunks-cjs/link-watch.js.map +1 -1
- package/dist/_chunks-cjs/package.js.map +1 -1
- package/dist/_chunks-cjs/package2.js +2 -140
- package/dist/_chunks-cjs/package2.js.map +1 -1
- package/dist/_chunks-cjs/ts.js +160573 -3
- package/dist/_chunks-cjs/ts.js.map +1 -1
- package/dist/_chunks-cjs/verify-package.js.map +1 -1
- package/dist/_chunks-cjs/verify-studio.js.map +1 -1
- package/dist/_chunks-cjs/version.js.map +1 -1
- package/package.json +23 -12
- package/src/configs/pkg-config.ts +0 -1
- package/src/presets/semver-workflow.ts +3 -10
- package/src/util/readme.ts +1 -6
- package/src/util/ts.ts +8 -2
- package/src/util/user.ts +13 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-package.js","sources":["../../src/actions/verify-package.ts","../../src/cmds/verify-package.ts"],"sourcesContent":["import {loadConfig as loadPackageConfig} from '@sanity/pkg-utils'\nimport {getPackage} from '../npm/package'\nimport log from '../util/log'\nimport {cliName, defaultOutDir, urls} from '../constants'\nimport {validateImports} from '../dependencies/import-linter'\nimport outdent from 'outdent'\nimport {\n createValidator,\n runTscMaybe,\n VerifyFlags,\n VerifyPackageConfig,\n} from './verify/verify-common'\nimport {\n validateBabelConfig,\n validateNodeEngine,\n validatePackageName,\n validatePkgUtilsDependency,\n validatePluginSanityJson,\n validateDeprecatedDependencies,\n validateScripts,\n validateTsConfig,\n validateSanityDependencies,\n validateSrcIndexFile,\n disallowDuplicateEslintConfig,\n disallowDuplicatePrettierConfig,\n} from './verify/validations'\nimport {PackageJson} from './verify/types'\nimport chalk from 'chalk'\nimport {readTSConfig} from '../util/ts'\n\nexport async function verifyPackage({basePath, flags}: {basePath: string; flags: VerifyFlags}) {\n let errors: string[] = []\n\n const packageJson: PackageJson = await getPackage({basePath, validate: false})\n const verifyConfig: VerifyPackageConfig = packageJson.sanityPlugin?.verifyPackage || {}\n const packageConfig = await loadPackageConfig({cwd: basePath})\n const outDir = packageConfig?.dist ?? defaultOutDir\n const tsconfig = packageConfig?.tsconfig ?? 'tsconfig.json'\n\n const validation = createValidator(verifyConfig, flags, errors)\n\n const ts = await readTSConfig({basePath, filename: tsconfig})\n\n await validation('packageName', async () => validatePackageName(packageJson))\n await validation('pkg-utils', async () => validatePkgUtilsDependency(packageJson))\n await validation('srcIndex', async () => validateSrcIndexFile(basePath))\n await validation('scripts', async () => validateScripts(packageJson))\n await validation('nodeEngine', async () => validateNodeEngine(packageJson))\n await validation('duplicateConfig', async () =>\n disallowDuplicateEslintConfig(basePath, packageJson),\n )\n await validation('duplicateConfig', async () =>\n disallowDuplicatePrettierConfig(basePath, packageJson),\n )\n\n if (ts) {\n await validation('tsconfig', async () => validateTsConfig(ts, {basePath, outDir, tsconfig}))\n }\n\n await validation('sanityV2Json', async () => validatePluginSanityJson({basePath, packageJson}))\n\n await validation('babelConfig', async () => validateBabelConfig({basePath}))\n\n await validation('dependencies', async () => validateSanityDependencies(packageJson))\n await validation('deprecatedDependencies', async () =>\n validateDeprecatedDependencies(packageJson),\n )\n await validation('eslintImports', async () => validateImports({basePath}))\n\n if (errors.length) {\n throw new Error(\n outdent`\n Detected validation issues!\n To make this package Sanity v3 compatible, fix the issues starting from the top, or disable any checks you deem unnecessary.\n\n These issues assume the package uses @sanity/plugin-kit defaults for development and building.\n Refer to ${urls.pluginReadme} for configuration options.\n\n More information is available here:\n - Studio migration guide: ${urls.migrationGuideStudio}\n - Plugin migration guide: ${urls.migrationGuidePlugin}\n - Reference documentation: ${urls.refDocs}\n\n ${chalk.grey(\n `To fail-fast on first detected issue run:\\nnpx ${cliName} verify-package' --single`,\n )}\n `.trimStart(),\n )\n }\n\n await runTscMaybe(verifyConfig, ts)\n\n log.success(\n outdent`\n No outstanding upgrade issues detected.\n\n Suggested next steps:\n - Use plugin-kit to build and develop the plugin according to ${urls.pluginReadme}.\n - Build the plugin and fix any compilation errors\n - Test the plugin using the link-watch command\n `.trim(),\n )\n}\n","import path from 'path'\nimport meow from 'meow'\nimport {verifyPackage} from '../actions/verify-package'\nimport {cliName} from '../constants'\nimport {verifyFlags} from '../actions/verify/verify-common'\n\nconst description = `Verify that a Sanity plugin package is v3 compatible, and print upgrade steps if not.`\n\nconst help = `\nUsage\n $ ${cliName} verify-package [dir] [<args>]\n\nOptions\n --single Enables fail-fast mode: Will only output the first validation that fails.\n --silent Do not print info and warning messages\n --verbose Log everything. This option conflicts with --silent\n --version Output the version number\n --help Output usage information\n\nEach check will describe how they can be individually disabled.\n\nExamples\n # Verify Sanity plugin package in current directory\n $ ${cliName} verify-package\n\n # Verify Sanity plugin package in my-plugin directory in silent mode\n $ ${cliName} verify-package my-plugin-directory --silent\n`\n\nfunction run({argv}: {argv: string[]}) {\n const cli = meow(help, {flags: verifyFlags, argv, description})\n const basePath = path.resolve(cli.input[0] || process.cwd())\n return verifyPackage({basePath, flags: cli.flags})\n}\n\nexport default run\n"],"names":["getPackage","loadPackageConfig","defaultOutDir","createValidator","ts","readTSConfig","validatePackageName","validatePkgUtilsDependency","validateSrcIndexFile","validateScripts","validateNodeEngine","disallowDuplicateEslintConfig","disallowDuplicatePrettierConfig","validateTsConfig","validatePluginSanityJson","validateBabelConfig","validateSanityDependencies","validateDeprecatedDependencies","validateImports","outdent","urls","chalk","cliName","runTscMaybe","log","cli","meow","verifyFlags","path"],"mappings":";;;;;;AA8BA,eAAsB,cAAc,EAAC,UAAU,SAAgD;AAC7F,MAAI,SAAmB,
|
|
1
|
+
{"version":3,"file":"verify-package.js","sources":["../../src/actions/verify-package.ts","../../src/cmds/verify-package.ts"],"sourcesContent":["import {loadConfig as loadPackageConfig} from '@sanity/pkg-utils'\nimport {getPackage} from '../npm/package'\nimport log from '../util/log'\nimport {cliName, defaultOutDir, urls} from '../constants'\nimport {validateImports} from '../dependencies/import-linter'\nimport outdent from 'outdent'\nimport {\n createValidator,\n runTscMaybe,\n VerifyFlags,\n VerifyPackageConfig,\n} from './verify/verify-common'\nimport {\n validateBabelConfig,\n validateNodeEngine,\n validatePackageName,\n validatePkgUtilsDependency,\n validatePluginSanityJson,\n validateDeprecatedDependencies,\n validateScripts,\n validateTsConfig,\n validateSanityDependencies,\n validateSrcIndexFile,\n disallowDuplicateEslintConfig,\n disallowDuplicatePrettierConfig,\n} from './verify/validations'\nimport {PackageJson} from './verify/types'\nimport chalk from 'chalk'\nimport {readTSConfig} from '../util/ts'\n\nexport async function verifyPackage({basePath, flags}: {basePath: string; flags: VerifyFlags}) {\n let errors: string[] = []\n\n const packageJson: PackageJson = await getPackage({basePath, validate: false})\n const verifyConfig: VerifyPackageConfig = packageJson.sanityPlugin?.verifyPackage || {}\n const packageConfig = await loadPackageConfig({cwd: basePath})\n const outDir = packageConfig?.dist ?? defaultOutDir\n const tsconfig = packageConfig?.tsconfig ?? 'tsconfig.json'\n\n const validation = createValidator(verifyConfig, flags, errors)\n\n const ts = await readTSConfig({basePath, filename: tsconfig})\n\n await validation('packageName', async () => validatePackageName(packageJson))\n await validation('pkg-utils', async () => validatePkgUtilsDependency(packageJson))\n await validation('srcIndex', async () => validateSrcIndexFile(basePath))\n await validation('scripts', async () => validateScripts(packageJson))\n await validation('nodeEngine', async () => validateNodeEngine(packageJson))\n await validation('duplicateConfig', async () =>\n disallowDuplicateEslintConfig(basePath, packageJson),\n )\n await validation('duplicateConfig', async () =>\n disallowDuplicatePrettierConfig(basePath, packageJson),\n )\n\n if (ts) {\n await validation('tsconfig', async () => validateTsConfig(ts, {basePath, outDir, tsconfig}))\n }\n\n await validation('sanityV2Json', async () => validatePluginSanityJson({basePath, packageJson}))\n\n await validation('babelConfig', async () => validateBabelConfig({basePath}))\n\n await validation('dependencies', async () => validateSanityDependencies(packageJson))\n await validation('deprecatedDependencies', async () =>\n validateDeprecatedDependencies(packageJson),\n )\n await validation('eslintImports', async () => validateImports({basePath}))\n\n if (errors.length) {\n throw new Error(\n outdent`\n Detected validation issues!\n To make this package Sanity v3 compatible, fix the issues starting from the top, or disable any checks you deem unnecessary.\n\n These issues assume the package uses @sanity/plugin-kit defaults for development and building.\n Refer to ${urls.pluginReadme} for configuration options.\n\n More information is available here:\n - Studio migration guide: ${urls.migrationGuideStudio}\n - Plugin migration guide: ${urls.migrationGuidePlugin}\n - Reference documentation: ${urls.refDocs}\n\n ${chalk.grey(\n `To fail-fast on first detected issue run:\\nnpx ${cliName} verify-package' --single`,\n )}\n `.trimStart(),\n )\n }\n\n await runTscMaybe(verifyConfig, ts)\n\n log.success(\n outdent`\n No outstanding upgrade issues detected.\n\n Suggested next steps:\n - Use plugin-kit to build and develop the plugin according to ${urls.pluginReadme}.\n - Build the plugin and fix any compilation errors\n - Test the plugin using the link-watch command\n `.trim(),\n )\n}\n","import path from 'path'\nimport meow from 'meow'\nimport {verifyPackage} from '../actions/verify-package'\nimport {cliName} from '../constants'\nimport {verifyFlags} from '../actions/verify/verify-common'\n\nconst description = `Verify that a Sanity plugin package is v3 compatible, and print upgrade steps if not.`\n\nconst help = `\nUsage\n $ ${cliName} verify-package [dir] [<args>]\n\nOptions\n --single Enables fail-fast mode: Will only output the first validation that fails.\n --silent Do not print info and warning messages\n --verbose Log everything. This option conflicts with --silent\n --version Output the version number\n --help Output usage information\n\nEach check will describe how they can be individually disabled.\n\nExamples\n # Verify Sanity plugin package in current directory\n $ ${cliName} verify-package\n\n # Verify Sanity plugin package in my-plugin directory in silent mode\n $ ${cliName} verify-package my-plugin-directory --silent\n`\n\nfunction run({argv}: {argv: string[]}) {\n const cli = meow(help, {flags: verifyFlags, argv, description})\n const basePath = path.resolve(cli.input[0] || process.cwd())\n return verifyPackage({basePath, flags: cli.flags})\n}\n\nexport default run\n"],"names":["getPackage","loadPackageConfig","defaultOutDir","createValidator","ts","readTSConfig","validatePackageName","validatePkgUtilsDependency","validateSrcIndexFile","validateScripts","validateNodeEngine","disallowDuplicateEslintConfig","disallowDuplicatePrettierConfig","validateTsConfig","validatePluginSanityJson","validateBabelConfig","validateSanityDependencies","validateDeprecatedDependencies","validateImports","outdent","urls","chalk","cliName","runTscMaybe","log","cli","meow","verifyFlags","path"],"mappings":";;;;;;AA8BA,eAAsB,cAAc,EAAC,UAAU,SAAgD;AAC7F,MAAI,SAAmB,CAAA;AAEvB,QAAM,cAA2B,MAAMA,SAAAA,WAAW,EAAC,UAAU,UAAU,GAAA,CAAM,GACvE,eAAoC,YAAY,cAAc,iBAAiB,CAAA,GAC/E,gBAAgB,MAAMC,SAAAA,WAAkB,EAAC,KAAK,SAAA,CAAS,GACvD,SAAS,eAAe,QAAQC,IAAAA,eAChC,WAAW,eAAe,YAAY,iBAEtC,aAAaC,mBAAgB,cAAc,OAAO,MAAM,GAExDC,OAAK,MAAMC,GAAAA,aAAa,EAAC,UAAU,UAAU,UAAS;AA4B5D,MA1BA,MAAM,WAAW,eAAe,YAAYC,SAAAA,oBAAoB,WAAW,CAAC,GAC5E,MAAM,WAAW,aAAa,YAAYC,SAAAA,2BAA2B,WAAW,CAAC,GACjF,MAAM,WAAW,YAAY,YAAYC,SAAAA,qBAAqB,QAAQ,CAAC,GACvE,MAAM,WAAW,WAAW,YAAYC,SAAAA,gBAAgB,WAAW,CAAC,GACpE,MAAM,WAAW,cAAc,YAAYC,SAAAA,mBAAmB,WAAW,CAAC,GAC1E,MAAM;AAAA,IAAW;AAAA,IAAmB,YAClCC,SAAAA,8BAA8B,UAAU,WAAW;AAAA,EAAA,GAErD,MAAM;AAAA,IAAW;AAAA,IAAmB,YAClCC,SAAAA,gCAAgC,UAAU,WAAW;AAAA,EAAA,GAGnDR,QACF,MAAM,WAAW,YAAY,YAAYS,SAAAA,iBAAiBT,MAAI,EAAC,UAAU,QAAQ,SAAA,CAAS,CAAC,GAG7F,MAAM,WAAW,gBAAgB,YAAYU,SAAAA,yBAAyB,EAAC,UAAU,aAAY,CAAC,GAE9F,MAAM,WAAW,eAAe,YAAYC,SAAAA,oBAAoB,EAAC,SAAA,CAAS,CAAC,GAE3E,MAAM,WAAW,gBAAgB,YAAYC,SAAAA,2BAA2B,WAAW,CAAC,GACpF,MAAM;AAAA,IAAW;AAAA,IAA0B,YACzCC,SAAAA,+BAA+B,WAAW;AAAA,EAAA,GAE5C,MAAM,WAAW,iBAAiB,YAAYC,GAAAA,gBAAgB,EAAC,SAAA,CAAS,CAAC,GAErE,OAAO;AACT,UAAM,IAAI;AAAA,MACRC,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,mBAKaC,IAAAA,KAAK,YAAY;AAAA;AAAA;AAAA,oCAGAA,IAAAA,KAAK,oBAAoB;AAAA,oCACzBA,IAAAA,KAAK,oBAAoB;AAAA,qCACxBA,IAAAA,KAAK,OAAO;AAAA;AAAA,UAEvCC,eAAAA,QAAM;AAAA,QACN;AAAA,MAAkDC,IAAAA,OAAO;AAAA,MAAA,CAC1D;AAAA,QACD,UAAA;AAAA,IAAU;AAIhB,QAAMC,GAAAA,YAAY,cAAcnB,IAAE,GAElCoB,IAAAA,IAAI;AAAA,IACFL,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA,sEAIkEC,IAAAA,KAAK,YAAY;AAAA;AAAA;AAAA,IAGnF,KAAA;AAAA,EAAK;AAET;AChGA,MAAM,cAAc,yFAEd,OAAO;AAAA;AAAA,MAEPE,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAaPA,WAAO;AAAA;AAAA;AAAA,MAGPA,WAAO;AAAA;AAGb,SAAS,IAAI,EAAC,QAAyB;AACrC,QAAMG,OAAMC,cAAAA,QAAK,MAAM,EAAC,OAAOC,GAAAA,aAAa,MAAM,YAAA,CAAY,GACxD,WAAWC,cAAAA,QAAK,QAAQH,KAAI,MAAM,CAAC,KAAK,QAAQ,KAAK;AAC3D,SAAO,cAAc,EAAC,UAAU,OAAOA,KAAI,OAAM;AACnD;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-studio.js","sources":["../../src/actions/verify-studio.ts","../../src/cmds/verify-studio.ts"],"sourcesContent":["import {loadConfig as loadPackageConfig} from '@sanity/pkg-utils'\nimport {getPackage} from '../npm/package'\nimport log from '../util/log'\nimport {cliName, urls} from '../constants'\nimport {validateImports} from '../dependencies/import-linter'\nimport outdent from 'outdent'\nimport chalk from 'chalk'\nimport {\n createValidator,\n runTscMaybe,\n VerifyFlags,\n VerifyPackageConfig,\n} from './verify/verify-common'\nimport {PackageJson} from './verify/types'\nimport {validateSanityDependencies, validateStudioConfig} from './verify/validations'\nimport {readTSConfig} from '../util/ts'\n\nexport async function verifyStudio({basePath, flags}: {basePath: string; flags: VerifyFlags}) {\n let errors: string[] = []\n\n const packageJson: PackageJson = await getPackage({basePath, validate: false})\n const verifyConfig: VerifyPackageConfig = packageJson.sanityPlugin?.verifyPackage || {}\n const packageConfig = await loadPackageConfig({cwd: basePath})\n const tsconfig = packageConfig?.tsconfig ?? 'tsconfig.json'\n\n const validation = createValidator(verifyConfig, flags, errors)\n\n const ts = await readTSConfig({basePath, filename: tsconfig})\n\n await validation('studioConfig', async () => validateStudioConfig({basePath}))\n await validation('dependencies', async () => validateSanityDependencies(packageJson))\n await validation('eslintImports', async () => validateImports({basePath}))\n\n if (errors.length) {\n throw new Error(\n outdent`\n Detected validation issues!\n This Sanity Studio is not completely V3 ready. Fix the issues starting from the top, or disable any checks you deem unnecessary.\n\n More information is available here:\n - Migration guide: ${urls.migrationGuideStudio}\n - Reference documentation: ${urls.refDocs}\n\n ${chalk.grey(\n `To fail-fast on first detected issue run:\\nnpx ${cliName} verify-studio --single`,\n )}\n `.trimStart(),\n )\n }\n\n await runTscMaybe(verifyConfig, ts)\n\n log.success(\n outdent`\n No outstanding upgrade issues detected. Studio is V3 ready!\n `.trim(),\n )\n}\n","import path from 'path'\nimport meow from 'meow'\nimport {cliName} from '../constants'\nimport {verifyFlags} from '../actions/verify/verify-common'\nimport {verifyStudio} from '../actions/verify-studio'\n\nconst description = `Verify that a Sanity Studio is configured correctly for v3, and print upgrade steps if not.`\n\nconst help = `\nUsage\n $ ${cliName} verify-studio [dir] [<args>]\n\nOptions\n --single Enables fail-fast mode: Will only output the first validation that fails.\n --silent Do not print info and warning messages\n --verbose Log everything. This option conflicts with --silent\n --version Output the version number\n --help Output usage information\n\nEach check will describe how they can be individually disabled.\n\nExamples\n # Verify Sanity Studio in current directory\n $ ${cliName} verify-studio\n\n # Verify Sanity Studio in my-sanity-studio directory in silent mode\n $ ${cliName} verify-studio my-sanity-studio --silent\n`\n\nfunction run({argv}: {argv: string[]}) {\n const cli = meow(help, {flags: verifyFlags, argv, description})\n const basePath = path.resolve(cli.input[0] || process.cwd())\n return verifyStudio({basePath, flags: cli.flags})\n}\n\nexport default run\n"],"names":["getPackage","loadPackageConfig","createValidator","ts","readTSConfig","validateStudioConfig","validateSanityDependencies","validateImports","outdent","urls","chalk","cliName","runTscMaybe","log","cli","meow","verifyFlags","path"],"mappings":";;;;;;AAiBA,eAAsB,aAAa,EAAC,UAAU,SAAgD;AAC5F,MAAI,SAAmB,
|
|
1
|
+
{"version":3,"file":"verify-studio.js","sources":["../../src/actions/verify-studio.ts","../../src/cmds/verify-studio.ts"],"sourcesContent":["import {loadConfig as loadPackageConfig} from '@sanity/pkg-utils'\nimport {getPackage} from '../npm/package'\nimport log from '../util/log'\nimport {cliName, urls} from '../constants'\nimport {validateImports} from '../dependencies/import-linter'\nimport outdent from 'outdent'\nimport chalk from 'chalk'\nimport {\n createValidator,\n runTscMaybe,\n VerifyFlags,\n VerifyPackageConfig,\n} from './verify/verify-common'\nimport {PackageJson} from './verify/types'\nimport {validateSanityDependencies, validateStudioConfig} from './verify/validations'\nimport {readTSConfig} from '../util/ts'\n\nexport async function verifyStudio({basePath, flags}: {basePath: string; flags: VerifyFlags}) {\n let errors: string[] = []\n\n const packageJson: PackageJson = await getPackage({basePath, validate: false})\n const verifyConfig: VerifyPackageConfig = packageJson.sanityPlugin?.verifyPackage || {}\n const packageConfig = await loadPackageConfig({cwd: basePath})\n const tsconfig = packageConfig?.tsconfig ?? 'tsconfig.json'\n\n const validation = createValidator(verifyConfig, flags, errors)\n\n const ts = await readTSConfig({basePath, filename: tsconfig})\n\n await validation('studioConfig', async () => validateStudioConfig({basePath}))\n await validation('dependencies', async () => validateSanityDependencies(packageJson))\n await validation('eslintImports', async () => validateImports({basePath}))\n\n if (errors.length) {\n throw new Error(\n outdent`\n Detected validation issues!\n This Sanity Studio is not completely V3 ready. Fix the issues starting from the top, or disable any checks you deem unnecessary.\n\n More information is available here:\n - Migration guide: ${urls.migrationGuideStudio}\n - Reference documentation: ${urls.refDocs}\n\n ${chalk.grey(\n `To fail-fast on first detected issue run:\\nnpx ${cliName} verify-studio --single`,\n )}\n `.trimStart(),\n )\n }\n\n await runTscMaybe(verifyConfig, ts)\n\n log.success(\n outdent`\n No outstanding upgrade issues detected. Studio is V3 ready!\n `.trim(),\n )\n}\n","import path from 'path'\nimport meow from 'meow'\nimport {cliName} from '../constants'\nimport {verifyFlags} from '../actions/verify/verify-common'\nimport {verifyStudio} from '../actions/verify-studio'\n\nconst description = `Verify that a Sanity Studio is configured correctly for v3, and print upgrade steps if not.`\n\nconst help = `\nUsage\n $ ${cliName} verify-studio [dir] [<args>]\n\nOptions\n --single Enables fail-fast mode: Will only output the first validation that fails.\n --silent Do not print info and warning messages\n --verbose Log everything. This option conflicts with --silent\n --version Output the version number\n --help Output usage information\n\nEach check will describe how they can be individually disabled.\n\nExamples\n # Verify Sanity Studio in current directory\n $ ${cliName} verify-studio\n\n # Verify Sanity Studio in my-sanity-studio directory in silent mode\n $ ${cliName} verify-studio my-sanity-studio --silent\n`\n\nfunction run({argv}: {argv: string[]}) {\n const cli = meow(help, {flags: verifyFlags, argv, description})\n const basePath = path.resolve(cli.input[0] || process.cwd())\n return verifyStudio({basePath, flags: cli.flags})\n}\n\nexport default run\n"],"names":["getPackage","loadPackageConfig","createValidator","ts","readTSConfig","validateStudioConfig","validateSanityDependencies","validateImports","outdent","urls","chalk","cliName","runTscMaybe","log","cli","meow","verifyFlags","path"],"mappings":";;;;;;AAiBA,eAAsB,aAAa,EAAC,UAAU,SAAgD;AAC5F,MAAI,SAAmB,CAAA;AAEvB,QAAM,cAA2B,MAAMA,SAAAA,WAAW,EAAC,UAAU,UAAU,IAAM,GACvE,eAAoC,YAAY,cAAc,iBAAiB,CAAA,GAE/E,YADgB,MAAMC,oBAAkB,EAAC,KAAK,SAAA,CAAS,IAC7B,YAAY,iBAEtC,aAAaC,GAAAA,gBAAgB,cAAc,OAAO,MAAM,GAExDC,OAAK,MAAMC,GAAAA,aAAa,EAAC,UAAU,UAAU,UAAS;AAM5D,MAJA,MAAM,WAAW,gBAAgB,YAAYC,SAAAA,qBAAqB,EAAC,SAAA,CAAS,CAAC,GAC7E,MAAM,WAAW,gBAAgB,YAAYC,oCAA2B,WAAW,CAAC,GACpF,MAAM,WAAW,iBAAiB,YAAYC,mBAAgB,EAAC,SAAA,CAAS,CAAC,GAErE,OAAO;AACT,UAAM,IAAI;AAAA,MACRC,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,6BAKuBC,IAAAA,KAAK,oBAAoB;AAAA,qCACjBA,IAAAA,KAAK,OAAO;AAAA;AAAA,UAEvCC,eAAAA,QAAM;AAAA,QACN;AAAA,MAAkDC,IAAAA,OAAO;AAAA,MAAA,CAC1D;AAAA,QACD,UAAA;AAAA,IAAU;AAIhB,QAAMC,GAAAA,YAAY,cAAcT,IAAE,GAElCU,IAAAA,IAAI;AAAA,IACFL,iBAAAA;AAAAA;AAAAA,IAEA,KAAA;AAAA,EAAK;AAET;ACnDA,MAAM,cAAc,+FAEd,OAAO;AAAA;AAAA,MAEPG,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAaPA,WAAO;AAAA;AAAA;AAAA,MAGPA,WAAO;AAAA;AAGb,SAAS,IAAI,EAAC,QAAyB;AACrC,QAAMG,OAAMC,cAAAA,QAAK,MAAM,EAAC,OAAOC,GAAAA,aAAa,MAAM,YAAA,CAAY,GACxD,WAAWC,cAAAA,QAAK,QAAQH,KAAI,MAAM,CAAC,KAAK,QAAQ,KAAK;AAC3D,SAAO,aAAa,EAAC,UAAU,OAAOA,KAAI,OAAM;AAClD;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sources":["../../src/cmds/version.ts"],"sourcesContent":["import meow from 'meow'\nimport pkg from '../../package.json'\nimport log from '../util/log'\nimport sharedFlags from '../sharedFlags'\n\nconst description = `Show the installed version of ${pkg.name}`\n\nconst help = `\nUsage\n $ ${pkg.binname} version\n\nOptions\n --major Show only the major version\n --minor Show only the minor version\n --patch Show only the patch version\n\nExamples\n $ ${pkg.binname} version\n ${pkg.name} version ${pkg.version}\n\n $ ${pkg.binname} version --major\n ${pkg.version.split('.')[0]}\n`\n\nconst flags = {\n ...sharedFlags,\n\n major: {\n type: 'boolean',\n default: false,\n },\n\n minor: {\n type: 'boolean',\n default: false,\n },\n\n patch: {\n type: 'boolean',\n default: false,\n },\n} as const\n\nfunction run({argv}: {argv: string[]}) {\n const cli = meow(help, {flags, argv, description})\n const versionParts = pkg.version.split('.')\n const versionNames = ['major', 'minor', 'patch']\n const versionFlags = versionNames.filter((flagName) => cli.flags[flagName])\n const versionFlag = versionFlags[0]\n const numVersionFlags = versionFlags.length\n\n if (numVersionFlags === 0) {\n log.msg(`${pkg.name} version ${pkg.version}`)\n return\n }\n\n if (numVersionFlags > 1) {\n throw new Error(\n `--major, --minor and --patch are mutually exclusive - only one can be used at a time`,\n )\n }\n\n const partIndex = versionNames.indexOf(versionFlag)\n log.msg(versionParts[partIndex])\n}\n\nexport default run\n"],"names":["pkg","sharedFlags","cli","meow","log"],"mappings":";;;;;;AAKA,MAAM,cAAc,iCAAiCA,SAAAA,IAAI,IAAI,IAEvD,OAAO;AAAA;AAAA,MAEPA,SAAAA,IAAI,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQXA,SAAAA,IAAI,OAAO;AAAA,IACbA,aAAI,IAAI,YAAYA,
|
|
1
|
+
{"version":3,"file":"version.js","sources":["../../src/cmds/version.ts"],"sourcesContent":["import meow from 'meow'\nimport pkg from '../../package.json'\nimport log from '../util/log'\nimport sharedFlags from '../sharedFlags'\n\nconst description = `Show the installed version of ${pkg.name}`\n\nconst help = `\nUsage\n $ ${pkg.binname} version\n\nOptions\n --major Show only the major version\n --minor Show only the minor version\n --patch Show only the patch version\n\nExamples\n $ ${pkg.binname} version\n ${pkg.name} version ${pkg.version}\n\n $ ${pkg.binname} version --major\n ${pkg.version.split('.')[0]}\n`\n\nconst flags = {\n ...sharedFlags,\n\n major: {\n type: 'boolean',\n default: false,\n },\n\n minor: {\n type: 'boolean',\n default: false,\n },\n\n patch: {\n type: 'boolean',\n default: false,\n },\n} as const\n\nfunction run({argv}: {argv: string[]}) {\n const cli = meow(help, {flags, argv, description})\n const versionParts = pkg.version.split('.')\n const versionNames = ['major', 'minor', 'patch']\n const versionFlags = versionNames.filter((flagName) => cli.flags[flagName])\n const versionFlag = versionFlags[0]\n const numVersionFlags = versionFlags.length\n\n if (numVersionFlags === 0) {\n log.msg(`${pkg.name} version ${pkg.version}`)\n return\n }\n\n if (numVersionFlags > 1) {\n throw new Error(\n `--major, --minor and --patch are mutually exclusive - only one can be used at a time`,\n )\n }\n\n const partIndex = versionNames.indexOf(versionFlag)\n log.msg(versionParts[partIndex])\n}\n\nexport default run\n"],"names":["pkg","sharedFlags","cli","meow","log"],"mappings":";;;;;;AAKA,MAAM,cAAc,iCAAiCA,SAAAA,IAAI,IAAI,IAEvD,OAAO;AAAA;AAAA,MAEPA,SAAAA,IAAI,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQXA,SAAAA,IAAI,OAAO;AAAA,IACbA,aAAI,IAAI,YAAYA,SAAAA,IAAI,OAAO;AAAA;AAAA,MAE7BA,SAAAA,IAAI,OAAO;AAAA,IACbA,SAAAA,IAAI,QAAQ,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,GAGvB,QAAQ;AAAA,EACZ,GAAGC,IAAAA;AAAAA,EAEH,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,EAAA;AAAA,EAGX,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,EAAA;AAAA,EAGX,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,EAAA;AAEb;AAEA,SAAS,IAAI,EAAC,QAAyB;AACrC,QAAMC,QAAMC,cAAAA,QAAK,MAAM,EAAC,OAAO,MAAM,YAAA,CAAY,GAC3C,eAAeH,SAAAA,IAAI,QAAQ,MAAM,GAAG,GACpC,eAAe,CAAC,SAAS,SAAS,OAAO,GACzC,eAAe,aAAa,OAAO,CAAC,aAAaE,MAAI,MAAM,QAAQ,CAAC,GACpE,cAAc,aAAa,CAAC,GAC5B,kBAAkB,aAAa;AAErC,MAAI,oBAAoB,GAAG;AACzBE,YAAI,IAAI,GAAGJ,SAAAA,IAAI,IAAI,YAAYA,SAAAA,IAAI,OAAO,EAAE;AAC5C;AAAA,EACF;AAEA,MAAI,kBAAkB;AACpB,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAIJ,QAAM,YAAY,aAAa,QAAQ,WAAW;AAClDI,MAAAA,IAAI,IAAI,aAAa,SAAS,CAAC;AACjC;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sanity/plugin-kit",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.20",
|
|
4
4
|
"description": "Enhanced Sanity.io plugin development experience",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sanity-io",
|
|
@@ -67,9 +67,24 @@
|
|
|
67
67
|
"timeout": 120,
|
|
68
68
|
"ts": true
|
|
69
69
|
},
|
|
70
|
+
"overrides": {
|
|
71
|
+
"@babel/helpers": "7.28.4",
|
|
72
|
+
"brace-expansion": "1.1.12",
|
|
73
|
+
"conventional-changelog-conventionalcommits": ">= 8.0.0",
|
|
74
|
+
"esbuild": "0.25.0",
|
|
75
|
+
"micromatch": "4.0.8",
|
|
76
|
+
"prismjs": "1.30.0",
|
|
77
|
+
"tap": {
|
|
78
|
+
"@babel/helpers": "7.28.4",
|
|
79
|
+
"brace-expansion": "1.1.12",
|
|
80
|
+
"ws": "5.2.4"
|
|
81
|
+
},
|
|
82
|
+
"tmp": "0.2.4",
|
|
83
|
+
"ws": "5.2.4"
|
|
84
|
+
},
|
|
70
85
|
"dependencies": {
|
|
71
86
|
"@rexxars/choosealicense-list": "1.1.2",
|
|
72
|
-
"@sanity/pkg-utils": "
|
|
87
|
+
"@sanity/pkg-utils": "8.1.12",
|
|
73
88
|
"chalk": "4.1.2",
|
|
74
89
|
"concurrently": "8.2.2",
|
|
75
90
|
"discover-path": "1.0.0",
|
|
@@ -78,7 +93,6 @@
|
|
|
78
93
|
"get-it": "8.6.3",
|
|
79
94
|
"get-latest-version": "5.1.0",
|
|
80
95
|
"git-remote-origin-url": "3.1.0",
|
|
81
|
-
"git-user-info": "2.0.3",
|
|
82
96
|
"github-url-to-object": "4.0.6",
|
|
83
97
|
"inquirer": "8.2.6",
|
|
84
98
|
"meow": "9.0.0",
|
|
@@ -99,15 +113,15 @@
|
|
|
99
113
|
"@commitlint/cli": "19.3.0",
|
|
100
114
|
"@commitlint/config-conventional": "19.2.2",
|
|
101
115
|
"@sanity/semantic-release-preset": "5.0.0",
|
|
102
|
-
"@sanity/ui-workshop": "^
|
|
116
|
+
"@sanity/ui-workshop": "^3.3.2",
|
|
103
117
|
"@types/eslint": "^8.56.11",
|
|
104
118
|
"@types/fs-extra": "^11.0.4",
|
|
105
119
|
"@types/inquirer": "^9.0.3",
|
|
106
120
|
"@types/node": "^18.17.4",
|
|
107
121
|
"@types/nodemon": "^1.19.6",
|
|
108
122
|
"@types/tap": "^15.0.11",
|
|
109
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
110
|
-
"@typescript-eslint/parser": "^
|
|
123
|
+
"@typescript-eslint/eslint-plugin": "^8.26.0",
|
|
124
|
+
"@typescript-eslint/parser": "^8.26.0",
|
|
111
125
|
"eslint": "^8.57.0",
|
|
112
126
|
"eslint-config-prettier": "^9.1.0",
|
|
113
127
|
"eslint-config-sanity": "^7.1.2",
|
|
@@ -121,11 +135,11 @@
|
|
|
121
135
|
"prettier-plugin-packagejson": "^2.5.1",
|
|
122
136
|
"readdirp": "^3.6.0",
|
|
123
137
|
"rimraf": "^4.4.1",
|
|
124
|
-
"sanity": "
|
|
138
|
+
"sanity": "^4.9.0",
|
|
125
139
|
"sinon": "^17.0.2",
|
|
126
140
|
"tap": "^16.3.10",
|
|
127
141
|
"ts-node": "^10.9.2",
|
|
128
|
-
"typescript": "5.
|
|
142
|
+
"typescript": "5.8.3"
|
|
129
143
|
},
|
|
130
144
|
"peerDependencies": {
|
|
131
145
|
"eslint": ">=8.0.0"
|
|
@@ -136,8 +150,5 @@
|
|
|
136
150
|
"publishConfig": {
|
|
137
151
|
"access": "public"
|
|
138
152
|
},
|
|
139
|
-
"binname": "sanity-plugin"
|
|
140
|
-
"overrides": {
|
|
141
|
-
"conventional-changelog-conventionalcommits": ">= 8.0.0"
|
|
142
|
-
}
|
|
153
|
+
"binname": "sanity-plugin"
|
|
143
154
|
}
|
|
@@ -19,7 +19,6 @@ export function pkgConfigTemplate(options: {outDir: string; flags: InitFlags}):
|
|
|
19
19
|
// Remove this block to enable strict export validation
|
|
20
20
|
extract: {
|
|
21
21
|
rules: {
|
|
22
|
-
'ae-forgotten-export': 'off',
|
|
23
22
|
'ae-incompatible-release-tags': 'off',
|
|
24
23
|
'ae-internal-missing-underscore': 'off',
|
|
25
24
|
'ae-missing-release-tag': 'off',
|
|
@@ -15,12 +15,7 @@ import path from 'path'
|
|
|
15
15
|
import {readFile, writeFile} from '../util/files'
|
|
16
16
|
import {errorToUndefined} from '../util/errorToUndefined'
|
|
17
17
|
import {PackageJson} from '../actions/verify/types'
|
|
18
|
-
import {
|
|
19
|
-
developTestSnippet,
|
|
20
|
-
getLicenseText,
|
|
21
|
-
installationSnippet,
|
|
22
|
-
v3BannerNotice,
|
|
23
|
-
} from '../util/readme'
|
|
18
|
+
import {developTestSnippet, getLicenseText, installationSnippet} from '../util/readme'
|
|
24
19
|
import {getUserInfo} from '../util/user'
|
|
25
20
|
|
|
26
21
|
export const semverWorkflowPreset: Preset = {
|
|
@@ -78,10 +73,9 @@ async function updateReadme(options: InjectOptions) {
|
|
|
78
73
|
const readmePath = path.join(basePath, 'README.md')
|
|
79
74
|
const readme = (await readFile(readmePath, 'utf8').catch(errorToUndefined)) ?? ''
|
|
80
75
|
|
|
81
|
-
const {
|
|
82
|
-
await readmeSnippets(options)
|
|
76
|
+
const {install, usage, developTest, license, releaseSnippet} = await readmeSnippets(options)
|
|
83
77
|
|
|
84
|
-
const prependSections = missingSections(readme, [
|
|
78
|
+
const prependSections = missingSections(readme, [install, usage])
|
|
85
79
|
const appendSections = missingSections(readme, [license, developTest, releaseSnippet])
|
|
86
80
|
|
|
87
81
|
if (prependSections.length || appendSections.length) {
|
|
@@ -117,7 +111,6 @@ async function readmeSnippets(options: InjectOptions) {
|
|
|
117
111
|
`
|
|
118
112
|
|
|
119
113
|
return {
|
|
120
|
-
v3Banner: v3BannerNotice(),
|
|
121
114
|
install,
|
|
122
115
|
usage,
|
|
123
116
|
license,
|
package/src/util/readme.ts
CHANGED
|
@@ -5,13 +5,12 @@ import {PackageData} from '../actions/inject'
|
|
|
5
5
|
import {User} from './user'
|
|
6
6
|
|
|
7
7
|
export function generateReadme(data: PackageData) {
|
|
8
|
-
const {user, pluginName, license
|
|
8
|
+
const {user, pluginName, license} = data
|
|
9
9
|
|
|
10
10
|
return (
|
|
11
11
|
outdent`
|
|
12
12
|
# ${pluginName}
|
|
13
13
|
|
|
14
|
-
${v3BannerNotice()}
|
|
15
14
|
|
|
16
15
|
${installationSnippet(pluginName ?? 'unknown')}
|
|
17
16
|
|
|
@@ -35,10 +34,6 @@ export function generateReadme(data: PackageData) {
|
|
|
35
34
|
)
|
|
36
35
|
}
|
|
37
36
|
|
|
38
|
-
export function v3BannerNotice() {
|
|
39
|
-
return `> This is a **Sanity Studio v3** plugin.`
|
|
40
|
-
}
|
|
41
|
-
|
|
42
37
|
export function installationSnippet(packageName: string) {
|
|
43
38
|
return outdent`
|
|
44
39
|
## Installation
|
package/src/util/ts.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as ts from 'typescript'
|
|
2
2
|
import path from 'path'
|
|
3
3
|
import {fileExists} from './files'
|
|
4
4
|
|
|
@@ -9,5 +9,11 @@ export async function readTSConfig(options: {basePath: string; filename: string}
|
|
|
9
9
|
|
|
10
10
|
if (!exists) return undefined
|
|
11
11
|
|
|
12
|
-
return
|
|
12
|
+
return ts.readConfigFile(filePath, ts.sys.readFile).config
|
|
13
|
+
? ts.parseJsonConfigFileContent(
|
|
14
|
+
ts.readConfigFile(filePath, ts.sys.readFile).config,
|
|
15
|
+
ts.sys,
|
|
16
|
+
basePath,
|
|
17
|
+
)
|
|
18
|
+
: undefined
|
|
13
19
|
}
|
package/src/util/user.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from 'path'
|
|
2
|
+
import {execSync} from 'child_process'
|
|
2
3
|
import xdgBasedir from 'xdg-basedir'
|
|
3
|
-
import {getGitUserInfo as _getGitUserInfo} from 'git-user-info'
|
|
4
4
|
import {validate as isValidEmail} from 'email-validator'
|
|
5
5
|
import {readJsonFile} from './files'
|
|
6
6
|
import {request} from './request'
|
|
@@ -98,8 +98,18 @@ async function getSanityUserInfo(): Promise<User | undefined> {
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
async function getGitUserInfo(): Promise<User | undefined> {
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
try {
|
|
102
|
+
const name = execSync('git config user.name', {encoding: 'utf8'}).trim()
|
|
103
|
+
const email = execSync('git config user.email', {encoding: 'utf8'}).trim()
|
|
104
|
+
|
|
105
|
+
if (!name) {
|
|
106
|
+
return undefined
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return {name, email: email || undefined}
|
|
110
|
+
} catch (err) {
|
|
111
|
+
return undefined
|
|
112
|
+
}
|
|
103
113
|
}
|
|
104
114
|
|
|
105
115
|
function filterString(val: string) {
|