{"version":3,"file":"cerba_package.js","sourceRoot":"","sources":["../src/cerba_package.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAA6B;AAC7B,2CAAuC;AAEvC,+CAA4D;AAC5D,+BAA4B;AAE5B;IAAkC,gCAAS;IACzC,sBACS,KAAmG;QAD5G,YAGE,6BAAO,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAK,KAAK,EAAE,SAExC;QAJQ,WAAK,GAAL,KAAK,CAA8F;QAG1G,KAAI,CAAC,KAAK,cAAI,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAK,KAAK,CAAC,CAAC;;IAChD,CAAC;IACD,8BAAO,GAAP;;QACE,IAAM,KAAK,eAAG,IAAI,CAAC,KAAK,0CAAE,IAAI,0CAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACtB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC;QACzD,OAAO,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC;IAC3C,CAAC;IACD,sBAAI,8BAAI;aAAR;YACE,IAAI,IAAI,CAAC,KAAK;gBAAE,OAAU,IAAI,CAAC,KAAK,SAAI,IAAI,CAAC,EAAI,CAAC;YAClD,OAAO,KAAG,IAAI,CAAC,EAAI,CAAC;QACtB,CAAC;;;OAAA;IACD,sBAAI,4BAAE;aAAN;YACS,IAAA,IAAI,GAAI,IAAI,CAAC,OAAO,EAAE,KAAlB,CAAmB;YAC9B,OAAO,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC;QACnC,CAAC;;;OAAA;IACD,sBAAI,+BAAK;aAAT;YACS,IAAA,KAAK,GAAI,IAAI,CAAC,OAAO,EAAE,MAAlB,CAAmB;YAC/B,OAAO,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACpC,CAAC;;;OAAA;IACD,sBAAI,gCAAM;aAAV;YACE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,CAAC;;;OAAA;IACD,sBAAI,iCAAO;aAAX;YAAA,iBAKC;YAJC,OAAO,CAAC;;;;gCACc,qBAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAA;;4BAA3C,WAAW,GAAG,SAA6B;4BACjD,sBAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,EAAC;;;iBACxC,CAAC,EAAE,CAAC;QACP,CAAC;;;OAAA;IAED,sBAAI,iCAAO;aAAX;YAAA,iBAOC;YANC,OAAO,CAAC;;;;gCACI,qBAAM,IAAI,CAAC,OAAO,EAAA;;4BAAtB,CAAC,GAAG,SAAkB;4BACZ,qBAAM,CAAC,CAAC,OAAO,EAAA;;4BAAzB,OAAO,GAAG,SAAe;4BAC/B,IAAI,OAAO;gCAAE,sBAAO,OAAO,EAAC;4BACrB,qBAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAA;gCAAvC,sBAAO,SAAgC,EAAC;;;iBACzC,CAAC,EAAE,CAAC;QACP,CAAC;;;OAAA;IAED,qCAAqC;IAC/B,gCAAS,GAAf;;;;;;4BACgB,qBAAM,IAAI,CAAC,iBAAiB,EAAA;;wBAApC,KAAK,GAAG,SAA4B;wBACtB,qBAAM,IAAI,CAAC,OAAO,EAAA;;wBAAhC,WAAW,GAAG,SAAkB;wBACtC,sBAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,GAAG,CAAC,UAAM,IAAI;;;;;4CACZ,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;4CACvD,qBAAM,IAAI,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,EAAA;;4CAA7B,SAA6B,CAAC;;;;iCAC/B,CAAC,CACH,EAAC;;;;KACH;IACK,yCAAkB,GAAxB,UAAyB,QAAgB;;;;;;6BAC5B,WAAI;;wBACR,qBAAM,IAAI,CAAC,OAAO,EAAA;4BADzB,sBAAO,cAAI,WAAI,YACb,MAAG,GAAE,SAAkB;gCACvB,WAAQ,WAAA;wCACR,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,YAAY,EAAC;;;;KACnC;IAED,sBAAI,wCAAc;QADlB,6CAA6C;aAC7C;YAAA,iBAeC;YAdC,OAAO,CAAC;;;;gCACe,qBAAM,IAAI,CAAC,YAAY,EAAA;;4BAAtC,YAAY,GAAG,SAAuB;4BAC5B,qBAAM,IAAI,CAAC,OAAO,EAAA;;4BAA5B,OAAO,GAAG,SAAkB;4BAC5B,OAAO,GAAoB;gCAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;6BAChB,CAAC;4BACI,KAA2B,IAAI,CAAC,KAAK,EAApC,WAAW,iBAAA,EAAE,IAAI,UAAA,EAAE,GAAG,SAAA,CAAe;4BAC5C,IAAI,OAAO;gCAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;4BACvC,IAAI,WAAW;gCAAE,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;iCAC/C,IAAI,EAAJ,wBAAI;4BAAE,KAAA,OAAO,CAAA;4BAAQ,qBAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAA;;4BAAlD,GAAQ,IAAI,GAAG,SAAmC,CAAC;;;iCACzD,GAAG,EAAH,wBAAG;4BAAE,KAAA,OAAO,CAAA;4BAAO,qBAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAA;;4BAAhD,GAAQ,GAAG,GAAG,SAAkC,CAAC;;;4BAC1D,IAAI,YAAY;gCAAE,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;4BACtD,sBAAO,OAAO,EAAC;;;iBAChB,CAAC,EAAE,CAAC;QACP,CAAC;;;OAAA;IAED,sBAAI,iCAAO;aAAX;YAAA,iBAOC;YANC,OAAO,CAAC;;;;;4BACN,IAAI,IAAI,CAAC,YAAY;gCAAE,sBAAO,IAAI,CAAC,YAAY,EAAC;4BACpC,qBAAM,IAAI,CAAC,OAAO,EAAA;;4BAAxB,GAAG,GAAG,SAAkB;4BAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,0BAAW,CAAC,EAAC,GAAG,KAAA,EAAC,CAAC,CAAC;4BAC3C,sBAAO,IAAI,CAAC,YAAY,EAAC;;;iBAC1B,CAAC,EAAE,CAAC;QACP,CAAC;;;OAAA;IACK,mCAAY,GAAlB;;;;;4BACe,qBAAM,IAAI,CAAC,OAAO,EAAA;;wBAAzB,IAAI,GAAG,SAAkB;wBACxB,KAAA,CAAA,KAAA,IAAI,CAAA,CAAC,KAAK,CAAA;wBAAC,qBAAM,IAAI,CAAC,cAAc,EAAA;4BAA3C,sBAAO,cAAW,SAAyB,EAAC,EAAC;;;;KAC9C;IACK,4BAAK,GAAX;;;;4BACE,qBAAM,IAAI,CAAC,YAAY,EAAE,EAAA;;wBAAzB,SAAyB,CAAC;wBAC1B,qBAAM,IAAI,CAAC,SAAS,EAAE,EAAA;;wBAAtB,SAAsB,CAAC;;;;;KACxB;IACH,mBAAC;AAAD,CAAC,AA/FD,CAAkC,sBAAS,GA+F1C;AA/FY,oCAAY","sourcesContent":["import * as path from 'path';\nimport {BabelFile} from './babel_file';\nimport {CerbaConfig, CerbaConfigPkg} from './cerba_config';\nimport {PackageJSON, PackageJSONType} from './package_json';\nimport {Path} from './path';\n\nexport class CerbaPackage extends BabelFile {\n constructor(\n public props: ConstructorParameters[0] & Partial & {config: CerbaConfig}\n ) {\n super({basename: props.main, ...props});\n this.props = {basename: props.main, ...props};\n }\n getName(): {name?: string; scope?: string} {\n const split = this.props?.name?.split('/');\n if (!split) return {};\n if (split && split.length === 1) return {name: split[0]};\n return {name: split[1], scope: split[2]};\n }\n get name() {\n if (this.scope) return `${this.scope}/${this.id}`;\n return `${this.id}`;\n }\n get id() {\n const {name} = this.getName();\n return name || this.coreBasename;\n }\n get scope() {\n const {scope} = this.getName();\n return scope || this.config.scope;\n }\n get config() {\n return this.props.config;\n }\n get destDir() {\n return (async () => {\n const packagesDir = await this.config.packagesDir;\n return path.join(packagesDir, this.id);\n })();\n }\n\n get version() {\n return (async () => {\n const p = await this.package;\n const version = await p.version;\n if (version) return version;\n return await this.config.initialVersion;\n })();\n }\n\n /** moves files to the packagesDir */\n async moveFiles() {\n const files = await this.recursiveSiblings;\n const packagesDir = await this.destDir;\n return Promise.all(\n files.map(async file => {\n const dest = path.join(packagesDir, file.relativePath);\n await file.copy({path: dest});\n })\n );\n }\n async mapJavascriptFiles(basename: string) {\n return new Path({\n cwd: await this.destDir,\n basename,\n }).replaceExt('.js').relativePath;\n }\n /** returns the package json for this file */\n get packageContent() {\n return (async () => {\n const dependencies = await this.dependencies;\n const version = await this.version;\n const results: PackageJSONType = {\n name: this.name,\n };\n const {description, main, bin} = this.props;\n if (version) results.version = version;\n if (description) results.description = description;\n if (main) results.main = await this.mapJavascriptFiles(main);\n if (bin) results.bin = await this.mapJavascriptFiles(bin);\n if (dependencies) results.dependencies = dependencies;\n return results;\n })();\n }\n cachePackage?: PackageJSON;\n get package() {\n return (async () => {\n if (this.cachePackage) return this.cachePackage;\n const cwd = await this.destDir;\n this.cachePackage = new PackageJSON({cwd});\n return this.cachePackage;\n })();\n }\n async buildPackage() {\n const pack = await this.package;\n return pack.write(await this.packageContent);\n }\n async build() {\n await this.buildPackage();\n await this.moveFiles();\n }\n}\n"]}