@turbo/codemod 1.10.13-canary.1 → 1.10.13-canary.2
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.
- package/dist/cli.js +1 -1
- package/package.json +4 -4
package/dist/cli.js
CHANGED
@@ -181,7 +181,7 @@ ${o.message}`:S,m=[v,a,c].filter(Boolean).join(`
|
|
181
181
|
`+e.slice(a+1):o+=e.slice(i),o.slice(1)}function rI(e){for(var r="",t=0,n,i=0;i<e.length;t>=65536?i+=2:i++)t=li(e,i),n=st[t],!n&&pi(t)?(r+=e[i],t>=65536&&(r+=e[i+1])):r+=n||VL(t);return r}function nI(e,r,t){var n="",i=e.tag,c,a,s;for(c=0,a=t.length;c<a;c+=1)s=t[c],e.replacer&&(s=e.replacer.call(t,String(c),s)),(Yt(e,r,s,!1,!1)||typeof s>"u"&&Yt(e,r,null,!1,!1))&&(n!==""&&(n+=","+(e.condenseFlow?"":" ")),n+=e.dump);e.tag=i,e.dump="["+n+"]"}function I1(e,r,t,n){var i="",c=e.tag,a,s,o;for(a=0,s=t.length;a<s;a+=1)o=t[a],e.replacer&&(o=e.replacer.call(t,String(a),o)),(Yt(e,r+1,o,!0,!0,!1,!0)||typeof o>"u"&&Yt(e,r+1,null,!0,!0,!1,!0))&&((!n||i!=="")&&(i+=Rl(e,r)),e.dump&&hi===e.dump.charCodeAt(0)?i+="-":i+="- ",i+=e.dump);e.tag=c,e.dump=i||"[]"}function iI(e,r,t){var n="",i=e.tag,c=Object.keys(t),a,s,o,f,l;for(a=0,s=c.length;a<s;a+=1)l="",n!==""&&(l+=", "),e.condenseFlow&&(l+='"'),o=c[a],f=t[o],e.replacer&&(f=e.replacer.call(t,o,f)),Yt(e,r,o,!1,!1)&&(e.dump.length>1024&&(l+="? "),l+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Yt(e,r,f,!1,!1)&&(l+=e.dump,n+=l));e.tag=i,e.dump="{"+n+"}"}function sI(e,r,t,n){var i="",c=e.tag,a=Object.keys(t),s,o,f,l,h,u;if(e.sortKeys===!0)a.sort();else if(typeof e.sortKeys=="function")a.sort(e.sortKeys);else if(e.sortKeys)throw new ht("sortKeys must be a boolean or a function");for(s=0,o=a.length;s<o;s+=1)u="",(!n||i!=="")&&(u+=Rl(e,r)),f=a[s],l=t[f],e.replacer&&(l=e.replacer.call(t,f,l)),Yt(e,r+1,f,!0,!0,!0)&&(h=e.tag!==null&&e.tag!=="?"||e.dump&&e.dump.length>1024,h&&(e.dump&&hi===e.dump.charCodeAt(0)?u+="?":u+="? "),u+=e.dump,h&&(u+=Rl(e,r)),Yt(e,r+1,l,!0,h)&&(e.dump&&hi===e.dump.charCodeAt(0)?u+=":":u+=": ",u+=e.dump,i+=u));e.tag=c,e.dump=i||"{}"}function M1(e,r,t){var n,i,c,a,s,o;for(i=t?e.explicitTypes:e.implicitTypes,c=0,a=i.length;c<a;c+=1)if(s=i[c],(s.instanceOf||s.predicate)&&(!s.instanceOf||typeof r=="object"&&r instanceof s.instanceOf)&&(!s.predicate||s.predicate(r))){if(t?s.multi&&s.representName?e.tag=s.representName(r):e.tag=s.tag:e.tag="?",s.represent){if(o=e.styleMap[s.tag]||s.defaultStyle,sy.call(s.represent)==="[object Function]")n=s.represent(r,o);else if(oy.call(s.represent,o))n=s.represent[o](r,o);else throw new ht("!<"+s.tag+'> tag resolver accepts not "'+o+'" style');e.dump=n}return!0}return!1}function Yt(e,r,t,n,i,c,a){e.tag=null,e.dump=t,M1(e,t,!1)||M1(e,t,!0);var s=sy.call(e.dump),o=n,f;n&&(n=e.flowLevel<0||e.flowLevel>r);var l=s==="[object Object]"||s==="[object Array]",h,u;if(l&&(h=e.duplicates.indexOf(t),u=h!==-1),(e.tag!==null&&e.tag!=="?"||u||e.indent!==2&&r>0)&&(i=!1),u&&e.usedDuplicates[h])e.dump="*ref_"+h;else{if(l&&u&&!e.usedDuplicates[h]&&(e.usedDuplicates[h]=!0),s==="[object Object]")n&&Object.keys(e.dump).length!==0?(sI(e,r,e.dump,i),u&&(e.dump="&ref_"+h+e.dump)):(iI(e,r,e.dump),u&&(e.dump="&ref_"+h+" "+e.dump));else if(s==="[object Array]")n&&e.dump.length!==0?(e.noArrayIndent&&!a&&r>0?I1(e,r-1,e.dump,i):I1(e,r,e.dump,i),u&&(e.dump="&ref_"+h+e.dump)):(nI(e,r,e.dump),u&&(e.dump="&ref_"+h+" "+e.dump));else if(s==="[object String]")e.tag!=="?"&&eI(e,e.dump,r,c,o);else{if(s==="[object Undefined]"||e.skipInvalid)return!1;throw new ht("unacceptable kind of an object to dump "+s)}e.tag!==null&&e.tag!=="?"&&(f=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?f="!"+f:f.slice(0,18)==="tag:yaml.org,2002:"?f="!!"+f.slice(18):f="!<"+f+">",e.dump=f+" "+e.dump)}return!0}function oI(e,r){var t=[],n=[],i,c;for(Tl(e,t,n),i=0,c=n.length;i<c;i+=1)r.duplicates.push(t[n[i]]);r.usedDuplicates=new Array(c)}function Tl(e,r,t){var n,i,c;if(e!==null&&typeof e=="object")if(i=r.indexOf(e),i!==-1)t.indexOf(i)===-1&&t.push(i);else if(r.push(e),Array.isArray(e))for(i=0,c=e.length;i<c;i+=1)Tl(e[i],r,t);else for(n=Object.keys(e),i=0,c=n.length;i<c;i+=1)Tl(e[n[i]],r,t)}function aI(e,r){r=r||{};var t=new YL(r);t.noRefs||oI(e,t);var n=e;return t.replacer&&(n=t.replacer.call({"":n},"",n)),Yt(t,0,n,!0,!0)?t.dump+`
|
182
182
|
`:""}var uI=aI,lI={dump:uI};function Gl(e,r){return function(){throw new Error("Function yaml."+e+" is removed in js-yaml 4. Use yaml."+r+" instead, which is now safe by default.")}}var x7=iy.load,A7=iy.loadAll,C7=lI.dump;var k7=Gl("safeLoad","load"),D7=Gl("safeLoadAll","loadAll"),R7=Gl("safeDump","dump");var O7=je(HB());function cI(e,r="latest"){switch(e){case"yarn":return`yarn global add turbo@${r}`;case"npm":return`npm install turbo@${r} --global`;case"pnpm":return`pnpm add turbo@${r} --global`}}function hI({packageManager:e,packageManagerVersion:r,installType:t,isUsingWorkspaces:n,to:i="latest"}){let c=a=>a.filter(Boolean).join(" ");switch(e){case"yarn":return(0,gy.gte)(r,"2.0.0")?c(["yarn","add",`turbo@${i}`,t==="devDependencies"&&"--dev"]):c(["yarn","add",`turbo@${i}`,t==="devDependencies"&&"--dev",n&&"-W"]);case"npm":return c(["npm","install",`turbo@${i}`,t==="devDependencies"&&"--save-dev"]);case"pnpm":return c(["pnpm","add",`turbo@${i}`,t==="devDependencies"&&"--save-dev",n&&"-w"])}}function fI({root:e}){let r=yy.default.join(e,"package.json");if(!Ul.default.existsSync(r)){console.error(`Unable to find package.json at ${r}`);return}let t=Ul.default.readJsonSync(r),n=t.devDependencies&&"turbo"in t.devDependencies,i=t.dependencies&&"turbo"in t.dependencies;if(i||n)return i?"dependencies":"devDependencies"}async function Wl({project:e,to:r}){let t=Ct("turbo bin",{cwd:e.paths.root,stdio:"pipe"}),n=await _l(),i=Object.keys(n).find(c=>{let a=n[c];return a&&t?t.includes(a):!1});if(t&&i)return cI(i,r);{let{packageManager:c}=e,a=e.workspaceData.globs.length>0,s=fI({root:e.paths.root}),f=(await vl())[c];if(c&&f&&s)return hI({packageManager:c,packageManagerVersion:f,installType:s,isUsingWorkspaces:a,to:r})}}var gi=Pe(require("chalk"));var Xs=Pe(require("chalk")),Zs=require("diff"),di=Pe(require("fs-extra")),by=Pe(require("os")),zl=Pe(require("path")),mi=class{constructor(r){this.changes=[];if(this.filePath=r.filePath,this.rootPath=r.rootPath,this.after=r.after,this.error=r.error,r.before===void 0)try{zl.default.extname(r.filePath)===".json"?this.before=di.default.readJsonSync(r.filePath):this.before=di.default.readFileSync(r.filePath)}catch{this.before=""}else r.before===null?this.before="":this.before=r.before;r.after?typeof this.before=="object"||typeof r.after=="object"?this.changes=(0,Zs.diffJson)(this.before,r.after):this.changes=(0,Zs.diffLines)(this.before,r.after):this.changes=[]}fileName(){return zl.default.relative(this.rootPath,this.filePath)}write(){this.after&&(typeof this.after=="object"?di.default.writeJsonSync(this.filePath,this.after,{spaces:2}):di.default.writeFileSync(this.filePath,this.after))}additions(){return this.changes.filter(r=>r.added).length}deletions(){return this.changes.filter(r=>r.removed).length}hasChanges(){return this.additions()>0||this.deletions()>0}log(r){r.diff?(this.changes.forEach(t=>{t.added?process.stdout.write(Xs.default.green(t.value)):t.removed?process.stdout.write(Xs.default.red(t.value)):process.stdout.write(Xs.default.dim(t.value))}),console.log(by.default.EOL)):console.log(this.after)}};var kt=Pe(require("chalk")),yi=class{constructor(r){this.transform=r.transformer,this.dry=r.dry}modified(...r){console.log(kt.default.green(" MODIFIED "),...r,this.dry?kt.default.dim("(dry run)"):"")}unchanged(...r){console.log(kt.default.gray(" UNCHANGED "),...r,this.dry?kt.default.dim("(dry run)"):"")}skipped(...r){console.log(kt.default.yellow(" SKIPPED "),...r,this.dry?kt.default.dim("(dry run)"):"")}error(...r){console.log(kt.default.red(" ERROR "),...r,this.dry?kt.default.dim("(dry run)"):"")}info(...r){console.log(kt.default.bold(" INFO "),...r,this.dry?kt.default.dim("(dry run)"):"")}};var Vl=class{constructor(r){this.modifications={};this.transform=r.transformer,this.rootPath=r.rootPath,this.dry=r.dry,this.print=r.print,this.logger=new yi(r)}abortTransform(r){return this.logger.error(r.reason),{fatalError:new Error(r.reason),changes:r.changes||{}}}modifyFile(r){this.modifications[r.filePath]=new mi({rootPath:this.rootPath,...r})}finish(){let r={changes:{}};return Object.keys(this.modifications).forEach(n=>{let i=this.modifications[n],c={action:"unchanged",additions:i.additions(),deletions:i.deletions()};if(i.hasChanges()){if(this.dry)c.action="skipped",this.logger.skipped(gi.default.dim(i.fileName()));else try{i.write(),c.action="modified",this.logger.modified(gi.default.bold(i.fileName()))}catch(a){let s="Unknown error";a instanceof Error&&(s=a.message),c.error=new Error(s),c.action="error",this.logger.error(i.fileName(),s)}this.print&&i.log({diff:!0})}else this.logger.unchanged(gi.default.dim(i.fileName()));r.changes[i.fileName()]=c}),Object.keys(r.changes).some(n=>r.changes[n].action==="error")?this.abortTransform({reason:"Encountered an error while transforming files",changes:r.changes}):r}static logResults(r){let t=Object.keys(r.changes);if(console.log(),t.length>0){console.log(gi.default.bold("Results:"));let n={};t.forEach(i=>{var a;let c=r.changes[i];n[i]={action:c.action,additions:c.additions,deletions:c.deletions,error:((a=c.error)==null?void 0:a.message)||"None"}}),console.table(n),console.log()}}},bi=Vl;var vy=Pe(require("path")),_y=require("fs-extra"),pI=["package.json","turbo.json",".git"];function Kl({directory:e}){return pI.some(r=>(0,_y.existsSync)(vy.default.join(e,r)))}function wy({project:e}){try{let r={cwd:e.paths.root,stdio:"ignore"};if(Ct("turbo bin",r))Ct("turbo daemon stop",r);else{let n=`${e.packageManager} turbo daemon stop`;e.packageManager==="npm"&&(n="npm exec -c 'turbo daemon stop'"),Ct(n,r)}}catch{}}var Sy=require("child_process");function Dt({message:e,success:r}){return r?(console.log(Xe.default.bold(Xe.default.green("Migration completed"))),e&&console.log(e),process.exit(0)):(console.log(Xe.default.bold(Xe.default.red("Migration failed"))),e&&console.log(e),process.exit(1))}async function Js(e,r){r.dry||ri({directory:e,force:r.force});let t=await Ey.default.prompt([{type:"input",name:"directoryInput",message:"Where is the root of the repo to migrate?",when:!e,default:".",validate:d=>{let{exists:p,absolute:y}=Or({directory:d});return p?!0:`Directory ${Xe.default.dim(`(${y})`)} does not exist`},filter:d=>d.trim()}]),{directoryInput:n=e}=t,{exists:i,absolute:c}=Or({directory:n});if(!i)return Dt({success:!1,message:`Directory ${Xe.default.dim(`(${c})`)} does not exist`});if(!Kl({directory:c}))return Dt({success:!1,message:`Directory (${Xe.default.dim(c)}) does not appear to be a repository`});let a=await ei({root:c});if(!a)return Dt({success:!1,message:`Unable to read determine package manager details from ${Xe.default.dim(c)}`});let s=w2(a,r);if(!s)return Dt({success:!1,message:`Unable to infer the version of turbo being used by ${a.name}`});let o=r.to;try{o=await il(r)}catch(d){let p="UNKNOWN_ERROR";return d instanceof Error&&(p=d.message),Dt({success:!1,message:p})}if(!o)return Dt({success:!1,message:"Unable to fetch the latest version of turbo"});if(s===o)return Dt({success:!0,message:`Nothing to do, current version (${Xe.default.bold(s)}) is the same as the requested version (${Xe.default.bold(o)})`});let f=A2({fromVersion:s,toVersion:o});f.length===0&&console.log(`No codemods required to migrate from ${s} to ${o}`,An.default.EOL),r.dry||wy({project:a}),console.log(`Upgrading turbo from ${Xe.default.bold(s)} to ${Xe.default.bold(o)} (${f.length===0?"no codemods required":`${f.length} required codemod${f.length===1?"":"s"}`})`,An.default.EOL);let l=[];for(let[d,p]of f.entries()){console.log(`(${d+1}/${f.length}) ${Xe.default.bold(`Running ${p.name}`)}`);let y=await p.transformer({root:a.paths.root,options:r});bi.logResults(y),l.push(y)}if(l.some(d=>d.fatalError||Object.keys(d.changes).some(p=>d.changes[p].error)))return Dt({success:!1,message:"Could not complete migration due to codemod errors. Please fix the errors and try again."});let u=await Wl({project:a,to:r.to});if(!u)return Dt({success:!1,message:"Unable to determine upgrade command"});if(r.install)if(r.dry)console.log(`Upgrading turbo with ${Xe.default.bold(u)} ${Xe.default.dim("(dry run)")}`,An.default.EOL);else{console.log(`Upgrading turbo with ${Xe.default.bold(u)}`,An.default.EOL);try{(0,Sy.execSync)(u,{stdio:"pipe",cwd:a.paths.root})}catch(d){return Dt({success:!1,message:`Unable to upgrade turbo: ${d}`})}}else console.log(`Upgrade turbo with ${Xe.default.bold(u)}`,An.default.EOL);Dt({success:!0})}var yr=Pe(require("chalk")),xy=Pe(require("inquirer"));async function Qs(e,r,t){let n=ti();if(t.list)return console.log(n.map(u=>`- ${yr.default.cyan(u.name)}`).join(`
|
183
183
|
`)),process.exit(0);t.dry||ri({directory:r,force:t.force});let i=await xy.default.prompt([{type:"input",name:"directoryInput",message:"Where is the root of the repo where the transform should run?",when:!r,default:".",validate:u=>{let{exists:d,absolute:p}=Or({directory:u});return d?!0:`Directory ${yr.default.dim(`(${p})`)} does not exist`},filter:u=>u.trim()},{type:"list",name:"transformerInput",message:"Which transform would you like to apply?",when:!e,pageSize:n.length,choices:n.map(u=>({name:`${yr.default.bold(u.name)} - ${yr.default.gray(u.description)} ${yr.default.gray(`(${u.introducedIn})`)}`,value:u.name}))}]),{directoryInput:c=r,transformerInput:a=e}=i,{exists:s,absolute:o}=Or({directory:c});if(!s)return console.error(`Directory ${yr.default.dim(`(${o})`)} does not exist`),process.exit(1);let f=n.map(u=>u.name),l=n.find(u=>u.name===a);if(!l)return console.error(`Invalid transform choice ${yr.default.dim(`(${e})`)}, pick one of:`),console.error(f.map(u=>`- ${u}`).join(`
|
184
|
-
`)),process.exit(1);let h=await l.transformer({root:o,options:t});if(h.fatalError)return process.exit(1);bi.logResults(h)}var Yl=Pe(require("chalk")),Ay=Pe(require("update-check"));var eo={name:"@turbo/codemod",version:"1.10.13-canary.
|
184
|
+
`)),process.exit(1);let h=await l.transformer({root:o,options:t});if(h.fatalError)return process.exit(1);bi.logResults(h)}var Yl=Pe(require("chalk")),Ay=Pe(require("update-check"));var eo={name:"@turbo/codemod",version:"1.10.13-canary.2",description:"Provides Codemod transformations to help upgrade your Turborepo codebase when a feature is deprecated.",homepage:"https://turbo.build/repo",license:"MPL-2.0",repository:{type:"git",url:"https://github.com/vercel/turbo",directory:"packages/turbo-codemod"},bugs:{url:"https://github.com/vercel/turbo/issues"},bin:"dist/cli.js",scripts:{build:"tsup",test:"jest",lint:"eslint src/**/*.ts","check-types":"tsc --noEmit","add-transformer":"plop","lint:prettier":"prettier -c . --cache --ignore-path=../../.prettierignore"},dependencies:{axios:"0.27.2",chalk:"2.4.2",commander:"^9.5.0",diff:"^5.1.0","find-up":"4.1.0","fs-extra":"^10.0.0","gradient-string":"^2.0.0",inquirer:"^8.2.4","inquirer-file-tree-selection-prompt":"^1.0.19","is-git-clean":"^1.1.0",ora:"4.1.1",semver:"^7.3.7","update-check":"^1.5.4"},devDependencies:{"@turbo/gen":"workspace:*","@turbo/test-utils":"workspace:*","@turbo/tsconfig":"workspace:*","@turbo/types":"workspace:*","@turbo/utils":"workspace:*","@turbo/workspaces":"workspace:*","@types/chalk-animation":"^1.6.0","@types/diff":"^5.0.2","@types/fs-extra":"^9.0.13","@types/gradient-string":"^1.1.2","@types/inquirer":"^8.2.0","@types/jest":"^27.4.0","@types/node":"^18.17.2","@types/semver":"^7.3.9","@types/uuid":"^9.0.0",deepmerge:"^4.2.2",eslint:"^7.23.0",jest:"^27.4.3",plop:"^3.1.1",semver:"^7.3.5","ts-jest":"^27.1.1",tsup:"^6.7.0",typescript:"^4.5.5"},files:["dist"],publishConfig:{access:"public"}};var mI=(0,Ay.default)(eo).catch(()=>null);async function to(){try{let e=await mI;if(e!=null&&e.latest){let r=await ei({root:process.cwd()}),{packageManager:t}=r||{};console.log(),console.log(Yl.default.yellow.bold("A new version of `@turbo/codemod` is available!")),console.log("You can update by running: "+Yl.default.cyan(t==="yarn"?"yarn global add @turbo/codemod":t==="pnpm"?"pnpm i -g @turbo/codemod":"npm i -g @turbo/codemod")),console.log()}process.exit()}catch{}}var ro=new Cy.Command;ro.name("@turbo/codemod").description("Codemod transformations to help upgrade your Turborepo codebase when a feature is deprecated.").version(eo.version,"-v, --version","output the current version");ro.command("migrate").aliases(["update","upgrade"]).description("Migrate a project to the latest version of Turborepo").argument("[path]","Directory where the transforms should be applied").option("--from <version>","Specify the version to migrate from (default: current version)").option("--to <version>","Specify the version to migrate to (default: latest)").option("--install","Install new version of turbo after migration",!0).option("--force","Bypass Git safety checks and forcibly run codemods",!1).option("--dry","Dry run (no changes are made to files)",!1).option("--print","Print transformed files to your terminal",!1).action(Js);ro.command("transform",{isDefault:!0}).description("Apply a single code transformation to a project").argument("[transform]","The transformer to run").argument("[path]","Directory where the transforms should be applied").option("--force","Bypass Git safety checks and forcibly run codemods",!1).option("--list","List all available transforms",!1).option("--dry","Dry run (no changes are made to files)",!1).option("--print","Print transformed files to your terminal",!1).action(Qs);ro.parseAsync().then(to).catch(async e=>{console.log(),e.command?console.log(` ${Xl.default.cyan(e.command)} has failed.`):(console.log(Xl.default.red("Unexpected error. Please report it as a bug:")),console.log(e)),console.log(),await to(),process.exit(1)});
|
185
185
|
/*!
|
186
186
|
* fill-range <https://github.com/jonschlinkert/fill-range>
|
187
187
|
*
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@turbo/codemod",
|
3
|
-
"version": "1.10.13-canary.
|
3
|
+
"version": "1.10.13-canary.2",
|
4
4
|
"description": "Provides Codemod transformations to help upgrade your Turborepo codebase when a feature is deprecated.",
|
5
5
|
"homepage": "https://turbo.build/repo",
|
6
6
|
"license": "MPL-2.0",
|
@@ -46,12 +46,12 @@
|
|
46
46
|
"ts-jest": "^27.1.1",
|
47
47
|
"tsup": "^6.7.0",
|
48
48
|
"typescript": "^4.5.5",
|
49
|
-
"@turbo/gen": "1.10.13-canary.
|
49
|
+
"@turbo/gen": "1.10.13-canary.2",
|
50
50
|
"@turbo/test-utils": "0.0.0",
|
51
51
|
"@turbo/tsconfig": "0.0.0",
|
52
|
-
"@turbo/types": "1.10.13-canary.
|
52
|
+
"@turbo/types": "1.10.13-canary.2",
|
53
53
|
"@turbo/utils": "0.0.0",
|
54
|
-
"@turbo/workspaces": "1.10.13-canary.
|
54
|
+
"@turbo/workspaces": "1.10.13-canary.2"
|
55
55
|
},
|
56
56
|
"files": [
|
57
57
|
"dist"
|