{
  "version": 3,
  "sources": ["../../../../src/packages/plugin-commands-publishing/pack.ts"],
  "sourcesContent": ["import fs from 'node:fs';\nimport path from 'node:path';\nimport { createGzip } from 'node:zlib';\nimport type { Catalogs } from '../catalogs.types/index.ts';\nimport { PnpmError } from '../error/index.ts';\nimport {\n  types as allTypes,\n  type UniversalOptions,\n  type Config,\n} from '../config/index.ts';\nimport { readProjectManifest } from '../cli-utils/index.ts';\nimport { createExportableManifest } from '../exportable-manifest/index.ts';\nimport { packlist } from '../fs.packlist/index.ts';\nimport { getBinsFromPackageManifest } from '../package-bins/index.ts';\nimport type { ProjectManifest, DependencyManifest } from '../types/index.ts';\nimport { glob } from 'tinyglobby';\nimport pick from 'ramda/src/pick';\nimport realpathMissing from 'realpath-missing';\nimport renderHelp from 'render-help';\nimport tar from 'tar-stream';\nimport { runScriptsIfPresent } from './publish.ts';\nimport chalk from 'chalk';\nimport validateNpmPackageName from 'validate-npm-package-name';\n\nconst LICENSE_GLOB = 'LICEN{S,C}E{,.*}'; // cspell:disable-line\n\nexport function rcOptionsTypes(): Record<string, unknown> {\n  return {\n    ...cliOptionsTypes(),\n    ...pick.default(['npm-path'], allTypes),\n  };\n}\n\nexport function cliOptionsTypes(): Record<string, unknown> {\n  return {\n    'pack-destination': String,\n    out: String,\n    ...pick.default(['pack-gzip-level', 'json'], allTypes),\n  };\n}\n\nexport const commandNames = ['pack'];\n\nexport function help(): string {\n  return renderHelp({\n    description: 'Create a tarball from a package',\n    usages: ['pnpm pack'],\n    descriptionLists: [\n      {\n        title: 'Options',\n\n        list: [\n          {\n            description:\n              'Directory in which `pnpm pack` will save tarballs. The default is the current working directory.',\n            name: '--pack-destination <dir>',\n          },\n          {\n            description:\n              'Prints the packed tarball and contents in the json format.',\n            name: '--json',\n          },\n          {\n            description:\n              'Customizes the output path for the tarball. Use `%s` and `%v` to include the package name and version, e.g., `%s.tgz` or `some-dir/%s-%v.tgz`. By default, the tarball is saved in the current working directory with the name `<package-name>-<version>.tgz`.',\n            name: '--out <path>',\n          },\n        ],\n      },\n    ],\n  });\n}\n\nexport type PackOptions = Pick<UniversalOptions, 'dir'> &\n  Pick<\n    Config,\n    | 'catalogs'\n    | 'ignoreScripts'\n    | 'rawConfig'\n    | 'embedReadme'\n    | 'packGzipLevel'\n    | 'nodeLinker'\n  > &\n  Partial<Pick<Config, 'extraBinPaths' | 'extraEnv'>> & {\n    argv: {\n      original: string[];\n    };\n    engineStrict?: boolean | undefined;\n    packDestination?: string | undefined;\n    out?: string | undefined;\n    workspaceDir?: string | undefined;\n    json?: boolean | undefined;\n  };\n\nexport async function handler(opts: PackOptions): Promise<string> {\n  const { publishedManifest, tarballPath, contents } = await api(opts);\n  if (opts.json === true) {\n    return JSON.stringify(\n      {\n        name: publishedManifest.name,\n        version: publishedManifest.version,\n        filename: tarballPath,\n        files: contents.map((path) => ({ path })),\n      },\n      null,\n      2\n    );\n  }\n  return `${chalk.blueBright('Tarball Contents')}\n${contents.join('\\n')}\n\n${chalk.blueBright('Tarball Details')}\n${tarballPath}`;\n}\n\nexport async function api(opts: PackOptions): Promise<PackResult> {\n  const { manifest: entryManifest, fileName: manifestFileName } =\n    await readProjectManifest(opts.dir, opts);\n\n  preventBundledDependenciesWithoutHoistedNodeLinker(\n    opts.nodeLinker,\n    entryManifest\n  );\n\n  const _runScriptsIfPresent = runScriptsIfPresent.bind(null, {\n    depPath: opts.dir,\n    extraBinPaths: opts.extraBinPaths,\n    extraEnv: opts.extraEnv,\n    pkgRoot: opts.dir,\n    rawConfig: opts.rawConfig,\n    rootModulesDir: await realpathMissing(path.join(opts.dir, 'node_modules')),\n    stdio: 'inherit',\n    unsafePerm: true, // when running scripts explicitly, assume that they're trusted.\n  });\n\n  if (opts.ignoreScripts !== true) {\n    await _runScriptsIfPresent(['prepack', 'prepare'], entryManifest);\n  }\n\n  const dir =\n    typeof entryManifest.publishConfig?.directory === 'undefined'\n      ? opts.dir\n      : path.join(opts.dir, entryManifest.publishConfig.directory);\n\n  // always read the latest manifest, as \"prepack\" or \"prepare\" script may modify package manifest.\n  const { manifest } = await readProjectManifest(dir, opts);\n\n  preventBundledDependenciesWithoutHoistedNodeLinker(opts.nodeLinker, manifest);\n\n  if (!manifest.name) {\n    throw new PnpmError(\n      'PACKAGE_NAME_NOT_FOUND',\n      `Package name is not defined in the ${manifestFileName}.`\n    );\n  }\n\n  if (!validateNpmPackageName(manifest.name).validForOldPackages) {\n    throw new PnpmError(\n      'INVALID_PACKAGE_NAME',\n      `Invalid package name \"${manifest.name}\".`\n    );\n  }\n\n  if (!manifest.version) {\n    throw new PnpmError(\n      'PACKAGE_VERSION_NOT_FOUND',\n      `Package version is not defined in the ${manifestFileName}.`\n    );\n  }\n\n  let tarballName: string;\n\n  let packDestination: string | undefined;\n\n  const normalizedName = manifest.name.replace('@', '').replace('/', '-');\n\n  if (typeof opts.out === 'string') {\n    if (typeof opts.packDestination === 'string') {\n      throw new PnpmError(\n        'INVALID_OPTION',\n        'Cannot use --pack-destination and --out together'\n      );\n    }\n\n    const preparedOut = opts.out\n      .replaceAll('%s', normalizedName)\n      .replaceAll('%v', manifest.version);\n\n    const parsedOut = path.parse(preparedOut);\n\n    packDestination = parsedOut.dir ? parsedOut.dir : opts.packDestination;\n\n    tarballName = parsedOut.base;\n  } else {\n    tarballName = `${normalizedName}-${manifest.version}.tgz`;\n\n    packDestination = opts.packDestination;\n  }\n\n  const publishManifest = await createPublishManifest({\n    projectDir: dir,\n    modulesDir: path.join(opts.dir, 'node_modules'),\n    manifest,\n    embedReadme: opts.embedReadme,\n    catalogs: opts.catalogs ?? {},\n  });\n\n  const files = await packlist(dir, {\n    packageJsonCache: {\n      [path.join(dir, 'package.json')]: publishManifest,\n    },\n  });\n\n  const filesMap = Object.fromEntries(\n    files.map((file: string): [string, string] => {\n      return [`package/${file}`, path.join(dir, file)];\n    })\n  );\n\n  if (\n    opts.workspaceDir != null &&\n    dir !== opts.workspaceDir &&\n    !files.some((file) => /licen[cs]e(?:\\..+)?/i.test(file))\n  ) {\n    const licenses = await glob([LICENSE_GLOB], {\n      cwd: opts.workspaceDir,\n      expandDirectories: false,\n    });\n\n    for (const license of licenses) {\n      filesMap[`package/${license}`] = path.join(opts.workspaceDir, license);\n    }\n  }\n\n  const destDir =\n    typeof packDestination === 'string'\n      ? path.isAbsolute(packDestination)\n        ? packDestination\n        : path.join(dir, packDestination || '.')\n      : dir;\n\n  await fs.promises.mkdir(destDir, { recursive: true });\n\n  await packPkg({\n    destFile: path.join(destDir, tarballName),\n    filesMap,\n    modulesDir: path.join(opts.dir, 'node_modules'),\n    packGzipLevel: opts.packGzipLevel,\n    manifest: publishManifest,\n    bins: [\n      ...(\n        await getBinsFromPackageManifest(\n          publishManifest as DependencyManifest,\n          dir\n        )\n      ).map(({ path }) => path),\n      ...(manifest.publishConfig?.executableFiles ?? []).map((executableFile) =>\n        path.join(dir, executableFile)\n      ),\n    ],\n  });\n\n  if (opts.ignoreScripts !== true) {\n    await _runScriptsIfPresent(['postpack'], entryManifest);\n  }\n\n  const packedTarballPath =\n    opts.dir === destDir\n      ? path.relative(opts.dir, path.join(dir, tarballName))\n      : path.join(destDir, tarballName);\n\n  const packedContents = files.sort((a: string, b: string): number => {\n    return a.localeCompare(b, 'en');\n  });\n\n  return {\n    publishedManifest: publishManifest,\n    contents: packedContents,\n    tarballPath: packedTarballPath,\n  };\n}\n\nexport type PackResult = {\n  publishedManifest: ProjectManifest;\n  contents: string[];\n  tarballPath: string;\n};\n\nfunction preventBundledDependenciesWithoutHoistedNodeLinker(\n  nodeLinker: Config['nodeLinker'],\n  manifest: ProjectManifest\n): void {\n  if (nodeLinker === 'hoisted') {\n    return;\n  }\n\n  for (const key of ['bundledDependencies', 'bundleDependencies'] as const) {\n    const bundledDependencies = manifest[key];\n\n    if (typeof bundledDependencies !== 'undefined') {\n      throw new PnpmError(\n        'BUNDLED_DEPENDENCIES_WITHOUT_HOISTED',\n        `${key} does not work with node-linker=${nodeLinker}`,\n        {\n          hint: `Add node-linker=hoisted to .npmrc or delete ${key} from the root package.json to resolve this error`,\n        }\n      );\n    }\n  }\n}\n\nasync function readReadmeFile(projectDir: string): Promise<string | undefined> {\n  const files = await fs.promises.readdir(projectDir);\n\n  const readmePath = files.find((name: string): boolean => {\n    return /readme\\.md$/i.test(name);\n  });\n\n  return typeof readmePath === 'string'\n    ? await fs.promises.readFile(path.join(projectDir, readmePath), 'utf8')\n    : undefined;\n}\n\nasync function packPkg(opts: {\n  destFile: string;\n  filesMap: Record<string, string>;\n  modulesDir: string;\n  packGzipLevel?: number | undefined;\n  bins: string[];\n  manifest: ProjectManifest;\n}): Promise<void> {\n  const { destFile, filesMap, bins, manifest } = opts;\n\n  const mtime = new Date('1985-10-26T08:15:00.000Z');\n\n  const pack = tar.pack();\n\n  await Promise.all(\n    Object.entries(filesMap).map(\n      async ([name, source]: [string, string]): Promise<void> => {\n        const isExecutable = bins.some((bin: string): boolean => {\n          return path.relative(bin, source) === '';\n        });\n\n        const mode = isExecutable ? 0o7_5_5 : 0o6_4_4;\n\n        if (/^package\\/package\\.(?:json|json5|yaml)$/.test(name)) {\n          pack.entry(\n            { mode, mtime, name: 'package/package.json' },\n            JSON.stringify(manifest, null, 2)\n          );\n\n          return;\n        }\n\n        pack.entry({ mode, mtime, name }, fs.readFileSync(source));\n      }\n    )\n  );\n\n  const tarball = fs.createWriteStream(destFile);\n\n  pack.pipe(createGzip({ level: opts.packGzipLevel })).pipe(tarball);\n\n  pack.finalize();\n\n  return new Promise((resolve, reject): void => {\n    tarball\n      .on('close', (): void => {\n        resolve();\n      })\n      .on('error', reject);\n  });\n}\n\nasync function createPublishManifest(opts: {\n  projectDir: string;\n  embedReadme?: boolean | undefined;\n  modulesDir: string;\n  manifest: ProjectManifest;\n  catalogs: Catalogs;\n}): Promise<ProjectManifest> {\n  const { projectDir, embedReadme, modulesDir, manifest, catalogs } = opts;\n\n  const readmeFile =\n    embedReadme === true ? await readReadmeFile(projectDir) : undefined;\n\n  return createExportableManifest(projectDir, manifest, {\n    catalogs,\n    readmeFile,\n    modulesDir,\n  });\n}\n"],
  "mappings": "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",
  "names": ["path"]
}
