{
  "version": 3,
  "sources": ["../../../../src/packages/plugin-commands-rebuild/rebuild.ts"],
  "sourcesContent": ["import { docsUrl, readProjectManifestOnly } from '../cli-utils/index.ts';\nimport {\n  FILTERING,\n  UNIVERSAL_OPTIONS,\n} from '../common-cli-options-help/index.ts';\nimport { type Config, types as allTypes } from '../config/index.ts';\nimport {\n  createOrConnectStoreController,\n  type CreateStoreControllerOptions,\n} from '../store-connection-manager/index.ts';\nimport type { ModulesDir, ProjectId, ProjectRootDir } from '../types/index.ts';\nimport pick from 'ramda/src/pick';\nimport renderHelp from 'render-help';\nimport {\n  rebuildProjects,\n  rebuildSelectedPkgs,\n} from './implementation/index.ts';\nimport { recursiveRebuild } from './recursive.ts';\nimport type { ReporterFunction } from '../headless/index.ts';\n\nexport function rcOptionsTypes(): Record<string, unknown> {\n  return {\n    ...pick.default(\n      [\n        'npm-path',\n        'reporter',\n        'scripts-prepend-node-path',\n        'unsafe-perm',\n        'store-dir',\n      ],\n      allTypes\n    ),\n  };\n}\n\nexport function cliOptionsTypes(): Record<string, unknown> {\n  return {\n    ...rcOptionsTypes(),\n    pending: Boolean,\n    recursive: Boolean,\n  };\n}\n\nexport const commandNames = ['rebuild', 'rb'];\n\nexport function help(): string {\n  return renderHelp({\n    aliases: ['rb'],\n    description: 'Rebuild a package.',\n    descriptionLists: [\n      {\n        title: 'Options',\n\n        list: [\n          {\n            description:\n              'Rebuild every package found in subdirectories \\\nor every workspace package, when executed inside a workspace. \\\nFor options that may be used with `-r`, see \"pnpm help recursive\"',\n            name: '--recursive',\n            shortAlias: '-r',\n          },\n          {\n            description:\n              'Rebuild packages that were not build during installation. Packages are not build when installing with the --ignore-scripts flag',\n            name: '--pending',\n          },\n          {\n            description:\n              'The directory in which all the packages are saved on the disk',\n            name: '--store-dir <dir>',\n          },\n          ...UNIVERSAL_OPTIONS,\n        ],\n      },\n      FILTERING,\n    ],\n    url: docsUrl('rebuild'),\n    usages: ['pnpm rebuild [<pkg> ...]'],\n  });\n}\n\nexport type RebuildCommandOpts = Pick<\n  Config,\n  | 'allProjects'\n  | 'dir'\n  | 'engineStrict'\n  | 'hooks'\n  | 'lockfileDir'\n  | 'nodeLinker'\n  | 'rawLocalConfig'\n  | 'rootProjectManifest'\n  | 'rootProjectManifestDir'\n  | 'registries'\n  | 'scriptShell'\n  | 'selectedProjectsGraph'\n  | 'sideEffectsCache'\n  | 'sideEffectsCacheReadonly'\n  | 'scriptsPrependNodePath'\n  | 'shellEmulator'\n  | 'workspaceDir'\n> &\n  CreateStoreControllerOptions & {\n    recursive?: boolean | undefined;\n    reporter?: ReporterFunction | undefined;\n    pending: boolean;\n    skipIfHasSideEffectsCache?: boolean | undefined;\n    neverBuiltDependencies?: string[] | undefined;\n    onlyBuiltDependencies?: string[] | undefined;\n  };\n\nexport async function handler(\n  opts: RebuildCommandOpts,\n  params: string[]\n): Promise<void> {\n  if (\n    opts.recursive === true &&\n    opts.allProjects != null &&\n    opts.selectedProjectsGraph != null &&\n    typeof opts.workspaceDir === 'string' &&\n    opts.workspaceDir !== ''\n  ) {\n    await recursiveRebuild(opts.allProjects, params, {\n      ...opts,\n      selectedProjectsGraph: opts.selectedProjectsGraph,\n      workspaceDir: opts.workspaceDir,\n    });\n\n    return;\n  }\n\n  const store = await createOrConnectStoreController(opts);\n\n  const rebuildOpts = Object.assign(opts, {\n    sideEffectsCacheRead:\n      opts.sideEffectsCache ?? opts.sideEffectsCacheReadonly,\n    sideEffectsCacheWrite: opts.sideEffectsCache,\n    storeController: store.ctrl,\n    storeDir: store.dir,\n  });\n\n  if (params.length === 0) {\n    await rebuildProjects(\n      [\n        {\n          // TODO: fix id\n          id: '' as ProjectId,\n          // TODO: fix binsDir\n          binsDir: '' as ProjectRootDir,\n          // TODO: fix modulesDir\n          modulesDir: 'node_modules' as ModulesDir,\n          // TODO: fix buildIndex\n          buildIndex: 0,\n          manifest: await readProjectManifestOnly(rebuildOpts.dir, opts),\n          rootDir: rebuildOpts.dir as ProjectRootDir,\n        },\n      ],\n      rebuildOpts\n    );\n    return;\n  }\n\n  await rebuildSelectedPkgs(\n    [\n      {\n        // TODO: fix id\n        id: '' as ProjectId,\n        // TODO: fix binsDir\n        binsDir: '' as ProjectRootDir,\n        // TODO: fix modulesDir\n        modulesDir: 'node_modules' as ModulesDir,\n        // TODO: fix buildIndex\n        buildIndex: 0,\n        manifest: await readProjectManifestOnly(rebuildOpts.dir, opts),\n        rootDir: rebuildOpts.dir as ProjectRootDir,\n      },\n    ],\n    params,\n    rebuildOpts\n  );\n}\n"],
  "mappings": "AAAA,SAAS,SAAS,+BAA+B;AACjD;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAsB,SAAS,gBAAgB;AAC/C;AAAA,EACE;AAAA,OAEK;AAEP,OAAO,UAAU;AACjB,OAAO,gBAAgB;AACvB;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,wBAAwB;AAG1B,SAAS,iBAA0C;AACxD,SAAO;AAAA,IACL,GAAG,KAAK;AAAA,MACN;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,kBAA2C;AACzD,SAAO;AAAA,IACL,GAAG,eAAe;AAAA,IAClB,SAAS;AAAA,IACT,WAAW;AAAA,EACb;AACF;AAEO,MAAM,eAAe,CAAC,WAAW,IAAI;AAErC,SAAS,OAAe;AAC7B,SAAO,WAAW;AAAA,IAChB,SAAS,CAAC,IAAI;AAAA,IACd,aAAa;AAAA,IACb,kBAAkB;AAAA,MAChB;AAAA,QACE,OAAO;AAAA,QAEP,MAAM;AAAA,UACJ;AAAA,YACE,aACE;AAAA,YAGF,MAAM;AAAA,YACN,YAAY;AAAA,UACd;AAAA,UACA;AAAA,YACE,aACE;AAAA,YACF,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,aACE;AAAA,YACF,MAAM;AAAA,UACR;AAAA,UACA,GAAG;AAAA,QACL;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,IACA,KAAK,QAAQ,SAAS;AAAA,IACtB,QAAQ,CAAC,0BAA0B;AAAA,EACrC,CAAC;AACH;AA+BA,eAAsB,QACpB,MACA,QACe;AACf,MACE,KAAK,cAAc,QACnB,KAAK,eAAe,QACpB,KAAK,yBAAyB,QAC9B,OAAO,KAAK,iBAAiB,YAC7B,KAAK,iBAAiB,IACtB;AACA,UAAM,iBAAiB,KAAK,aAAa,QAAQ;AAAA,MAC/C,GAAG;AAAA,MACH,uBAAuB,KAAK;AAAA,MAC5B,cAAc,KAAK;AAAA,IACrB,CAAC;AAED;AAAA,EACF;AAEA,QAAM,QAAQ,MAAM,+BAA+B,IAAI;AAEvD,QAAM,cAAc,OAAO,OAAO,MAAM;AAAA,IACtC,sBACE,KAAK,oBAAoB,KAAK;AAAA,IAChC,uBAAuB,KAAK;AAAA,IAC5B,iBAAiB,MAAM;AAAA,IACvB,UAAU,MAAM;AAAA,EAClB,CAAC;AAED,MAAI,OAAO,WAAW,GAAG;AACvB,UAAM;AAAA,MACJ;AAAA,QACE;AAAA;AAAA,UAEE,IAAI;AAAA;AAAA,UAEJ,SAAS;AAAA;AAAA,UAET,YAAY;AAAA;AAAA,UAEZ,YAAY;AAAA,UACZ,UAAU,MAAM,wBAAwB,YAAY,KAAK,IAAI;AAAA,UAC7D,SAAS,YAAY;AAAA,QACvB;AAAA,MACF;AAAA,MACA;AAAA,IACF;AACA;AAAA,EACF;AAEA,QAAM;AAAA,IACJ;AAAA,MACE;AAAA;AAAA,QAEE,IAAI;AAAA;AAAA,QAEJ,SAAS;AAAA;AAAA,QAET,YAAY;AAAA;AAAA,QAEZ,YAAY;AAAA,QACZ,UAAU,MAAM,wBAAwB,YAAY,KAAK,IAAI;AAAA,QAC7D,SAAS,YAAY;AAAA,MACvB;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
  "names": []
}
