{
  "version": 3,
  "sources": ["../../../../src/packages/plugin-commands-script-runners/create.ts"],
  "sourcesContent": ["import renderHelp from 'render-help';\nimport { docsUrl } from '../cli-utils/index.ts';\nimport { types } from '../config/index.ts';\nimport { PnpmError } from '../error/index.ts';\nimport pick from 'ramda/src/pick';\nimport * as dlx from './dlx.ts';\n\nexport const commandNames = ['create'];\n\nexport async function handler(\n  _opts: dlx.DlxCommandOptions,\n  params: string[]\n): Promise<{ exitCode: number }> {\n  const [packageName, ...packageArgs] = params;\n  if (packageName === undefined) {\n    throw new PnpmError(\n      'MISSING_ARGS',\n      'Missing the template package name.\\n' +\n        'The correct usage is `pnpm create <name>` ' +\n        'with <name> substituted for a package name.'\n    );\n  }\n\n  const createPackageName = convertToCreateName(packageName);\n\n  return dlx.handler(_opts, [createPackageName, ...packageArgs]);\n}\n\nexport function rcOptionsTypes(): Record<string, unknown> {\n  return {\n    ...pick.default(['use-node-version'], types),\n  };\n}\n\nexport function cliOptionsTypes(): Record<string, unknown> {\n  return {\n    ...rcOptionsTypes(),\n    'allow-build': [String, Array],\n  };\n}\n\nexport function help(): string {\n  return renderHelp({\n    description: 'Creates a project from a `create-*` starter kit.',\n    descriptionLists: [\n      {\n        title: 'Options',\n        list: [\n          {\n            description:\n              'A list of package names that are allowed to run postinstall scripts during installation',\n            name: '--allow-build',\n          },\n        ],\n      },\n    ],\n    url: docsUrl('create'),\n    usages: [\n      'pnpm create <name>',\n      'pnpm create <name-without-create>',\n      'pnpm create <@scope>',\n    ],\n  });\n}\n\nconst CREATE_PREFIX = 'create-';\n\n/**\n * Defines the npm's algorithm for resolving a package name\n * for create-* packages.\n *\n * Example:\n *   - `foo`            -> `create-foo`\n *   - `@usr/foo`       -> `@usr/create-foo`\n *   - `@usr`           -> `@usr/create`\n *   - `@usr@2.0.0`     -> `@usr/create@2.0.0`\n *   - `@usr/foo@2.0.0` -> `@usr/create-foo@2.0.0`\n *   - `@usr@latest`    -> `@user/create@latest`\n *\n * For more info, see https://docs.npmjs.com/cli/v9/commands/npm-init#description\n */\nfunction convertToCreateName(packageName: string): string {\n  let newPackageName = packageName;\n\n  if (newPackageName.startsWith('@')) {\n    const preferredVersionPosition = newPackageName.indexOf('@', 1);\n\n    let preferredVersion = '';\n\n    if (preferredVersionPosition > -1) {\n      preferredVersion = newPackageName.substring(preferredVersionPosition);\n\n      newPackageName = newPackageName.substring(0, preferredVersionPosition);\n    }\n\n    const [scope, scopedPackage = ''] = newPackageName.split('/');\n\n    if (scopedPackage === '') {\n      return `${scope}/create${preferredVersion}`;\n    }\n\n    return `${scope}/${ensureCreatePrefixed(scopedPackage)}${preferredVersion}`;\n  }\n\n  return ensureCreatePrefixed(newPackageName);\n}\n\nfunction ensureCreatePrefixed(packageName: string): string {\n  if (packageName.startsWith(CREATE_PREFIX)) {\n    return packageName;\n  }\n\n  return `${CREATE_PREFIX}${packageName}`;\n}\n"],
  "mappings": "AAAA,OAAO,gBAAgB;AACvB,SAAS,eAAe;AACxB,SAAS,aAAa;AACtB,SAAS,iBAAiB;AAC1B,OAAO,UAAU;AACjB,YAAY,SAAS;AAEd,MAAM,eAAe,CAAC,QAAQ;AAErC,eAAsB,QACpB,OACA,QAC+B;AAC/B,QAAM,CAAC,aAAa,GAAG,WAAW,IAAI;AACtC,MAAI,gBAAgB,QAAW;AAC7B,UAAM,IAAI;AAAA,MACR;AAAA,MACA;AAAA,IAGF;AAAA,EACF;AAEA,QAAM,oBAAoB,oBAAoB,WAAW;AAEzD,SAAO,IAAI,QAAQ,OAAO,CAAC,mBAAmB,GAAG,WAAW,CAAC;AAC/D;AAEO,SAAS,iBAA0C;AACxD,SAAO;AAAA,IACL,GAAG,KAAK,QAAQ,CAAC,kBAAkB,GAAG,KAAK;AAAA,EAC7C;AACF;AAEO,SAAS,kBAA2C;AACzD,SAAO;AAAA,IACL,GAAG,eAAe;AAAA,IAClB,eAAe,CAAC,QAAQ,KAAK;AAAA,EAC/B;AACF;AAEO,SAAS,OAAe;AAC7B,SAAO,WAAW;AAAA,IAChB,aAAa;AAAA,IACb,kBAAkB;AAAA,MAChB;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,UACJ;AAAA,YACE,aACE;AAAA,YACF,MAAM;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,KAAK,QAAQ,QAAQ;AAAA,IACrB,QAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEA,MAAM,gBAAgB;AAgBtB,SAAS,oBAAoB,aAA6B;AACxD,MAAI,iBAAiB;AAErB,MAAI,eAAe,WAAW,GAAG,GAAG;AAClC,UAAM,2BAA2B,eAAe,QAAQ,KAAK,CAAC;AAE9D,QAAI,mBAAmB;AAEvB,QAAI,2BAA2B,IAAI;AACjC,yBAAmB,eAAe,UAAU,wBAAwB;AAEpE,uBAAiB,eAAe,UAAU,GAAG,wBAAwB;AAAA,IACvE;AAEA,UAAM,CAAC,OAAO,gBAAgB,EAAE,IAAI,eAAe,MAAM,GAAG;AAE5D,QAAI,kBAAkB,IAAI;AACxB,aAAO,GAAG,KAAK,UAAU,gBAAgB;AAAA,IAC3C;AAEA,WAAO,GAAG,KAAK,IAAI,qBAAqB,aAAa,CAAC,GAAG,gBAAgB;AAAA,EAC3E;AAEA,SAAO,qBAAqB,cAAc;AAC5C;AAEA,SAAS,qBAAqB,aAA6B;AACzD,MAAI,YAAY,WAAW,aAAa,GAAG;AACzC,WAAO;AAAA,EACT;AAEA,SAAO,GAAG,aAAa,GAAG,WAAW;AACvC;",
  "names": []
}
