@sanity/pkg-utils 3.1.1 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/_chunks/{build-ttL1gCQE.cjs → build-5-t0rNQ5.cjs} +3 -3
  2. package/dist/_chunks/{build-ttL1gCQE.cjs.map → build-5-t0rNQ5.cjs.map} +1 -1
  3. package/dist/_chunks/{buildAction-2FuCIzEr.cjs → buildAction-XzgSYD6h.cjs} +2 -2
  4. package/dist/_chunks/{buildAction-2FuCIzEr.cjs.map → buildAction-XzgSYD6h.cjs.map} +1 -1
  5. package/dist/_chunks/{check-X8xKPDnl.cjs → check-K-76aP0H.cjs} +2 -2
  6. package/dist/_chunks/{check-X8xKPDnl.cjs.map → check-K-76aP0H.cjs.map} +1 -1
  7. package/dist/_chunks/{checkAction-uQWLDlBA.cjs → checkAction-ovZpdoTW.cjs} +2 -2
  8. package/dist/_chunks/{checkAction-uQWLDlBA.cjs.map → checkAction-ovZpdoTW.cjs.map} +1 -1
  9. package/dist/_chunks/{consoleSpy--ReK-_gE.cjs → consoleSpy-Njnvw7-i.cjs} +4 -4
  10. package/dist/_chunks/consoleSpy-Njnvw7-i.cjs.map +1 -0
  11. package/dist/_chunks/{index-jC5AhNHb.cjs → index-jKQCY5H6.cjs} +4 -5
  12. package/dist/_chunks/index-jKQCY5H6.cjs.map +1 -0
  13. package/dist/_chunks/{init-gkPbG69g.cjs → init-F_vsNarH.cjs} +78 -49
  14. package/dist/_chunks/init-F_vsNarH.cjs.map +1 -0
  15. package/dist/_chunks/{initAction-bz-ok0LO.cjs → initAction-dKWPRJL7.cjs} +2 -2
  16. package/dist/_chunks/{initAction-bz-ok0LO.cjs.map → initAction-dKWPRJL7.cjs.map} +1 -1
  17. package/dist/_chunks/{watch-UrB-haEA.cjs → watch-8dkaWImB.cjs} +3 -3
  18. package/dist/_chunks/{watch-UrB-haEA.cjs.map → watch-8dkaWImB.cjs.map} +1 -1
  19. package/dist/_chunks/{watchAction-1U3Gh9UD.cjs → watchAction-MPezXdut.cjs} +2 -2
  20. package/dist/_chunks/{watchAction-1U3Gh9UD.cjs.map → watchAction-MPezXdut.cjs.map} +1 -1
  21. package/dist/cli.cjs +5 -5
  22. package/dist/index.cjs +6 -6
  23. package/dist/index.d.ts +6 -5
  24. package/dist/index.js +5 -5
  25. package/dist/index.js.map +1 -1
  26. package/package.json +13 -42
  27. package/src/node/core/config/types.ts +1 -0
  28. package/src/node/core/pkg/types.ts +4 -4
  29. package/src/node/core/ts/loadTSConfig.ts +2 -2
  30. package/src/node/resolveBuildContext.ts +2 -2
  31. package/src/node/tasks/dts/createApiExtractorConfig.ts +3 -1
  32. package/src/node/tasks/dts/doExtract.ts +2 -0
  33. package/src/node/tasks/dts/extractTypes.ts +3 -0
  34. package/src/node/tasks/dts/getExtractMessagesConfig.ts +2 -2
  35. package/src/node/templates/default/template.ts +139 -92
  36. package/dist/_chunks/consoleSpy--ReK-_gE.cjs.map +0 -1
  37. package/dist/_chunks/index-jC5AhNHb.cjs.map +0 -1
  38. package/dist/_chunks/init-gkPbG69g.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"init-gkPbG69g.cjs","sources":["../../src/node/core/template/createFromTemplate.ts","../../src/node/core/template/define.ts","../../src/node/isEmptyDirectory.ts","../../src/node/templates/default/template.ts","../../src/node/init.ts"],"sourcesContent":["import {writeFile} from 'fs/promises'\nimport {mkdirp} from 'mkdirp'\nimport {dirname, relative, resolve} from 'path'\nimport prompts from 'prompts'\n\nimport {Logger} from '../../logger'\nimport {PkgTemplate} from './types'\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 {PkgTemplateOption} from './types'\n\n/** @public */\nexport function defineTemplateOption<T>(option: PkgTemplateOption<T>): PkgTemplateOption<T> {\n return option\n}\n","import {readdir} from 'fs/promises'\n\nexport async function isEmptyDirectory(dirPath: string): Promise<boolean> {\n return (await readdir(dirPath)).length === 0\n}\n","import getLatestVersion from 'get-latest-version'\nimport gitUrlParse from 'git-url-parse'\nimport {outdent} from 'outdent'\nimport parseGitConfig from 'parse-git-config'\nimport {resolve} from 'path'\nimport prettier, {Config as PrettierConfig} from 'prettier'\n\nimport {defineTemplateOption, isRecord, PackageJSON, PkgTemplate, PkgTemplateFile} from '../../core'\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 = await parseGitConfig({cwd, type: 'global'})\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 (err) {\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?.name,\n }),\n defineTemplateOption({\n name: 'authorEmail',\n type: 'string',\n description: 'package author email',\n initial: gitConfig?.user?.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: '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 prettierConfig: PrettierConfig = {\n bracketSpacing: false,\n printWidth: 100,\n semi: false,\n singleQuote: true,\n tabWidth: 2,\n plugins: ['prettier-plugin-packagejson'],\n overrides: [\n {\n files: ['*.yml'],\n options: {\n singleQuote: false,\n },\n },\n ],\n }\n\n const pkgJson: PackageJSON & {\n prettier?: PrettierConfig\n ['lint-staged']?: Record<string, string[]>\n } = {\n name,\n version: '0.0.0',\n description: options.description ?? undefined,\n keywords: [],\n license: options.license,\n author,\n type: 'module',\n exports: {\n '.': {\n types: undefined,\n source: features.typescript ? './src/index.ts' : './src/index.js',\n require: './dist/index.cjs',\n import: './dist/index.js',\n default: './dist/index.js',\n },\n './package.json': './package.json',\n },\n main: './dist/index.cjs',\n module: './dist/index.js',\n source: features.typescript ? './src/index.ts' : './src/index.js',\n files: ['dist', 'src'],\n scripts: {\n build: 'run-s clean pkg:build pkg:check',\n clean: 'rimraf dist',\n format: 'prettier --write --cache --ignore-unknown .',\n 'pkg:build': 'pkg build --strict',\n 'pkg:check': 'pkg check --strict',\n },\n prettier: prettierConfig,\n 'lint-staged': {\n '*': ['prettier --write --cache --ignore-unknown'],\n },\n dependencies: {},\n devDependencies: {\n '@sanity/pkg-utils': '*',\n 'lint-staged': '*',\n 'npm-run-all': '*',\n prettier: '*',\n 'prettier-plugin-packagejson': '*',\n rimraf: '*',\n },\n engines: {\n node: '>=18.0.0',\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\n .DS_Store\n etc\n dist\n node_modules\n `,\n })\n\n files.push({\n name: '.prettierignore',\n contents: outdent`\n /dist\n /pnpm-lock.yaml\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 const mainExport = pkgJson.exports?.['.']\n\n if (isRecord(mainExport)) {\n mainExport.types = './dist/index.d.ts'\n }\n\n pkgJson.scripts = {\n ...pkgJson.scripts,\n ['type:check']: 'tsc --build',\n }\n\n const devDependencies = pkgJson.devDependencies\n\n if (isRecord(devDependencies)) {\n devDependencies['typescript'] = '*'\n }\n }\n\n if (features.eslint) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const eslintConfig: any = {\n root: true,\n env: {\n browser: true,\n es6: true,\n node: true,\n },\n extends: ['eslint:recommended', 'plugin:prettier/recommended'],\n parserOptions: {\n ecmaVersion: 2020,\n sourceType: 'module',\n },\n plugins: ['import', 'prettier'],\n rules: {\n 'no-console': 'error',\n 'no-shadow': 'error',\n 'no-warning-comments': ['warn', {location: 'start', terms: ['todo', 'fixme']}],\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: '*',\n 'eslint-config-prettier': '*',\n 'eslint-plugin-import': '*',\n 'eslint-plugin-prettier': '*',\n }\n\n if (features.typescript) {\n pkgJson.devDependencies = {\n ...pkgJson.devDependencies,\n '@typescript-eslint/eslint-plugin': '*',\n '@typescript-eslint/parser': '*',\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 'plugin:prettier/recommended',\n 'plugin:@typescript-eslint/eslint-recommended',\n 'plugin:@typescript-eslint/recommended',\n ].filter(Boolean),\n plugins: ['import', '@typescript-eslint', 'prettier'].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 format(\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 format(\n resolve(packagePath, 'tsconfig.settings.json'),\n outdent`\n {\n \"compilerOptions\": {\n \"module\": \"ES2020\",\n \"target\": \"ES2020\",\n \"declaration\": true,\n \"declarationMap\": true,\n \"sourceMap\": true,\n\n // Strict type-checking\n \"strict\": true,\n \"noImplicitAny\": true,\n \"strictNullChecks\": true,\n \"strictFunctionTypes\": true,\n \"strictPropertyInitialization\": true,\n \"noImplicitThis\": true,\n \"alwaysStrict\": true,\n\n // Additional checks\n \"noUnusedLocals\": true,\n \"noUnusedParameters\": true,\n \"noImplicitReturns\": true,\n \"noFallthroughCasesInSwitch\": true,\n \"skipLibCheck\": true,\n\n // Module resolution\n \"moduleResolution\": \"node\",\n \"allowSyntheticDefaultImports\": true,\n \"esModuleInterop\": true\n }\n }\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'tsconfig.dist.json',\n contents: await format(\n resolve(packagePath, 'tsconfig.dist.json'),\n outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./src\"],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\",\n \"emitDeclarationOnly\": true,\n \"resolveJsonModule\": true\n }\n }\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'tsconfig.json',\n contents: await format(\n resolve(packagePath, 'tsconfig.json'),\n outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./*.cjs\", \"./*.ts\", \"./package.config.ts\", \"./src\"],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\",\n \"noEmit\": true,\n \"allowJs\": true,\n \"resolveJsonModule\": true,\n }\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 format(\n resolve(packagePath, 'package.config.ts'),\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 // 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 format(\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 format(\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 format(\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 format(\n resolve(packagePath, 'package.json'),\n JSON.stringify(pkgJson, null, 2),\n prettierConfig,\n ),\n })\n\n return files\n },\n }\n}\n\nfunction format(filepath: string, input: string, prettierOptions: PrettierConfig) {\n return prettier.format(input, {...prettierOptions, filepath})\n}\n\nasync function resolveLatestDeps(deps: Record<string, string>) {\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 const latestVersion = await getLatestVersion(name, version)\n\n latestDeps[name] = latestVersion ? `^${latestVersion}` : version\n }\n\n return latestDeps\n}\n","import {lstat} from 'fs/promises'\nimport {mkdirp} from 'mkdirp'\nimport {resolve} from 'path'\n\nimport {createFromTemplate} from './core/template'\nimport {fileExists} from './fileExists'\nimport {isEmptyDirectory} from './isEmptyDirectory'\nimport {createLogger} from './logger'\nimport {defaultTemplate} from './templates'\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"],"names":["promptsTypes","string","createFromTemplate","options","cwd","logger","packagePath","template","templateOrResolver","log","relative","templateOptions","templateOption","templateValidate","validate","res","prompts","default","type","name","message","description","prev","initial","onCancel","process","exit","parse","features","templateFeature","optional","concat","confirm","files","getFiles","sort","a","b","localeCompare","file","filePath","resolve","mkdirp","dirname","writeFile","contents","trim","success","defineTemplateOption","option","isEmptyDirectory","dirPath","readdir","length","RE_NAME","defaultTemplate","_ref","_gitConfig$user","_gitConfig$user2","gitConfig","parseGitConfig","v","gitUrlParse","err","result","source","owner","_options$repo","repo","match","exec","Error","scope","split","fullName","user","email","_filter$join","_options$description","pkgName","author","authorName","authorEmail","filter","Boolean","join","prettierConfig","bracketSpacing","printWidth","semi","singleQuote","tabWidth","plugins","overrides","pkgJson","version","keywords","license","exports","types","typescript","require","import","main","module","scripts","build","clean","format","prettier","dependencies","devDependencies","rimraf","engines","node","push","outdent","_templateObject","_taggedTemplateLiteral","_templateObject2","_templateObject3","repository","url","bugs","homepage","_pkgJson$exports","mainExport","isRecord","eslint","eslintConfig","root","env","browser","es6","extends","parserOptions","ecmaVersion","sourceType","rules","location","terms","_templateObject4","lint","eslintConfigOverride","parser","project","_templateObject5","JSON","stringify","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_pkgJson$dependencies","resolveLatestDeps","error","warn","_pkgJson$devDependenc","filepath","input","prettierOptions","deps","depsEntries","Object","entries","latestDeps","entry","latestVersion","getLatestVersion","init","path","createLogger","ensurePackagePath","exists","fileExists","dir","lstat","isDirectory","empty"],"mappings":"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"}