@sanity/pkg-utils 10.5.4 → 10.5.6
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/dist/_chunks-es/initAction.js.map +1 -1
- package/dist/cli.js +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initAction.js","sources":["../../src/node/core/template/createFromTemplate.ts","../../src/node/isEmptyDirectory.ts","../../../../../node_modules/.pnpm/@sanity+prettier-config@3.0.0_prettier@3.8.3/node_modules/@sanity/prettier-config/dist/index.js","../../src/node/templates/default/template.ts","../../src/node/init.ts","../../src/cli/initAction.ts"],"sourcesContent":["import {writeFile} from 'node:fs/promises'\nimport {dirname, relative, resolve} from 'node:path'\nimport {mkdirp} from 'mkdirp'\nimport prompts from 'prompts'\nimport type {Logger} from '../../logger.ts'\nimport type {PkgTemplate} from './types.ts'\n\nconst promptsTypes = {\n string: 'text' as const,\n}\n\n/** @internal */\nexport async function createFromTemplate(options: {\n cwd: string\n logger: Logger\n packagePath: string\n template: PkgTemplate\n}): Promise<void> {\n const {cwd, logger, packagePath, template: templateOrResolver} = options\n\n const template =\n typeof templateOrResolver === 'function'\n ? await templateOrResolver({cwd, logger, packagePath})\n : templateOrResolver\n\n logger.log('create new package at', relative(cwd, packagePath))\n\n const templateOptions: Record<string, string> = {}\n\n for (const templateOption of template.options) {\n const templateValidate = templateOption.validate\n\n const res = await prompts(\n {\n type: promptsTypes[templateOption.type],\n name: templateOption.name,\n message: templateOption.description,\n validate: templateValidate ? (prev) => templateValidate(prev) : undefined,\n initial:\n typeof templateOption.initial === 'function'\n ? templateOption.initial(templateOptions)\n : templateOption.initial,\n },\n {onCancel: () => process.exit(0)},\n )\n\n templateOptions[templateOption.name] = templateOption.parse\n ? templateOption.parse(res[templateOption.name])\n : res[templateOption.name]\n }\n\n const features: Record<string, boolean> = {}\n\n for (const templateFeature of template.features) {\n const res = templateFeature.optional\n ? await prompts(\n {\n type: 'confirm',\n name: 'confirm',\n message: `use ${templateFeature.name}?`,\n initial: templateFeature.initial,\n },\n {onCancel: () => process.exit(0)},\n )\n : undefined\n\n features[templateFeature.name] = res?.confirm || !templateFeature.optional\n }\n\n const files = await template.getFiles(templateOptions, features)\n\n files.sort((a, b) => {\n return a.name.localeCompare(b.name)\n })\n\n for (const file of files) {\n const filePath = resolve(packagePath, file.name)\n\n await mkdirp(dirname(filePath))\n await writeFile(filePath, file.contents.trim() + '\\n')\n\n logger.success(`wrote ${relative(cwd, filePath)}`)\n }\n}\n","import {readdir} from 'node:fs/promises'\n\nexport async function isEmptyDirectory(dirPath: string): Promise<boolean> {\n return (await readdir(dirPath)).length === 0\n}\n","const overridableDefaults = {\n endOfLine: \"lf\",\n tabWidth: 2,\n useTabs: !1\n}, json5 = {\n files: [\"*.json5\"],\n options: {\n quoteProps: \"preserve\",\n singleQuote: !1\n }\n}, yaml = {\n files: [\"*.yml\"],\n options: {\n singleQuote: !1\n }\n}, config = {\n ...overridableDefaults,\n printWidth: 100,\n semi: !1,\n singleQuote: !0,\n quoteProps: \"consistent\",\n bracketSpacing: !1,\n plugins: [\"prettier-plugin-packagejson\"],\n overrides: [json5, yaml]\n};\nexport {\n config as default\n};\n//# sourceMappingURL=index.js.map\n","import {execSync} from 'node:child_process'\nimport {resolve} from 'node:path'\nimport type {PackageJSON} from '@sanity/parse-package-json'\nimport prettierConfig from '@sanity/prettier-config'\nimport {getLatestVersion} from 'get-latest-version'\nimport gitUrlParse from 'git-url-parse'\nimport {outdent} from 'outdent'\nimport {format, type Config as PrettierConfig} from 'prettier'\nimport {isRecord} from '../../core/isRecord.ts'\nimport {defineTemplateOption} from '../../core/template/define.ts'\nimport {type PkgTemplate, type PkgTemplateFile} from '../../core/template/types.ts'\n\nconst RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\\/)?[a-z0-9-~][a-z0-9-._~]*$/i\n\nexport const defaultTemplate: PkgTemplate = async ({cwd, logger, packagePath}) => {\n const gitConfig = getGitUserConfig(cwd)\n\n return {\n options: [\n defineTemplateOption<{owner: string; name: string}>({\n name: 'repo',\n type: 'string',\n description: 'git url',\n validate: (v) => {\n if (!v) return true\n\n try {\n gitUrlParse(v)\n\n return true\n } catch {\n return 'invalid git url'\n }\n },\n parse: (v) => {\n if (!v) return null\n\n const result = gitUrlParse(v)\n\n return {source: result.source, owner: result.owner, name: result.name}\n },\n }),\n defineTemplateOption({\n name: 'pkgName',\n type: 'string',\n description: 'package name',\n initial: (options) => options['repo']?.name || undefined,\n validate: (v) => {\n if (!v) return 'package name is required'\n\n const match = RE_NAME.exec(v)\n\n if (!match) {\n return 'invalid package name'\n }\n\n return true\n },\n parse: (v) => {\n if (!v) {\n throw new Error('package name is required')\n }\n\n const match = RE_NAME.exec(v)\n\n if (!match) {\n throw new Error('invalid package name')\n }\n\n const [scope, name] = v.split('/')\n\n return {scope, name, fullName: v}\n },\n }),\n defineTemplateOption({\n name: 'description',\n type: 'string',\n description: 'package description',\n }),\n defineTemplateOption({\n name: 'authorName',\n type: 'string',\n description: 'package author name',\n initial: gitConfig.user,\n }),\n defineTemplateOption({\n name: 'authorEmail',\n type: 'string',\n description: 'package author email',\n initial: gitConfig.email,\n }),\n defineTemplateOption({\n name: 'license',\n type: 'string',\n description: 'package license',\n initial: 'MIT',\n validate: (v) => {\n if (!v) return 'license is required'\n\n return true\n },\n }),\n ],\n\n features: [\n {\n name: 'eslint',\n optional: true,\n initial: true,\n },\n {\n name: 'prettier',\n optional: true,\n initial: true,\n },\n {\n name: 'typescript',\n optional: true,\n initial: true,\n },\n ],\n\n async getFiles(options, features) {\n const {pkgName, repo} = options\n const {fullName: name} = pkgName\n\n const author =\n [options['authorName'], options['authorEmail'] && `<${options['authorEmail']}>`]\n .filter(Boolean)\n .join(' ') ?? undefined\n\n const pkgJson: PackageJSON & {\n prettier?: '@sanity/prettier-config'\n ['lint-staged']?: Record<string, string[]>\n } = {\n name,\n 'version': '0.0.0',\n 'description': options['description'] ?? undefined,\n 'keywords': [],\n 'homepage': undefined,\n 'bugs': undefined,\n 'repository': undefined,\n 'license': options['license'],\n author,\n 'sideEffects': false,\n 'type': 'module',\n 'exports': {\n '.': {\n source: features['typescript'] ? './src/index.ts' : './src/index.js',\n require: './dist/index.cjs',\n default: './dist/index.js',\n },\n './package.json': './package.json',\n },\n 'main': './dist/index.cjs',\n 'module': './dist/index.js',\n 'types': undefined,\n 'files': ['dist', 'src'],\n 'scripts': {\n build: 'pkg build --strict --clean --check',\n format: features['prettier'] ? 'prettier --write --cache --ignore-unknown .' : undefined,\n },\n 'lint-staged': features['prettier']\n ? {\n '*': ['prettier --write --cache --ignore-unknown'],\n }\n : undefined,\n 'browserslist': 'extends @sanity/browserslist-config',\n 'prettier': features['prettier'] ? '@sanity/prettier-config' : undefined,\n 'dependencies': {},\n 'devDependencies': {\n '@sanity/tsconfig': features['typescript'] ? '^1' : undefined,\n '@sanity/pkg-utils': '^9',\n '@sanity/prettier-config': features['prettier'] ? '^1' : undefined,\n '@typescript-eslint/eslint-plugin': undefined,\n '@typescript-eslint/parser': undefined,\n 'eslint': undefined,\n 'eslint-config-prettier': undefined,\n 'eslint-plugin-import': undefined,\n 'eslint-plugin-prettier': undefined,\n 'eslint-plugin-simple-import-sort': undefined,\n 'lint-staged': '^15',\n 'prettier': features['prettier'] ? '^3' : undefined,\n 'typescript': undefined,\n },\n 'engines': {\n node: '>=20.19 <22 || >=22.12',\n },\n }\n\n const files: PkgTemplateFile[] = []\n\n // .editorconfig\n files.push({\n name: '.editorconfig',\n contents: outdent`\n root = true\n\n [*]\n charset = utf-8\n indent_style = space\n indent_size = 2\n end_of_line = lf\n insert_final_newline = true\n trim_trailing_whitespace = true\n `,\n })\n\n // .gitignore\n files.push({\n name: '.gitignore',\n contents: outdent`\n *.local\n *.log\n *.tgz\n\n .DS_Store\n dist\n etc\n node_modules\n `,\n })\n\n if (features['prettier']) {\n files.push({\n name: '.prettierignore',\n contents: outdent`\n dist\n pnpm-lock.yaml\n `,\n })\n }\n\n if (repo) {\n pkgJson.repository = {\n type: 'git',\n url: `git+ssh://git@${repo.source}/${repo.owner}/${repo.name}.git`,\n }\n pkgJson.bugs = {\n url: `https://${repo.source}/${repo.owner}/${repo.name}/issues`,\n }\n pkgJson.homepage = `https://${repo.source}/${repo.owner}/${repo.name}#readme`\n }\n\n if (features['typescript']) {\n pkgJson.types = './dist/index.d.ts'\n\n pkgJson.scripts = {\n ...pkgJson.scripts,\n ['ts:check']: 'tsc --noEmit',\n }\n\n const devDependencies = pkgJson.devDependencies\n\n if (isRecord(devDependencies)) {\n devDependencies['typescript'] = '^5.9'\n }\n }\n\n if (features['eslint']) {\n const eslintConfig: any = {\n root: true,\n env: {\n browser: true,\n es6: true,\n node: true,\n },\n extends: [\n 'eslint:recommended',\n features['prettier'] ? 'plugin:prettier/recommended' : undefined,\n ].filter(Boolean),\n parserOptions: {\n ecmaVersion: 2020,\n sourceType: 'module',\n },\n plugins: [\n 'import',\n 'simple-import-sort',\n features['prettier'] ? 'prettier' : undefined,\n ].filter(Boolean),\n rules: {\n 'no-console': 'error',\n 'no-shadow': 'error',\n 'no-warning-comments': ['warn', {location: 'start', terms: ['todo', 'fixme']}],\n 'quote-props': ['warn', 'consistent-as-needed'],\n 'simple-import-sort/exports': 'warn',\n 'simple-import-sort/imports': 'warn',\n 'strict': ['warn', 'global'],\n },\n }\n\n files.push({\n name: '.eslintignore',\n contents: outdent`\n dist\n `,\n })\n\n pkgJson.scripts = {\n ...pkgJson.scripts,\n lint: features['typescript']\n ? 'eslint . --ext .cjs,.js,.ts,.tsx'\n : 'eslint . --ext .cjs,.js',\n }\n\n pkgJson.devDependencies = {\n ...pkgJson.devDependencies,\n 'eslint': '^8',\n 'eslint-config-prettier': features['prettier'] ? '^9' : undefined,\n 'eslint-plugin-import': '^2',\n 'eslint-plugin-prettier': features['prettier'] ? '^5' : undefined,\n 'eslint-plugin-simple-import-sort': '^12',\n }\n\n if (features['typescript']) {\n pkgJson.devDependencies = {\n ...pkgJson.devDependencies,\n '@typescript-eslint/eslint-plugin': '^7',\n '@typescript-eslint/parser': '^7',\n }\n\n const eslintConfigOverride: any = {\n files: ['**/*.ts', '**/*.tsx'],\n parser: '@typescript-eslint/parser',\n parserOptions: {\n project: ['./tsconfig.json'],\n },\n extends: [\n 'eslint:recommended',\n features['prettier'] ? 'plugin:prettier/recommended' : undefined,\n 'plugin:@typescript-eslint/eslint-recommended',\n 'plugin:@typescript-eslint/recommended',\n ].filter(Boolean),\n plugins: [\n 'import',\n '@typescript-eslint',\n 'simple-import-sort',\n features['prettier'] ? 'prettier' : undefined,\n ].filter(Boolean),\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/interface-name-prefix': 'off',\n '@typescript-eslint/member-delimiter-style': 'off',\n '@typescript-eslint/no-empty-interface': 'off',\n },\n }\n\n eslintConfig.overrides = [eslintConfigOverride]\n }\n\n files.push({\n name: '.eslintrc.cjs',\n contents: await prettierFormat(\n resolve(packagePath, '.eslintrc.cjs'),\n outdent`\n 'use strict'\n\n /** @type import('eslint').Linter.Config */\n module.exports = ${JSON.stringify(eslintConfig, null, 2)}\n `,\n prettierConfig,\n ),\n })\n }\n\n if (features['typescript']) {\n files.push({\n name: 'tsconfig.settings.json',\n contents: await prettierFormat(\n resolve(packagePath, 'tsconfig.settings.json'),\n outdent`\n {\n \"extends\": \"@sanity/tsconfig/strictest\",\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\"\n }\n }\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'tsconfig.dist.json',\n contents: await prettierFormat(\n resolve(packagePath, 'tsconfig.dist.json'),\n outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./src\"],\n \"exclude\": [\"./src/**/*.test.ts\"]\n }\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'tsconfig.json',\n contents: await prettierFormat(\n resolve(packagePath, 'tsconfig.json'),\n outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./**/*.cjs\", \"./**/*.ts\", \"./**/*.tsx\"],\n \"exclude\": [\"./node_modules\"]\n }\n `,\n prettierConfig,\n ),\n })\n }\n\n // source file\n if (features['typescript']) {\n files.push({\n name: 'package.config.ts',\n contents: await prettierFormat(\n resolve(packagePath, 'package.config.ts'),\n outdent`\n import {defineConfig} from '@sanity/pkg-utils'\n\n // https://github.com/sanity-io/pkg-utils#configuration\n export default defineConfig({\n // the path to the tsconfig file for distributed builds\n tsconfig: 'tsconfig.dist.json',\n })\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'src/index.ts',\n contents: await prettierFormat(\n resolve(packagePath, 'src/index.ts'),\n outdent`\n /** @public */\n export function main(): void {\n //\n }\n `,\n prettierConfig,\n ),\n })\n } else {\n files.push({\n name: 'package.config.js',\n contents: await prettierFormat(\n resolve(packagePath, 'package.config.js'),\n outdent`\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with \\`_\\`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n })\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'src/index.js',\n contents: await prettierFormat(\n resolve(packagePath, 'src/index.js'),\n outdent`\n /** @public */\n export function main() {\n //\n }\n `,\n prettierConfig,\n ),\n })\n }\n\n // Resolve latest dependencies\n try {\n pkgJson.dependencies = await resolveLatestDeps(pkgJson.dependencies ?? {})\n } catch (error) {\n logger.warn(error instanceof Error ? error.message : error)\n }\n\n // Resolve latest devDependencies\n try {\n pkgJson.devDependencies = await resolveLatestDeps(pkgJson.devDependencies ?? {})\n } catch (error) {\n logger.warn(error instanceof Error ? error.message : error)\n }\n\n files.push({\n name: 'package.json',\n contents: await prettierFormat(\n resolve(packagePath, 'package.json'),\n JSON.stringify(pkgJson, null, 2),\n prettierConfig,\n ),\n })\n\n return files\n },\n }\n}\n\nfunction prettierFormat(\n filepath: string,\n input: string,\n prettierOptions: PrettierConfig | undefined,\n) {\n return format(input, {...prettierOptions, plugins: [], filepath})\n}\n\nasync function resolveLatestDeps(deps: Record<string, string | undefined>) {\n const depsEntries = Object.entries(deps)\n const latestDeps: Record<string, string> = {}\n\n for (const entry of depsEntries) {\n const [name, version] = entry\n\n if (version) {\n const latestVersion = await getLatestVersion(name, {range: version})\n\n latestDeps[name] = latestVersion ? `^${latestVersion}` : version\n }\n }\n\n return latestDeps\n}\n\nfunction getGitUserConfig(cwd: string): {user: string | undefined; email: string | undefined} {\n let user: string | undefined\n let email: string | undefined\n\n try {\n user = execSync('git config user.name', {encoding: 'utf8', cwd}).trim() || undefined\n email = execSync('git config user.email', {encoding: 'utf8', cwd}).trim() || undefined\n } catch {\n /* ignore */\n }\n\n return {user, email}\n}\n","import {lstat} from 'node:fs/promises'\nimport {resolve} from 'node:path'\nimport {mkdirp} from 'mkdirp'\nimport {createFromTemplate} from './core/template/index.ts'\nimport {fileExists} from './fileExists.ts'\nimport {isEmptyDirectory} from './isEmptyDirectory.ts'\nimport {createLogger} from './logger.ts'\nimport {defaultTemplate} from './templates/default/template.ts'\n\n/** @public */\nexport async function init(options: {cwd: string; path: string}): Promise<void> {\n if (!options.cwd) {\n throw new Error('Missing required option: cwd')\n }\n\n if (!options.path) {\n throw new Error('Missing required option: path')\n }\n\n const logger = createLogger()\n\n const packagePath = resolve(options.cwd, options.path)\n\n await ensurePackagePath(packagePath)\n\n await createFromTemplate({\n cwd: options.cwd,\n logger,\n template: defaultTemplate,\n packagePath,\n })\n}\n\nasync function ensurePackagePath(packagePath: string): Promise<void> {\n const exists = fileExists(packagePath)\n\n if (!exists) {\n await mkdirp(packagePath)\n\n return\n }\n\n const dir = (await lstat(packagePath)).isDirectory()\n\n if (!dir) {\n throw new Error('the package path is a file, not a directory')\n }\n\n const empty = await isEmptyDirectory(packagePath)\n\n if (!empty) {\n throw new Error('the package directory is not empty')\n }\n}\n","import {init} from '../node/init.ts'\nimport {handleError} from './handleError.ts'\n\nexport async function initAction(options: {path: string}): Promise<void> {\n try {\n await init({\n cwd: process.cwd(),\n path: options.path,\n })\n } catch (err) {\n handleError(err)\n }\n}\n"],"names":["prettierConfig"],"mappings":"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","x_google_ignoreList":[2]}
|
|
1
|
+
{"version":3,"file":"initAction.js","sources":["../../src/node/core/template/createFromTemplate.ts","../../src/node/isEmptyDirectory.ts","../../../../../node_modules/.pnpm/@sanity+prettier-config@3.0.0_prettier@3.8.4/node_modules/@sanity/prettier-config/dist/index.js","../../src/node/templates/default/template.ts","../../src/node/init.ts","../../src/cli/initAction.ts"],"sourcesContent":["import {writeFile} from 'node:fs/promises'\nimport {dirname, relative, resolve} from 'node:path'\nimport {mkdirp} from 'mkdirp'\nimport prompts from 'prompts'\nimport type {Logger} from '../../logger.ts'\nimport type {PkgTemplate} from './types.ts'\n\nconst promptsTypes = {\n string: 'text' as const,\n}\n\n/** @internal */\nexport async function createFromTemplate(options: {\n cwd: string\n logger: Logger\n packagePath: string\n template: PkgTemplate\n}): Promise<void> {\n const {cwd, logger, packagePath, template: templateOrResolver} = options\n\n const template =\n typeof templateOrResolver === 'function'\n ? await templateOrResolver({cwd, logger, packagePath})\n : templateOrResolver\n\n logger.log('create new package at', relative(cwd, packagePath))\n\n const templateOptions: Record<string, string> = {}\n\n for (const templateOption of template.options) {\n const templateValidate = templateOption.validate\n\n const res = await prompts(\n {\n type: promptsTypes[templateOption.type],\n name: templateOption.name,\n message: templateOption.description,\n validate: templateValidate ? (prev) => templateValidate(prev) : undefined,\n initial:\n typeof templateOption.initial === 'function'\n ? templateOption.initial(templateOptions)\n : templateOption.initial,\n },\n {onCancel: () => process.exit(0)},\n )\n\n templateOptions[templateOption.name] = templateOption.parse\n ? templateOption.parse(res[templateOption.name])\n : res[templateOption.name]\n }\n\n const features: Record<string, boolean> = {}\n\n for (const templateFeature of template.features) {\n const res = templateFeature.optional\n ? await prompts(\n {\n type: 'confirm',\n name: 'confirm',\n message: `use ${templateFeature.name}?`,\n initial: templateFeature.initial,\n },\n {onCancel: () => process.exit(0)},\n )\n : undefined\n\n features[templateFeature.name] = res?.confirm || !templateFeature.optional\n }\n\n const files = await template.getFiles(templateOptions, features)\n\n files.sort((a, b) => {\n return a.name.localeCompare(b.name)\n })\n\n for (const file of files) {\n const filePath = resolve(packagePath, file.name)\n\n await mkdirp(dirname(filePath))\n await writeFile(filePath, file.contents.trim() + '\\n')\n\n logger.success(`wrote ${relative(cwd, filePath)}`)\n }\n}\n","import {readdir} from 'node:fs/promises'\n\nexport async function isEmptyDirectory(dirPath: string): Promise<boolean> {\n return (await readdir(dirPath)).length === 0\n}\n","const overridableDefaults = {\n endOfLine: \"lf\",\n tabWidth: 2,\n useTabs: !1\n}, json5 = {\n files: [\"*.json5\"],\n options: {\n quoteProps: \"preserve\",\n singleQuote: !1\n }\n}, yaml = {\n files: [\"*.yml\"],\n options: {\n singleQuote: !1\n }\n}, config = {\n ...overridableDefaults,\n printWidth: 100,\n semi: !1,\n singleQuote: !0,\n quoteProps: \"consistent\",\n bracketSpacing: !1,\n plugins: [\"prettier-plugin-packagejson\"],\n overrides: [json5, yaml]\n};\nexport {\n config as default\n};\n//# sourceMappingURL=index.js.map\n","import {execSync} from 'node:child_process'\nimport {resolve} from 'node:path'\nimport type {PackageJSON} from '@sanity/parse-package-json'\nimport prettierConfig from '@sanity/prettier-config'\nimport {getLatestVersion} from 'get-latest-version'\nimport gitUrlParse from 'git-url-parse'\nimport {outdent} from 'outdent'\nimport {format, type Config as PrettierConfig} from 'prettier'\nimport {isRecord} from '../../core/isRecord.ts'\nimport {defineTemplateOption} from '../../core/template/define.ts'\nimport {type PkgTemplate, type PkgTemplateFile} from '../../core/template/types.ts'\n\nconst RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\\/)?[a-z0-9-~][a-z0-9-._~]*$/i\n\nexport const defaultTemplate: PkgTemplate = async ({cwd, logger, packagePath}) => {\n const gitConfig = getGitUserConfig(cwd)\n\n return {\n options: [\n defineTemplateOption<{owner: string; name: string}>({\n name: 'repo',\n type: 'string',\n description: 'git url',\n validate: (v) => {\n if (!v) return true\n\n try {\n gitUrlParse(v)\n\n return true\n } catch {\n return 'invalid git url'\n }\n },\n parse: (v) => {\n if (!v) return null\n\n const result = gitUrlParse(v)\n\n return {source: result.source, owner: result.owner, name: result.name}\n },\n }),\n defineTemplateOption({\n name: 'pkgName',\n type: 'string',\n description: 'package name',\n initial: (options) => options['repo']?.name || undefined,\n validate: (v) => {\n if (!v) return 'package name is required'\n\n const match = RE_NAME.exec(v)\n\n if (!match) {\n return 'invalid package name'\n }\n\n return true\n },\n parse: (v) => {\n if (!v) {\n throw new Error('package name is required')\n }\n\n const match = RE_NAME.exec(v)\n\n if (!match) {\n throw new Error('invalid package name')\n }\n\n const [scope, name] = v.split('/')\n\n return {scope, name, fullName: v}\n },\n }),\n defineTemplateOption({\n name: 'description',\n type: 'string',\n description: 'package description',\n }),\n defineTemplateOption({\n name: 'authorName',\n type: 'string',\n description: 'package author name',\n initial: gitConfig.user,\n }),\n defineTemplateOption({\n name: 'authorEmail',\n type: 'string',\n description: 'package author email',\n initial: gitConfig.email,\n }),\n defineTemplateOption({\n name: 'license',\n type: 'string',\n description: 'package license',\n initial: 'MIT',\n validate: (v) => {\n if (!v) return 'license is required'\n\n return true\n },\n }),\n ],\n\n features: [\n {\n name: 'eslint',\n optional: true,\n initial: true,\n },\n {\n name: 'prettier',\n optional: true,\n initial: true,\n },\n {\n name: 'typescript',\n optional: true,\n initial: true,\n },\n ],\n\n async getFiles(options, features) {\n const {pkgName, repo} = options\n const {fullName: name} = pkgName\n\n const author =\n [options['authorName'], options['authorEmail'] && `<${options['authorEmail']}>`]\n .filter(Boolean)\n .join(' ') ?? undefined\n\n const pkgJson: PackageJSON & {\n prettier?: '@sanity/prettier-config'\n ['lint-staged']?: Record<string, string[]>\n } = {\n name,\n 'version': '0.0.0',\n 'description': options['description'] ?? undefined,\n 'keywords': [],\n 'homepage': undefined,\n 'bugs': undefined,\n 'repository': undefined,\n 'license': options['license'],\n author,\n 'sideEffects': false,\n 'type': 'module',\n 'exports': {\n '.': {\n source: features['typescript'] ? './src/index.ts' : './src/index.js',\n require: './dist/index.cjs',\n default: './dist/index.js',\n },\n './package.json': './package.json',\n },\n 'main': './dist/index.cjs',\n 'module': './dist/index.js',\n 'types': undefined,\n 'files': ['dist', 'src'],\n 'scripts': {\n build: 'pkg build --strict --clean --check',\n format: features['prettier'] ? 'prettier --write --cache --ignore-unknown .' : undefined,\n },\n 'lint-staged': features['prettier']\n ? {\n '*': ['prettier --write --cache --ignore-unknown'],\n }\n : undefined,\n 'browserslist': 'extends @sanity/browserslist-config',\n 'prettier': features['prettier'] ? '@sanity/prettier-config' : undefined,\n 'dependencies': {},\n 'devDependencies': {\n '@sanity/tsconfig': features['typescript'] ? '^1' : undefined,\n '@sanity/pkg-utils': '^9',\n '@sanity/prettier-config': features['prettier'] ? '^1' : undefined,\n '@typescript-eslint/eslint-plugin': undefined,\n '@typescript-eslint/parser': undefined,\n 'eslint': undefined,\n 'eslint-config-prettier': undefined,\n 'eslint-plugin-import': undefined,\n 'eslint-plugin-prettier': undefined,\n 'eslint-plugin-simple-import-sort': undefined,\n 'lint-staged': '^15',\n 'prettier': features['prettier'] ? '^3' : undefined,\n 'typescript': undefined,\n },\n 'engines': {\n node: '>=20.19 <22 || >=22.12',\n },\n }\n\n const files: PkgTemplateFile[] = []\n\n // .editorconfig\n files.push({\n name: '.editorconfig',\n contents: outdent`\n root = true\n\n [*]\n charset = utf-8\n indent_style = space\n indent_size = 2\n end_of_line = lf\n insert_final_newline = true\n trim_trailing_whitespace = true\n `,\n })\n\n // .gitignore\n files.push({\n name: '.gitignore',\n contents: outdent`\n *.local\n *.log\n *.tgz\n\n .DS_Store\n dist\n etc\n node_modules\n `,\n })\n\n if (features['prettier']) {\n files.push({\n name: '.prettierignore',\n contents: outdent`\n dist\n pnpm-lock.yaml\n `,\n })\n }\n\n if (repo) {\n pkgJson.repository = {\n type: 'git',\n url: `git+ssh://git@${repo.source}/${repo.owner}/${repo.name}.git`,\n }\n pkgJson.bugs = {\n url: `https://${repo.source}/${repo.owner}/${repo.name}/issues`,\n }\n pkgJson.homepage = `https://${repo.source}/${repo.owner}/${repo.name}#readme`\n }\n\n if (features['typescript']) {\n pkgJson.types = './dist/index.d.ts'\n\n pkgJson.scripts = {\n ...pkgJson.scripts,\n ['ts:check']: 'tsc --noEmit',\n }\n\n const devDependencies = pkgJson.devDependencies\n\n if (isRecord(devDependencies)) {\n devDependencies['typescript'] = '^5.9'\n }\n }\n\n if (features['eslint']) {\n const eslintConfig: any = {\n root: true,\n env: {\n browser: true,\n es6: true,\n node: true,\n },\n extends: [\n 'eslint:recommended',\n features['prettier'] ? 'plugin:prettier/recommended' : undefined,\n ].filter(Boolean),\n parserOptions: {\n ecmaVersion: 2020,\n sourceType: 'module',\n },\n plugins: [\n 'import',\n 'simple-import-sort',\n features['prettier'] ? 'prettier' : undefined,\n ].filter(Boolean),\n rules: {\n 'no-console': 'error',\n 'no-shadow': 'error',\n 'no-warning-comments': ['warn', {location: 'start', terms: ['todo', 'fixme']}],\n 'quote-props': ['warn', 'consistent-as-needed'],\n 'simple-import-sort/exports': 'warn',\n 'simple-import-sort/imports': 'warn',\n 'strict': ['warn', 'global'],\n },\n }\n\n files.push({\n name: '.eslintignore',\n contents: outdent`\n dist\n `,\n })\n\n pkgJson.scripts = {\n ...pkgJson.scripts,\n lint: features['typescript']\n ? 'eslint . --ext .cjs,.js,.ts,.tsx'\n : 'eslint . --ext .cjs,.js',\n }\n\n pkgJson.devDependencies = {\n ...pkgJson.devDependencies,\n 'eslint': '^8',\n 'eslint-config-prettier': features['prettier'] ? '^9' : undefined,\n 'eslint-plugin-import': '^2',\n 'eslint-plugin-prettier': features['prettier'] ? '^5' : undefined,\n 'eslint-plugin-simple-import-sort': '^12',\n }\n\n if (features['typescript']) {\n pkgJson.devDependencies = {\n ...pkgJson.devDependencies,\n '@typescript-eslint/eslint-plugin': '^7',\n '@typescript-eslint/parser': '^7',\n }\n\n const eslintConfigOverride: any = {\n files: ['**/*.ts', '**/*.tsx'],\n parser: '@typescript-eslint/parser',\n parserOptions: {\n project: ['./tsconfig.json'],\n },\n extends: [\n 'eslint:recommended',\n features['prettier'] ? 'plugin:prettier/recommended' : undefined,\n 'plugin:@typescript-eslint/eslint-recommended',\n 'plugin:@typescript-eslint/recommended',\n ].filter(Boolean),\n plugins: [\n 'import',\n '@typescript-eslint',\n 'simple-import-sort',\n features['prettier'] ? 'prettier' : undefined,\n ].filter(Boolean),\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/interface-name-prefix': 'off',\n '@typescript-eslint/member-delimiter-style': 'off',\n '@typescript-eslint/no-empty-interface': 'off',\n },\n }\n\n eslintConfig.overrides = [eslintConfigOverride]\n }\n\n files.push({\n name: '.eslintrc.cjs',\n contents: await prettierFormat(\n resolve(packagePath, '.eslintrc.cjs'),\n outdent`\n 'use strict'\n\n /** @type import('eslint').Linter.Config */\n module.exports = ${JSON.stringify(eslintConfig, null, 2)}\n `,\n prettierConfig,\n ),\n })\n }\n\n if (features['typescript']) {\n files.push({\n name: 'tsconfig.settings.json',\n contents: await prettierFormat(\n resolve(packagePath, 'tsconfig.settings.json'),\n outdent`\n {\n \"extends\": \"@sanity/tsconfig/strictest\",\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\"\n }\n }\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'tsconfig.dist.json',\n contents: await prettierFormat(\n resolve(packagePath, 'tsconfig.dist.json'),\n outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./src\"],\n \"exclude\": [\"./src/**/*.test.ts\"]\n }\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'tsconfig.json',\n contents: await prettierFormat(\n resolve(packagePath, 'tsconfig.json'),\n outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./**/*.cjs\", \"./**/*.ts\", \"./**/*.tsx\"],\n \"exclude\": [\"./node_modules\"]\n }\n `,\n prettierConfig,\n ),\n })\n }\n\n // source file\n if (features['typescript']) {\n files.push({\n name: 'package.config.ts',\n contents: await prettierFormat(\n resolve(packagePath, 'package.config.ts'),\n outdent`\n import {defineConfig} from '@sanity/pkg-utils'\n\n // https://github.com/sanity-io/pkg-utils#configuration\n export default defineConfig({\n // the path to the tsconfig file for distributed builds\n tsconfig: 'tsconfig.dist.json',\n })\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'src/index.ts',\n contents: await prettierFormat(\n resolve(packagePath, 'src/index.ts'),\n outdent`\n /** @public */\n export function main(): void {\n //\n }\n `,\n prettierConfig,\n ),\n })\n } else {\n files.push({\n name: 'package.config.js',\n contents: await prettierFormat(\n resolve(packagePath, 'package.config.js'),\n outdent`\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with \\`_\\`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n })\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'src/index.js',\n contents: await prettierFormat(\n resolve(packagePath, 'src/index.js'),\n outdent`\n /** @public */\n export function main() {\n //\n }\n `,\n prettierConfig,\n ),\n })\n }\n\n // Resolve latest dependencies\n try {\n pkgJson.dependencies = await resolveLatestDeps(pkgJson.dependencies ?? {})\n } catch (error) {\n logger.warn(error instanceof Error ? error.message : error)\n }\n\n // Resolve latest devDependencies\n try {\n pkgJson.devDependencies = await resolveLatestDeps(pkgJson.devDependencies ?? {})\n } catch (error) {\n logger.warn(error instanceof Error ? error.message : error)\n }\n\n files.push({\n name: 'package.json',\n contents: await prettierFormat(\n resolve(packagePath, 'package.json'),\n JSON.stringify(pkgJson, null, 2),\n prettierConfig,\n ),\n })\n\n return files\n },\n }\n}\n\nfunction prettierFormat(\n filepath: string,\n input: string,\n prettierOptions: PrettierConfig | undefined,\n) {\n return format(input, {...prettierOptions, plugins: [], filepath})\n}\n\nasync function resolveLatestDeps(deps: Record<string, string | undefined>) {\n const depsEntries = Object.entries(deps)\n const latestDeps: Record<string, string> = {}\n\n for (const entry of depsEntries) {\n const [name, version] = entry\n\n if (version) {\n const latestVersion = await getLatestVersion(name, {range: version})\n\n latestDeps[name] = latestVersion ? `^${latestVersion}` : version\n }\n }\n\n return latestDeps\n}\n\nfunction getGitUserConfig(cwd: string): {user: string | undefined; email: string | undefined} {\n let user: string | undefined\n let email: string | undefined\n\n try {\n user = execSync('git config user.name', {encoding: 'utf8', cwd}).trim() || undefined\n email = execSync('git config user.email', {encoding: 'utf8', cwd}).trim() || undefined\n } catch {\n /* ignore */\n }\n\n return {user, email}\n}\n","import {lstat} from 'node:fs/promises'\nimport {resolve} from 'node:path'\nimport {mkdirp} from 'mkdirp'\nimport {createFromTemplate} from './core/template/index.ts'\nimport {fileExists} from './fileExists.ts'\nimport {isEmptyDirectory} from './isEmptyDirectory.ts'\nimport {createLogger} from './logger.ts'\nimport {defaultTemplate} from './templates/default/template.ts'\n\n/** @public */\nexport async function init(options: {cwd: string; path: string}): Promise<void> {\n if (!options.cwd) {\n throw new Error('Missing required option: cwd')\n }\n\n if (!options.path) {\n throw new Error('Missing required option: path')\n }\n\n const logger = createLogger()\n\n const packagePath = resolve(options.cwd, options.path)\n\n await ensurePackagePath(packagePath)\n\n await createFromTemplate({\n cwd: options.cwd,\n logger,\n template: defaultTemplate,\n packagePath,\n })\n}\n\nasync function ensurePackagePath(packagePath: string): Promise<void> {\n const exists = fileExists(packagePath)\n\n if (!exists) {\n await mkdirp(packagePath)\n\n return\n }\n\n const dir = (await lstat(packagePath)).isDirectory()\n\n if (!dir) {\n throw new Error('the package path is a file, not a directory')\n }\n\n const empty = await isEmptyDirectory(packagePath)\n\n if (!empty) {\n throw new Error('the package directory is not empty')\n }\n}\n","import {init} from '../node/init.ts'\nimport {handleError} from './handleError.ts'\n\nexport async function initAction(options: {path: string}): Promise<void> {\n try {\n await init({\n cwd: process.cwd(),\n path: options.path,\n })\n } catch (err) {\n handleError(err)\n }\n}\n"],"names":["prettierConfig"],"mappings":";;;;;;;;;;;;AAOA,MAAM,eAAe;AAAA,EACnB,QAAQ;AACV;AAGA,eAAsB,mBAAmB,SAKvB;AAChB,QAAM,EAAC,KAAK,QAAQ,aAAa,UAAU,mBAAA,IAAsB,SAE3D,WACJ,OAAO,sBAAuB,aAC1B,MAAM,mBAAmB,EAAC,KAAK,QAAQ,YAAA,CAAY,IACnD;AAEN,SAAO,IAAI,yBAAyB,SAAS,KAAK,WAAW,CAAC;AAE9D,QAAM,kBAA0C,CAAA;AAEhD,aAAW,kBAAkB,SAAS,SAAS;AAC7C,UAAM,mBAAmB,eAAe,UAElC,MAAM,MAAM;AAAA,MAChB;AAAA,QACE,MAAM,aAAa,eAAe,IAAI;AAAA,QACtC,MAAM,eAAe;AAAA,QACrB,SAAS,eAAe;AAAA,QACxB,UAAU,mBAAmB,CAAC,SAAS,iBAAiB,IAAI,IAAI;AAAA,QAChE,SACE,OAAO,eAAe,WAAY,aAC9B,eAAe,QAAQ,eAAe,IACtC,eAAe;AAAA,MAAA;AAAA,MAEvB,EAAC,UAAU,MAAM,QAAQ,KAAK,CAAC,EAAA;AAAA,IAAC;AAGlC,oBAAgB,eAAe,IAAI,IAAI,eAAe,QAClD,eAAe,MAAM,IAAI,eAAe,IAAI,CAAC,IAC7C,IAAI,eAAe,IAAI;AAAA,EAC7B;AAEA,QAAM,WAAoC,CAAA;AAE1C,aAAW,mBAAmB,SAAS,UAAU;AAC/C,UAAM,MAAM,gBAAgB,WACxB,MAAM;AAAA,MACJ;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,SAAS,OAAO,gBAAgB,IAAI;AAAA,QACpC,SAAS,gBAAgB;AAAA,MAAA;AAAA,MAE3B,EAAC,UAAU,MAAM,QAAQ,KAAK,CAAC,EAAA;AAAA,IAAC,IAElC;AAEJ,aAAS,gBAAgB,IAAI,IAAI,KAAK,WAAW,CAAC,gBAAgB;AAAA,EACpE;AAEA,QAAM,QAAQ,MAAM,SAAS,SAAS,iBAAiB,QAAQ;AAE/D,QAAM,KAAK,CAAC,GAAG,MACN,EAAE,KAAK,cAAc,EAAE,IAAI,CACnC;AAED,aAAW,QAAQ,OAAO;AACxB,UAAM,WAAW,QAAQ,aAAa,KAAK,IAAI;AAE/C,UAAM,OAAO,QAAQ,QAAQ,CAAC,GAC9B,MAAM,UAAU,UAAU,KAAK,SAAS,SAAS;AAAA,CAAI,GAErD,OAAO,QAAQ,SAAS,SAAS,KAAK,QAAQ,CAAC,EAAE;AAAA,EACnD;AACF;ACjFA,eAAsB,iBAAiB,SAAmC;AACxE,UAAQ,MAAM,QAAQ,OAAO,GAAG,WAAW;AAC7C;ACJA,MAAM,sBAAsB;AAAA,EAC1B,WAAW;AAAA,EACX,UAAU;AAAA,EACV,SAAS;AACX,GAAG,QAAQ;AAAA,EACT,OAAO,CAAC,SAAS;AAAA,EACjB,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,EACjB;AACA,GAAG,OAAO;AAAA,EACR,OAAO,CAAC,OAAO;AAAA,EACf,SAAS;AAAA,IACP,aAAa;AAAA,EACjB;AACA,GAAG,SAAS;AAAA,EACV,GAAG;AAAA,EACH,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,SAAS,CAAC,6BAA6B;AAAA,EACvC,WAAW,CAAC,OAAO,IAAI;AACzB,GCZM,UAAU,mEAEH,kBAA+B,OAAO,EAAC,KAAK,QAAQ,kBAAiB;AAChF,QAAM,YAAY,iBAAiB,GAAG;AAEtC,SAAO;AAAA,IACL,SAAS;AAAA,MACP,qBAAoD;AAAA,QAClD,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU,CAAC,MAAM;AACf,cAAI,CAAC,EAAG,QAAO;AAEf,cAAI;AACF,mBAAA,YAAY,CAAC,GAEN;AAAA,UACT,QAAQ;AACN,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,QACA,OAAO,CAAC,MAAM;AACZ,cAAI,CAAC,EAAG,QAAO;AAEf,gBAAM,SAAS,YAAY,CAAC;AAE5B,iBAAO,EAAC,QAAQ,OAAO,QAAQ,OAAO,OAAO,OAAO,MAAM,OAAO,KAAA;AAAA,QACnE;AAAA,MAAA,CACD;AAAA,MACD,qBAAqB;AAAA,QACnB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,QACb,SAAS,CAAC,YAAY,QAAQ,MAAS,QAAQ;AAAA,QAC/C,UAAU,CAAC,MACJ,IAES,QAAQ,KAAK,CAAC,IAMrB,KAHE,yBALM;AAAA,QAUjB,OAAO,CAAC,MAAM;AACZ,cAAI,CAAC;AACH,kBAAM,IAAI,MAAM,0BAA0B;AAK5C,cAAI,CAFU,QAAQ,KAAK,CAAC;AAG1B,kBAAM,IAAI,MAAM,sBAAsB;AAGxC,gBAAM,CAAC,OAAO,IAAI,IAAI,EAAE,MAAM,GAAG;AAEjC,iBAAO,EAAC,OAAO,MAAM,UAAU,EAAA;AAAA,QACjC;AAAA,MAAA,CACD;AAAA,MACD,qBAAqB;AAAA,QACnB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,MAAA,CACd;AAAA,MACD,qBAAqB;AAAA,QACnB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,QACb,SAAS,UAAU;AAAA,MAAA,CACpB;AAAA,MACD,qBAAqB;AAAA,QACnB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,QACb,SAAS,UAAU;AAAA,MAAA,CACpB;AAAA,MACD,qBAAqB;AAAA,QACnB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,QACb,SAAS;AAAA,QACT,UAAU,CAAC,MACJ,IAEE,KAFQ;AAAA,MAAA,CAIlB;AAAA,IAAA;AAAA,IAGH,UAAU;AAAA,MACR;AAAA,QACE,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS;AAAA,MAAA;AAAA,MAEX;AAAA,QACE,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS;AAAA,MAAA;AAAA,MAEX;AAAA,QACE,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,IAGF,MAAM,SAAS,SAAS,UAAU;AAChC,YAAM,EAAC,SAAS,SAAQ,SAClB,EAAC,UAAU,KAAA,IAAQ,SAEnB,SACJ,CAAC,QAAQ,YAAe,QAAQ,eAAkB,IAAI,QAAQ,WAAc,GAAG,EAC5E,OAAO,OAAO,EACd,KAAK,GAAG,KAAK,QAEZ,UAGF;AAAA,QACF;AAAA,QACA,SAAW;AAAA,QACX,aAAe,QAAQ,eAAkB;AAAA,QACzC,UAAY,CAAA;AAAA,QACZ,UAAY;AAAA,QACZ,MAAQ;AAAA,QACR,YAAc;AAAA,QACd,SAAW,QAAQ;AAAA,QACnB;AAAA,QACA,aAAe;AAAA,QACf,MAAQ;AAAA,QACR,SAAW;AAAA,UACT,KAAK;AAAA,YACH,QAAQ,SAAS,aAAgB,mBAAmB;AAAA,YACpD,SAAS;AAAA,YACT,SAAS;AAAA,UAAA;AAAA,UAEX,kBAAkB;AAAA,QAAA;AAAA,QAEpB,MAAQ;AAAA,QACR,QAAU;AAAA,QACV,OAAS;AAAA,QACT,OAAS,CAAC,QAAQ,KAAK;AAAA,QACvB,SAAW;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,SAAS,WAAc,gDAAgD;AAAA,QAAA;AAAA,QAEjF,eAAe,SAAS,WACpB;AAAA,UACE,KAAK,CAAC,2CAA2C;AAAA,QAAA,IAEnD;AAAA,QACJ,cAAgB;AAAA,QAChB,UAAY,SAAS,WAAc,4BAA4B;AAAA,QAC/D,cAAgB,CAAA;AAAA,QAChB,iBAAmB;AAAA,UACjB,oBAAoB,SAAS,aAAgB,OAAO;AAAA,UACpD,qBAAqB;AAAA,UACrB,2BAA2B,SAAS,WAAc,OAAO;AAAA,UACzD,oCAAoC;AAAA,UACpC,6BAA6B;AAAA,UAC7B,QAAU;AAAA,UACV,0BAA0B;AAAA,UAC1B,wBAAwB;AAAA,UACxB,0BAA0B;AAAA,UAC1B,oCAAoC;AAAA,UACpC,eAAe;AAAA,UACf,UAAY,SAAS,WAAc,OAAO;AAAA,UAC1C,YAAc;AAAA,QAAA;AAAA,QAEhB,SAAW;AAAA,UACT,MAAM;AAAA,QAAA;AAAA,MACR,GAGI,QAA2B,CAAA;AAsDjC,UAnDA,MAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,CAWX,GAGD,MAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,CAUX,GAEG,SAAS,YACX,MAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,UAAU;AAAA;AAAA;AAAA;AAAA,MAAA,CAIX,GAGC,SACF,QAAQ,aAAa;AAAA,QACnB,MAAM;AAAA,QACN,KAAK,iBAAiB,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI;AAAA,MAAA,GAE9D,QAAQ,OAAO;AAAA,QACb,KAAK,WAAW,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI;AAAA,MAAA,GAExD,QAAQ,WAAW,WAAW,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,YAGlE,SAAS,YAAe;AAC1B,gBAAQ,QAAQ,qBAEhB,QAAQ,UAAU;AAAA,UAChB,GAAG,QAAQ;AAAA,UACV,YAAa;AAAA,QAAA;AAGhB,cAAM,kBAAkB,QAAQ;AAE5B,iBAAS,eAAe,MAC1B,gBAAgB,aAAgB;AAAA,MAEpC;AAEA,UAAI,SAAS,QAAW;AACtB,cAAM,eAAoB;AAAA,UACxB,MAAM;AAAA,UACN,KAAK;AAAA,YACH,SAAS;AAAA,YACT,KAAK;AAAA,YACL,MAAM;AAAA,UAAA;AAAA,UAER,SAAS;AAAA,YACP;AAAA,YACA,SAAS,WAAc,gCAAgC;AAAA,UAAA,EACvD,OAAO,OAAO;AAAA,UAChB,eAAe;AAAA,YACb,aAAa;AAAA,YACb,YAAY;AAAA,UAAA;AAAA,UAEd,SAAS;AAAA,YACP;AAAA,YACA;AAAA,YACA,SAAS,WAAc,aAAa;AAAA,UAAA,EACpC,OAAO,OAAO;AAAA,UAChB,OAAO;AAAA,YACL,cAAc;AAAA,YACd,aAAa;AAAA,YACb,uBAAuB,CAAC,QAAQ,EAAC,UAAU,SAAS,OAAO,CAAC,QAAQ,OAAO,GAAE;AAAA,YAC7E,eAAe,CAAC,QAAQ,sBAAsB;AAAA,YAC9C,8BAA8B;AAAA,YAC9B,8BAA8B;AAAA,YAC9B,QAAU,CAAC,QAAQ,QAAQ;AAAA,UAAA;AAAA,QAC7B;AA0BF,YAvBA,MAAM,KAAK;AAAA,UACT,MAAM;AAAA,UACN,UAAU;AAAA;AAAA;AAAA,QAAA,CAGX,GAED,QAAQ,UAAU;AAAA,UAChB,GAAG,QAAQ;AAAA,UACX,MAAM,SAAS,aACX,qCACA;AAAA,QAAA,GAGN,QAAQ,kBAAkB;AAAA,UACxB,GAAG,QAAQ;AAAA,UACX,QAAU;AAAA,UACV,0BAA0B,SAAS,WAAc,OAAO;AAAA,UACxD,wBAAwB;AAAA,UACxB,0BAA0B,SAAS,WAAc,OAAO;AAAA,UACxD,oCAAoC;AAAA,QAAA,GAGlC,SAAS,YAAe;AAC1B,kBAAQ,kBAAkB;AAAA,YACxB,GAAG,QAAQ;AAAA,YACX,oCAAoC;AAAA,YACpC,6BAA6B;AAAA,UAAA;AAG/B,gBAAM,uBAA4B;AAAA,YAChC,OAAO,CAAC,WAAW,UAAU;AAAA,YAC7B,QAAQ;AAAA,YACR,eAAe;AAAA,cACb,SAAS,CAAC,iBAAiB;AAAA,YAAA;AAAA,YAE7B,SAAS;AAAA,cACP;AAAA,cACA,SAAS,WAAc,gCAAgC;AAAA,cACvD;AAAA,cACA;AAAA,YAAA,EACA,OAAO,OAAO;AAAA,YAChB,SAAS;AAAA,cACP;AAAA,cACA;AAAA,cACA;AAAA,cACA,SAAS,WAAc,aAAa;AAAA,YAAA,EACpC,OAAO,OAAO;AAAA,YAChB,OAAO;AAAA,cACL,qDAAqD;AAAA,cACrD,4CAA4C;AAAA,cAC5C,6CAA6C;AAAA,cAC7C,yCAAyC;AAAA,YAAA;AAAA,UAC3C;AAGF,uBAAa,YAAY,CAAC,oBAAoB;AAAA,QAChD;AAEA,cAAM,KAAK;AAAA,UACT,MAAM;AAAA,UACN,UAAU,MAAM;AAAA,YACd,QAAQ,aAAa,eAAe;AAAA,YACpC;AAAA;AAAA;AAAA;AAAA,+BAImB,KAAK,UAAU,cAAc,MAAM,CAAC,CAAC;AAAA;AAAA,YAExDA;AAAAA,UAAA;AAAA,QACF,CACD;AAAA,MACH;AAEI,eAAS,eACX,MAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,UAAU,MAAM;AAAA,UACd,QAAQ,aAAa,wBAAwB;AAAA,UAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UASAA;AAAAA,QAAA;AAAA,MACF,CACD,GAED,MAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,UAAU,MAAM;AAAA,UACd,QAAQ,aAAa,oBAAoB;AAAA,UACzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAOAA;AAAAA,QAAA;AAAA,MACF,CACD,GAED,MAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,UAAU,MAAM;AAAA,UACd,QAAQ,aAAa,eAAe;AAAA,UACpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAOAA;AAAAA,QAAA;AAAA,MACF,CACD,IAIC,SAAS,cACX,MAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,UAAU,MAAM;AAAA,UACd,QAAQ,aAAa,mBAAmB;AAAA,UACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UASAA;AAAAA,QAAA;AAAA,MACF,CACD,GAED,MAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,UAAU,MAAM;AAAA,UACd,QAAQ,aAAa,cAAc;AAAA,UACnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMAA;AAAAA,QAAA;AAAA,MACF,CACD,MAED,MAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,UAAU,MAAM;AAAA,UACd,QAAQ,aAAa,mBAAmB;AAAA,UACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAYAA;AAAAA,QAAA;AAAA,MACF,CACD,GAED,MAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,UAAU,MAAM;AAAA,UACd,QAAQ,aAAa,cAAc;AAAA,UACnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMAA;AAAAA,QAAA;AAAA,MACF,CACD;AAIH,UAAI;AACF,gBAAQ,eAAe,MAAM,kBAAkB,QAAQ,gBAAgB,CAAA,CAAE;AAAA,MAC3E,SAAS,OAAO;AACd,eAAO,KAAK,iBAAiB,QAAQ,MAAM,UAAU,KAAK;AAAA,MAC5D;AAGA,UAAI;AACF,gBAAQ,kBAAkB,MAAM,kBAAkB,QAAQ,mBAAmB,CAAA,CAAE;AAAA,MACjF,SAAS,OAAO;AACd,eAAO,KAAK,iBAAiB,QAAQ,MAAM,UAAU,KAAK;AAAA,MAC5D;AAEA,aAAA,MAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,UAAU,MAAM;AAAA,UACd,QAAQ,aAAa,cAAc;AAAA,UACnC,KAAK,UAAU,SAAS,MAAM,CAAC;AAAA,UAC/BA;AAAAA,QAAA;AAAA,MACF,CACD,GAEM;AAAA,IACT;AAAA,EAAA;AAEJ;AAEA,SAAS,eACP,UACA,OACA,iBACA;AACA,SAAO,OAAO,OAAO,EAAC,GAAG,iBAAiB,SAAS,CAAA,GAAI,UAAS;AAClE;AAEA,eAAe,kBAAkB,MAA0C;AACzE,QAAM,cAAc,OAAO,QAAQ,IAAI,GACjC,aAAqC,CAAA;AAE3C,aAAW,SAAS,aAAa;AAC/B,UAAM,CAAC,MAAM,OAAO,IAAI;AAExB,QAAI,SAAS;AACX,YAAM,gBAAgB,MAAM,iBAAiB,MAAM,EAAC,OAAO,SAAQ;AAEnE,iBAAW,IAAI,IAAI,gBAAgB,IAAI,aAAa,KAAK;AAAA,IAC3D;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,iBAAiB,KAAoE;AAC5F,MAAI,MACA;AAEJ,MAAI;AACF,WAAO,SAAS,wBAAwB,EAAC,UAAU,QAAQ,IAAA,CAAI,EAAE,KAAA,KAAU,QAC3E,QAAQ,SAAS,yBAAyB,EAAC,UAAU,QAAQ,KAAI,EAAE,KAAA,KAAU;AAAA,EAC/E,QAAQ;AAAA,EAER;AAEA,SAAO,EAAC,MAAM,MAAA;AAChB;ACzhBA,eAAsB,KAAK,SAAqD;AAC9E,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,8BAA8B;AAGhD,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,+BAA+B;AAGjD,QAAM,SAAS,gBAET,cAAc,QAAQ,QAAQ,KAAK,QAAQ,IAAI;AAErD,QAAM,kBAAkB,WAAW,GAEnC,MAAM,mBAAmB;AAAA,IACvB,KAAK,QAAQ;AAAA,IACb;AAAA,IACA,UAAU;AAAA,IACV;AAAA,EAAA,CACD;AACH;AAEA,eAAe,kBAAkB,aAAoC;AAGnE,MAAI,CAFW,WAAW,WAAW,GAExB;AACX,UAAM,OAAO,WAAW;AAExB;AAAA,EACF;AAIA,MAAI,EAFS,MAAM,MAAM,WAAW,GAAG,YAAA;AAGrC,UAAM,IAAI,MAAM,6CAA6C;AAK/D,MAAI,CAFU,MAAM,iBAAiB,WAAW;AAG9C,UAAM,IAAI,MAAM,oCAAoC;AAExD;AClDA,eAAsB,WAAW,SAAwC;AACvE,MAAI;AACF,UAAM,KAAK;AAAA,MACT,KAAK,QAAQ,IAAA;AAAA,MACb,MAAM,QAAQ;AAAA,IAAA,CACf;AAAA,EACH,SAAS,KAAK;AACZ,gBAAY,GAAG;AAAA,EACjB;AACF;","x_google_ignoreList":[2]}
|
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cac } from "cac";
|
|
2
|
-
var version = "10.5.
|
|
2
|
+
var version = "10.5.6";
|
|
3
3
|
const cli = cac();
|
|
4
4
|
cli.command("", "Check").alias("check").option("--strict", "Strict mode").option("--tsconfig [tsconfig]", "[string] tsconfig.json").action(async (options) => {
|
|
5
5
|
const { checkAction } = await import("./_chunks-es/checkAction.js");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sanity/pkg-utils",
|
|
3
|
-
"version": "10.5.
|
|
3
|
+
"version": "10.5.6",
|
|
4
4
|
"description": "Simple utilities for modern npm packages.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sanity-io",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@babel/core": "^7.29.7",
|
|
46
46
|
"@babel/preset-typescript": "^7.29.7",
|
|
47
|
-
"@microsoft/api-extractor": "^7.58.
|
|
47
|
+
"@microsoft/api-extractor": "^7.58.9",
|
|
48
48
|
"@microsoft/tsdoc-config": "^0.18.1",
|
|
49
49
|
"@optimize-lodash/rollup-plugin": "^6.0.0",
|
|
50
50
|
"@rollup/plugin-alias": "^6.0.0",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"chalk": "^5.6.2",
|
|
62
62
|
"chokidar": "^5.0.0",
|
|
63
63
|
"empathic": "^2.0.1",
|
|
64
|
-
"esbuild": "^0.28.
|
|
64
|
+
"esbuild": "^0.28.1",
|
|
65
65
|
"find-config": "^1.0.0",
|
|
66
66
|
"get-latest-version": "^6.0.1",
|
|
67
67
|
"git-url-parse": "^16.1.0",
|
|
@@ -70,11 +70,11 @@
|
|
|
70
70
|
"lightningcss": "^1.32.0",
|
|
71
71
|
"mkdirp": "^3.0.1",
|
|
72
72
|
"outdent": "^0.8.0",
|
|
73
|
-
"prettier": "^3.8.
|
|
73
|
+
"prettier": "^3.8.4",
|
|
74
74
|
"pretty-bytes": "^7.1.0",
|
|
75
75
|
"prompts": "^2.4.2",
|
|
76
76
|
"rimraf": "^6.1.3",
|
|
77
|
-
"rolldown": "1.1.
|
|
77
|
+
"rolldown": "1.1.1",
|
|
78
78
|
"rolldown-plugin-dts": "0.25.2",
|
|
79
79
|
"rollup": "^4.61.1",
|
|
80
80
|
"rollup-plugin-esbuild": "^6.2.1",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"browserslist-to-esbuild": "2.1.1",
|
|
98
98
|
"nanoexec": "^1.1.0",
|
|
99
99
|
"rollup-plugin-visualizer": "^7.0.1",
|
|
100
|
-
"semver": "^7.8.
|
|
100
|
+
"semver": "^7.8.4",
|
|
101
101
|
"typescript": "6.0.3",
|
|
102
102
|
"vitest": "^4.1.8",
|
|
103
103
|
"@sanity/tsconfig": "^2.1.0"
|