@turbo/codemod 2.9.5 → 2.9.6-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/dist/{dist-mqGr1rsQ.js → dist-YyywgZcp.js} +1 -1
- package/dist/get-transformer-helpers-DvT815v2.js +66 -0
- package/dist/{load-turbo-json-CZ9xMRzC.js → load-turbo-json-DEn4Q2OW.js} +1 -1
- 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/dist/{update-versioned-schema-json-C6CllksO.js → update-versioned-schema-json-DiNOi5VG.js} +1 -1
- package/package.json +10 -9
- package/dist/get-transformer-helpers-3-XEZk2Q.js +0 -66
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./get-transformer-helpers-
|
|
1
|
+
const e=require(`./get-transformer-helpers-DvT815v2.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}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-DvT815v2.js`),t=require(`../dist-YyywgZcp.js`),n=e.__toESM(require(`node:path`)),r=e.__toESM(require(`fs-extra`));var i=e.__toESM(t.require_dist());const a=`add-package-manager`,o="Set the `packageManager` key in root `package.json` file",s=`1.1.0`;async function c({root:t,options:o}){let{log:s,runner:c}=e.getTransformerHelpers({transformer:a,rootPath:t,options:o}),l=n.default.join(t,`package.json`),u=r.default.readJsonSync(l);if(`packageManager`in u)return s.info(`"packageManager" already set in root "package.json"`),c.finish();s.info(`Set "packageManager" key in root "package.json" file...`);let d;try{d=await(0,i.getWorkspaceDetails)({root:t})}catch{return c.abortTransform({reason:`Unable to determine package manager for ${t}`})}let f=await e.getAvailablePackageManagers(),{packageManager:p}=d,m=f[p];if(!m)return c.abortTransform({reason:`Unable to determine package manager version for ${t}`});let h=`${p}@${m}`,g=[{name:`package.json`,path:t,packageJson:{...u,packageJsonPath:l}}];for(let e of g){let{packageJsonPath:t,...n}=e.packageJson,r={...n,packageManager:h};c.modifyFile({filePath:t,after:r})}return c.finish()}const l={name:a,description:o,introducedIn:s,transformer:c};var u=l;exports.default=u,exports.transformer=c;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-DvT815v2.js`),t=require(`../dist-YyywgZcp.js`),n=e.__toESM(require(`node:path`)),r=e.__toESM(require(`fs-extra`));var i=e.__toESM(t.require_dist());const a=`add-package-names`,o=`Ensure all packages have a name in their package.json`,s=`2.0.0-canary.0`;async function c(e){try{return await r.default.readJson(e)}catch{return null}}function l({pkgPath:e,pkgName:t}){let r=``,i=t;if(t&&t.startsWith(`@`)&&t.includes(`/`)){let e=t.split(`/`);r=`${e[0]}/`,i=e[1]}let a=n.default.basename(n.default.dirname(e));return t?`${r}${a}-${i}`:`${r}${a}`}async function u({root:t,options:r}){let{log:o,runner:s}=e.getTransformerHelpers({transformer:a,rootPath:t,options:r});o.info(`Validating that each package has a unique "name"...`);let u;try{u=await(0,i.getWorkspaceDetails)({root:t})}catch{return s.abortTransform({reason:`Unable to determine package manager for ${t}`})}let d=[u.paths.packageJson],f=[c(u.paths.packageJson)];for(let e of u.workspaceData.workspaces){let t=e.paths.packageJson;d.push(t),f.push(c(t))}let p=await Promise.all(f),m=Object.fromEntries(d.map((e,t)=>[e,p[t]])),h=new Map;for(let[e,t]of Object.entries(m))if(t?.name){let n=h.get(t.name)||[];n.push(e),h.set(t.name,n)}let g=[...h.entries()].filter(([,e])=>e.length>1);if(g.length>0){let e=g.map(([e,r])=>{let i=r.map(e=>n.default.relative(t,e));return` - "${e}" found in: ${i.join(`, `)}`});return s.abortTransform({reason:`Found packages with duplicate "name" fields:\n${e.join(`
|
|
2
2
|
`)}\nPlease resolve these duplicates manually and re-run the codemod.`})}let _=new Set(h.keys());for(let[e,t]of Object.entries(m))if(t&&!t.name){let n=l({pkgPath:e,pkgName:void 0});s.modifyFile({filePath:e,after:{...t,name:n}}),_.add(n)}return s.finish()}const d={name:a,description:o,introducedIn:s,transformer:u};var f=d;exports.default=f,exports.getNewPkgName=l,exports.transformer=u;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-DvT815v2.js`),t=require(`../load-turbo-json-DEn4Q2OW.js`),n=require(`../is-pipeline-key-missing-CMFMdrGr.js`),r=`clean-globs`,i=`Automatically clean up invalid globs from your 'turbo.json' file`,a=`1.11.0`;function o({root:n,options:i}){let{runner:a}=e.getTransformerHelpers({transformer:r,rootPath:n,options:i}),{configPath:o,error:c}=e.resolveTurboConfigPath(n);if(c)return a.abortTransform({reason:c});if(!o)return a.abortTransform({reason:`No turbo.json or turbo.jsonc found at ${n}. Is the path correct?`});let l=t.loadTurboJson(o);a.modifyFile({filePath:o,after:s(l)});let u=e.getTurboConfigs(n);for(let e of u){let{config:t,turboConfigPath:n}=e;`pipeline`in t&&a.modifyFile({filePath:n,after:s(t)})}return a.finish()}function s(e){if(n.isPipelineKeyMissing(e))return e;let t=e=>c(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 c(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 l={name:r,description:i,introducedIn:a,transformer:o};var u=l;exports.default=u,exports.fixGlobPattern=c,exports.transformer=o;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-DvT815v2.js`),t=e.__toESM(require(`node:path`)),n=e.__toESM(require(`fs-extra`)),r=`create-turbo-config`,i='Create the `turbo.json` file from an existing "turbo" key in `package.json`',a=`1.1.0`;function o({root:i,options:a}){let{log:o,runner:s}=e.getTransformerHelpers({transformer:r,rootPath:i,options:a});o.info(`Migrating "package.json" "turbo" key to "turbo.json" file...`);let{configPath:c,error:l}=e.resolveTurboConfigPath(i);if(l)return s.abortTransform({reason:l});let u=c??t.default.join(i,`turbo.json`),d=t.default.join(i,`package.json`);if(!n.default.existsSync(d))return s.abortTransform({reason:`No package.json found at ${i}. Is the path correct?`});let f=n.default.readJsonSync(d),p=null;if(c)try{p=n.default.readJsonSync(u)}catch{p=null}let m=f,h=p;if(!p&&f.turbo){let{turbo:e,...t}=f;h=e,m=t}return s.modifyFile({filePath:u,after:h}),s.modifyFile({filePath:d,after:m}),s.finish()}const s={name:r,description:i,introducedIn:a,transformer:o};var c=s;exports.default=c,exports.transformer=o;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-DvT815v2.js`),t=require(`../load-turbo-json-DEn4Q2OW.js`),n=e.__toESM(require(`node:path`)),r=e.__toESM(require(`fs-extra`)),i=`migrate-dot-env`,a='Migrate the "dotEnv" entries to "inputs" in `turbo.json`',o=`2.0.0-canary.0`;function s(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 c({root:a,options:o}){let{log:c,runner:l}=e.getTransformerHelpers({transformer:i,rootPath:a,options:o}),u=n.default.join(a,`package.json`),d={};try{d=r.default.readJsonSync(u)}catch{}if(`turbo`in d)return l.abortTransform({reason:'"turbo" key detected in package.json. Run `npx @turbo/codemod transform create-turbo-config` first'});c.info("Moving entries in `dotEnv` key in task config to `inputs`");let{configPath:f,error:p}=e.resolveTurboConfigPath(a);if(p)return l.abortTransform({reason:p});if(!f)return l.abortTransform({reason:`No turbo.json or turbo.jsonc found at ${a}. Is the path correct?`});let m=t.loadTurboJson(f);l.modifyFile({filePath:f,after:s(m)});let h=e.getTurboConfigs(a);for(let e of h){let{config:t,turboConfigPath:n}=e;(`pipeline`in t||`tasks`in t)&&l.modifyFile({filePath:n,after:s(t)})}return l.finish()}const l={name:i,description:a,introducedIn:o,transformer:c};var u=l;exports.default=u,exports.transformer=c;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-DvT815v2.js`),t=require(`../load-turbo-json-DEn4Q2OW.js`),n=require(`../is-pipeline-key-missing-CMFMdrGr.js`),r=e.__toESM(require(`node:path`)),i=e.__toESM(require(`fs-extra`)),a=`migrate-env-var-dependencies`,o='Migrate environment variable dependencies from "dependsOn" to "env" in `turbo.json`',s=`1.5.0`;function c(e){if(n.isPipelineKeyMissing(e))return{hasKeys:!1};let t=[`extends`in e?[]:e.globalDependencies,Object.values(e.pipeline).flatMap(e=>e.dependsOn??[])].flat(),r=t.filter(e=>e?.startsWith(`$`));return{hasKeys:!!r.length,envVars:r}}function l({env:e,deps:t}){let n=new Set(e),r=[];if(t)for(let e of t)e.startsWith(`$`)?n.add(e.slice(1)):r.push(e);return n.size?{deps:r,env:Array.from(n)}:{env:e,deps:t}}function u(e){let{deps:t,env:n}=l({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 d(e){if(`extends`in e)return e;let{deps:t,env:n}=l({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 f(e){if(n.isPipelineKeyMissing(e))return e;let t=d(e);for(let n of Object.keys(e.pipeline))if(n in e.pipeline){let e=t.pipeline[n];t.pipeline[n]={...e,...u(e)}}return t}function p({root:n,options:o}){let{log:s,runner:l}=e.getTransformerHelpers({transformer:a,rootPath:n,options:o});s.info(`Migrating environment variable dependencies from "globalDependencies" and "dependsOn" to "env" in "turbo.json"...`);let u=r.default.join(n,`package.json`),d={};try{d=i.default.readJsonSync(u)}catch{}if(`turbo`in d)return l.abortTransform({reason:'"turbo" key detected in package.json. Run `npx @turbo/codemod transform create-turbo-config` first'});let{configPath:p,error:m}=e.resolveTurboConfigPath(n);if(m)return l.abortTransform({reason:m});if(!p)return l.abortTransform({reason:`No turbo.json or turbo.jsonc found at ${n}. Is the path correct?`});let h=t.loadTurboJson(p);c(h).hasKeys&&(h=f(h)),l.modifyFile({filePath:p,after:h});let g=e.getTurboConfigs(n);for(let e of g){let{config:t,turboConfigPath:n}=e;`pipeline`in t&&c(t).hasKeys&&l.modifyFile({filePath:n,after:f(t)})}return l.finish()}const m={name:a,description:o,introducedIn:s,transformer:p};var h=m;exports.default=h,exports.hasLegacyEnvVarDependencies=c,exports.migrateConfig=f,exports.migrateDependencies=l,exports.migrateGlobal=d,exports.migratePipeline=u,exports.transformer=p;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-DvT815v2.js`),t=require(`../load-turbo-json-DEn4Q2OW.js`),n=require(`../is-pipeline-key-missing-CMFMdrGr.js`),r=e.__toESM(require(`node:path`)),i=e.__toESM(require(`fs-extra`)),a=`rename-output-mode`,o='Rename the "outputMode" key to "outputLogs" in `turbo.json`',s=`2.0.0-canary.0`;function c(e){if(n.isPipelineKeyMissing(e))return e;for(let[t,n]of Object.entries(e.pipeline))Object.hasOwn(n,`outputMode`)&&(n.outputLogs=n.outputMode,delete n.outputMode);return e}function l({root:n,options:o}){let{log:s,runner:l}=e.getTransformerHelpers({transformer:a,rootPath:n,options:o}),u=r.default.join(n,`package.json`),d={};try{d=i.default.readJsonSync(u)}catch{}if(`turbo`in d)return l.abortTransform({reason:'"turbo" key detected in package.json. Run `npx @turbo/codemod transform create-turbo-config` first'});s.info("Renaming `outputMode` key in task config to `outputLogs`");let{configPath:f,error:p}=e.resolveTurboConfigPath(n);if(p)return l.abortTransform({reason:p});if(!f)return l.abortTransform({reason:`No turbo.json or turbo.jsonc found at ${n}. Is the path correct?`});let m=t.loadTurboJson(f);l.modifyFile({filePath:f,after:c(m)});let h=e.getTurboConfigs(n);for(let e of h){let{config:t,turboConfigPath:n}=e;`pipeline`in t&&l.modifyFile({filePath:n,after:c(t)})}return l.finish()}const u={name:a,description:o,introducedIn:s,transformer:l};var d=u;exports.default=d,exports.transformer=l;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-DvT815v2.js`),t=require(`../load-turbo-json-DEn4Q2OW.js`),n=require(`../is-pipeline-key-missing-CMFMdrGr.js`),r=`rename-pipeline`,i='Rename the "pipeline" key to "tasks" in `turbo.json`',a=`2.0.0-canary.0`;function o(e){if(n.isPipelineKeyMissing(e))return e;let{pipeline:t,...r}=e;return{...r,tasks:t}}function s({root:n,options:i}){let{log:a,runner:s}=e.getTransformerHelpers({transformer:r,rootPath:n,options:i});a.info("Renaming `pipeline` key in turbo.json to `tasks`");let{configPath:c,error:l}=e.resolveTurboConfigPath(n);if(l)return s.abortTransform({reason:l});if(!c)return s.abortTransform({reason:`No turbo.json or turbo.jsonc found at ${n}. Is the path correct?`});let u=t.loadTurboJson(c);if(`tasks`in u)return a.info(`turbo.json already has a tasks key, exiting`),s.finish();let d=u;s.modifyFile({filePath:c,after:o(d)});let f=e.getTurboConfigs(n);for(let e of f){let{config:t,turboConfigPath:n}=e;`pipeline`in t&&s.modifyFile({filePath:n,after:o(t)})}return s.finish()}const c={name:r,description:i,introducedIn:a,transformer:s};var l=c;exports.default=l,exports.transformer=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-DvT815v2.js`),t=require(`../load-turbo-json-DEn4Q2OW.js`),n=require(`../is-pipeline-key-missing-CMFMdrGr.js`),r=e.__toESM(require(`node:path`)),i=e.__toESM(require(`fs-extra`)),a=[`dist/**`,`build/**`],o=`set-default-outputs`,s='Add the "outputs" key with defaults where it is missing in `turbo.json`',c=`1.7.0`,l=!1;function u(e){if(n.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=a);return e}function d({root:n,options:a}){let{log:s,runner:c}=e.getTransformerHelpers({transformer:o,rootPath:n,options:a}),l=r.default.join(n,`package.json`),d={};try{d=i.default.readJsonSync(l)}catch{}if(`turbo`in d)return c.abortTransform({reason:'"turbo" key detected in package.json. Run `npx @turbo/codemod transform create-turbo-config` first'});s.info("Adding default `outputs` key into tasks if it doesn't exist");let{configPath:f,error:p}=e.resolveTurboConfigPath(n);if(p)return c.abortTransform({reason:p});if(!f)return c.abortTransform({reason:`No turbo.json or turbo.jsonc found at ${n}. Is the path correct?`});let m=t.loadTurboJson(f);c.modifyFile({filePath:f,after:u(m)});let h=e.getTurboConfigs(n);for(let e of h){let{config:t,turboConfigPath:n}=e;`pipeline`in t&&c.modifyFile({filePath:n,after:u(t)})}return c.finish()}const f={name:o,description:s,introducedIn:c,idempotent:l,transformer:d};var p=f;exports.default=p,exports.migrateConfig=u,exports.transformer=d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-DvT815v2.js`),t=require(`../load-turbo-json-DEn4Q2OW.js`),n=require(`../is-pipeline-key-missing-CMFMdrGr.js`),r=e.__toESM(require(`node:path`)),i=e.__toESM(require(`fs-extra`)),a=`stabilize-env-mode`,o=`Rewrite experimentalPassThroughEnv and experimentalGlobalPassThroughEnv`,s=`1.10.0`;function c(e){if(n.isPipelineKeyMissing(e))return e;let t=e.experimentalGlobalPassThroughEnv,r=e.globalPassThroughEnv,i;return(Array.isArray(t)||Array.isArray(r))&&(i=[],Array.isArray(t)&&(i=i.concat(t)),Array.isArray(r)&&(i=i.concat(r)),i=[...new Set(i)],i.sort()),delete e.experimentalGlobalPassThroughEnv,delete e.globalPassThroughEnv,Array.isArray(i)&&(e.globalPassThroughEnv=i),l(e)}function l(e){if(n.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 u({root:n,options:o}){let{log:s,runner:u}=e.getTransformerHelpers({transformer:a,rootPath:n,options:o}),d=r.default.join(n,`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'});s.info("Rewriting `experimentalPassThroughEnv` and `experimentalGlobalPassThroughEnv`");let{configPath:p,error:m}=e.resolveTurboConfigPath(n);if(m)return u.abortTransform({reason:m});if(!p)return u.abortTransform({reason:`No turbo.json or turbo.jsonc found at ${n}. Is the path correct?`});let h=t.loadTurboJson(p);u.modifyFile({filePath:p,after:c(h)});let g=e.getTurboConfigs(n);for(let e of g){let{config:t,turboConfigPath:n,isRootConfig:r}=e;!r&&`pipeline`in t&&u.modifyFile({filePath:n,after:l(t)})}return u.finish()}const d={name:a,description:o,introducedIn:s,transformer:u};var f=d;exports.default=f,exports.migrateRootConfig=c,exports.migrateTaskConfigs=l,exports.transformer=u;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-DvT815v2.js`),t=require(`../load-turbo-json-DEn4Q2OW.js`),n=`stabilize-ui`,r='Rename the "experimentalUI" key to "ui" in `turbo.json`',i=`2.0.0-canary.0`;function a(e){let t=e.experimentalUI;return delete e.experimentalUI,t!==void 0&&!t&&(e.ui=`stream`),e}function o({root:r,options:i}){let{log:o,runner:s}=e.getTransformerHelpers({transformer:n,rootPath:r,options:i});o.info("Renaming `experimentalUI` key in turbo.json to `ui`");let{configPath:c,error:l}=e.resolveTurboConfigPath(r);if(l)return s.abortTransform({reason:l});if(!c)return s.abortTransform({reason:`No turbo.json or turbo.jsonc found at ${r}. Is the path correct?`});let u=t.loadTurboJson(c);return s.modifyFile({filePath:c,after:a(u)}),s.finish()}const s={name:n,description:r,introducedIn:i,transformer:o};var c=s;exports.default=c,exports.transformer=o;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-DvT815v2.js`),t=require(`../load-turbo-json-DEn4Q2OW.js`),n=require(`../is-pipeline-key-missing-CMFMdrGr.js`),r=e.__toESM(require(`node:path`)),i=e.__toESM(require(`fs-extra`)),a=`transform-env-literals-to-wildcards`,o=`Rewrite env fields to distinguish wildcards from literals`,s=`1.10.0`;function c(e){let t=e;return t=t.replace(/\\/g,`\\\\`),e.startsWith(`!`)&&(t=`\\${t}`),t=t.replace(/\*/g,`\\*`),t}function l(e){if(n.isPipelineKeyMissing(e))return e;let{globalEnv:t,globalPassThroughEnv:r}=e;return Array.isArray(t)&&(e.globalEnv=t.map(c)),Array.isArray(r)&&(e.globalPassThroughEnv=r.map(c)),u(e)}function u(e){if(n.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(c)),Array.isArray(t)&&(n.passThroughEnv=t.map(c))}return e}function d({root:n,options:o}){let{log:s,runner:c}=e.getTransformerHelpers({transformer:a,rootPath:n,options:o}),d=r.default.join(n,`package.json`),f={};try{f=i.default.readJsonSync(d)}catch{}if(`turbo`in f)return c.abortTransform({reason:'"turbo" key detected in package.json. Run `npx @turbo/codemod transform create-turbo-config` first'});s.info(`Rewriting env vars to support wildcards`);let{configPath:p,error:m}=e.resolveTurboConfigPath(n);if(m)return c.abortTransform({reason:m});if(!p)return c.abortTransform({reason:`No turbo.json or turbo.jsonc found at ${n}. Is the path correct?`});let h=t.loadTurboJson(p);c.modifyFile({filePath:p,after:l(h)});let g=e.getTurboConfigs(n);for(let e of g){let{config:t,turboConfigPath:n,isRootConfig:r}=e;!r&&`pipeline`in t&&c.modifyFile({filePath:n,after:u(t)})}return c.finish()}const f={name:a,description:o,introducedIn:s,transformer:d};var p=f;exports.default=p,exports.migrateRootConfig=l,exports.migrateTaskConfigs=u,exports.transformer=d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../get-transformer-helpers-DvT815v2.js`),t=e.__toESM(require(`fs-extra`)),n=`update-schema-json-url`,r=`Update the "$schema" property in turbo.json from "https://turborepo.dev/schema.v1.json" to "https://turborepo.dev/schema.v2.json"`,i=`2.0.0`;function a(e){return e.replace(`https://turborepo.dev/schema.v1.json`,`https://turborepo.dev/schema.v2.json`)}function o({root:r,options:i}){let{log:o,runner:s}=e.getTransformerHelpers({transformer:n,rootPath:r,options:i});o.info(`Updating "$schema" property in turbo.json...`);let{configPath:c,error:l}=e.resolveTurboConfigPath(r);if(l)return s.abortTransform({reason:l});if(!c)return s.abortTransform({reason:`No turbo.json or turbo.jsonc found at ${r}. Is the path correct?`});try{let e=t.default.readFileSync(c,`utf8`);if(e.includes(`https://turborepo.dev/schema.v1.json`)){let t=a(e);s.modifyFile({filePath:c,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 s.abortTransform({reason:`Error updating schema URL in turbo.json: ${String(e)}`})}return s.finish()}const s={name:n,description:r,introducedIn:i,transformer:o,idempotent:!0};var c=s;exports.default=c,exports.transformer=o;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,`__esModule`,{value:!0}),require(`../get-transformer-helpers-
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0}),require(`../get-transformer-helpers-DvT815v2.js`);const e=require(`../update-versioned-schema-json-DiNOi5VG.js`);exports.default=e.update_versioned_schema_json_default,exports.getVersionedSchemaUrl=e.getVersionedSchemaUrl,exports.transformer=e.transformer;
|
package/dist/{update-versioned-schema-json-C6CllksO.js → update-versioned-schema-json-DiNOi5VG.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./get-transformer-helpers-
|
|
1
|
+
const e=require(`./get-transformer-helpers-DvT815v2.js`),t=e.__toESM(require(`fs-extra`)),n=e.__toESM(require(`semver`)),r=`update-versioned-schema-json`,i=`Update the "$schema" property in turbo.json to use the versioned subdomain format (e.g., https://v2-7-5.turborepo.dev/schema.json)`,a=`2.7.5`,o=a,s=[`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`],c=/https:\/\/v\d+-\d+-\d+[a-zA-Z0-9-]*\.turborepo\.dev\/schema\.json/g;function l(e){let t=(0,n.coerce)(e);return t?t.version:null}function u(e){return`v${e.replaceAll(`.`,`-`)}`}function d(e){let t=(0,n.parse)(e),r=t?t.version:(0,n.coerce)(e)?.version;if(!r)throw Error(`Invalid version: ${e}`);let i=u(r);return`https://${i}.turborepo.dev/schema.json`}function f(e,t){let n=e;for(let e of s)n=n.replaceAll(e,t);return n=n.replaceAll(c,t),n}function p(e,t){if(s.some(t=>e.includes(t)))return!0;let n=e.match(c);return n?n.some(e=>e!==t):!1}function m({root:i,options:a}){let{log:s,runner:c}=e.getTransformerHelpers({transformer:r,rootPath:i,options:a}),{toVersion:u}=a,m=u?l(u):null;if(!m||!(0,n.gte)(m,o))return s.info(`Skipping schema URL update: target version ${u||`unknown`} does not support versioned schema URLs`),c.finish();s.info(`Updating "$schema" property in turbo.json files to versioned format...`);let{configPath:h,error:g}=e.resolveTurboConfigPath(i);if(g)return c.abortTransform({reason:g});if(!h)return c.abortTransform({reason:`No turbo.json or turbo.jsonc found at ${i}. Is the path correct?`});try{let n=d(u),r=e.getTurboConfigs(i);for(let{turboConfigPath:e}of r){let r=t.default.readFileSync(e,`utf8`);if(p(r,n)){let t=f(r,n);c.modifyFile({filePath:e,before:r,after:t}),s.info(`Updated "$schema" in ${e}`)}}}catch(e){return c.abortTransform({reason:`Error updating schema URL: ${String(e)}`})}return c.finish()}const h={name:r,description:i,introducedIn:a,transformer:m,idempotent:!0};var g=h;Object.defineProperty(exports,`getVersionedSchemaUrl`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`transformer`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`update_versioned_schema_json_default`,{enumerable:!0,get:function(){return g}});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@turbo/codemod",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.6-canary.2",
|
|
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
|
"bugs": {
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@inquirer/prompts": "^7.10.1",
|
|
24
|
+
"brace-expansion": "1.1.13",
|
|
24
25
|
"commander": "9.5.0",
|
|
25
26
|
"diff": "5.2.2",
|
|
26
27
|
"find-up": "4.1.0",
|
|
@@ -32,10 +33,10 @@
|
|
|
32
33
|
"picocolors": "1.0.1",
|
|
33
34
|
"semver": "7.5.2",
|
|
34
35
|
"update-check": "1.5.4",
|
|
35
|
-
"yaml": "2.
|
|
36
|
+
"yaml": "2.8.3"
|
|
36
37
|
},
|
|
37
38
|
"devDependencies": {
|
|
38
|
-
"@jest/globals": "30.
|
|
39
|
+
"@jest/globals": "30.3.0",
|
|
39
40
|
"@types/diff": "5.0.2",
|
|
40
41
|
"@types/fs-extra": "9.0.13",
|
|
41
42
|
"@types/gradient-string": "1.1.2",
|
|
@@ -43,16 +44,16 @@
|
|
|
43
44
|
"@types/semver": "7.3.12",
|
|
44
45
|
"@types/uuid": "9.0.0",
|
|
45
46
|
"deepmerge": "4.2.2",
|
|
46
|
-
"jest": "30.
|
|
47
|
+
"jest": "30.3.0",
|
|
47
48
|
"semver": "7.5.2",
|
|
48
|
-
"ts-jest": "29.4.
|
|
49
|
+
"ts-jest": "29.4.9",
|
|
49
50
|
"tsdown": "0.12.0",
|
|
50
51
|
"typescript": "5.5.4",
|
|
51
|
-
"@turbo/types": "2.9.5",
|
|
52
|
-
"@turbo/tsconfig": "0.0.0",
|
|
53
|
-
"@turbo/workspaces": "2.9.5",
|
|
54
52
|
"@turbo/utils": "0.0.0",
|
|
55
|
-
"@turbo/test-utils": "0.0.0"
|
|
53
|
+
"@turbo/test-utils": "0.0.0",
|
|
54
|
+
"@turbo/types": "2.9.6-canary.2",
|
|
55
|
+
"@turbo/workspaces": "2.9.6-canary.2",
|
|
56
|
+
"@turbo/tsconfig": "0.0.0"
|
|
56
57
|
},
|
|
57
58
|
"scripts": {
|
|
58
59
|
"build": "tsdown",
|