@turbo/codemod 2.8.4 → 2.8.5
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 +3 -3
- package/dist/{dist-TnfTwrBN.js → dist-DTutL_kT.js} +11 -11
- package/dist/getTransformerHelpers-DVzkZ3BD.js +1 -0
- package/dist/is-pipeline-key-missing-CMFMdrGr.js +1 -0
- package/dist/loadTurboJson-DnO3MpgB.js +1 -0
- package/dist/{runner-BXVdw9eY.js → runner-BB60mHRe.js} +27 -12
- package/dist/transforms/add-package-manager.js +1 -1
- package/dist/transforms/add-package-names.js +1 -1
- package/dist/transforms/clean-globs.js +1 -1
- package/dist/transforms/create-turbo-config.js +1 -1
- package/dist/transforms/migrate-dot-env.js +1 -1
- package/dist/transforms/migrate-env-var-dependencies.js +1 -1
- package/dist/transforms/rename-output-mode.js +1 -1
- package/dist/transforms/rename-pipeline.js +1 -1
- package/dist/transforms/set-default-outputs.js +1 -1
- package/dist/transforms/stabilize-env-mode.js +1 -1
- package/dist/transforms/stabilize-ui.js +1 -1
- package/dist/transforms/transform-env-literals-to-wildcards.js +1 -1
- package/dist/transforms/update-schema-json-url.js +1 -1
- package/dist/transforms/update-versioned-schema-json.js +1 -1
- package/package.json +9 -9
- package/dist/getTransformerHelpers-B91xyNcJ.js +0 -1
- package/dist/is-pipeline-key-missing-5PiE-aXH.js +0 -1
- package/dist/loadTurboJson-C0Jgw6-L.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../runner-BB60mHRe.js`),t=require(`../dist-DTutL_kT.js`),n=require(`../getTransformerHelpers-DVzkZ3BD.js`),r=e.__toESM(require(`fs-extra`)),i=e.__toESM(require(`node:path`));var a=e.__toESM(t.require_dist());const o=`add-package-manager`,s="Set the `packageManager` key in root `package.json` file",c=`1.1.0`;async function l({root:t,options:s}){let{log:c,runner:l}=n.getTransformerHelpers({transformer:o,rootPath:t,options:s}),u=i.default.join(t,`package.json`),d=r.default.readJsonSync(u);if(`packageManager`in d)return c.info(`"packageManager" already set in root "package.json"`),l.finish();c.info(`Set "packageManager" key in root "package.json" file...`);let f;try{f=await(0,a.getWorkspaceDetails)({root:t})}catch{return l.abortTransform({reason:`Unable to determine package manager for ${t}`})}let p=await e.getAvailablePackageManagers(),{packageManager:m}=f,h=p[m];if(!h)return l.abortTransform({reason:`Unable to determine package manager version for ${t}`});let g=`${m}@${h}`,_=[{name:`package.json`,path:t,packageJson:{...d,packageJsonPath:u}}];for(let e of _){let{packageJsonPath:t,...n}=e.packageJson,r={...n,packageManager:g};l.modifyFile({filePath:t,after:r})}return l.finish()}const u={name:o,description:s,introducedIn:c,transformer:l};var d=u;exports.default=d,exports.transformer=l;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../runner-BB60mHRe.js`),t=require(`../dist-DTutL_kT.js`),n=require(`../getTransformerHelpers-DVzkZ3BD.js`),r=e.__toESM(require(`fs-extra`)),i=e.__toESM(require(`node:path`));var a=e.__toESM(t.require_dist());const o=`add-package-names`,s=`Ensure all packages have a name in their package.json`,c=`2.0.0-canary.0`;async function l(e){try{return await r.default.readJson(e)}catch{return null}}function u({pkgPath:e,pkgName:t}){let n=``,r=t;if(t&&t.startsWith(`@`)&&t.includes(`/`)){let e=t.split(`/`);n=`${e[0]}/`,r=e[1]}let a=i.default.basename(i.default.dirname(e));return t?`${n}${a}-${r}`:`${n}${a}`}async function d({root:e,options:t}){let{log:r,runner:i}=n.getTransformerHelpers({transformer:o,rootPath:e,options:t});r.info(`Validating that each package has a unique "name"...`);let s;try{s=await(0,a.getWorkspaceDetails)({root:e})}catch{return i.abortTransform({reason:`Unable to determine package manager for ${e}`})}let c=[s.paths.packageJson],d=[l(s.paths.packageJson)];s.workspaceData.workspaces.forEach(e=>{let t=e.paths.packageJson;c.push(t),d.push(l(t))});let f=await Promise.all(d),p=Object.fromEntries(c.map((e,t)=>[e,f[t]])),m=new Set;for(let[e,t]of Object.entries(p))if(t)if(!t.name||m.has(t.name)){let n=u({pkgPath:e,pkgName:t.name});i.modifyFile({filePath:e,after:{...t,name:n}}),m.add(n)}else m.add(t.name);return i.finish()}const f={name:o,description:s,introducedIn:c,transformer:d};var p=f;exports.default=p,exports.getNewPkgName=u,exports.transformer=d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../runner-BB60mHRe.js`),t=require(`../getTransformerHelpers-DVzkZ3BD.js`),n=require(`../loadTurboJson-DnO3MpgB.js`),r=e.__toESM(require(`node:path`)),i=`clean-globs`,a=`Automatically clean up invalid globs from your 'turbo.json' file`,o=`1.11.0`;function s({root:a,options:o}){let{runner:s}=t.getTransformerHelpers({transformer:i,rootPath:a,options:o}),l=r.default.join(a,`turbo.json`),u=n.loadTurboJson(l);s.modifyFile({filePath:l,after:c(u)});let d=e.getTurboConfigs(a);return d.forEach(e=>{let{config:t,turboConfigPath:n}=e;`pipeline`in t&&s.modifyFile({filePath:n,after:c(t)})}),s.finish()}function c(e){let t=e=>l(e);for(let[n,r]of Object.entries(e.pipeline))r.inputs=r.inputs?.map(t),r.outputs=r.outputs?.map(t);return e}function l(e){let t=e,n=t.replace(/\*\*\/\*\*/g,`**`);for(;n!==t;)t=n,n=t.replace(/\*\*\/\*\*/g,`**`);return n=t.replace(/(\*\*)([^*/]+)/g,`$1/*$2`),n!==t&&(t=n),n=t.replace(/([^*/]+)(\*\*)/g,`$1*/$2`),n!==t&&(t=n),t}const u={name:i,description:a,introducedIn:o,transformer:s};var d=u;exports.default=d,exports.fixGlobPattern=l,exports.transformer=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../runner-BB60mHRe.js`),t=require(`../getTransformerHelpers-DVzkZ3BD.js`),n=e.__toESM(require(`fs-extra`)),r=e.__toESM(require(`node:path`)),i=`create-turbo-config`,a='Create the `turbo.json` file from an existing "turbo" key in `package.json`',o=`1.1.0`;function s({root:e,options:a}){let{log:o,runner:s}=t.getTransformerHelpers({transformer:i,rootPath:e,options:a});o.info(`Migrating "package.json" "turbo" key to "turbo.json" file...`);let c=r.default.join(e,`turbo.json`),l=r.default.join(e,`package.json`);if(!n.default.existsSync(l))return s.abortTransform({reason:`No package.json found at ${e}. Is the path correct?`});let u=n.default.readJsonSync(l),d=null;try{d=n.default.readJsonSync(c)}catch{d=null}let f=u,p=d;if(!d&&u.turbo){let{turbo:e,...t}=u;p=e,f=t}return s.modifyFile({filePath:c,after:p}),s.modifyFile({filePath:l,after:f}),s.finish()}const c={name:i,description:a,introducedIn:o,transformer:s};var l=c;exports.default=l,exports.transformer=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../runner-BB60mHRe.js`),t=require(`../getTransformerHelpers-DVzkZ3BD.js`),n=require(`../loadTurboJson-DnO3MpgB.js`),r=e.__toESM(require(`fs-extra`)),i=e.__toESM(require(`node:path`)),a=`migrate-dot-env`,o='Migrate the "dotEnv" entries to "inputs" in `turbo.json`',s=`2.0.0-canary.0`;function c(t){if(`globalDotEnv`in t){if(t.globalDotEnv){t.globalDependencies=t.globalDependencies??[];for(let e of t.globalDotEnv)t.globalDependencies.push(e)}delete t.globalDotEnv}return e.forEachTaskDef(t,([e,t])=>{if(`dotEnv`in t){if(t.dotEnv){t.inputs=t.inputs??[`$TURBO_DEFAULT$`];for(let e of t.dotEnv)t.inputs.push(e)}delete t.dotEnv}}),t}function l({root:o,options:s}){let{log:l,runner:u}=t.getTransformerHelpers({transformer:a,rootPath:o,options:s}),d=i.default.join(o,`package.json`),f={};try{f=r.default.readJsonSync(d)}catch{}if(`turbo`in f)return u.abortTransform({reason:'"turbo" key detected in package.json. Run `npx @turbo/codemod transform create-turbo-config` first'});l.info("Moving entries in `dotEnv` key in task config to `inputs`");let p=i.default.join(o,`turbo.json`);if(!r.default.existsSync(p))return u.abortTransform({reason:`No turbo.json found at ${o}. Is the path correct?`});let m=n.loadTurboJson(p);u.modifyFile({filePath:p,after:c(m)});let h=e.getTurboConfigs(o);return h.forEach(e=>{let{config:t,turboConfigPath:n}=e;u.modifyFile({filePath:n,after:c(t)})}),u.finish()}const u={name:a,description:o,introducedIn:s,transformer:l};var d=u;exports.default=d,exports.transformer=l;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../runner-BB60mHRe.js`),t=require(`../getTransformerHelpers-DVzkZ3BD.js`),n=require(`../loadTurboJson-DnO3MpgB.js`),r=require(`../is-pipeline-key-missing-CMFMdrGr.js`),i=e.__toESM(require(`fs-extra`)),a=e.__toESM(require(`node:path`)),o=`migrate-env-var-dependencies`,s='Migrate environment variable dependencies from "dependsOn" to "env" in `turbo.json`',c=`1.5.0`;function l(e){if(r.isPipelineKeyMissing(e))return{hasKeys:!1};let t=[`extends`in e?[]:e.globalDependencies,Object.values(e.pipeline).flatMap(e=>e.dependsOn??[])].flat(),n=t.filter(e=>e?.startsWith(`$`));return{hasKeys:!!n.length,envVars:n}}function u({env:e,deps:t}){let n=new Set(e),r=[];return t?.forEach(e=>{e.startsWith(`$`)?n.add(e.slice(1)):r.push(e)}),n.size?{deps:r,env:Array.from(n)}:{env:e,deps:t}}function d(e){let{deps:t,env:n}=u({env:e.env,deps:e.dependsOn}),r={...e};return t?r.dependsOn=t:delete r.dependsOn,n?.length?r.env=n:delete r.env,r}function f(e){if(`extends`in e)return e;let{deps:t,env:n}=u({env:e.globalEnv,deps:e.globalDependencies}),r={...e};return t?.length?r.globalDependencies=t:delete r.globalDependencies,n?.length?r.globalEnv=n:delete r.globalEnv,r}function p(e){if(r.isPipelineKeyMissing(e))return e;let t=f(e);return Object.keys(e.pipeline).forEach(n=>{if(n in e.pipeline){let e=t.pipeline[n];t.pipeline[n]={...e,...d(e)}}}),t}function m({root:r,options:s}){let{log:c,runner:u}=t.getTransformerHelpers({transformer:o,rootPath:r,options:s});c.info(`Migrating environment variable dependencies from "globalDependencies" and "dependsOn" to "env" in "turbo.json"...`);let d=a.default.join(r,`package.json`),f={};try{f=i.default.readJsonSync(d)}catch{}if(`turbo`in f)return u.abortTransform({reason:'"turbo" key detected in package.json. Run `npx @turbo/codemod transform create-turbo-config` first'});let m=a.default.join(r,`turbo.json`);if(!i.default.existsSync(m))return u.abortTransform({reason:`No turbo.json found at ${r}. Is the path correct?`});let h=n.loadTurboJson(m);l(h).hasKeys&&(h=p(h)),u.modifyFile({filePath:m,after:h});let g=e.getTurboConfigs(r);return g.forEach(e=>{let{config:t,turboConfigPath:n}=e;`pipeline`in t&&l(t).hasKeys&&u.modifyFile({filePath:n,after:p(t)})}),u.finish()}const h={name:o,description:s,introducedIn:c,transformer:m};var g=h;exports.default=g,exports.hasLegacyEnvVarDependencies=l,exports.migrateConfig=p,exports.migrateDependencies=u,exports.migrateGlobal=f,exports.migratePipeline=d,exports.transformer=m;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../runner-BB60mHRe.js`),t=require(`../getTransformerHelpers-DVzkZ3BD.js`),n=require(`../loadTurboJson-DnO3MpgB.js`),r=e.__toESM(require(`fs-extra`)),i=e.__toESM(require(`node:path`)),a=`rename-output-mode`,o='Rename the "outputMode" key to "outputLogs" in `turbo.json`',s=`2.0.0-canary.0`;function c(e){for(let[t,n]of Object.entries(e.pipeline))Object.prototype.hasOwnProperty.call(n,`outputMode`)&&(n.outputLogs=n.outputMode,delete n.outputMode);return e}function l({root:o,options:s}){let{log:l,runner:u}=t.getTransformerHelpers({transformer:a,rootPath:o,options:s}),d=i.default.join(o,`package.json`),f={};try{f=r.default.readJsonSync(d)}catch{}if(`turbo`in f)return u.abortTransform({reason:'"turbo" key detected in package.json. Run `npx @turbo/codemod transform create-turbo-config` first'});l.info("Renaming `outputMode` key in task config to `outputLogs`");let p=i.default.join(o,`turbo.json`);if(!r.default.existsSync(p))return u.abortTransform({reason:`No turbo.json found at ${o}. Is the path correct?`});let m=n.loadTurboJson(p);u.modifyFile({filePath:p,after:c(m)});let h=e.getTurboConfigs(o);return h.forEach(e=>{let{config:t,turboConfigPath:n}=e;`pipeline`in t&&u.modifyFile({filePath:n,after:c(t)})}),u.finish()}const u={name:a,description:o,introducedIn:s,transformer:l};var d=u;exports.default=d,exports.transformer=l;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../runner-BB60mHRe.js`),t=require(`../getTransformerHelpers-DVzkZ3BD.js`),n=require(`../loadTurboJson-DnO3MpgB.js`),r=e.__toESM(require(`fs-extra`)),i=e.__toESM(require(`node:path`)),a=`rename-pipeline`,o='Rename the "pipeline" key to "tasks" in `turbo.json`',s=`2.0.0-canary.0`;function c(e){let{pipeline:t,...n}=e;return{...n,tasks:t}}function l({root:o,options:s}){let{log:l,runner:u}=t.getTransformerHelpers({transformer:a,rootPath:o,options:s});l.info("Renaming `pipeline` key in turbo.json to `tasks`");let d=i.default.join(o,`turbo.json`);if(!r.default.existsSync(d))return u.abortTransform({reason:`No turbo.json found at ${o}. Is the path correct?`});let f=n.loadTurboJson(d);if(`tasks`in f)return l.info(`turbo.json already has a tasks key, exiting`),u.finish();let p=f;u.modifyFile({filePath:d,after:c(p)});let m=e.getTurboConfigs(o);return m.forEach(e=>{let{config:t,turboConfigPath:n}=e;`pipeline`in t&&u.modifyFile({filePath:n,after:c(t)})}),u.finish()}const u={name:a,description:o,introducedIn:s,transformer:l};var d=u;exports.default=d,exports.transformer=l;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../runner-BB60mHRe.js`),t=require(`../getTransformerHelpers-DVzkZ3BD.js`),n=require(`../loadTurboJson-DnO3MpgB.js`),r=require(`../is-pipeline-key-missing-CMFMdrGr.js`),i=e.__toESM(require(`fs-extra`)),a=e.__toESM(require(`node:path`)),o=[`dist/**`,`build/**`],s=`set-default-outputs`,c='Add the "outputs" key with defaults where it is missing in `turbo.json`',l=`1.7.0`,u=!1;function d(e){if(r.isPipelineKeyMissing(e))return e;for(let[t,n]of Object.entries(e.pipeline))n.cache!==!1&&(n.outputs?Array.isArray(n.outputs)&&n.outputs.length===0&&delete n.outputs:n.outputs=o);return e}function f({root:r,options:o}){let{log:c,runner:l}=t.getTransformerHelpers({transformer:s,rootPath:r,options:o}),u=a.default.join(r,`package.json`),f={};try{f=i.default.readJsonSync(u)}catch{}if(`turbo`in f)return l.abortTransform({reason:'"turbo" key detected in package.json. Run `npx @turbo/codemod transform create-turbo-config` first'});c.info("Adding default `outputs` key into tasks if it doesn't exist");let p=a.default.join(r,`turbo.json`);if(!i.default.existsSync(p))return l.abortTransform({reason:`No turbo.json found at ${r}. Is the path correct?`});let m=n.loadTurboJson(p);l.modifyFile({filePath:p,after:d(m)});let h=e.getTurboConfigs(r);return h.forEach(e=>{let{config:t,turboConfigPath:n}=e;`pipeline`in t&&l.modifyFile({filePath:n,after:d(t)})}),l.finish()}const p={name:s,description:c,introducedIn:l,idempotent:u,transformer:f};var m=p;exports.default=m,exports.migrateConfig=d,exports.transformer=f;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../runner-BB60mHRe.js`),t=require(`../getTransformerHelpers-DVzkZ3BD.js`),n=require(`../loadTurboJson-DnO3MpgB.js`),r=require(`../is-pipeline-key-missing-CMFMdrGr.js`),i=e.__toESM(require(`fs-extra`)),a=e.__toESM(require(`node:path`)),o=`stabilize-env-mode`,s=`Rewrite experimentalPassThroughEnv and experimentalGlobalPassThroughEnv`,c=`1.10.0`;function l(e){if(r.isPipelineKeyMissing(e))return e;let t=e.experimentalGlobalPassThroughEnv,n=e.globalPassThroughEnv,i;return(Array.isArray(t)||Array.isArray(n))&&(i=[],Array.isArray(t)&&(i=i.concat(t)),Array.isArray(n)&&(i=i.concat(n)),i=[...new Set(i)],i.sort()),delete e.experimentalGlobalPassThroughEnv,delete e.globalPassThroughEnv,Array.isArray(i)&&(e.globalPassThroughEnv=i),u(e)}function u(e){if(r.isPipelineKeyMissing(e))return e;for(let[t,n]of Object.entries(e.pipeline)){let e=n.experimentalPassThroughEnv,t=n.passThroughEnv,r;(Array.isArray(e)||Array.isArray(t))&&(r=[],Array.isArray(e)&&(r=r.concat(e)),Array.isArray(t)&&(r=r.concat(t)),r=[...new Set(r)],r.sort()),delete n.experimentalPassThroughEnv,delete n.passThroughEnv,Array.isArray(r)&&(n.passThroughEnv=r)}return e}function d({root:r,options:s}){let{log:c,runner:d}=t.getTransformerHelpers({transformer:o,rootPath:r,options:s}),f=a.default.join(r,`package.json`),p={};try{p=i.default.readJsonSync(f)}catch{}if(`turbo`in p)return d.abortTransform({reason:'"turbo" key detected in package.json. Run `npx @turbo/codemod transform create-turbo-config` first'});c.info("Rewriting `experimentalPassThroughEnv` and `experimentalGlobalPassThroughEnv`");let m=a.default.join(r,`turbo.json`);if(!i.default.existsSync(m))return d.abortTransform({reason:`No turbo.json found at ${r}. Is the path correct?`});let h=n.loadTurboJson(m);d.modifyFile({filePath:m,after:l(h)});let g=e.getTurboConfigs(r);return g.forEach(e=>{let{config:t,turboConfigPath:n,isRootConfig:r}=e;!r&&`pipeline`in t&&d.modifyFile({filePath:n,after:u(t)})}),d.finish()}const f={name:o,description:s,introducedIn:c,transformer:d};var p=f;exports.default=p,exports.migrateRootConfig=l,exports.migrateTaskConfigs=u,exports.transformer=d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../runner-BB60mHRe.js`),t=require(`../getTransformerHelpers-DVzkZ3BD.js`),n=require(`../loadTurboJson-DnO3MpgB.js`),r=e.__toESM(require(`fs-extra`)),i=e.__toESM(require(`node:path`)),a=`stabilize-ui`,o='Rename the "experimentalUI" key to "ui" in `turbo.json`',s=`2.0.0-canary.0`;function c(e){let t=e.experimentalUI;return delete e.experimentalUI,t!==void 0&&!t&&(e.ui=`stream`),e}function l({root:e,options:o}){let{log:s,runner:l}=t.getTransformerHelpers({transformer:a,rootPath:e,options:o});s.info("Renaming `experimentalUI` key in turbo.json to `ui`");let u=i.default.join(e,`turbo.json`);if(!r.default.existsSync(u))return l.abortTransform({reason:`No turbo.json found at ${e}. Is the path correct?`});let d=n.loadTurboJson(u);return l.modifyFile({filePath:u,after:c(d)}),l.finish()}const u={name:a,description:o,introducedIn:s,transformer:l};var d=u;exports.default=d,exports.transformer=l;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../runner-BB60mHRe.js`),t=require(`../getTransformerHelpers-DVzkZ3BD.js`),n=require(`../loadTurboJson-DnO3MpgB.js`),r=require(`../is-pipeline-key-missing-CMFMdrGr.js`),i=e.__toESM(require(`fs-extra`)),a=e.__toESM(require(`node:path`)),o=`transform-env-literals-to-wildcards`,s=`Rewrite env fields to distinguish wildcards from literals`,c=`1.10.0`;function l(e){let t=e;return e.startsWith(`!`)&&(t=`\\${t}`),t=t.replace(/\*/g,`\\*`),t}function u(e){if(r.isPipelineKeyMissing(e))return e;let{globalEnv:t,globalPassThroughEnv:n}=e;return Array.isArray(t)&&(e.globalEnv=t.map(l)),Array.isArray(n)&&(e.globalPassThroughEnv=n.map(l)),d(e)}function d(e){if(r.isPipelineKeyMissing(e))return e;for(let[t,n]of Object.entries(e.pipeline)){let{env:e,passThroughEnv:t}=n;Array.isArray(e)&&(n.env=e.map(l)),Array.isArray(t)&&(n.passThroughEnv=t.map(l))}return e}function f({root:r,options:s}){let{log:c,runner:l}=t.getTransformerHelpers({transformer:o,rootPath:r,options:s}),f=a.default.join(r,`package.json`),p={};try{p=i.default.readJsonSync(f)}catch{}if(`turbo`in p)return l.abortTransform({reason:'"turbo" key detected in package.json. Run `npx @turbo/codemod transform create-turbo-config` first'});c.info(`Rewriting env vars to support wildcards`);let m=a.default.join(r,`turbo.json`);if(!i.default.existsSync(m))return l.abortTransform({reason:`No turbo.json found at ${r}. Is the path correct?`});let h=n.loadTurboJson(m);l.modifyFile({filePath:m,after:u(h)});let g=e.getTurboConfigs(r);return g.forEach(e=>{let{config:t,turboConfigPath:n,isRootConfig:r}=e;!r&&`pipeline`in t&&l.modifyFile({filePath:n,after:d(t)})}),l.finish()}const p={name:o,description:s,introducedIn:c,transformer:f};var m=p;exports.default=m,exports.migrateRootConfig=u,exports.migrateTaskConfigs=d,exports.transformer=f;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../runner-BB60mHRe.js`),t=require(`../getTransformerHelpers-DVzkZ3BD.js`),n=e.__toESM(require(`fs-extra`)),r=e.__toESM(require(`node:path`)),i=`update-schema-json-url`,a=`Update the "$schema" property in turbo.json from "https://turborepo.dev/schema.v1.json" to "https://turborepo.dev/schema.v2.json"`,o=`2.0.0`;function s(e){return e.replace(`https://turborepo.dev/schema.v1.json`,`https://turborepo.dev/schema.v2.json`)}function c({root:e,options:a}){let{log:o,runner:c}=t.getTransformerHelpers({transformer:i,rootPath:e,options:a});o.info(`Updating "$schema" property in turbo.json...`);let l=r.default.join(e,`turbo.json`);if(!n.default.existsSync(l))return c.abortTransform({reason:`No turbo.json found at ${e}. Is the path correct?`});try{let e=n.default.readFileSync(l,`utf8`);if(e.includes(`https://turborepo.dev/schema.v1.json`)){let t=s(e);c.modifyFile({filePath:l,before:e,after:t}),o.info(`Updated "$schema" property in turbo.json`)}else o.info(`No v1 schema URL found in turbo.json. Skipping update.`)}catch(e){return c.abortTransform({reason:`Error updating schema URL in turbo.json: ${String(e)}`})}return c.finish()}const l={name:i,description:a,introducedIn:o,transformer:c,idempotent:!0};var u=l;exports.default=u,exports.transformer=c;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../runner-BB60mHRe.js`),t=require(`../getTransformerHelpers-DVzkZ3BD.js`),n=e.__toESM(require(`fs-extra`)),r=e.__toESM(require(`node:path`)),i=e.__toESM(require(`semver`)),a=`update-versioned-schema-json`,o=`Update the "$schema" property in turbo.json to use the versioned subdomain format (e.g., https://v2-7-5.turborepo.dev/schema.json)`,s=`2.7.5`,c=s,l=[`https://turborepo.dev/schema.json`,`https://turborepo.dev/schema.v2.json`,`https://turborepo.com/schema.json`,`https://turborepo.com/schema.v2.json`,`https://turbo.build/schema.json`,`https://turbo.build/schema.v2.json`],u=/https:\/\/v\d+-\d+-\d+\.turborepo\.dev\/schema\.json/g;function d(e){let t=(0,i.coerce)(e);return t?t.version:null}function f(e){let[t,n,r]=e.split(`.`);return`v${t}-${n}-${r}`}function p(e){let t=d(e);if(!t)throw Error(`Invalid version: ${e}`);let n=f(t);return`https://${n}.turborepo.dev/schema.json`}function m(e,t){let n=e;for(let e of l)n=n.replaceAll(e,t);return n=n.replaceAll(u,t),n}function h(e,t){if(l.some(t=>e.includes(t)))return!0;let n=e.match(u);return n?n.some(e=>e!==t):!1}function g({root:o,options:s}){let{log:l,runner:u}=t.getTransformerHelpers({transformer:a,rootPath:o,options:s}),{toVersion:f}=s,g=f?d(f):null;if(!g||!(0,i.gte)(g,c))return l.info(`Skipping schema URL update: target version ${f||`unknown`} does not support versioned schema URLs`),u.finish();l.info(`Updating "$schema" property in turbo.json files to versioned format...`);let _=r.default.join(o,`turbo.json`);if(!n.default.existsSync(_))return u.abortTransform({reason:`No turbo.json found at ${o}. Is the path correct?`});try{let t=p(g),r=e.getTurboConfigs(o);for(let{turboConfigPath:e}of r){let r=n.default.readFileSync(e,`utf8`);if(h(r,t)){let n=m(r,t);u.modifyFile({filePath:e,before:r,after:n}),l.info(`Updated "$schema" in ${e}`)}}}catch(e){return u.abortTransform({reason:`Error updating schema URL: ${String(e)}`})}return u.finish()}const _={name:a,description:o,introducedIn:s,transformer:g,idempotent:!0};var v=_;exports.default=v,exports.transformer=g;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@turbo/codemod",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.5",
|
|
4
4
|
"description": "Provides Codemod transformations to help upgrade your Turborepo codebase when a feature is deprecated.",
|
|
5
5
|
"homepage": "https://turborepo.dev",
|
|
6
6
|
"license": "MIT",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"is-git-clean": "1.1.0",
|
|
25
25
|
"ora": "4.1.1",
|
|
26
26
|
"picocolors": "1.0.1",
|
|
27
|
-
"semver": "7.5.
|
|
27
|
+
"semver": "7.5.2",
|
|
28
28
|
"update-check": "1.5.4"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
@@ -38,16 +38,16 @@
|
|
|
38
38
|
"deepmerge": "4.2.2",
|
|
39
39
|
"jest": "30.2.0",
|
|
40
40
|
"plop": "3.1.1",
|
|
41
|
-
"semver": "7.5.
|
|
41
|
+
"semver": "7.5.2",
|
|
42
42
|
"ts-jest": "29.4.6",
|
|
43
|
-
"tsdown": "0.
|
|
43
|
+
"tsdown": "0.12.0",
|
|
44
44
|
"typescript": "5.5.4",
|
|
45
|
-
"@turbo/gen": "2.8.
|
|
46
|
-
"@turbo/
|
|
47
|
-
"@turbo/
|
|
48
|
-
"@turbo/types": "2.8.4",
|
|
45
|
+
"@turbo/gen": "2.8.5",
|
|
46
|
+
"@turbo/test-utils": "0.0.0",
|
|
47
|
+
"@turbo/types": "2.8.5",
|
|
49
48
|
"@turbo/utils": "0.0.0",
|
|
50
|
-
"@turbo/
|
|
49
|
+
"@turbo/workspaces": "2.8.5",
|
|
50
|
+
"@turbo/tsconfig": "0.0.0"
|
|
51
51
|
},
|
|
52
52
|
"files": [
|
|
53
53
|
"dist"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require(`./runner-BXVdw9eY.js`);function t({transformer:t,rootPath:n,options:r}){let i={transformer:t,rootPath:n,...r},a=new e.Logger(i),o=new e.Runner(i);return{log:a,runner:o}}Object.defineProperty(exports,`getTransformerHelpers`,{enumerable:!0,get:function(){return t}});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const e=e=>!e.pipeline;Object.defineProperty(exports,`isPipelineKeyMissing`,{enumerable:!0,get:function(){return e}});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require(`./runner-BXVdw9eY.js`),t=e.__toESM(require(`fs-extra`)),n=e.__toESM(require(`json5`));function r(e){let r=t.default.readFileSync(e,`utf8`);return(0,n.parse)(r)}Object.defineProperty(exports,`loadTurboJson`,{enumerable:!0,get:function(){return r}});
|