@sanity/plugin-kit 3.1.10 → 3.1.11

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 (29) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/_chunks/{cli-b62657e9.js → cli-Wd1KIVDi.js} +7 -7
  4. package/dist/_chunks/{cli-b62657e9.js.map → cli-Wd1KIVDi.js.map} +1 -1
  5. package/dist/_chunks/{init-3120a384.js → init-5h0qT4Si.js} +29 -31
  6. package/dist/_chunks/init-5h0qT4Si.js.map +1 -0
  7. package/dist/_chunks/{init-cec2f4ef.js → init-7PO3ckQZ.js} +4 -4
  8. package/dist/_chunks/{init-cec2f4ef.js.map → init-7PO3ckQZ.js.map} +1 -1
  9. package/dist/_chunks/{inject-bff6e27b.js → inject-dEkit_VE.js} +6 -6
  10. package/dist/_chunks/{inject-bff6e27b.js.map → inject-dEkit_VE.js.map} +1 -1
  11. package/dist/_chunks/{link-watch-9f9e4c95.js → link-watch-gjJZIMKf.js} +9 -11
  12. package/dist/_chunks/{link-watch-9f9e4c95.js.map → link-watch-gjJZIMKf.js.map} +1 -1
  13. package/dist/_chunks/{package-7cb0d20a.js → package-esTAlA-W.js} +8 -9
  14. package/dist/_chunks/{package-7cb0d20a.js.map → package-esTAlA-W.js.map} +1 -1
  15. package/dist/_chunks/{package-388ef15c.js → package-yXL1pPXe.js} +79 -81
  16. package/dist/_chunks/{package-388ef15c.js.map → package-yXL1pPXe.js.map} +1 -1
  17. package/dist/_chunks/{ts-d368b64b.js → ts-DjETsLGv.js} +4 -4
  18. package/dist/_chunks/{ts-d368b64b.js.map → ts-DjETsLGv.js.map} +1 -1
  19. package/dist/_chunks/{verify-package-dcd78bcb.js → verify-package-8RX50rZW.js} +10 -11
  20. package/dist/_chunks/{verify-package-dcd78bcb.js.map → verify-package-8RX50rZW.js.map} +1 -1
  21. package/dist/_chunks/{verify-studio-1bc674db.js → verify-studio-ybZTH8nM.js} +9 -10
  22. package/dist/_chunks/{verify-studio-1bc674db.js.map → verify-studio-ybZTH8nM.js.map} +1 -1
  23. package/dist/_chunks/{version-d0278a75.js → version-VsJ55gag.js} +3 -3
  24. package/dist/_chunks/{version-d0278a75.js.map → version-VsJ55gag.js.map} +1 -1
  25. package/dist/cli.js +1 -1
  26. package/package.json +7 -8
  27. package/src/npm/package.ts +1 -1
  28. package/src/presets/semver-workflow.ts +2 -3
  29. package/dist/_chunks/init-3120a384.js.map +0 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2023 Sanity.io
