@sanity/plugin-kit
10.0.1010.0.11
dist/verify-package-Cm62CGGp.js.map~
dist/verify-package-Cm62CGGp.js.mapModified+1−1
Index: package/dist/verify-package-Cm62CGGp.js.map
===================================================================
--- package/dist/verify-package-Cm62CGGp.js.map
+++ package/dist/verify-package-Cm62CGGp.js.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"verify-package-Cm62CGGp.js","names":["sharedFlags"],"sources":["../src/util/ts.ts","../src/actions/verify/verify-common.ts","../src/actions/verify-package.ts","../src/cmds/verify-package.ts"],"sourcesContent":["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 {styleText} from 'node:util'\n\nimport type {TypedFlags} from 'meow'\n\nimport sharedFlags from '../../sharedFlags'\nimport log from '../../util/log'\nimport {outdent} from '../../util/outdent'\n\nconst splitLine = `\\n----------------------------------------------------------`\n\nexport const verifyPackageConfigDefaults = {\n 'packageName': true,\n 'esmOnly': true,\n 'tsconfig': true,\n 'deprecatedDependencies': true,\n 'babelConfig': true,\n 'scripts': true,\n 'pkg-utils': true,\n 'nodeEngine': true,\n 'srcIndex': true,\n 'bannedFiles': true,\n 'oxfmt': true,\n 'oxlint': 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 styleText(\n '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 package validation issues.\n\n Fail-fast (--single) mode enabled, stopping validation here.\n `,\n )\n }\n }\n}\n","import {styleText} from 'node:util'\n\nimport {cliName, defaultOutDir, urls} from '../constants'\nimport {getPackage} from '../npm/package'\nimport {loadPackageConfig} from '../util/load-package-config'\nimport log from '../util/log'\nimport {outdent} from '../util/outdent'\nimport {readTSConfig} from '../util/ts'\nimport type {PackageJson} from './verify/types'\nimport {\n validateBabelConfig,\n validateEsmOnly,\n validateNodeEngine,\n validatePackageName,\n validatePackageType,\n validatePkgUtilsDependency,\n validatePkgUtilsVersion,\n validateDeprecatedDependencies,\n validateScripts,\n validateTsConfig,\n validateSrcIndexFile,\n validateBannedFiles,\n validateOxfmtConfig,\n validateOxlintConfig,\n} from './verify/validations'\nimport {createValidator, type VerifyFlags, type VerifyPackageConfig} from './verify/verify-common'\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\n // Hard requirements (not configurable via sanityPlugin.verifyPackage): plugins must be ESM and\n // ship a compatible @sanity/pkg-utils, since plugin-kit loads package.config.ts through it.\n for (const hardError of [\n ...validatePackageType(packageJson),\n ...validatePkgUtilsVersion({basePath}),\n ]) {\n errors.push(hardError)\n log.error(`\\n${hardError}`)\n }\n\n // Load defensively: if the config can't be loaded (e.g. incompatible/missing pkg-utils), fall\n // back to defaults so the remaining checks still surface actionable issues.\n let packageConfig\n try {\n packageConfig = await loadPackageConfig({basePath})\n } catch (err) {\n log.debug('Failed to load package.config: %s', err)\n }\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('esmOnly', async () => validateEsmOnly(packageJson))\n await validation('pkg-utils', async () => validatePkgUtilsDependency(packageJson))\n await validation('srcIndex', async () => validateSrcIndexFile(basePath))\n await validation('bannedFiles', async () => validateBannedFiles(packageJson))\n await validation('scripts', async () => validateScripts(packageJson))\n await validation('nodeEngine', async () => validateNodeEngine(packageJson))\n await validation('oxfmt', async () => validateOxfmtConfig(basePath, packageJson))\n await validation('oxlint', async () => validateOxlintConfig(basePath, packageJson))\n\n if (ts) {\n await validation('tsconfig', async () => validateTsConfig(ts, {basePath, outDir, tsconfig}))\n }\n\n await validation('babelConfig', async () => validateBabelConfig({basePath}))\n\n await validation('deprecatedDependencies', async () =>\n validateDeprecatedDependencies(packageJson),\n )\n\n if (errors.length) {\n throw new Error(\n outdent`\n Detected validation issues!\n 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 - Reference documentation: ${urls.refDocs}\n\n ${styleText(\n 'grey',\n `To fail-fast on first detected issue run:\\nnpx ${cliName} verify-package --single`,\n )}\n `.trimStart(),\n )\n }\n\n log.success(\n outdent`\n No outstanding package validation 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'\n\nimport meow from 'meow'\n\nimport {verifyPackage} from '../actions/verify-package'\nimport {verifyFlags} from '../actions/verify/verify-common'\nimport {cliName} from '../constants'\n\nconst description = `Verify that a Sanity plugin package follows plugin-kit conventions.`\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, {importMeta: import.meta, 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"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"verify-package-Cm62CGGp.js","names":["sharedFlags"],"sources":["../src/util/ts.ts","../src/actions/verify/verify-common.ts","../src/actions/verify-package.ts","../src/cmds/verify-package.ts"],"sourcesContent":["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 {styleText} from 'node:util'\n\nimport type {TypedFlags} from 'meow'\n\nimport sharedFlags from '../../sharedFlags'\nimport log from '../../util/log'\nimport {outdent} from '../../util/outdent'\n\nconst splitLine = `\\n----------------------------------------------------------`\n\nexport const verifyPackageConfigDefaults = {\n 'packageName': true,\n 'esmOnly': true,\n 'tsconfig': true,\n 'deprecatedDependencies': true,\n 'babelConfig': true,\n 'scripts': true,\n 'pkg-utils': true,\n 'nodeEngine': true,\n 'srcIndex': true,\n 'bannedFiles': true,\n 'oxfmt': true,\n 'oxlint': 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 styleText(\n '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 package validation issues.\n\n Fail-fast (--single) mode enabled, stopping validation here.\n `,\n )\n }\n }\n}\n","import {styleText} from 'node:util'\n\nimport {cliName, defaultOutDir, urls} from '../constants'\nimport {getPackage} from '../npm/package'\nimport {loadPackageConfig} from '../util/load-package-config'\nimport log from '../util/log'\nimport {outdent} from '../util/outdent'\nimport {readTSConfig} from '../util/ts'\nimport type {PackageJson} from './verify/types'\nimport {\n validateBabelConfig,\n validateEsmOnly,\n validateNodeEngine,\n validatePackageName,\n validatePackageType,\n validatePkgUtilsDependency,\n validatePkgUtilsVersion,\n validateDeprecatedDependencies,\n validateScripts,\n validateTsConfig,\n validateSrcIndexFile,\n validateBannedFiles,\n validateOxfmtConfig,\n validateOxlintConfig,\n} from './verify/validations'\nimport {createValidator, type VerifyFlags, type VerifyPackageConfig} from './verify/verify-common'\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\n // Hard requirements (not configurable via sanityPlugin.verifyPackage): plugins must be ESM and\n // ship a compatible @sanity/pkg-utils, since plugin-kit loads package.config.ts through it.\n for (const hardError of [\n ...validatePackageType(packageJson),\n ...validatePkgUtilsVersion({basePath}),\n ]) {\n errors.push(hardError)\n log.error(`\\n${hardError}`)\n }\n\n // Load defensively: if the config can't be loaded (e.g. incompatible/missing pkg-utils), fall\n // back to defaults so the remaining checks still surface actionable issues.\n let packageConfig\n try {\n packageConfig = await loadPackageConfig({basePath})\n } catch (err) {\n log.debug('Failed to load package.config: %s', err)\n }\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('esmOnly', async () => validateEsmOnly(packageJson))\n await validation('pkg-utils', async () => validatePkgUtilsDependency(packageJson))\n await validation('srcIndex', async () => validateSrcIndexFile(basePath))\n await validation('bannedFiles', async () => validateBannedFiles(packageJson))\n await validation('scripts', async () => validateScripts(packageJson))\n await validation('nodeEngine', async () => validateNodeEngine(packageJson))\n await validation('oxfmt', async () => validateOxfmtConfig(basePath, packageJson))\n await validation('oxlint', async () => validateOxlintConfig(basePath, packageJson))\n\n if (ts) {\n await validation('tsconfig', async () => validateTsConfig(ts, {basePath, outDir, tsconfig}))\n }\n\n await validation('babelConfig', async () => validateBabelConfig({basePath}))\n\n await validation('deprecatedDependencies', async () =>\n validateDeprecatedDependencies(packageJson),\n )\n\n if (errors.length) {\n throw new Error(\n outdent`\n Detected validation issues!\n 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 - Reference documentation: ${urls.refDocs}\n\n ${styleText(\n 'grey',\n `To fail-fast on first detected issue run:\\nnpx ${cliName} verify-package --single`,\n )}\n `.trimStart(),\n )\n }\n\n log.success(\n outdent`\n No outstanding package validation 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'\n\nimport meow from 'meow'\n\nimport {verifyPackage} from '../actions/verify-package'\nimport {verifyFlags} from '../actions/verify/verify-common'\nimport {cliName} from '../constants'\n\nconst description = `Verify that a Sanity plugin package follows plugin-kit conventions.`\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, {importMeta: import.meta, 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"],"mappings":";;;;;;;;AASA,eAAsB,aAAa,SAA+C;CAChF,IAAM,EAAC,UAAU,aAAY,SACvB,WAAW,KAAK,QAAQ,UAAU,QAAQ;CAGhD,IAAI,CAAC,MAFgB,WAAW,QAAQ,GAE3B;CAEb,IAAM,EAAC,WAAU,GAAG,eAAe,UAAU,GAAG,IAAI,QAAQ;CAE5D,IAAK,QAEL,OAAO,GAAG,2BAA2B,QAAQ,GAAG,KAAK,QAAQ;AAC/D;ACbA,MAmBa,cAAc;CACzB,GAAGA;CACH,QAAQ;EACN,SAAS;EACT,MAAM;CACR;AACF;AAIA,SAAS,iBAAiB,UAAkB;CAC1C,OAAO,UACL,QACA,OAAO;;;;uBAIY,SAAS;;;YAGpB,UAAU,CACpB;AACF;AAEA,SAAgB,gBACd,cACA,OACA,QACA;CACA,OAAO,eAAe,WACpB,UACA,MACA;EACA,IAAI,aAAa,cAAc,IAAO;GACpC,IAAM,SAAS,MAAM,KAAK;GAC1B,IAAI,QAAQ,QAAQ;IAClB,OAAO,KAAK,iBAAiB,QAAQ,CAAC;IACtC,IAAM,eAAe,OAAO,KAAK,MAAM;IAEvC,AADA,OAAO,KAAK,YAAY,GACxB,YAAI,MAAM,OAAO,eAAe,8DAAS;GAC3C;EACF;EAEA,IAAI,MAAM,UAAU,OAAO,QACzB,MAAU,MACR,OAAO;;;SAIT;CAEJ;AACF;ACpDA,eAAsB,cAAc,EAAC,UAAU,SAAgD;CAC7F,IAAI,SAAmB,CAAC,GAElB,cAA2B,MAAM,WAAW;EAAC;EAAU,UAAU;CAAK,CAAC,GACvE,eAAoC,YAAY,cAAc,iBAAiB,CAAC;CAItF,KAAK,IAAM,aAAa,CACtB,GAAG,oBAAoB,WAAW,GAClC,GAAG,wBAAwB,EAAC,SAAQ,CAAC,CACvC,GAEE,AADA,OAAO,KAAK,SAAS,GACrB,YAAI,MAAM,KAAK,WAAW;CAK5B,IAAI;CACJ,IAAI;EACF,gBAAgB,MAAM,kBAAkB,EAAC,SAAQ,CAAC;CACpD,SAAS,KAAK;EACZ,YAAI,MAAM,qCAAqC,GAAG;CACpD;CACA,IAAM,SAAS,eAAe,QAAA,QACxB,WAAW,eAAe,YAAY,iBAEtC,aAAa,gBAAgB,cAAc,OAAO,MAAM,GAExD,KAAK,MAAM,aAAa;EAAC;EAAU,UAAU;CAAQ,CAAC;CAsB5D,IApBA,MAAM,WAAW,eAAe,YAAY,oBAAoB,WAAW,CAAC,GAC5E,MAAM,WAAW,WAAW,YAAY,gBAAgB,WAAW,CAAC,GACpE,MAAM,WAAW,aAAa,YAAY,2BAA2B,WAAW,CAAC,GACjF,MAAM,WAAW,YAAY,YAAY,qBAAqB,QAAQ,CAAC,GACvE,MAAM,WAAW,eAAe,YAAY,oBAAoB,WAAW,CAAC,GAC5E,MAAM,WAAW,WAAW,YAAY,gBAAgB,WAAW,CAAC,GACpE,MAAM,WAAW,cAAc,YAAY,mBAAmB,WAAW,CAAC,GAC1E,MAAM,WAAW,SAAS,YAAY,oBAAoB,UAAU,WAAW,CAAC,GAChF,MAAM,WAAW,UAAU,YAAY,qBAAqB,UAAU,WAAW,CAAC,GAE9E,MACF,MAAM,WAAW,YAAY,YAAY,iBAAiB,IAAI;EAAC;EAAU;EAAQ;CAAQ,CAAC,CAAC,GAG7F,MAAM,WAAW,eAAe,YAAY,oBAAoB,EAAC,SAAQ,CAAC,CAAC,GAE3E,MAAM,WAAW,0BAA0B,YACzC,+BAA+B,WAAW,CAC5C,GAEI,OAAO,QACT,MAAU,MACR,OAAO;;;;;mBAKM,KAAK,aAAa;;;qCAGA,KAAK,QAAQ;;UAExC,UACA,QACA,kDAAkD,QAAQ,yBAC5D,EAAE;QACF,UAAU,CACd;CAGF,YAAI,QACF,OAAO;;;;sEAI2D,KAAK,aAAa;;;IAGpF,KAAK,CACP;AACF;ACpGA,MAEM,OAAO;;MAEP,QAAQ;;;;;;;;;;;;;MAaR,QAAQ;;;MAGR,QAAQ;;AAGd,SAAS,IAAI,EAAC,QAAyB;CACrC,IAAM,MAAM,KAAK,MAAM;EAAC,YAAY;EAAa,OAAO;EAAa;EAAM;CAAW,CAAC;CAEvF,OAAO,cAAc;EAAC,UADL,KAAK,QAAQ,IAAI,MAAM,MAAM,QAAQ,IAAI,CACpC;EAAU,OAAO,IAAI;CAAK,CAAC;AACnD"}
\ No newline at end of file