3
+ Copyright (c) 2024 Sanity.io
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -48,7 +48,7 @@ Check the [FAQ](#faq) fro more on these.
48
48
 
49
49
  `@sanity/plugin-kit` assumes the plugin will use [@sanity/pkg-utils](https://github.com/sanity-io/pkg-utils#sanitypkg-utils) for build and watch:
50
50
 
51
- > npm install --save-dev @sanity/plugin-kit
51
+ > npm install --save-dev @sanity/pkg-utils
52
52
 
53
53
  ## Initialize a new plugin
54
54
 
@@ -72,32 +72,32 @@ var log = {
72
72
  var commands = {
73
73
  init: async options => {
74
74
  await (await Promise.resolve().then(function () {
75
- return require('./init-cec2f4ef.js');
75
+ return require('./init-7PO3ckQZ.js');
76
76
  })).default(options);
77
77
  },
78
78
  inject: async options => {
79
79
  await (await Promise.resolve().then(function () {
80
- return require('./inject-bff6e27b.js');
80
+ return require('./inject-dEkit_VE.js');
81
81
  })).default(options);
82
82
  },
83
83
  "link-watch": async options => {
84
84
  await (await Promise.resolve().then(function () {
85
- return require('./link-watch-9f9e4c95.js');
85
+ return require('./link-watch-gjJZIMKf.js');
86
86
  })).default(options);
87
87
  },
88
88
  "verify-package": async options => {
89
89
  await (await Promise.resolve().then(function () {
90
- return require('./verify-package-dcd78bcb.js');
90
+ return require('./verify-package-8RX50rZW.js');
91
91
  })).default(options);
92
92
  },
93
93
  "verify-studio": async options => {
94
94
  await (await Promise.resolve().then(function () {
95
- return require('./verify-studio-1bc674db.js');
95
+ return require('./verify-studio-ybZTH8nM.js');
96
96
  })).default(options);
97
97
  },
98
98
  version: async options => {
99
99
  await (await Promise.resolve().then(function () {
100
- return require('./version-d0278a75.js');
100
+ return require('./version-VsJ55gag.js');
101
101
  })).default(options);
102
102
  }
103
103
  };
@@ -165,4 +165,4 @@ exports.incompatiblePluginPackage = incompatiblePluginPackage;
165
165
  exports.log = log;
166
166
  exports.sharedFlags = sharedFlags;
167
167
  exports.urls = urls;
168
- //# sourceMappingURL=cli-b62657e9.js.map
168
+ //# sourceMappingURL=cli-Wd1KIVDi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-b62657e9.js","sources":["../../src/util/log.ts","../../src/cmds/index.ts","../../src/sharedFlags.ts","../../src/constants.ts","../../src/cli.ts"],"sourcesContent":["// Note: This is _specifically_ meant for CLI usage,\n// I realize that \"singletons\" are bad.\n\nimport chalk from 'chalk'\n\nlet beQuiet = false\nlet beVerbose = false\n\nfunction setVerbosity({verbose, silent}: {verbose: boolean; silent: boolean}) {\n if (silent) {\n beVerbose = false\n beQuiet = true\n } else if (verbose) {\n beVerbose = true\n beQuiet = false\n }\n}\n\nexport default {\n setVerbosity: setVerbosity,\n\n // Bypasses any checks, prints regardless (only use for things like `cli --version`)\n msg: (msg: any, ...args: any[]) => !beQuiet && console.log(msg, ...args),\n\n // Debug only printed on --verbose\n debug: (msg: any, ...args: any[]) =>\n !beQuiet && beVerbose && console.debug(`${chalk.bgBlack.white('[debug]')} ${msg}`, ...args),\n\n // Success messages only printed if not --silent\n success: (msg: any, ...args: any[]) =>\n !beQuiet && console.info(`${chalk.bgBlack.greenBright('[success]')} ${msg}`, ...args),\n\n // Info only printed if not --silent (\"standard\" level)\n info: (msg: any, ...args: any[]) =>\n !beQuiet && console.info(`${chalk.bgBlack.cyanBright('[info]')} ${msg}`, ...args),\n\n // Warning only printed if not --silent\n warn: (msg: any, ...args: any[]) =>\n !beQuiet && console.warn(`${chalk.bgBlack.yellowBright('[warn]')} ${msg}`, ...args),\n\n // Errors are always printed\n error: (msg: any, ...args: any[]) =>\n console.error(`${chalk.bgBlack.redBright('[error]')} ${msg}`, ...args),\n}\n","export default {\n init: async (options: {argv: string[]}) => {\n await (await import('./init')).default(options)\n },\n inject: async (options: {argv: string[]}) => {\n await (await import('./inject')).default(options)\n },\n 'link-watch': async (options: {argv: string[]}) => {\n await (await import('./link-watch')).default(options)\n },\n 'verify-package': async (options: {argv: string[]}) => {\n await (await import('./verify-package')).default(options)\n },\n 'verify-studio': async (options: {argv: string[]}) => {\n await (await import('./verify-studio')).default(options)\n },\n version: async (options: {argv: string[]}) => {\n await (await import('./version')).default(options)\n },\n}\n","export default {\n debug: {\n default: false,\n type: 'boolean',\n },\n silent: {\n type: 'boolean',\n default: false,\n },\n verbose: {\n type: 'boolean',\n default: false,\n },\n} as const\n","export const cliName = '@sanity/plugin-kit'\n\nexport const urls = {\n refDocs: 'https://beta.sanity.io/docs/reference',\n migrationGuideStudio: 'https://beta.sanity.io/docs/platform/v2-to-v3',\n migrationGuidePlugin: 'https://beta.sanity.io/docs/platform/v2-to-v3/plugins',\n pluginReadme: 'https://github.com/sanity-io/plugin-kit',\n incompatiblePlugin: 'https://github.com/sanity-io/incompatible-plugin',\n sanityExchange: 'https://www.sanity.io/exchange',\n linterPackage: 'https://github.com/sanity-io/eslint-config-no-v2-imports',\n}\n\nexport const incompatiblePluginPackage = '@sanity/incompatible-plugin'\n\nexport const defaultOutDir = 'dist'\n","import meow from 'meow'\nimport log from './util/log'\nimport commands from './cmds'\nimport sharedFlags from './sharedFlags'\nimport {cliName} from './constants'\n\nexport async function cliEntry(argv = process.argv, autoExit = true) {\n const cli = meow(\n `\n\tUsage\n\t $ ${cliName} [--help] [--debug] <command> [<args>]\n\n These are common commands used in various situations:\n\n init Create a new Sanity plugin\n inject Inject config into an existing Sanity v3 plugin\n verify-package Check that a Sanity plugin package follows V3 conventions. Prints upgrade steps.\n verify-studio Check that a Sanity Studio follows V3 conventions. Prints upgrade steps.\n link-watch Recompiles plugin automatically on changes and runs yalc push --publish\n version Show the version of ${cliName} currently installed\n\n Options\n --silent Do not print info and warning messages\n --verbose Log everything. This option conflicts with --silent\n --debug Print stack trace on errors\n --version Output the version number\n --help Output usage information\n\n Examples\n # Init a new plugin in current directory\n $ ${cliName} init\n\n # Init a new plugin in my-sanity-plugin directory\n $ ${cliName} init my-sanity-plugin\n\n # Check that a Sanity plugin package in current directory follows V3 conventions\n $ ${cliName} verify-package\n\n # Check that a Sanity Studio in current directory follows V3 conventions\n $ ${cliName} verify-studio\n`,\n {\n autoHelp: false,\n flags: sharedFlags,\n argv: argv.slice(2),\n },\n )\n\n const commandName = cli.input[0]\n if (!commandName) {\n cli.showHelp() // Exits\n }\n\n if (!(commandName in commands)) {\n console.error(`Unknown command \"${commandName}\"`)\n cli.showHelp() // Exits\n }\n\n if (cli.flags.silent && cli.flags.verbose) {\n log.error(`--silent and --verbose are mutually exclusive`)\n cli.showHelp() // Exits\n }\n\n // Lazy-load command\n const cmd = commands[commandName as keyof typeof commands]\n\n try {\n log.setVerbosity(cli.flags)\n await cmd({argv: argv.slice(3)})\n } catch (err: any) {\n log.error(err instanceof TypeError || cli.flags.debug ? err.stack : err.message)\n\n // eslint-disable-next-line no-process-exit\n process.exit(1)\n }\n}\n"],"names":["beQuiet","beVerbose","setVerbosity","_ref","verbose","silent","log","msg","_len","arguments","length","args","Array","_key","console","debug","_len2","concat","chalk","bgBlack","white","success","_len3","info","default","greenBright","_len4","cyanBright","warn","_len5","yellowBright","error","_len6","_key6","redBright","commands","init","options","Promise","resolve","then","require","inject","version","sharedFlags","type","cliName","urls","refDocs","migrationGuideStudio","migrationGuidePlugin","pluginReadme","incompatiblePlugin","sanityExchange","linterPackage","incompatiblePluginPackage","defaultOutDir","cliEntry","argv","undefined","process","autoExit","cli","meow","autoHelp","flags","slice","commandName","input","showHelp","cmd","err","TypeError","stack","message","exit"],"mappings":"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"}
1
+ {"version":3,"file":"cli-Wd1KIVDi.js","sources":["../../src/util/log.ts","../../src/cmds/index.ts","../../src/sharedFlags.ts","../../src/constants.ts","../../src/cli.ts"],"sourcesContent":["// Note: This is _specifically_ meant for CLI usage,\n// I realize that \"singletons\" are bad.\n\nimport chalk from 'chalk'\n\nlet beQuiet = false\nlet beVerbose = false\n\nfunction setVerbosity({verbose, silent}: {verbose: boolean; silent: boolean}) {\n if (silent) {\n beVerbose = false\n beQuiet = true\n } else if (verbose) {\n beVerbose = true\n beQuiet = false\n }\n}\n\nexport default {\n setVerbosity: setVerbosity,\n\n // Bypasses any checks, prints regardless (only use for things like `cli --version`)\n msg: (msg: any, ...args: any[]) => !beQuiet && console.log(msg, ...args),\n\n // Debug only printed on --verbose\n debug: (msg: any, ...args: any[]) =>\n !beQuiet && beVerbose && console.debug(`${chalk.bgBlack.white('[debug]')} ${msg}`, ...args),\n\n // Success messages only printed if not --silent\n success: (msg: any, ...args: any[]) =>\n !beQuiet && console.info(`${chalk.bgBlack.greenBright('[success]')} ${msg}`, ...args),\n\n // Info only printed if not --silent (\"standard\" level)\n info: (msg: any, ...args: any[]) =>\n !beQuiet && console.info(`${chalk.bgBlack.cyanBright('[info]')} ${msg}`, ...args),\n\n // Warning only printed if not --silent\n warn: (msg: any, ...args: any[]) =>\n !beQuiet && console.warn(`${chalk.bgBlack.yellowBright('[warn]')} ${msg}`, ...args),\n\n // Errors are always printed\n error: (msg: any, ...args: any[]) =>\n console.error(`${chalk.bgBlack.redBright('[error]')} ${msg}`, ...args),\n}\n","export default {\n init: async (options: {argv: string[]}) => {\n await (await import('./init')).default(options)\n },\n inject: async (options: {argv: string[]}) => {\n await (await import('./inject')).default(options)\n },\n 'link-watch': async (options: {argv: string[]}) => {\n await (await import('./link-watch')).default(options)\n },\n 'verify-package': async (options: {argv: string[]}) => {\n await (await import('./verify-package')).default(options)\n },\n 'verify-studio': async (options: {argv: string[]}) => {\n await (await import('./verify-studio')).default(options)\n },\n version: async (options: {argv: string[]}) => {\n await (await import('./version')).default(options)\n },\n}\n","export default {\n debug: {\n default: false,\n type: 'boolean',\n },\n silent: {\n type: 'boolean',\n default: false,\n },\n verbose: {\n type: 'boolean',\n default: false,\n },\n} as const\n","export const cliName = '@sanity/plugin-kit'\n\nexport const urls = {\n refDocs: 'https://beta.sanity.io/docs/reference',\n migrationGuideStudio: 'https://beta.sanity.io/docs/platform/v2-to-v3',\n migrationGuidePlugin: 'https://beta.sanity.io/docs/platform/v2-to-v3/plugins',\n pluginReadme: 'https://github.com/sanity-io/plugin-kit',\n incompatiblePlugin: 'https://github.com/sanity-io/incompatible-plugin',\n sanityExchange: 'https://www.sanity.io/exchange',\n linterPackage: 'https://github.com/sanity-io/eslint-config-no-v2-imports',\n}\n\nexport const incompatiblePluginPackage = '@sanity/incompatible-plugin'\n\nexport const defaultOutDir = 'dist'\n","import meow from 'meow'\nimport log from './util/log'\nimport commands from './cmds'\nimport sharedFlags from './sharedFlags'\nimport {cliName} from './constants'\n\nexport async function cliEntry(argv = process.argv, autoExit = true) {\n const cli = meow(\n `\n\tUsage\n\t $ ${cliName} [--help] [--debug] <command> [<args>]\n\n These are common commands used in various situations:\n\n init Create a new Sanity plugin\n inject Inject config into an existing Sanity v3 plugin\n verify-package Check that a Sanity plugin package follows V3 conventions. Prints upgrade steps.\n verify-studio Check that a Sanity Studio follows V3 conventions. Prints upgrade steps.\n link-watch Recompiles plugin automatically on changes and runs yalc push --publish\n version Show the version of ${cliName} currently installed\n\n Options\n --silent Do not print info and warning messages\n --verbose Log everything. This option conflicts with --silent\n --debug Print stack trace on errors\n --version Output the version number\n --help Output usage information\n\n Examples\n # Init a new plugin in current directory\n $ ${cliName} init\n\n # Init a new plugin in my-sanity-plugin directory\n $ ${cliName} init my-sanity-plugin\n\n # Check that a Sanity plugin package in current directory follows V3 conventions\n $ ${cliName} verify-package\n\n # Check that a Sanity Studio in current directory follows V3 conventions\n $ ${cliName} verify-studio\n`,\n {\n autoHelp: false,\n flags: sharedFlags,\n argv: argv.slice(2),\n },\n )\n\n const commandName = cli.input[0]\n if (!commandName) {\n cli.showHelp() // Exits\n }\n\n if (!(commandName in commands)) {\n console.error(`Unknown command \"${commandName}\"`)\n cli.showHelp() // Exits\n }\n\n if (cli.flags.silent && cli.flags.verbose) {\n log.error(`--silent and --verbose are mutually exclusive`)\n cli.showHelp() // Exits\n }\n\n // Lazy-load command\n const cmd = commands[commandName as keyof typeof commands]\n\n try {\n log.setVerbosity(cli.flags)\n await cmd({argv: argv.slice(3)})\n } catch (err: any) {\n log.error(err instanceof TypeError || cli.flags.debug ? err.stack : err.message)\n\n // eslint-disable-next-line no-process-exit\n process.exit(1)\n }\n}\n"],"names":["beQuiet","beVerbose","setVerbosity","_ref","verbose","silent","log","msg","_len","arguments","length","args","Array","_key","console","debug","_len2","concat","chalk","bgBlack","white","success","_len3","info","default","greenBright","_len4","cyanBright","warn","_len5","yellowBright","error","_len6","_key6","redBright","commands","init","options","Promise","resolve","then","require","inject","version","sharedFlags","type","cliName","urls","refDocs","migrationGuideStudio","migrationGuidePlugin","pluginReadme","incompatiblePlugin","sanityExchange","linterPackage","incompatiblePluginPackage","defaultOutDir","cliEntry","argv","undefined","process","autoExit","cli","meow","autoHelp","flags","slice","commandName","input","showHelp","cmd","err","TypeError","stack","message","exit"],"mappings":"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"}
@@ -5,14 +5,14 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
5
5
  var path = require('path');
6
6
  var licenses = require('@rexxars/choosealicense-list');
7
7
  var gitRemoteOriginUrl = require('git-remote-origin-url');
8
- var cli = require('./cli-b62657e9.js');
8
+ var cli = require('./cli-Wd1KIVDi.js');
9
9
  var xdgBasedir = require('xdg-basedir');
10
10
  var gitUserInfo = require('git-user-info');
11
11
  var emailValidator = require('email-validator');
12
- var _package$1 = require('./package-388ef15c.js');
12
+ var _package$1 = require('./package-yXL1pPXe.js');
13
13
  var getIt = require('get-it');
14
14
  var middleware = require('get-it/middleware');
15
- var _package = require('./package-7cb0d20a.js');
15
+ var _package = require('./package-esTAlA-W.js');
16
16
  var outdent = require('outdent');
17
17
  var chalk = require('chalk');
18
18
  function _interopDefaultCompat(e) {
@@ -38,7 +38,7 @@ async function getUserInfo(_ref, pkg) {
38
38
  flags
39
39
  } = _ref;
40
40
  const userInfo = getPackageUserInfo({
41
- author: (_flags$author = flags.author) !== null && _flags$author !== void 0 ? _flags$author : pkg == null ? void 0 : pkg.author
41
+ author: (_flags$author = flags.author) !== null && _flags$author !== void 0 ? _flags$author : pkg === null || pkg === void 0 ? void 0 : pkg.author
42
42
  }) || (await getSanityUserInfo()) || (await getGitUserInfo());
43
43
  if (requireUserConfirmation) {
44
44
  return promptForInfo(userInfo);
@@ -46,7 +46,7 @@ async function getUserInfo(_ref, pkg) {
46
46
  return userInfo;
47
47
  }
48
48
  function getPackageUserInfo(pkg) {
49
- let author = pkg == null ? void 0 : pkg.author;
49
+ let author = pkg === null || pkg === void 0 ? void 0 : pkg.author;
50
50
  if (!author) {
51
51
  return void 0;
52
52
  }
@@ -86,7 +86,7 @@ async function getSanityUserInfo() {
86
86
  try {
87
87
  var _xdgBasedir__default$;
88
88
  const data = await _package$1.readJsonFile(path__default.default.join((_xdgBasedir__default$ = xdgBasedir__default.default.config) !== null && _xdgBasedir__default$ !== void 0 ? _xdgBasedir__default$ : "", "sanity", "config.json"));
89
- const token = data == null ? void 0 : data.authToken;
89
+ const token = data === null || data === void 0 ? void 0 : data.authToken;
90
90
  if (!token) {
91
91
  return void 0;
92
92
  }
@@ -137,7 +137,7 @@ function generateReadme(data) {
137
137
  license,
138
138
  description
139
139
  } = data;
140
- return outdent__default.default(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n # ", "\n\n ", "\n\n ", "\n\n ## Usage\n\n Add it as a plugin in `sanity.config.ts` (or .js):\n\n ```ts\n import {defineConfig} from 'sanity'\n import {myPlugin} from '", "'\n\n export default defineConfig({\n //...\n plugins: [myPlugin({})],\n })\n ```\n\n ", "\n ", "\n "], ["\n # ", "\n\n ", "\n\n ", "\n\n ## Usage\n\n Add it as a plugin in \\`sanity.config.ts\\` (or .js):\n\n \\`\\`\\`ts\n import {defineConfig} from 'sanity'\n import {myPlugin} from '", "'\n\n export default defineConfig({\n //...\n plugins: [myPlugin({})],\n })\n \\`\\`\\`\n\n ", "\n ", "\n "])), pluginName, v3BannerNotice(), installationSnippet(pluginName !== null && pluginName !== void 0 ? pluginName : "unknown"), pluginName, getLicenseText(license == null ? void 0 : license.id, (user == null ? void 0 : user.name) ? user : void 0), developTestSnippet()) + "\n";
140
+ return outdent__default.default(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n # ", "\n\n ", "\n\n ", "\n\n ## Usage\n\n Add it as a plugin in `sanity.config.ts` (or .js):\n\n ```ts\n import {defineConfig} from 'sanity'\n import {myPlugin} from '", "'\n\n export default defineConfig({\n //...\n plugins: [myPlugin({})],\n })\n ```\n\n ", "\n ", "\n "], ["\n # ", "\n\n ", "\n\n ", "\n\n ## Usage\n\n Add it as a plugin in \\`sanity.config.ts\\` (or .js):\n\n \\`\\`\\`ts\n import {defineConfig} from 'sanity'\n import {myPlugin} from '", "'\n\n export default defineConfig({\n //...\n plugins: [myPlugin({})],\n })\n \\`\\`\\`\n\n ", "\n ", "\n "])), pluginName, v3BannerNotice(), installationSnippet(pluginName !== null && pluginName !== void 0 ? pluginName : "unknown"), pluginName, getLicenseText(license === null || license === void 0 ? void 0 : license.id, user !== null && user !== void 0 && user.name ? user : void 0), developTestSnippet()) + "\n";
141
141
  }
142
142
  function v3BannerNotice() {
143
143
  return "> This is a **Sanity Studio v3** plugin.";
@@ -149,14 +149,15 @@ function developTestSnippet() {
149
149
  return outdent__default.default(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n ## Develop & test\n\n This plugin uses [@sanity/plugin-kit](https://github.com/sanity-io/plugin-kit)\n with default configuration for build & watch scripts.\n\n See [Testing a plugin in Sanity Studio](https://github.com/sanity-io/plugin-kit#testing-a-plugin-in-sanity-studio)\n on how to run this plugin with hotreload in the studio.\n "])));
150
150
  }
151
151
  function getLicenseText(licenseId, user) {
152
+ var _licenseName;
152
153
  if (!licenseId) {
153
154
  return "";
154
155
  }
155
156
  let licenseName = licenses__default.default.find(licenseId).title;
156
- licenseName = licenseName == null ? void 0 : licenseName.replace(/\s+license$/i, "");
157
+ licenseName = (_licenseName = licenseName) === null || _licenseName === void 0 ? void 0 : _licenseName.replace(/\s+license$/i, "");
157
158
  let licenseText = "## License\n";
158
- if (licenseName && (user == null ? void 0 : user.name)) {
159
- licenseText = "".concat(licenseText, "\n[").concat(licenseName, "](LICENSE) \xA9 ").concat(user == null ? void 0 : user.name, "\n");
159
+ if (licenseName && user !== null && user !== void 0 && user.name) {
160
+ licenseText = "".concat(licenseText, "\n[").concat(licenseName, "](LICENSE) \xA9 ").concat(user === null || user === void 0 ? void 0 : user.name, "\n");
160
161
  } else if (licenseName) {
161
162
  licenseText = "".concat(licenseText, "\n[").concat(licenseName, "](LICENSE)\n");
162
163
  } else {
@@ -303,9 +304,8 @@ async function semverWorkflowDependencies() {
303
304
  return _package$1.resolveLatestVersions(["@commitlint/cli", "@commitlint/config-conventional", "@sanity/semantic-release-preset", "husky", "lint-staged"]);
304
305
  }
305
306
  function readmeBaseurl(pkg) {
306
- var _ref2, _ref3;
307
- var _a;
308
- return ((_ref2 = (_ref3 = (_a = pkg.repository) == null ? void 0 : _a.url) !== null && _ref3 !== void 0 ? _ref3 : pkg.homepage) !== null && _ref2 !== void 0 ? _ref2 : "TODO").replace(/.+:\/\//g, "https://").replace(/\.git/g, "").replace(/git@github.com\//g, "github.com/").replace(/git@github.com:/g, "https://github.com/").replace(/#.+/g, "");
307
+ var _ref2, _pkg$repository$url, _pkg$repository;
308
+ return ((_ref2 = (_pkg$repository$url = (_pkg$repository = pkg.repository) === null || _pkg$repository === void 0 ? void 0 : _pkg$repository.url) !== null && _pkg$repository$url !== void 0 ? _pkg$repository$url : pkg.homepage) !== null && _ref2 !== void 0 ? _ref2 : "TODO").replace(/.+:\/\//g, "https://").replace(/\.git/g, "").replace(/git@github.com\//g, "github.com/").replace(/git@github.com:/g, "https://github.com/").replace(/#.+/g, "");
309
309
  }
310
310
  const renovatePreset = {
311
311
  name: "renovatebot",
@@ -435,13 +435,13 @@ async function devDependencies() {
435
435
  return _package$1.resolveLatestVersions(["@sanity/ui-workshop", "@sanity/icons", "@sanity/ui", "react", "react-dom", "styled-components"]);
436
436
  }
437
437
  const presets = [semverWorkflowPreset, renovatePreset, ui, uiWorkshop];
438
- const presetNames = presets.map(p => p == null ? void 0 : p.name);
438
+ const presetNames = presets.map(p => p === null || p === void 0 ? void 0 : p.name);
439
439
  function presetHelpList(padStart) {
440
440
  return presets.map(p => "".concat("".padStart(padStart)).concat(p.name.padEnd(20)).concat(p.description)).join("\n");
441
441
  }
442
442
  async function injectPresets(options) {
443
- var _a;
444
- if (options.flags.presetOnly && !((_a = options.flags.preset) == null ? void 0 : _a.length)) {
443
+ var _options$flags$preset;
444
+ if (options.flags.presetOnly && !((_options$flags$preset = options.flags.preset) !== null && _options$flags$preset !== void 0 && _options$flags$preset.length)) {
445
445
  throw new Error("--preset-only, but no --preset [preset-name] was provided.");
446
446
  }
447
447
  const applyPresets = presetsFromInput(options.flags.preset);
@@ -573,8 +573,7 @@ async function inject(options) {
573
573
  await injectPresets(options);
574
574
  }
575
575
  async function injectBase(options) {
576
- var _flags$name, _flags$repo;
577
- var _a;
576
+ var _flags$name, _flags$repo, _pkg$repository2;
578
577
  const {
579
578
  basePath,
580
579
  flags,
@@ -590,7 +589,7 @@ async function injectBase(options) {
590
589
  cli.log.debug("Plugin has package.json: %s", pkg ? "yes" : "no");
591
590
  const user = await getUserInfo(options, pkg);
592
591
  cli.log.debug("User information: %o", user);
593
- const pkgName = (_flags$name = flags.name) !== null && _flags$name !== void 0 ? _flags$name : pkg == null ? void 0 : pkg.name;
592
+ const pkgName = (_flags$name = flags.name) !== null && _flags$name !== void 0 ? _flags$name : pkg === null || pkg === void 0 ? void 0 : pkg.name;
594
593
  const pluginName = requireUserConfirmation || !pkgName ? await _package$1.promptForPackageName(options, pkgName) : pkgName;
595
594
  cli.log.debug("Plugin name: %s", pluginName);
596
595
  const license = await getLicense(flags, {
@@ -603,7 +602,7 @@ async function injectBase(options) {
603
602
  cli.log.debug("License: %s", license ? license.id : "<none>");
604
603
  const description = await getProjectDescription(basePath, pkg, requireUserConfirmation);
605
604
  cli.log.debug("Description: %s", description || "<none>");
606
- const repoUrl = (_flags$repo = flags.repo) !== null && _flags$repo !== void 0 ? _flags$repo : (await gitRemoteOriginUrl__default.default(basePath).catch(_package$1.errorToUndefined)) || ((_a = pkg == null ? void 0 : pkg.repository) == null ? void 0 : _a.url);
605
+ const repoUrl = (_flags$repo = flags.repo) !== null && _flags$repo !== void 0 ? _flags$repo : (await gitRemoteOriginUrl__default.default(basePath).catch(_package$1.errorToUndefined)) || (pkg === null || pkg === void 0 || (_pkg$repository2 = pkg.repository) === null || _pkg$repository2 === void 0 ? void 0 : _pkg$repository2.url);
607
606
  const gitOrigin = requireUserConfirmation ? await _package$1.promptForRepoOrigin(options, repoUrl) : repoUrl;
608
607
  cli.log.debug("Remote origin: %s", gitOrigin || "<none>");
609
608
  const data = {
@@ -644,10 +643,10 @@ async function writeReadme(data, options) {
644
643
  });
645
644
  return true;
646
645
  }
647
- async function writeLicense(_ref4, options, licenseChanged) {
646
+ async function writeLicense(_ref3, options, licenseChanged) {
648
647
  let {
649
648
  license
650
- } = _ref4;
649
+ } = _ref3;
651
650
  const {
652
651
  basePath,
653
652
  flags
@@ -664,18 +663,18 @@ async function writeLicense(_ref4, options, licenseChanged) {
664
663
  });
665
664
  return true;
666
665
  }
667
- async function getLicense(flags, _ref5) {
666
+ async function getLicense(flags, _ref4) {
668
667
  let {
669
668
  user,
670
669
  pluginName,
671
670
  pkg,
672
671
  requireUserConfirmation
673
- } = _ref5;
672
+ } = _ref4;
674
673
  const license = await getLicenseIdentifier(flags, pkg, requireUserConfirmation);
675
674
  if (!license) {
676
675
  return void 0;
677
676
  }
678
- const text = license.body.replace(/\[fullname\]/g, user == null ? void 0 : user.name).replace(/\[project\]/g, pluginName).replace(/\[year\]/g, /* @__PURE__ */new Date().getFullYear());
677
+ const text = license.body.replace(/\[fullname\]/g, user === null || user === void 0 ? void 0 : user.name).replace(/\[project\]/g, pluginName).replace(/\[year\]/g, ( /* @__PURE__ */new Date()).getFullYear());
679
678
  return {
680
679
  id: license.id,
681
680
  text
@@ -743,11 +742,11 @@ async function resolveProjectDescription(basePath, pkg) {
743
742
  return _package$1.errorToUndefined(err);
744
743
  }
745
744
  }
746
- async function writeAssets(injectables, _ref6) {
745
+ async function writeAssets(injectables, _ref5) {
747
746
  let {
748
747
  basePath,
749
748
  flags
750
- } = _ref6;
749
+ } = _ref5;
751
750
  const assetsDir = await findAssetsDir();
752
751
  const from = function () {
753
752
  for (var _len3 = arguments.length, segments = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
@@ -848,14 +847,13 @@ async function findAssetsDir() {
848
847
  return assetsDir;
849
848
  }
850
849
  async function addCompileDirToGitIgnore(data, options) {
851
- var _ref7;
852
- var _a, _b;
850
+ var _data$pkg$main, _data$pkg, _data$pkg2;
853
851
  const gitIgnorePath = path__default.default.join(options.basePath, ".gitignore");
854
852
  const gitignore = await _package$1.readFile(gitIgnorePath, "utf8").catch(_package$1.errorToUndefined);
855
853
  if (!gitignore) {
856
854
  return false;
857
855
  }
858
- const output = (_ref7 = (_a = data.pkg) == null ? void 0 : _a.main) !== null && _ref7 !== void 0 ? _ref7 : (_b = data.pkg) == null ? void 0 : _b.module;
856
+ const output = (_data$pkg$main = (_data$pkg = data.pkg) === null || _data$pkg === void 0 ? void 0 : _data$pkg.main) !== null && _data$pkg$main !== void 0 ? _data$pkg$main : (_data$pkg2 = data.pkg) === null || _data$pkg2 === void 0 ? void 0 : _data$pkg2.module;
859
857
  if (!output) {
860
858
  return false;
861
859
  }
@@ -965,4 +963,4 @@ exports.init = init;
965
963
  exports.initFlags = initFlags;
966
964
  exports.inject = inject;
967
965
  exports.presetHelpList = presetHelpList;
968
- //# sourceMappingURL=init-3120a384.js.map
966
+ //# sourceMappingURL=init-5h0qT4Si.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-5h0qT4Si.js","sources":["../../src/util/request.ts","../../src/util/user.ts","../../src/util/readme.ts","../../src/presets/semver-workflow.ts","../../src/presets/renovatebot.ts","../../src/presets/ui.ts","../../src/presets/ui-workshop.ts","../../src/presets/presets.ts","../../src/configs/tsconfig.ts","../../src/configs/pkg-config.ts","../../src/configs/git.ts","../../src/configs/eslint.ts","../../src/configs/prettier.ts","../../src/actions/inject.ts","../../src/configs/default-source.ts","../../src/actions/init.ts"],"sourcesContent":["import {getIt} from 'get-it'\nimport {jsonRequest, jsonResponse, httpErrors, headers, promise} from 'get-it/middleware'\nimport pkg from '../../package.json'\n\nexport const request = getIt([\n promise({onlyBody: true}),\n jsonRequest(),\n jsonResponse(),\n httpErrors(),\n headers({'User-Agent': `${pkg.name}@${pkg.version}`}),\n])\n","import path from 'path'\nimport xdgBasedir from 'xdg-basedir'\nimport {getGitUserInfo as _getGitUserInfo} from 'git-user-info'\nimport {validate as isValidEmail} from 'email-validator'\nimport {readJsonFile} from './files'\nimport {request} from './request'\nimport {prompt} from './prompt'\nimport {InjectOptions} from '../actions/inject'\nimport {PackageJson} from '../actions/verify/types'\n\nexport interface User {\n name: string\n email?: string\n}\n\nexport async function getUserInfo(\n {requireUserConfirmation, flags}: InjectOptions,\n pkg?: PackageJson,\n): Promise<User | undefined> {\n const userInfo =\n getPackageUserInfo({author: flags.author ?? pkg?.author}) ||\n (await getSanityUserInfo()) ||\n ((await getGitUserInfo()) as User | undefined)\n if (requireUserConfirmation) {\n return promptForInfo(userInfo)\n }\n\n return userInfo\n}\n\nexport function getPackageUserInfo(pkg?: {\n author?:\n | string\n | {\n name: string\n email?: string\n }\n}): User | undefined {\n let author = pkg?.author\n if (!author) {\n return undefined\n }\n\n if (author && typeof author !== 'string') {\n return author\n } else if (!author.includes('@')) {\n return {name: author}\n }\n\n const [pre, ...post] = author.replace(/[<>[\\]]/g, '').split(/@/)\n const nameParts = pre.split(/\\s+/)\n const email = [nameParts[nameParts.length - 1], ...post].join('@')\n const name = nameParts.slice(0, -1).join(' ')\n return {name, email}\n}\n\nasync function promptForInfo(defValue?: User) {\n const name = await prompt('Author name', {\n filter: filterString,\n default: defValue && defValue.name,\n validate: requiredString,\n })\n\n const email = await prompt('Author email', {\n filter: filterString,\n default: defValue && defValue.email,\n validate: validOrEmptyEmail,\n })\n\n return {name, email}\n}\n\nasync function getSanityUserInfo(): Promise<User | undefined> {\n try {\n const data = await readJsonFile<{authToken?: string}>(\n path.join(xdgBasedir.config ?? '', 'sanity', 'config.json'),\n )\n const token = data?.authToken\n\n if (!token) {\n return undefined\n }\n\n const user = await request({\n url: 'https://api.sanity.io/v1/users/me',\n headers: {Authorization: `Bearer ${token}`},\n })\n\n if (!user) {\n return undefined\n }\n\n const {name, email} = user\n return {name, email}\n } catch (err) {\n return undefined\n }\n}\n\nasync function getGitUserInfo(): Promise<User | undefined> {\n const user = await _getGitUserInfo()\n return user ? {name: user.name, email: user.email} : undefined\n}\n\nfunction filterString(val: string) {\n return (val || '').trim()\n}\n\nfunction requiredString(value: string) {\n return value.length > 1 ? true : 'Required'\n}\n\nfunction validOrEmptyEmail(value: string): true | string {\n if (!value) {\n return true\n }\n\n return isValidEmail(value) ? true : 'Must either be a valid email or empty'\n}\n","import outdent from 'outdent'\n// @ts-expect-error missing types\nimport licenses from '@rexxars/choosealicense-list'\nimport {PackageData} from '../actions/inject'\nimport {User} from './user'\n\nexport function generateReadme(data: PackageData) {\n const {user, pluginName, license, description} = data\n\n return (\n outdent`\n # ${pluginName}\n\n ${v3BannerNotice()}\n\n ${installationSnippet(pluginName ?? 'unknown')}\n\n ## Usage\n\n Add it as a plugin in \\`sanity.config.ts\\` (or .js):\n\n \\`\\`\\`ts\n import {defineConfig} from 'sanity'\n import {myPlugin} from '${pluginName}'\n\n export default defineConfig({\n //...\n plugins: [myPlugin({})],\n })\n \\`\\`\\`\n\n ${getLicenseText(license?.id, user?.name ? (user as User) : undefined)}\n ${developTestSnippet()}\n ` + '\\n'\n )\n}\n\nexport function v3BannerNotice() {\n return `> This is a **Sanity Studio v3** plugin.`\n}\n\nexport function installationSnippet(packageName: string) {\n return outdent`\n ## Installation\n\n \\`\\`\\`sh\n npm install ${packageName}\n \\`\\`\\`\n `\n}\n\nexport function developTestSnippet() {\n return outdent`\n ## Develop & test\n\n This plugin uses [@sanity/plugin-kit](https://github.com/sanity-io/plugin-kit)\n with default configuration for build & watch scripts.\n\n See [Testing a plugin in Sanity Studio](https://github.com/sanity-io/plugin-kit#testing-a-plugin-in-sanity-studio)\n on how to run this plugin with hotreload in the studio.\n `\n}\n\nexport function getLicenseText(licenseId?: string, user?: User) {\n if (!licenseId) {\n return ''\n }\n\n let licenseName: string | undefined = licenses.find(licenseId).title\n licenseName = licenseName?.replace(/\\s+license$/i, '')\n\n let licenseText = '## License\\n'\n if (licenseName && user?.name) {\n licenseText = `${licenseText}\\n[${licenseName}](LICENSE) © ${user?.name}\\n`\n } else if (licenseName) {\n licenseText = `${licenseText}\\n[${licenseName}](LICENSE)\\n`\n } else {\n licenseText = `${licenseText}\\nSee [LICENSE](LICENSE)`\n }\n\n return licenseText\n}\n\nexport function isDefaultGitHubReadme(readme: string) {\n if (!readme) {\n return false\n }\n\n const lines = readme.split('\\n', 20).filter(Boolean)\n\n // title + _optional_ description\n return lines.length <= 2 && lines[0].startsWith('#')\n}\n","import {Injectable, InjectOptions, writeAssets} from '../actions/inject'\nimport {resolveLatestVersions} from '../npm/resolveLatestVersions'\nimport {Preset} from './presets'\nimport {\n addPackageJsonScripts,\n addScript,\n getPackage,\n sortKeys,\n writePackageJsonDirect,\n} from '../npm/package'\nimport log from '../util/log'\nimport outdent from 'outdent'\nimport chalk from 'chalk'\nimport path from 'path'\nimport {readFile, writeFile} from '../util/files'\nimport {errorToUndefined} from '../util/errorToUndefined'\nimport {PackageJson} from '../actions/verify/types'\nimport {\n developTestSnippet,\n getLicenseText,\n installationSnippet,\n v3BannerNotice,\n} from '../util/readme'\nimport {getUserInfo} from '../util/user'\n\nexport const semverWorkflowPreset: Preset = {\n name: 'semver-workflow',\n description:\n 'Files and dependencies for conventional-commits, github workflow and semantic-release.',\n apply: applyPreset,\n}\n\nconst info = (write: boolean, msg: string, ...args: string[]) => write && log.info(msg, ...args)\n\nasync function applyPreset(options: InjectOptions) {\n await writeAssets(semverWorkflowFiles(), options)\n await addPrepareScript(options)\n await addDevDependencies(options)\n await updateReadme(options)\n}\n\nasync function addPrepareScript(options: InjectOptions) {\n const pkg = await getPackage(options)\n const didWrite = await addPackageJsonScripts(pkg, options, (scripts) => {\n scripts.prepare = addScript(`husky install`, scripts.prepare)\n return scripts\n })\n info(didWrite, 'Added prepare script to package.json')\n}\n\nasync function addDevDependencies(options: InjectOptions) {\n const pkg = await getPackage(options)\n const devDeps = sortKeys({\n ...pkg.devDependencies,\n ...(await semverWorkflowDependencies()),\n })\n const newPkg = {...pkg}\n newPkg.devDependencies = devDeps\n await writePackageJsonDirect(newPkg, options)\n log.info('Updated devDependencies.')\n\n log.info(\n chalk.green(\n outdent`\n semantic-release preset injected.\n\n Please confer\n https://github.com/sanity-io/plugin-kit/blob/main/docs/semver-workflow.md#manual-steps-after-inject\n to finalize configuration for this preset.\n `.trim(),\n ),\n )\n}\n\nasync function updateReadme(options: InjectOptions) {\n const {basePath} = options\n\n const readmePath = path.join(basePath, 'README.md')\n const readme = (await readFile(readmePath, 'utf8').catch(errorToUndefined)) ?? ''\n\n const {v3Banner, install, usage, developTest, license, releaseSnippet} =\n await readmeSnippets(options)\n\n const prependSections = missingSections(readme, [v3Banner, install, usage])\n const appendSections = missingSections(readme, [license, developTest, releaseSnippet])\n\n if (prependSections.length || appendSections.length) {\n const updatedReadme = [...prependSections, readme, ...appendSections]\n .filter(Boolean)\n .join('\\n\\n')\n await writeFile(readmePath, updatedReadme, {encoding: 'utf8'})\n log.info('Updated README. Please review the changes.')\n }\n}\n\nasync function readmeSnippets(options: InjectOptions) {\n const pkg = await getPackage(options)\n const user = await getUserInfo(options, pkg)\n\n const bestEffortUrl = readmeBaseurl(pkg)\n\n const install = installationSnippet(pkg.name ?? 'unknown')\n\n const usage = outdent`\n ## Usage\n `\n\n const license = getLicenseText(typeof pkg.license === 'string' ? pkg.license : undefined, user)\n\n const releaseSnippet = outdent`\n ### Release new version\n\n Run [\"CI & Release\" workflow](${bestEffortUrl}/actions/workflows/main.yml).\n Make sure to select the main branch and check \"Release new version\".\n\n Semantic release will only release on configured branches, so it is safe to run release on any branch.\n `\n\n return {\n v3Banner: v3BannerNotice(),\n install,\n usage,\n license,\n developTest: developTestSnippet(),\n releaseSnippet,\n }\n}\n\n/**\n * Returns sections that does not exists \"close enough\" in readme\n */\nexport function missingSections(readme: string, sections: string[]) {\n return sections.filter((section) => !closeEnough(section, readme))\n}\n\n/**\n * a and b are considered \"close enough\" if > 50% of a lines exist in b lines\n * @param a\n * @param b\n */\nfunction closeEnough(a: string, b: string) {\n const aLines = a.split('\\n')\n const bLines = b.split('\\n')\n\n const matchingLines = aLines.filter((line) => bLines.find((bLine) => bLine === line)).length\n const isCloseEnough = matchingLines >= aLines.length * 0.5\n return isCloseEnough\n}\n\nfunction semverWorkflowFiles(): Injectable[] {\n const base: Injectable[] = [\n {\n type: 'copy',\n from: ['.github', 'workflows', 'main.yml'],\n to: ['.github', 'workflows', 'main.yml'],\n },\n {type: 'copy', from: ['.husky', 'commit-msg'], to: ['.husky', 'commit-msg']},\n {type: 'copy', from: ['.husky', 'pre-commit'], to: ['.husky', 'pre-commit']},\n {type: 'copy', from: ['.releaserc.json'], to: '.releaserc.json'},\n {type: 'copy', from: ['commitlint.template.js'], to: 'commitlint.config.js'},\n {type: 'copy', from: ['lint-staged.template.js'], to: 'lint-staged.config.js'},\n ]\n\n return base.map((fromTo) => {\n if (fromTo.type === 'copy') {\n return {\n ...fromTo,\n from: ['semver-workflow', ...fromTo.from],\n }\n }\n\n return fromTo\n })\n}\n\nasync function semverWorkflowDependencies(): Promise<Record<string, string>> {\n return resolveLatestVersions([\n '@commitlint/cli',\n '@commitlint/config-conventional',\n '@sanity/semantic-release-preset',\n 'husky',\n 'lint-staged',\n ])\n}\n\nexport function readmeBaseurl(pkg: PackageJson) {\n return ((pkg.repository?.url ?? pkg.homepage ?? 'TODO') as string)\n .replace(/.+:\\/\\//g, 'https://')\n .replace(/\\.git/g, '')\n .replace(/git@github.com\\//g, 'github.com/')\n .replace(/git@github.com:/g, 'https://github.com/')\n .replace(/#.+/g, '')\n}\n","import {Preset} from './presets'\nimport {InjectOptions, writeAssets} from '../actions/inject'\n\nexport const renovatePreset: Preset = {\n name: 'renovatebot',\n description: 'Files to enable renovatebot.',\n apply: applyPreset,\n}\n\nasync function applyPreset(options: InjectOptions) {\n await writeAssets(\n [\n {\n type: 'copy',\n from: ['renovatebot', 'renovate.json'],\n to: 'renovate.json',\n },\n ],\n options,\n )\n}\n","import {Preset} from './presets'\nimport {InjectOptions} from '../actions/inject'\nimport {forceDependencyVersions, getPackage, sortKeys, writePackageJsonDirect} from '../npm/package'\nimport log from '../util/log'\nimport chalk from 'chalk'\nimport {resolveLatestVersions} from '../npm/resolveLatestVersions'\nimport {forcedDevPackageVersions, forcedPackageVersions} from '../configs/forced-package-versions'\n\nexport const ui: Preset = {\n name: 'ui',\n description: '`@sanity/ui` and dependencies',\n apply: applyPreset,\n}\n\nasync function applyPreset(options: InjectOptions) {\n await addDependencies(options)\n await addDevDependencies(options)\n\n log.info(chalk.green('ui preset injected'))\n}\n\nasync function addDependencies(options: InjectOptions) {\n const pkg = await getPackage(options)\n const newDeps = sortKeys(\n forceDependencyVersions(\n {\n ...pkg.dependencies,\n ...(await resolveDependencyList()),\n },\n forcedPackageVersions,\n ),\n )\n const newPkg = {...pkg}\n newPkg.dependencies = newDeps\n await writePackageJsonDirect(newPkg, options)\n log.info('Updated dependencies.')\n}\n\nasync function addDevDependencies(options: InjectOptions) {\n const pkg = await getPackage(options)\n const newDeps = sortKeys(\n forceDependencyVersions(\n {\n ...pkg.devDependencies,\n ...(await resolveDevDependencyList()),\n },\n forcedDevPackageVersions,\n ),\n )\n const newPkg = {...pkg}\n newPkg.devDependencies = newDeps\n await writePackageJsonDirect(newPkg, options)\n log.info('Updated devDependencies.')\n}\n\nasync function resolveDependencyList(): Promise<Record<string, string>> {\n return resolveLatestVersions(['@sanity/icons', '@sanity/ui'])\n}\n\nasync function resolveDevDependencyList(): Promise<Record<string, string>> {\n return resolveLatestVersions([\n // install the peer dependencies of `@sanity/ui` as dev dependencies\n 'react',\n 'react-dom',\n 'react-is',\n 'styled-components',\n ])\n}\n","import {Preset} from './presets'\nimport {Injectable, InjectOptions, writeAssets} from '../actions/inject'\nimport {getPackage, sortKeys, writePackageJsonDirect} from '../npm/package'\nimport log from '../util/log'\nimport chalk from 'chalk'\nimport outdent from 'outdent'\nimport {resolveLatestVersions} from '../npm/resolveLatestVersions'\nimport path from 'path'\nimport {readFile, writeFile} from '../util/files'\nimport {errorToUndefined} from '../util/errorToUndefined'\n\nexport const uiWorkshop: Preset = {\n name: 'ui-workshop',\n description: 'Files for testing custom components with @sanity/ui-workshop',\n apply: applyPreset,\n}\n\nasync function applyPreset(options: InjectOptions) {\n await writeAssets(files(), options)\n await addDevDependencies(options)\n await updateGitIgnore(options)\n log.info(\n chalk.green(\n outdent`\n ui-workshop preset injected.\n\n Please confer\n https://github.com/sanity-io/plugin-kit/blob/main/docs/ui-workshop.md#manual-steps-after-inject\n to finalize configuration for this preset.\n `.trim(),\n ),\n )\n}\n\nfunction files(): Injectable[] {\n const base: Injectable[] = [\n {type: 'copy', from: ['workshop.config.ts'], to: ['workshop.config.ts']},\n {type: 'copy', from: ['src', 'CustomField.tsx'], to: ['src', 'CustomField.tsx']},\n {\n type: 'copy',\n from: ['src', '__workshop__', 'index.tsx'],\n to: ['src', '__workshop__', 'index.tsx'],\n },\n {\n type: 'copy',\n from: ['src', '__workshop__', 'props.tsx'],\n to: ['src', '__workshop__', 'props.tsx'],\n },\n ]\n\n return base.map((fromTo) => {\n if (fromTo.type === 'copy') {\n return {\n ...fromTo,\n from: ['ui-workshop', ...fromTo.from],\n }\n }\n\n return fromTo\n })\n}\n\nasync function updateGitIgnore(options: InjectOptions) {\n const {basePath} = options\n const gitignorePath = path.join(basePath, '.gitignore')\n let gitignore = (await readFile(gitignorePath, 'utf8').catch(errorToUndefined)) ?? ''\n const value = '.workshop'\n if (gitignore.includes(value)) {\n return\n }\n\n gitignore += `\\n\\n${value}`\n await writeFile(gitignorePath, gitignore, {encoding: 'utf8'})\n}\n\nasync function addDevDependencies(options: InjectOptions) {\n const pkg = await getPackage(options)\n const devDeps = sortKeys({\n ...pkg.devDependencies,\n ...(await devDependencies()),\n })\n const newPkg = {...pkg}\n newPkg.devDependencies = devDeps\n await writePackageJsonDirect(newPkg, options)\n log.info('Updated devDependencies.')\n}\n\nasync function devDependencies(): Promise<Record<string, string>> {\n return resolveLatestVersions([\n '@sanity/ui-workshop',\n '@sanity/icons',\n '@sanity/ui',\n 'react',\n 'react-dom',\n 'styled-components',\n ])\n}\n","import {InjectOptions} from '../actions/inject'\nimport {semverWorkflowPreset} from './semver-workflow'\nimport {renovatePreset} from './renovatebot'\nimport {ui} from './ui'\nimport {uiWorkshop} from './ui-workshop'\n\nexport interface Preset {\n name: string\n description: string\n apply: (options: InjectOptions) => Promise<void>\n}\n\nconst presets: Preset[] = [semverWorkflowPreset, renovatePreset, ui, uiWorkshop]\nconst presetNames = presets.map((p) => p?.name)\n\nexport function presetHelpList(padStart: number) {\n return presets\n .map((p) => `${''.padStart(padStart)}${p.name.padEnd(20)}${p.description}`)\n .join('\\n')\n}\n\nexport async function injectPresets(options: InjectOptions) {\n if (options.flags.presetOnly && !options.flags.preset?.length) {\n throw new Error('--preset-only, but no --preset [preset-name] was provided.')\n }\n\n const applyPresets = presetsFromInput(options.flags.preset)\n for (const preset of applyPresets) {\n await preset.apply(options)\n }\n}\n\nfunction presetsFromInput(inputPresets: string[] | undefined): Preset[] {\n if (!inputPresets) {\n return []\n }\n const unknownPresets = inputPresets.filter((p) => !presetNames.includes(p))\n if (unknownPresets.length) {\n throw new Error(\n `Unknown --preset(s): [${unknownPresets.join(', ')}]. Must be one of: [${presetNames.join(\n ', ',\n )}]`,\n )\n }\n\n return inputPresets\n .filter(onlyUnique)\n .map((presetName) => presets.find((p) => p.name === presetName))\n .filter((p): p is Preset => !!p)\n}\n\nfunction onlyUnique(value: string, index: number, arr: string[]) {\n return arr.indexOf(value) === index\n}\n","import {outdent} from 'outdent'\nimport {InjectTemplate} from '../actions/inject'\nimport {InitFlags} from '../actions/init'\n\nexport function tsconfigTemplate(options: {flags: InitFlags}): InjectTemplate {\n const {flags} = options\n\n return {\n type: 'template',\n force: flags.force,\n to: 'tsconfig.json',\n value: outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./src\", \"./package.config.ts\"],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"jsx\": \"react-jsx\",\n \"noEmit\": true\n }\n }\n `,\n }\n}\n\nexport function tsconfigTemplateDist(options: {outDir: string; flags: InitFlags}): InjectTemplate {\n const {flags, outDir} = options\n\n return {\n type: 'template',\n force: flags.force,\n to: `tsconfig.${outDir}.json`,\n value: outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./src\"],\n \"exclude\": [\n \"./src/**/__fixtures__\",\n \"./src/**/__mocks__\",\n \"./src/**/*.test.ts\",\n \"./src/**/*.test.tsx\"\n ],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./${outDir}\",\n \"jsx\": \"react-jsx\",\n \"emitDeclarationOnly\": true\n }\n }\n `,\n }\n}\n\nexport function tsconfigTemplateSettings(options: {flags: InitFlags}): InjectTemplate {\n const {flags} = options\n\n return {\n type: 'template',\n force: flags.force,\n to: `tsconfig.settings.json`,\n value: outdent`\n {\n \"compilerOptions\": {\n \"moduleResolution\": \"node\",\n \"target\": \"esnext\",\n \"module\": \"esnext\",\n \"lib\": [\"DOM\", \"DOM.Iterable\", \"ESNext\"],\n \"esModuleInterop\": true,\n \"strict\": true,\n \"downlevelIteration\": true,\n \"declaration\": true,\n \"allowSyntheticDefaultImports\": true,\n \"skipLibCheck\": true,\n \"isolatedModules\": true\n }\n }\n `,\n }\n}\n","import {outdent} from 'outdent'\nimport {InjectTemplate} from '../actions/inject'\nimport {InitFlags} from '../actions/init'\n\nexport function pkgConfigTemplate(options: {outDir: string; flags: InitFlags}): InjectTemplate {\n const {flags, outDir} = options\n\n return {\n type: 'template',\n force: flags.force,\n to: flags.typescript ? 'package.config.ts' : 'package.config.js',\n value: outdent`\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n legacyExports: true,\n dist: '${outDir}',\n tsconfig: 'tsconfig.${outDir}.json',\n\n // Remove this block to enable strict export validation\n extract: {\n rules: {\n 'ae-forgotten-export': 'off',\n 'ae-incompatible-release-tags': 'off',\n 'ae-internal-missing-underscore': 'off',\n 'ae-missing-release-tag': 'off',\n },\n },\n })\n `,\n }\n}\n","import {outdent} from 'outdent'\nimport {InjectTemplate} from '../actions/inject'\n\nexport function gitignoreTemplate(): InjectTemplate {\n return {\n type: 'template',\n to: '.gitignore',\n value: outdent`\n # Logs\n logs\n *.log\n npm-debug.log*\n\n # Runtime data\n pids\n *.pid\n *.seed\n\n # Directory for instrumented libs generated by jscoverage/JSCover\n lib-cov\n\n # Coverage directory used by tools like istanbul\n coverage\n\n # nyc test coverage\n .nyc_output\n\n # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)\n .grunt\n\n # node-waf configuration\n .lock-wscript\n\n # Compiled binary addons (http://nodejs.org/api/addons.html)\n build/Release\n\n # Dependency directories\n node_modules\n jspm_packages\n\n # Optional npm cache directory\n .npm\n\n # Optional REPL history\n .node_repl_history\n\n # macOS finder cache file\n .DS_Store\n\n # VS Code settings\n .vscode\n\n # IntelliJ\n .idea\n *.iml\n\n # Cache\n .cache\n\n # Yalc\n .yalc\n yalc.lock\n\n # npm package zips\n *.tgz\n `,\n }\n}\n","import {InjectTemplate} from '../actions/inject'\nimport {InitFlags} from '../actions/init'\n\nexport function eslintrcTemplate(options: {flags: InitFlags}): InjectTemplate {\n const {flags} = options\n\n const eslintConfig = {\n root: true,\n env: {\n node: true,\n browser: true,\n },\n extends: [\n 'sanity',\n flags.typescript && 'sanity/typescript',\n 'sanity/react',\n 'plugin:react-hooks/recommended',\n flags.prettier && 'plugin:prettier/recommended',\n 'plugin:react/jsx-runtime',\n ].filter(Boolean),\n }\n\n return {\n type: 'template',\n force: flags.force,\n to: '.eslintrc',\n value: JSON.stringify(eslintConfig, null, 2),\n }\n}\n\nexport function eslintignoreTemplate(options: {flags: InitFlags; outDir: string}): InjectTemplate {\n const {flags, outDir} = options\n\n const patterns = [\n '.eslintrc.js',\n 'commitlint.config.js',\n outDir,\n 'lint-staged.config.js',\n flags.typescript ? 'package.config.ts' : 'package.config.js',\n flags.typescript ? '*.js' : '',\n ].filter(Boolean)\n\n patterns.sort()\n\n return {\n type: 'template',\n force: flags.force,\n to: '.eslintignore',\n value: patterns.join('\\n'),\n }\n}\n","import {InjectTemplate} from '../actions/inject'\n\nexport function prettierignoreTemplate(options: {outDir: string}): InjectTemplate {\n const {outDir} = options\n\n return {\n type: 'template',\n to: '.prettierignore',\n value: [outDir, 'pnpm-lock.yaml', 'yarn.lock', 'package-lock.json'].join('\\n'),\n }\n}\n","import path from 'path'\n// @ts-expect-error missing types\nimport licenses from '@rexxars/choosealicense-list'\nimport gitRemoteOriginUrl from 'git-remote-origin-url'\nimport log from '../util/log'\nimport {getUserInfo} from '../util/user'\nimport {errorToUndefined} from '../util/errorToUndefined'\nimport {addBuildScripts, getPackage, writePackageJson} from '../npm/package'\nimport {prompt, promptForPackageName, promptForRepoOrigin} from '../util/prompt'\nimport {generateReadme, isDefaultGitHubReadme} from '../util/readme'\n\nimport {\n copyFileWithOverwritePrompt,\n fileExists,\n readFile,\n writeFile,\n writeFileWithOverwritePrompt,\n} from '../util/files'\nimport {InitFlags} from './init'\nimport {PackageJson} from './verify/types'\nimport {injectPresets} from '../presets/presets'\nimport {tsconfigTemplateDist, tsconfigTemplate, tsconfigTemplateSettings} from '../configs/tsconfig'\nimport {pkgConfigTemplate} from '../configs/pkg-config'\nimport {gitignoreTemplate} from '../configs/git'\nimport {eslintignoreTemplate, eslintrcTemplate} from '../configs/eslint'\nimport {prettierignoreTemplate} from '../configs/prettier'\n\nconst bannedFields = ['login', 'description', 'projecturl', 'email']\nconst preferredLicenses = ['MIT', 'ISC', 'BSD-3-Clause']\nconst otherLicenses = Object.keys(licenses.list).filter((id) => {\n const license = licenses.list[id]\n return (\n !preferredLicenses.includes(id) &&\n !bannedFields.some((field) => license.body.includes(`[${field}]`))\n )\n})\n\nexport interface InjectCopyFromTo {\n type: 'copy'\n from: string | string[]\n to: string | string[]\n}\n\nexport interface InjectTemplate {\n type: 'template'\n to: string | string[]\n value: string\n force?: boolean\n}\n\nexport type Injectable = InjectCopyFromTo | InjectTemplate\n\nexport interface InjectOptions {\n basePath: string\n requireUserConfirmation?: boolean\n flags: InitFlags\n dependencies?: Record<string, string>\n devDependencies?: Record<string, string>\n peerDependencies?: Record<string, string>\n validate?: boolean\n outDir: string\n}\n\nexport interface PackageData {\n user?: {name?: string; email?: string}\n pluginName?: string\n license?: {id: string; text: string}\n description?: string\n pkg?: PackageJson\n gitOrigin?: string\n}\n\nexport async function inject(options: InjectOptions) {\n if (options.flags.presetOnly) {\n log.info('Only apply presets, skipping default inject.')\n } else {\n await injectBase(options)\n }\n await injectPresets(options)\n}\n\nasync function injectBase(options: InjectOptions) {\n const {basePath, flags, requireUserConfirmation} = options\n const info = (write: boolean, msg: string, ...args: string[]) => write && log.info(msg, ...args)\n // Gather data\n const pkg = await getPackage(options).catch(errorToUndefined)\n log.debug('Plugin has package.json: %s', pkg ? 'yes' : 'no')\n\n const user = await getUserInfo(options, pkg)\n log.debug('User information: %o', user)\n\n const pkgName = flags.name ?? pkg?.name\n const pluginName =\n requireUserConfirmation || !pkgName ? await promptForPackageName(options, pkgName) : pkgName\n\n log.debug('Plugin name: %s', pluginName)\n\n const license = await getLicense(flags, {user, pluginName, pkg, requireUserConfirmation})\n const licenseChanged = (pkg && pkg.license) !== (license && license.id)\n log.debug('License: %s', license ? license.id : '<none>')\n\n const description = await getProjectDescription(basePath, pkg, requireUserConfirmation)\n log.debug('Description: %s', description || '<none>')\n\n const repoUrl =\n flags.repo ??\n ((await gitRemoteOriginUrl(basePath).catch(errorToUndefined)) || pkg?.repository?.url)\n\n const gitOrigin = requireUserConfirmation ? await promptForRepoOrigin(options, repoUrl) : repoUrl\n\n log.debug('Remote origin: %s', gitOrigin || '<none>')\n\n // Output\n const data: PackageData = {user, pluginName, license, description, pkg, gitOrigin}\n let didWrite\n\n // Write package.json, if returns the original (data.pkg) if it was unchanged,\n // otherwise it returns the new object\n const newPkg = await writePackageJson(data, options)\n info(newPkg !== pkg, 'Wrote package.json')\n data.pkg = newPkg\n\n didWrite = await writeLicense(data, options, licenseChanged)\n info(didWrite, 'Wrote license file (LICENSE)')\n\n didWrite = await writeReadme(data, options)\n info(didWrite, 'Wrote readme file (README.md)')\n\n didWrite = await writeStaticAssets(options)\n info(didWrite.length > 0, 'Wrote static asset files: %s', didWrite.join(', '))\n\n didWrite = await addBuildScripts(newPkg, options)\n info(didWrite, 'Added build scripts to package.json')\n\n didWrite = await addCompileDirToGitIgnore(data, options)\n info(didWrite, 'Added compilation output directory to .gitignore')\n}\n\nasync function writeReadme(data: PackageData, options: InjectOptions) {\n const {basePath} = options\n\n const readmePath = path.join(basePath, 'README.md')\n const readme = await readFile(readmePath, 'utf8').catch(errorToUndefined)\n\n if (readme && !isDefaultGitHubReadme(readme)) {\n return false\n }\n\n await writeFileWithOverwritePrompt(readmePath, generateReadme(data), {\n encoding: 'utf8',\n force: options.flags.force,\n })\n return true\n}\n\nasync function writeLicense(\n {license}: PackageData,\n options: InjectOptions,\n licenseChanged: boolean,\n) {\n const {basePath, flags} = options\n\n if ((flags.license as unknown as boolean) === false || !license) {\n return false\n }\n\n // Prefer whatever path the user is currenly using (LICENSE.md or LICENSE)\n const hasLicenseMdFile = await fileExists(path.join(basePath, 'LICENSE.md'))\n const licensePath = path.join(basePath, hasLicenseMdFile ? 'LICENSE.md' : 'LICENSE')\n\n await writeFileWithOverwritePrompt(licensePath, license.text, {\n encoding: 'utf8',\n default: licenseChanged,\n force: flags.force,\n })\n\n return true\n}\n\nasync function getLicense(\n flags: InitFlags,\n {\n user,\n pluginName,\n pkg,\n requireUserConfirmation,\n }: PackageData & {requireUserConfirmation?: boolean},\n) {\n const license = await getLicenseIdentifier(flags, pkg, requireUserConfirmation)\n if (!license) {\n return undefined\n }\n\n const text = license.body\n .replace(/\\[fullname\\]/g, user?.name)\n .replace(/\\[project\\]/g, pluginName)\n .replace(/\\[year\\]/g, new Date().getFullYear())\n\n return {id: license.id, text}\n}\n\nasync function getLicenseIdentifier(\n flags: InitFlags,\n pkg: PackageJson | undefined,\n requireUserConfirmation = false,\n) {\n // --no-license\n if ((flags.license as unknown) === false) {\n return null\n }\n\n // --license becomes \"\", --license mit beocomes \"mit\"\n if (typeof flags.license === 'string') {\n const license = licenses.find(`${flags.license}`)\n if (!license) {\n throw new Error(`License \"${flags.license}\" not found`)\n }\n return license\n }\n\n // no --license flag provided, do we have one in package already?\n if (pkg && pkg.license && !requireUserConfirmation) {\n const license = licenses.find(`${pkg.license}`)\n if (license) {\n return license\n }\n\n // Warn, then prompt the user\n log.warn(`package.json contains license \"${pkg.license}\", which is not recognized`)\n }\n\n const licenseId = await prompt('Which license do you want to use?', {\n default: pkg && pkg.license && licenses.find(pkg.license) ? pkg.license : preferredLicenses[0],\n choices: [\n prompt.separator(),\n ...preferredLicenses.map((value) => ({value, name: licenses.list[value].title})),\n prompt.separator(),\n ...otherLicenses.map((value) => ({value, name: licenses.list[value].title})),\n ],\n })\n\n return licenses.find(licenseId)\n}\n\nasync function getProjectDescription(\n basePath: string,\n pkg: PackageJson | undefined,\n requireUserConfirmation = false,\n) {\n let description = await resolveProjectDescription(basePath, pkg)\n if (requireUserConfirmation) {\n description = await prompt('Plugin description', {default: description || ''})\n }\n return description ?? ''\n}\n\nasync function resolveProjectDescription(basePath: string, pkg: PackageJson | undefined) {\n // Try to grab from package.json\n if (pkg && typeof pkg.description === 'string' && pkg.description.length > 5) {\n return pkg.description\n }\n\n // Try to grab a project description from a standard GitHub-generated readme\n try {\n const readmePath = path.join(basePath, 'README.md')\n const readme = await readFile(readmePath, 'utf8')\n const [title, description] = readme.split('\\n').filter(Boolean)\n if (!title || !description || !title.match(/^#\\s+\\w+/)) {\n return null\n }\n\n // Naive, but this isn't too important\n const unlinked = description.replace(/\\[(.*?)\\]\\(.*?\\)/g, '$1')\n if (/^[^#]/.test(unlinked)) {\n return unlinked\n }\n\n return null\n } catch (err) {\n return errorToUndefined(err)\n }\n}\n\nexport async function writeAssets(injectables: Injectable[], {basePath, flags}: InjectOptions) {\n const assetsDir = await findAssetsDir()\n\n const from = (...segments: string[]) => path.join(assetsDir, 'inject', ...segments)\n const to = (...segments: string[]) => path.join(basePath, ...segments)\n\n const writes: string[] = []\n for (const injectable of injectables) {\n if (injectable.type === 'copy') {\n const fromPath = asArray(injectable.from)\n const toPath = asArray(injectable.to)\n if (await copyFileWithOverwritePrompt(from(...fromPath), to(...toPath), flags)) {\n writes.push(path.join(...toPath))\n }\n continue\n }\n\n if (injectable.type === 'template') {\n const toPath = asArray(injectable.to)\n\n await writeFileWithOverwritePrompt(to(...toPath), `${injectable.value.trim()}\\n`, {\n default: 'n',\n force: injectable.force || flags.force,\n })\n\n writes.push(path.join(...toPath))\n continue\n }\n\n throw new Error(`Unknown operation type \"${(injectable as any).type}\"`)\n }\n\n return writes\n}\n\nasync function writeStaticAssets(options: InjectOptions) {\n const {outDir, flags} = options\n\n const files: Injectable[] = [\n flags.eslint && eslintrcTemplate({flags: options.flags}),\n flags.eslint && eslintignoreTemplate({outDir, flags: options.flags}),\n {type: 'copy', from: 'editorconfig', to: '.editorconfig'},\n {type: 'copy', from: 'sanity.json', to: 'sanity.json'},\n {type: 'copy', from: 'v2-incompatible.js.template', to: 'v2-incompatible.js'},\n pkgConfigTemplate({outDir, flags: options.flags}),\n flags.gitignore && gitignoreTemplate(),\n flags.typescript && tsconfigTemplate({flags: options.flags}),\n flags.typescript && tsconfigTemplateDist({outDir, flags: options.flags}),\n flags.typescript && tsconfigTemplateSettings({flags: options.flags}),\n flags.prettier && prettierignoreTemplate({outDir}),\n flags.prettier && {type: 'copy', from: 'prettierrc.json', to: '.prettierrc'},\n ]\n .map((f) => (f ? (f as Injectable) : undefined))\n .filter((f): f is Injectable => !!f)\n\n const result = writeAssets(files, options)\n\n return result\n}\n\nfunction asArray(input: string | string[]): string[] {\n return typeof input === 'string' ? [input] : input\n}\n\n/**\n * assets dir might be in higher or lower in the dir hierarchy depending on\n * if we run from `dist` or `src`\n */\nasync function findAssetsDir(): Promise<string> {\n let maxBackpaddle = 3\n let currDir = __dirname\n let assetsDir: string = ''\n while (!assetsDir && maxBackpaddle) {\n currDir = path.join(currDir, '..')\n const assets = path.join(currDir, 'assets')\n if (await fileExists(assets)) {\n assetsDir = assets\n } else {\n maxBackpaddle--\n }\n }\n\n if (!assetsDir) {\n throw new Error('Could not find assets directory!')\n }\n return assetsDir\n}\n\nasync function addCompileDirToGitIgnore(data: PackageData, options: InjectOptions) {\n const gitIgnorePath = path.join(options.basePath, '.gitignore')\n const gitignore = await readFile(gitIgnorePath, 'utf8').catch(errorToUndefined)\n if (!gitignore) {\n return false\n }\n\n const output = data.pkg?.main ?? data.pkg?.module\n if (!output) {\n return false\n }\n\n const ignorePath = output.replace(/^[./]+/, '')\n const ignore = ignorePath.split('/')[0]\n if (!ignore) {\n return false\n }\n\n const lines = gitignore.trim().split('\\n')\n if (lines.includes(ignore)) {\n return false\n }\n\n lines.push('', '# Compiled plugin', ignore)\n\n await writeFile(gitIgnorePath, lines.join('\\n') + '\\n', {encoding: 'utf8'})\n return true\n}\n","import outdent from 'outdent'\nimport {PackageJson} from '../actions/verify/types'\n\nexport function defaultSourceJs(pkg: PackageJson) {\n return (\n outdent`\n import {definePlugin} from 'sanity'\n\n /**\n * Usage in sanity.config.js (or .ts)\n *\n * \\`\\`\\`js\n * import {defineConfig} from 'sanity'\n * import {myPlugin} from '${pkg.name}'\n *\n * export default defineConfig({\n * // ...\n * plugins: [myPlugin({})],\n * })\n * \\`\\`\\`\n */\n export const myPlugin = definePlugin((config = {}) => {\n // eslint-disable-next-line no-console\n console.log(\\`hello from ${pkg.name}\\`)\n return {\n name: '${pkg.name}',\n }\n })\n`.trimStart() + '\\n'\n )\n}\n\nexport function defaultSourceTs(pkg: PackageJson) {\n return (\n outdent`\n import {definePlugin} from 'sanity'\n\n interface MyPluginConfig {\n /* nothing here yet */\n }\n\n /**\n * Usage in \\`sanity.config.ts\\` (or .js)\n *\n * \\`\\`\\`ts\n * import {defineConfig} from 'sanity'\n * import {myPlugin} from '${pkg.name}'\n *\n * export default defineConfig({\n * // ...\n * plugins: [myPlugin()],\n * })\n * \\`\\`\\`\n */\n export const myPlugin = definePlugin<MyPluginConfig | void>((config = {}) => {\n // eslint-disable-next-line no-console\n console.log('hello from ${pkg.name}')\n return {\n name: '${pkg.name}',\n }\n })\n`.trimStart() + '\\n'\n )\n}\n","import path from 'path'\nimport {inject} from './inject'\nimport {ensureDir, writeFile} from '../util/files'\nimport sharedFlags from '../sharedFlags'\nimport {TypedFlags} from 'meow'\nimport {getPackage} from '../npm/package'\nimport {defaultSourceJs, defaultSourceTs} from '../configs/default-source'\nimport {defaultOutDir} from '../constants'\n\nexport const initFlags = {\n ...sharedFlags,\n scripts: {\n type: 'boolean',\n default: true,\n },\n eslint: {\n type: 'boolean',\n default: true,\n },\n typescript: {\n type: 'boolean',\n default: true,\n },\n prettier: {\n type: 'boolean',\n default: true,\n },\n license: {\n type: 'string',\n },\n editorconfig: {\n type: 'boolean',\n default: true,\n },\n gitignore: {\n type: 'boolean',\n default: true,\n },\n force: {\n type: 'boolean',\n default: false,\n },\n install: {\n type: 'boolean',\n default: true,\n },\n name: {\n type: 'string',\n },\n author: {\n type: 'string',\n },\n repo: {\n type: 'string',\n },\n presetOnly: {\n type: 'boolean',\n default: false,\n },\n preset: {\n type: 'string',\n isMultiple: true,\n },\n} as const\n\nexport type InitFlags = TypedFlags<typeof initFlags>\n\nexport interface InitOptions {\n basePath: string\n flags: InitFlags\n}\n\nexport async function init(options: InitOptions) {\n let dependencies = {}\n let devDependencies = {}\n let peerDependencies = {}\n\n await inject({\n ...options,\n outDir: defaultOutDir,\n requireUserConfirmation: !options.flags.force,\n dependencies,\n devDependencies,\n peerDependencies,\n validate: false,\n })\n\n const packageJson = await getPackage({basePath: options.basePath, validate: false})\n const typescript = options.flags.typescript\n const source = typescript ? defaultSourceTs(packageJson) : defaultSourceJs(packageJson)\n const filename = typescript ? 'index.ts' : 'index.js'\n const srcDir = path.resolve(options.basePath, 'src')\n await ensureDir(srcDir)\n await writeFile(path.join(srcDir, filename), source, {encoding: 'utf8'})\n}\n"],"names":["request","getIt","promise","onlyBody","jsonRequest","jsonResponse","httpErrors","headers","concat","pkg","name","version","getUserInfo","_ref","_flags$author","requireUserConfirmation","flags","userInfo","getPackageUserInfo","author","getSanityUserInfo","getGitUserInfo","promptForInfo","includes","pre","post","replace","split","nameParts","email","length","join","slice","defValue","prompt","filter","filterString","default","validate","requiredString","validOrEmptyEmail","_xdgBasedir__default$","data","readJsonFile","path","xdgBasedir","config","token","authToken","user","url","Authorization","err","_getGitUserInfo","val","trim","value","isValidEmail","generateReadme","pluginName","license","description","outdent","_templateObject","_taggedTemplateLiteral","v3BannerNotice","installationSnippet","getLicenseText","id","developTestSnippet","packageName","_templateObject2","_templateObject3","licenseId","_licenseName","licenseName","licenses","find","title","licenseText","isDefaultGitHubReadme","readme","lines","Boolean","startsWith","semverWorkflowPreset","apply","applyPreset","info","write","msg","_len","arguments","args","Array","_key","log","options","writeAssets","semverWorkflowFiles","addPrepareScript","addDevDependencies","updateReadme","getPackage","didWrite","addPackageJsonScripts","scripts","prepare","addScript","devDeps","sortKeys","devDependencies","semverWorkflowDependencies","newPkg","writePackageJsonDirect","chalk","green","_templateObject4","_await$_package$1$rea","basePath","readmePath","readFile","catch","errorToUndefined","v3Banner","install","usage","developTest","releaseSnippet","readmeSnippets","prependSections","missingSections","appendSections","updatedReadme","writeFile","encoding","_pkg$name","bestEffortUrl","readmeBaseurl","_templateObject5","_templateObject6","sections","section","closeEnough","a","b","aLines","bLines","matchingLines","line","bLine","isCloseEnough","base","type","from","to","map","fromTo","resolveLatestVersions","_ref2","_pkg$repository$url","_pkg$repository","repository","homepage","renovatePreset","ui","addDependencies","newDeps","forceDependencyVersions","dependencies","resolveDependencyList","forcedPackageVersions","resolveDevDependencyList","forcedDevPackageVersions","uiWorkshop","files","updateGitIgnore","_templateObject7","_await$_package$1$rea2","gitignorePath","gitignore","presets","presetNames","p","presetHelpList","padStart","padEnd","injectPresets","_options$flags$preset","presetOnly","preset","Error","applyPresets","presetsFromInput","inputPresets","unknownPresets","onlyUnique","presetName","index","arr","indexOf","tsconfigTemplate","force","_templateObject8","tsconfigTemplateDist","outDir","_templateObject9","tsconfigTemplateSettings","_templateObject10","pkgConfigTemplate","typescript","_templateObject11","gitignoreTemplate","_templateObject12","eslintrcTemplate","eslintConfig","root","env","node","browser","extends","prettier","JSON","stringify","eslintignoreTemplate","patterns","sort","prettierignoreTemplate","bannedFields","preferredLicenses","otherLicenses","Object","keys","list","some","field","body","inject","injectBase","_flags$name","_flags$repo","_pkg$repository2","_len2","_key2","debug","pkgName","promptForPackageName","getLicense","licenseChanged","getProjectDescription","repoUrl","repo","gitRemoteOriginUrl","gitOrigin","promptForRepoOrigin","writePackageJson","writeLicense","writeReadme","writeStaticAssets","addBuildScripts","addCompileDirToGitIgnore","writeFileWithOverwritePrompt","_ref3","hasLicenseMdFile","fileExists","licensePath","text","_ref4","getLicenseIdentifier","Date","getFullYear","undefined","warn","choices","separator","_description","resolveProjectDescription","match","unlinked","test","injectables","_ref5","assetsDir","findAssetsDir","_len3","segments","_key3","_len4","_key4","writes","injectable","fromPath","asArray","toPath","copyFileWithOverwritePrompt","push","eslint","f","result","input","maxBackpaddle","currDir","__dirname","assets","_data$pkg$main","_data$pkg","_data$pkg2","gitIgnorePath","output","main","module","ignorePath","ignore","defaultSourceJs","_templateObject13","trimStart","defaultSourceTs","_templateObject14","initFlags","sharedFlags","editorconfig","isMultiple","init","peerDependencies","defaultOutDir","packageJson","source","filename","srcDir","resolve","ensureDir"],"mappings":"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"}
@@ -2,9 +2,9 @@
2
2
 
3
3
  var path = require('path');
4
4
  var meow = require('meow');
5
- var cli = require('./cli-b62657e9.js');
6
- var init = require('./init-3120a384.js');
7
- var _package = require('./package-388ef15c.js');
5
+ var cli = require('./cli-Wd1KIVDi.js');
6
+ var init = require('./init-5h0qT4Si.js');
7
+ var _package = require('./package-yXL1pPXe.js');
8
8
  var execa = require('execa');
9
9
  function _interopDefaultCompat(e) {
10
10
  return e && typeof e === 'object' && 'default' in e ? e : {
@@ -101,4 +101,4 @@ async function run(_ref2) {
101
101
  }
102
102
  }
103
103
  exports.default = run;
104
- //# sourceMappingURL=init-cec2f4ef.js.map
104
+ //# sourceMappingURL=init-7PO3ckQZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-cec2f4ef.js","sources":["../../src/npm/manager.ts","../../src/cmds/init.ts"],"sourcesContent":["import execa from 'execa'\nimport {prompt} from '../util/prompt'\n\nexport function npmIsAvailable() {\n return execa('npm', ['-v'])\n .then(() => true)\n .catch(() => false)\n}\n\nexport function yarnIsAvailable() {\n return execa('yarn', ['-v'])\n .then(() => true)\n .catch(() => false)\n}\n\nexport function pnpmAvailable() {\n return execa('pnpm', ['-v'])\n .then(() => true)\n .catch(() => false)\n}\n\nexport async function promptForPackageManager() {\n const [npm, yarn, pnpm] = await Promise.all([\n npmIsAvailable(),\n yarnIsAvailable(),\n pnpmAvailable(),\n ])\n\n const choices = [npm && 'npm', yarn && 'yarn', pnpm && 'pnpm'].filter(Boolean)\n if (choices.length < 2) {\n return choices[0] || 'npm'\n }\n\n return prompt('Which package manager do you prefer?', {\n choices: choices.map((value) => ({value, name: value})),\n default: choices[0],\n })\n}\n\nexport async function installDependencies(pm: string, {cwd}: {cwd?: string}) {\n const proc = execa(pm, ['install'], {cwd, stdio: 'inherit'})\n const {exitCode} = await proc\n return exitCode <= 0\n}\n","import path from 'path'\nimport meow from 'meow'\nimport log from '../util/log'\nimport {init, initFlags} from '../actions/init'\nimport {isEmptyish, ensureDir} from '../util/files'\nimport {installDependencies, promptForPackageManager} from '../npm/manager'\nimport {findStudioV3Config, hasSanityJson} from '../sanity/manifest'\nimport {prompt} from '../util/prompt'\nimport {cliName} from '../constants'\nimport {presetHelpList} from '../presets/presets'\n\nconst description = `Initialize a new Sanity plugin`\n\nconst help = `\nUsage\n $ ${cliName} init [dir] [<args>]\n\nOptions\n --no-eslint Disables ESLint config and dependencies from being added\n --no-prettier Disables prettier config and dependencies from being added\n --no-typescript Disables typescript config and dependencies from being added\n --no-license Disables LICENSE + package.json license field from being added\n --no-editorconfig Disables .editorconfig from being added\n --no-gitignore Disables .gitignore from being added\n --no-scripts Disables scripts from being added to package.json\n --no-install Disables automatically running package manager install\n\n --name [package-name] Use the provided package-name\n --author [name] Use the provided author\n --repo [url] Use the provided repo url\n --license [spdx] Use the license with the given SPDX identifier\n --force No promt when overwriting files\n\n --preset [preset-name] Adds config and files from a named preset. --preset can be supplied multiple times.\n The following presets are available:\n${presetHelpList(30)}\n\nExamples\n # Initialize a new plugin in the current directory\n $ ${cliName} init\n\n # Initialize a plugin in the directory ~/my-plugin\n $ ${cliName} init ~/my-plugin\n\n # Don't add eslint or prettier\n $ ${cliName} init --no-eslint --no-prettier\n`\n\nasync function run({argv}: {argv: string[]}) {\n const cli = meow(help, {flags: initFlags, argv, description})\n const basePath = path.resolve(cli.input[0] || process.cwd())\n\n const {exists, isRoot} = await hasSanityJson(basePath)\n if (exists && isRoot) {\n throw new Error(\n `sanity.json has a \"root\" property set to true - are you trying to init into a studio instead of a plugin?`,\n )\n }\n\n const {v3ConfigFile} = await findStudioV3Config(basePath)\n if (v3ConfigFile) {\n throw new Error(\n `${v3ConfigFile} exsists - are you trying to init into a studio instead of a plugin?`,\n )\n }\n\n log.info('Initializing new plugin in \"%s\"', basePath)\n if (\n !cli.flags.force &&\n !(await isEmptyish(basePath)) &&\n !(await prompt('Directory is not empty, proceed?', {type: 'confirm', default: false}))\n ) {\n log.error('Directory is not empty. Cancelled.')\n return\n }\n\n await ensureDir(basePath)\n await init({basePath, flags: cli.flags})\n if (cli.flags.install) {\n if (await installDependencies(await promptForPackageManager(), {cwd: basePath})) {\n log.info('Done!')\n } else {\n log.error('Failed to install dependencies, try manually running `npm install`')\n }\n } else {\n log.info('Dependency installation skipped.')\n }\n}\n\nexport default run\n"],"names":["npmIsAvailable","execa","then","catch","yarnIsAvailable","pnpmAvailable","promptForPackageManager","npm","yarn","pnpm","Promise","all","choices","filter","Boolean","length","prompt","map","value","name","default","installDependencies","pm","_ref","cwd","proc","stdio","exitCode","description","help","concat","cliName","presetHelpList","run","_ref2","argv","cli","meow","flags","initFlags","basePath","path","resolve","input","process","exists","isRoot","hasSanityJson","Error","v3ConfigFile","findStudioV3Config","log","info","force","isEmptyish","type","error","ensureDir","init","install"],"mappings":"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"}
1
+ {"version":3,"file":"init-7PO3ckQZ.js","sources":["../../src/npm/manager.ts","../../src/cmds/init.ts"],"sourcesContent":["import execa from 'execa'\nimport {prompt} from '../util/prompt'\n\nexport function npmIsAvailable() {\n return execa('npm', ['-v'])\n .then(() => true)\n .catch(() => false)\n}\n\nexport function yarnIsAvailable() {\n return execa('yarn', ['-v'])\n .then(() => true)\n .catch(() => false)\n}\n\nexport function pnpmAvailable() {\n return execa('pnpm', ['-v'])\n .then(() => true)\n .catch(() => false)\n}\n\nexport async function promptForPackageManager() {\n const [npm, yarn, pnpm] = await Promise.all([\n npmIsAvailable(),\n yarnIsAvailable(),\n pnpmAvailable(),\n ])\n\n const choices = [npm && 'npm', yarn && 'yarn', pnpm && 'pnpm'].filter(Boolean)\n if (choices.length < 2) {\n return choices[0] || 'npm'\n }\n\n return prompt('Which package manager do you prefer?', {\n choices: choices.map((value) => ({value, name: value})),\n default: choices[0],\n })\n}\n\nexport async function installDependencies(pm: string, {cwd}: {cwd?: string}) {\n const proc = execa(pm, ['install'], {cwd, stdio: 'inherit'})\n const {exitCode} = await proc\n return exitCode <= 0\n}\n","import path from 'path'\nimport meow from 'meow'\nimport log from '../util/log'\nimport {init, initFlags} from '../actions/init'\nimport {isEmptyish, ensureDir} from '../util/files'\nimport {installDependencies, promptForPackageManager} from '../npm/manager'\nimport {findStudioV3Config, hasSanityJson} from '../sanity/manifest'\nimport {prompt} from '../util/prompt'\nimport {cliName} from '../constants'\nimport {presetHelpList} from '../presets/presets'\n\nconst description = `Initialize a new Sanity plugin`\n\nconst help = `\nUsage\n $ ${cliName} init [dir] [<args>]\n\nOptions\n --no-eslint Disables ESLint config and dependencies from being added\n --no-prettier Disables prettier config and dependencies from being added\n --no-typescript Disables typescript config and dependencies from being added\n --no-license Disables LICENSE + package.json license field from being added\n --no-editorconfig Disables .editorconfig from being added\n --no-gitignore Disables .gitignore from being added\n --no-scripts Disables scripts from being added to package.json\n --no-install Disables automatically running package manager install\n\n --name [package-name] Use the provided package-name\n --author [name] Use the provided author\n --repo [url] Use the provided repo url\n --license [spdx] Use the license with the given SPDX identifier\n --force No promt when overwriting files\n\n --preset [preset-name] Adds config and files from a named preset. --preset can be supplied multiple times.\n The following presets are available:\n${presetHelpList(30)}\n\nExamples\n # Initialize a new plugin in the current directory\n $ ${cliName} init\n\n # Initialize a plugin in the directory ~/my-plugin\n $ ${cliName} init ~/my-plugin\n\n # Don't add eslint or prettier\n $ ${cliName} init --no-eslint --no-prettier\n`\n\nasync function run({argv}: {argv: string[]}) {\n const cli = meow(help, {flags: initFlags, argv, description})\n const basePath = path.resolve(cli.input[0] || process.cwd())\n\n const {exists, isRoot} = await hasSanityJson(basePath)\n if (exists && isRoot) {\n throw new Error(\n `sanity.json has a \"root\" property set to true - are you trying to init into a studio instead of a plugin?`,\n )\n }\n\n const {v3ConfigFile} = await findStudioV3Config(basePath)\n if (v3ConfigFile) {\n throw new Error(\n `${v3ConfigFile} exsists - are you trying to init into a studio instead of a plugin?`,\n )\n }\n\n log.info('Initializing new plugin in \"%s\"', basePath)\n if (\n !cli.flags.force &&\n !(await isEmptyish(basePath)) &&\n !(await prompt('Directory is not empty, proceed?', {type: 'confirm', default: false}))\n ) {\n log.error('Directory is not empty. Cancelled.')\n return\n }\n\n await ensureDir(basePath)\n await init({basePath, flags: cli.flags})\n if (cli.flags.install) {\n if (await installDependencies(await promptForPackageManager(), {cwd: basePath})) {\n log.info('Done!')\n } else {\n log.error('Failed to install dependencies, try manually running `npm install`')\n }\n } else {\n log.info('Dependency installation skipped.')\n }\n}\n\nexport default run\n"],"names":["npmIsAvailable","execa","then","catch","yarnIsAvailable","pnpmAvailable","promptForPackageManager","npm","yarn","pnpm","Promise","all","choices","filter","Boolean","length","prompt","map","value","name","default","installDependencies","pm","_ref","cwd","proc","stdio","exitCode","description","help","concat","cliName","presetHelpList","run","_ref2","argv","cli","meow","flags","initFlags","basePath","path","resolve","input","process","exists","isRoot","hasSanityJson","Error","v3ConfigFile","findStudioV3Config","log","info","force","isEmptyish","type","error","ensureDir","init","install"],"mappings":"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"}