diff --git a/.yarn/plugins/@yarnpkg/plugin-conditions.cjs b/.yarn/plugins/@yarnpkg/plugin-conditions.cjs index 4589dd71a210..ffb18598ae55 100644 --- a/.yarn/plugins/@yarnpkg/plugin-conditions.cjs +++ b/.yarn/plugins/@yarnpkg/plugin-conditions.cjs @@ -2,7 +2,7 @@ module.exports = { name: "@yarnpkg/plugin-conditions", factory: function (require) { -var plugin;plugin=(()=>{"use strict";var e={973:(e,t,n)=>{n.r(t),n.d(t,{default:()=>b});const o=require("@yarnpkg/core");function r(e){return e.startsWith("condition:")}function i(e){const t=e.match(/^condition:\s*(?\w+)\s*\?\s*(?[^\s:]*)\s*:\s*(?[^\s:#]*)\s*(?:#(.*))?$/);let n;n=null!==t?t.groups:o.structUtils.parseRange(e).params;const{test:r,consequent:i,alternate:s}=n;return{test:r,consequent:i||null,alternate:s||null}}function s(e){return i(e.range)}function a(e){return i(e.reference)}function c({test:e,consequent:t,alternate:n,hash:o}){return`condition:${e}?${t||""}:${n||""}#${o||""}`}function u(e,{test:t,consequent:n,alternate:r,hash:i}){return o.structUtils.makeLocator(e,c({test:t,consequent:n,alternate:r,hash:i}))}function l(e,t,n,r,i){const s=o.structUtils.makeIdent(t.scope,`${t.name}-${n}-${i}`),a=e.configuration.get("defaultProtocol")+`${o.structUtils.stringifyIdent(t)}@${r}`;return o.structUtils.makeDescriptor(s,a)}function p(e,t,n,r){return o.hashUtils.makeHash(String(3),e,t||"-",n||"-",r?"1":"0").slice(0,6)}const d={conditions:{description:"",type:o.SettingsType.MAP,valueDefinition:{description:"",type:o.SettingsType.SHAPE,properties:{source:{description:"",type:o.SettingsType.STRING,default:"env"},default:{description:"",type:o.SettingsType.BOOLEAN,default:!1}}}}};function f(e,t){if(!e.configuration.get("conditions").has(t))throw new Error(`Unknown condition: ${t}. You must add it to your .yarnrc.yml file.`)}function g(e,t){return f(e,t),e.configuration.get("conditions").get(t).get("default")}function h(e,t){var n;f(e,t);const o=e.configuration.get("conditions").get(t),r=o.get("source"),i=o.get("default");if("env"!==r)throw new Error("The only supported configuration source is 'env'");return null!==(n=(s=process.env[t])&&"false"!==s&&"0"!==s)&&void 0!==n?n:i;var s}const y=require("@yarnpkg/fslib"),m=require("@yarnpkg/libzip");const v=["dependencies","devDependencies","peerDependencies"];const w=require("@yarnpkg/cli"),k=require("clipanion");var P=function(e,t,n,o){var r,i=arguments.length,s=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(s=(i<3?r(s):i>3?r(t,n,s):r(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};class j extends w.BaseCommand{async execute(){if(this.false&&this.true)throw new Error("You can either specify --true or --false");const{project:e,workspace:t,cache:n,configuration:r}=await this.getRoot();f(e,this.condition);const i=!this.false&&(!!this.true||h(e,this.condition));for(const n of this.nestedWorkspaces(t,e))this.materializeCondition(i,n);const s=await o.StreamReport.start({configuration:r,stdout:this.context.stdout,includeLogs:!0},async t=>{await e.resolveEverything({cache:n,report:t})});if(s.hasErrors())return s.exitCode();await e.persist()}*nestedWorkspaces(e,t){yield e;for(const n of e.workspacesCwds){const e=t.workspacesByCwd.get(n);e&&(yield*this.nestedWorkspaces(e,t))}}materializeCondition(e,t){for(const n of v){const i=t.manifest.getForScope(n).values();for(const a of i){if(!r(a.range))continue;const{test:i,consequent:c,alternate:u}=s(a);if(i!==this.condition)continue;const l=e?c:u;l?t.manifest[n].set(a.identHash,o.structUtils.makeDescriptor(a,l)):t.manifest[n].delete(a.identHash)}}}async getRoot(){const e=await o.Configuration.find(this.context.cwd,this.context.plugins),[{project:t,workspace:n},r]=await Promise.all([o.Project.find(e,this.context.cwd),o.Cache.find(e,{immutable:!0})]);return{configuration:e,project:t,workspace:n,cache:r}}}j.usage=k.Command.Usage({description:"Evaluate and replace a condition in package.json files",details:"\n This command will replace all the occurrences of `` in the current workspace and in nested workspaces.\n\n The value of the condition (`true` or `false`) is based on the following sources, in descending priority order:\n\n - the `--true` or `--false` option;\n - the `` environment variable;\n - the default value specified in the Yarn configuration;\n - `false` by default.\n "}),P([k.Command.String({required:!0})],j.prototype,"condition",void 0),P([k.Command.Boolean("--true")],j.prototype,"true",void 0),P([k.Command.Boolean("--false")],j.prototype,"false",void 0),P([k.Command.Path("condition","materialize")],j.prototype,"execute",null);const b={configuration:d,commands:[j],fetchers:[class{supports(e){return r(e.reference)}getLocalPath(){return null}async fetch(e,t){const n=t.checksums.get(e.locatorHash)||null,[r,i,s]=await t.cache.fetchPackageFromCache(e,n,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,o.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the disk"),loader:()=>this.generateConditionPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:r,releaseFs:i,prefixPath:o.structUtils.getIdentVendorPath(e),localPath:this.getLocalPath(),checksum:s}}async generateConditionPackage(e,t){const{test:n,consequent:r,alternate:i}=a(e),s=g(t.project,n),c=p(n,r,i,s),u=(r,i)=>{if(null==r)return{dependency:null,specifier:JSON.stringify("ASSERT: Missing dependency")};const s=l(t.project,e,n,r,i),a=o.structUtils.stringifyIdent(s);return{dependency:{[a]:s.range},specifier:JSON.stringify(a)}},d=u(r,!0),f=u(i,!1);return async function(e,t,n,r){const[i,s]=await Promise.all([y.xfs.mktempPromise(),(0,m.getLibzipPromise)()]),a=y.ppath.join(i,"condition.zip"),c=o.structUtils.getIdentVendorPath(e),u=new y.ZipFS(a,{libzip:s,create:!0,level:t.configuration.get("compressionLevel")});return await u.mkdirpPromise(c),await Promise.all([u.writeJsonPromise(y.ppath.join(c,"package.json"),n),u.writeFilePromise(y.ppath.join(c,"index.js"),r)]),await Promise.all(u.getAllFiles().map(e=>u.utimesPromise(e,15805116e5,15805116e5))),u}(e,t.project,{version:"0.0.0-condition-"+c,dependencies:{...d.dependency,...f.dependency}},`// env vars from the cli are always strings, so !!ENV_VAR returns true for "false"\nfunction bool(value) {\n if (value == null) return ${s};\n return value && value !== "false" && value !== "0";\n}\nmodule.exports = bool(process.env[${JSON.stringify(n)}])\n ? require(${d.specifier})\n : require(${f.specifier});\n`)}}],resolvers:[class{supportsDescriptor(e){return r(e.range)}supportsLocator(e){return r(e.reference)}shouldPersistResolution(){return!1}bindDescriptor(e){return e}getResolutionDependencies(e,t){const{test:n,consequent:o,alternate:r}=s(e);return[o&&l(t.project,e,n,o,!0),r&&l(t.project,e,n,r,!1)].filter(Boolean)}async getCandidates(e,t,n){const{test:o,consequent:r,alternate:i}=s(e);return[u(e,{test:o,consequent:r,alternate:i,hash:p(o,r,i,g(n.project,o))})]}async getSatisfying(){return null}async resolve(e,t){const{test:n,consequent:r,alternate:i}=a(e),s=p(n,r,i,g(t.project,n)),c=r&&l(t.project,e,n,r,!0),u=i&&l(t.project,e,n,i,!1);return{...e,version:"0.0.0-condition-"+s,languageName:t.project.configuration.get("defaultLanguageName"),linkType:o.LinkType.HARD,dependencies:new Map([r&&[c.identHash,c],i&&[u.identHash,u]].filter(Boolean)),peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:null}}}],hooks:{beforeWorkspacePacking:function(e,t){var n;const{project:i}=e;for(const a of v){const c=e.manifest.getForScope(a).values();for(const e of c){if(!r(e.range))continue;const{test:c,consequent:u,alternate:l}=s(e),p=h(i,c)?u:l,d=o.structUtils.stringifyIdent(e),f="dependencies"===a&&!t.dependencies[d]&&(null===(n=t.optionalDependencies)||void 0===n?void 0:n[d])?"optionalDependencies":a;p?t[f][d]=p:delete t[f][d]}}}}}}},t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={exports:{}};return e[o](r,r.exports,n),r.exports}return n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(973)})(); +var plugin;plugin=(()=>{"use strict";var e={990:(e,t,n)=>{n.r(t),n.d(t,{default:()=>x});const r=require("@yarnpkg/core");const o=["dependencies","devDependencies","peerDependencies"];function i(e){return e.startsWith("condition:")}function s(e){try{return function(e){if(!e.startsWith("condition:",0))throw new Error(`Expected 'condition:' at index 0 (${e})`);let t="condition:".length;a();const n=c(/[\w-]+/y);if(!n)throw new Error(`Expected an identifier at index ${t} (${e})`);a(),s("?"),a();let r=null;"("===e[t]?(r=u().trim()||null,a()):":"!==e[t]&&(r=l(":").trimRight()||null),s(":"),a();let o=null;t0)&&(r+=o),t++}return r}}(e)}catch(t){try{const{test:t,consequent:n,alternate:o}=r.structUtils.parseRange(e).params;return{test:t,consequent:n||null,alternate:o||null}}catch(e){throw t}}}function a(e){return s(e.range)}function c(e){return s(e.reference)}function l({test:e,consequent:t,alternate:n,hash:r}){return`condition:${e}?${t||""}:${n||""}#${r||""}`}function u(e,{test:t,consequent:n,alternate:o,hash:i}){return r.structUtils.makeLocator(e,l({test:t,consequent:n,alternate:o,hash:i}))}function d(e,t,n,o,i){const s=r.structUtils.makeIdent(t.scope,`${t.name}-${n}-${i}`),a=e.configuration.get("defaultProtocol")+`${r.structUtils.stringifyIdent(t)}@${o}`;return r.structUtils.makeDescriptor(s,a)}function p(e,t,n,o){return r.hashUtils.makeHash(String(6),e,t||"-",n||"-",o?"1":"0").slice(0,6)}const f={conditions:{description:"",type:r.SettingsType.MAP,valueDefinition:{description:"",type:r.SettingsType.SHAPE,properties:{source:{description:"",type:r.SettingsType.STRING,default:"env"},default:{description:"",type:r.SettingsType.BOOLEAN,default:!1}}}}};function h(e,t){if(!e.configuration.get("conditions").has(t))throw new Error(`Unknown condition: ${t}. You must add it to your .yarnrc.yml file.`)}function g(e,t){return h(e,t),e.configuration.get("conditions").get(t).get("default")}function m(e,t){var n;h(e,t);const r=e.configuration.get("conditions").get(t),o=r.get("source"),i=r.get("default");if("env"!==o)throw new Error("The only supported configuration source is 'env'");return null!==(n=(s=process.env[t])&&"false"!==s&&"0"!==s)&&void 0!==n?n:i;var s}const y=require("@yarnpkg/fslib"),w=require("@yarnpkg/libzip");const v=require("@yarnpkg/cli"),k=require("clipanion");var P=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};class j extends v.BaseCommand{async execute(){if(this.false&&this.true)throw new Error("You can either specify --true or --false");const{project:e,workspace:t,cache:n,configuration:o}=await this.getRoot();h(e,this.condition);const i=!this.false&&(!!this.true||m(e,this.condition));for(const n of this.nestedWorkspaces(t,e))this.materializeCondition(i,n);const s=await r.StreamReport.start({configuration:o,stdout:this.context.stdout,includeLogs:!0},async t=>{await e.resolveEverything({cache:n,report:t})});if(s.hasErrors())return s.exitCode();await e.persist()}*nestedWorkspaces(e,t){yield e;for(const n of e.workspacesCwds){const e=t.workspacesByCwd.get(n);e&&(yield*this.nestedWorkspaces(e,t))}}materializeCondition(e,t){for(const n of o){const o=t.manifest.getForScope(n).values();for(const s of o){if(!i(s.range))continue;const{test:o,consequent:c,alternate:l}=a(s);if(o!==this.condition)continue;const u=e?c:l;u?t.manifest[n].set(s.identHash,r.structUtils.makeDescriptor(s,u)):t.manifest[n].delete(s.identHash)}}}async getRoot(){const e=await r.Configuration.find(this.context.cwd,this.context.plugins),[{project:t,workspace:n},o]=await Promise.all([r.Project.find(e,this.context.cwd),r.Cache.find(e,{immutable:!0})]);return{configuration:e,project:t,workspace:n,cache:o}}}j.usage=k.Command.Usage({description:"Evaluate and replace a condition in package.json files",details:"\n This command will replace all the occurrences of `` in the current workspace and in nested workspaces.\n\n The value of the condition (`true` or `false`) is based on the following sources, in descending priority order:\n\n - the `--true` or `--false` option;\n - the `` environment variable;\n - the default value specified in the Yarn configuration;\n - `false` by default.\n "}),P([k.Command.String({required:!0})],j.prototype,"condition",void 0),P([k.Command.Boolean("--true")],j.prototype,"true",void 0),P([k.Command.Boolean("--false")],j.prototype,"false",void 0),P([k.Command.Path("condition","materialize")],j.prototype,"execute",null);const x={configuration:f,commands:[j],fetchers:[class{supports(e){return i(e.reference)}getLocalPath(){return null}async fetch(e,t){const n=t.checksums.get(e.locatorHash)||null,[o,i,s]=await t.cache.fetchPackageFromCache(e,n,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,r.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the disk"),loader:()=>this.generateConditionPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:o,releaseFs:i,prefixPath:r.structUtils.getIdentVendorPath(e),localPath:this.getLocalPath(),checksum:s}}async generateConditionPackage(e,t){const{test:n,consequent:o,alternate:i}=c(e),s=g(t.project,n),a=p(n,o,i,s),l=(o,i)=>{if(null==o)return{dependency:null,require:"null"};const s=d(t.project,e,n,o,i),a=r.structUtils.stringifyIdent(s);return{dependency:{[a]:s.range},require:`require(${JSON.stringify(a)})`}},u=l(o,!0),f=l(i,!1);return async function(e,t,n,o){const[i,s]=await Promise.all([y.xfs.mktempPromise(),(0,w.getLibzipPromise)()]),a=y.ppath.join(i,"condition.zip"),c=r.structUtils.getIdentVendorPath(e),l=new y.ZipFS(a,{libzip:s,create:!0,level:t.configuration.get("compressionLevel")});return await l.mkdirpPromise(c),await Promise.all([l.writeJsonPromise(y.ppath.join(c,"package.json"),n),l.writeFilePromise(y.ppath.join(c,"index.js"),o)]),await Promise.all(l.getAllFiles().map(e=>l.utimesPromise(e,15805116e5,15805116e5))),l}(e,t.project,{version:"0.0.0-condition-"+a,dependencies:{...u.dependency,...f.dependency}},`// env vars from the cli are always strings, so !!ENV_VAR returns true for "false"\nfunction bool(value) {\n if (value == null) return ${s};\n return value && value !== "false" && value !== "0";\n}\nmodule.exports = bool(process.env[${JSON.stringify(n)}])\n ? ${u.require}\n : ${f.require};\n`)}}],resolvers:[class{supportsDescriptor(e){return i(e.range)}supportsLocator(e){return i(e.reference)}shouldPersistResolution(){return!1}bindDescriptor(e){return e}getResolutionDependencies(e,t){const{test:n,consequent:r,alternate:o}=a(e);return[r&&d(t.project,e,n,r,!0),o&&d(t.project,e,n,o,!1)].filter(Boolean)}async getCandidates(e,t,n){const{test:r,consequent:o,alternate:i}=a(e);return[u(e,{test:r,consequent:o,alternate:i,hash:p(r,o,i,g(n.project,r))})]}async getSatisfying(){return null}async resolve(e,t){const{test:n,consequent:o,alternate:i}=c(e),s=p(n,o,i,g(t.project,n)),a=o&&d(t.project,e,n,o,!0),l=i&&d(t.project,e,n,i,!1);return{...e,version:"0.0.0-condition-"+s,languageName:t.project.configuration.get("defaultLanguageName"),linkType:r.LinkType.HARD,dependencies:new Map([o&&[a.identHash,a],i&&[l.identHash,l]].filter(Boolean)),peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:null}}}],hooks:{beforeWorkspacePacking:async function(e,t){var n;const{project:s}=e;let c=!1;for(const l of o){const o=e.manifest.getForScope(l).values();for(const u of o){if(!i(u.range))continue;const{test:o,consequent:d,alternate:p}=a(u),f=m(s,o)?d:p,h=r.structUtils.stringifyIdent(u),g="dependencies"===l&&!t.dependencies[h]&&(null===(n=t.optionalDependencies)||void 0===n?void 0:n[h])?"optionalDependencies":l;f?(t[g][h]=f,e.manifest.raw[g][h]=f,e.manifest[l].set(u.identHash,r.structUtils.makeDescriptor(u,f))):(delete t[g][h],delete e.manifest.raw[g][h],e.manifest[l].delete(u.identHash)),c=!0}}c&&await e.project.configuration.triggerHook(e=>e.beforeWorkspacePacking,e,t)}}}}},t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}return n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(990)})(); return plugin; } }; \ No newline at end of file diff --git a/Gulpfile.mjs b/Gulpfile.mjs index 51feb35d5df4..8cddaf0f479a 100644 --- a/Gulpfile.mjs +++ b/Gulpfile.mjs @@ -30,7 +30,7 @@ const require = createRequire(import.meta.url); const monorepoRoot = path.dirname(fileURLToPath(import.meta.url)); const defaultPackagesGlob = "./@(codemods|packages|eslint)/*"; -const defaultSourcesGlob = `${defaultPackagesGlob}/src/**/{*.js,!(*.d).ts}`; +const defaultSourcesGlob = `${defaultPackagesGlob}/src/**/{*.js,*.cjs,!(*.d).ts}`; const defaultDtsGlob = `${defaultPackagesGlob}/lib/**/*.d.ts{,.map}`; const babelStandalonePluginConfigGlob = @@ -283,6 +283,16 @@ function buildRollup(packages, targetBrowsers) { BABEL_VERSION: JSON.stringify(babelVersion), VERSION: JSON.stringify(version), }), + rollupCommonJs({ + include: [ + /node_modules/, + "packages/babel-runtime/regenerator/**", + "packages/babel-preset-env/data/*.js", + // Rollup doesn't read export maps, so it loads the cjs fallback + "packages/babel-compat-data/*.js", + "packages/*/src/**/*.cjs", + ], + }), rollupBabel({ envName: babelEnvName, babelrc: false, @@ -295,20 +305,11 @@ function buildRollup(packages, targetBrowsers) { browser: nodeResolveBrowser, preferBuiltins: true, }), - rollupCommonJs({ - include: [ - /node_modules/, - "packages/babel-runtime/regenerator/**", - "packages/babel-preset-env/data/*.js", - // Rollup doesn't read export maps, so it loads the cjs fallback - "packages/babel-compat-data/*.js", - ], - }), rollupJson(), targetBrowsers && rollupNodePolyfills({ sourceMap: sourcemap, - include: "**/*.{js,ts}", + include: "**/*.{js,cjs,ts}", }), ].filter(Boolean), }); diff --git a/Makefile b/Makefile index 01097c658040..910b974f7bf7 100644 --- a/Makefile +++ b/Makefile @@ -179,7 +179,7 @@ clone-license: prepublish-build: clean-lib clean-runtime-helpers NODE_ENV=production BABEL_ENV=production STRIP_BABEL_8_FLAG=true $(MAKE) build-bundle - $(MAKE) prepublish-build-standalone clone-license prepublish-prepare-dts + STRIP_BABEL_8_FLAG=true $(MAKE) prepublish-build-standalone clone-license prepublish-prepare-dts prepublish-prepare-dts: $(MAKE) clean-tsconfig diff --git a/package.json b/package.json index 42492b3d5acf..cf1c885e8f57 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "@babel/register": "^7.12.0", "@babel/runtime": "^7.12.0", "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-commonjs": "^13.0.0", + "@rollup/plugin-commonjs": "^17.1.0", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^9.0.0", "@rollup/plugin-replace": "^2.3.3", diff --git a/packages/babel-core/src/config/helpers/escape-regexp.cjs b/packages/babel-core/src/config/helpers/escape-regexp.cjs new file mode 100644 index 000000000000..a3a4be68f185 --- /dev/null +++ b/packages/babel-core/src/config/helpers/escape-regexp.cjs @@ -0,0 +1,5 @@ +"use strict"; + +module.exports = process.env.BABEL_8_BREAKING + ? require("escape-string-regexp") + : require("lodash/escapeRegExp"); diff --git a/packages/babel-core/src/config/pattern-to-regex.js b/packages/babel-core/src/config/pattern-to-regex.js index 847d0e32267b..323f789dcf47 100644 --- a/packages/babel-core/src/config/pattern-to-regex.js +++ b/packages/babel-core/src/config/pattern-to-regex.js @@ -1,9 +1,8 @@ // @flow import path from "path"; -const escapeRegExp = process.env.BABEL_8_BREAKING - ? require("escape-string-regexp") - : require("lodash/escapeRegExp"); +// $FlowIgnore +import escapeRegExp from "./helpers/escape-regexp"; const sep = `\\${path.sep}`; const endSep = `(?:${sep}|$)`; @@ -42,13 +41,11 @@ export default function pathToPattern( // *.ext matches a wildcard with an extension. if (part.indexOf("*.") === 0) { return ( - // $FlowIgnore substitution + escapeRegExp(part.slice(1)) + (last ? endSep : sep) ); } // Otherwise match the pattern text. - // $FlowIgnore return escapeRegExp(part) + (last ? endSep : sep); }), ].join(""), diff --git a/packages/babel-helper-transform-fixture-test-runner/src/escape-regexp.cjs b/packages/babel-helper-transform-fixture-test-runner/src/escape-regexp.cjs new file mode 100644 index 000000000000..a3a4be68f185 --- /dev/null +++ b/packages/babel-helper-transform-fixture-test-runner/src/escape-regexp.cjs @@ -0,0 +1,5 @@ +"use strict"; + +module.exports = process.env.BABEL_8_BREAKING + ? require("escape-string-regexp") + : require("lodash/escapeRegExp"); diff --git a/packages/babel-helper-transform-fixture-test-runner/src/index.js b/packages/babel-helper-transform-fixture-test-runner/src/index.js index 1b5116349537..6ac881fb7564 100644 --- a/packages/babel-helper-transform-fixture-test-runner/src/index.js +++ b/packages/babel-helper-transform-fixture-test-runner/src/index.js @@ -16,11 +16,7 @@ import vm from "vm"; import checkDuplicatedNodes from "babel-check-duplicated-nodes"; import QuickLRU from "quick-lru"; import diff from "jest-diff"; - -// $FlowIgnore -const escapeRegExp = process.env.BABEL_8_BREAKING - ? require("escape-string-regexp") - : require("lodash/escapeRegExp"); +import escapeRegExp from "./escape-regexp"; const cachedScripts = new QuickLRU({ maxSize: 10 }); const contextModuleCache = new WeakMap(); diff --git a/packages/babel-register/src/escape-regexp.cjs b/packages/babel-register/src/escape-regexp.cjs new file mode 100644 index 000000000000..a3a4be68f185 --- /dev/null +++ b/packages/babel-register/src/escape-regexp.cjs @@ -0,0 +1,5 @@ +"use strict"; + +module.exports = process.env.BABEL_8_BREAKING + ? require("escape-string-regexp") + : require("lodash/escapeRegExp"); diff --git a/packages/babel-register/src/node.js b/packages/babel-register/src/node.js index ff5209b632d3..01f06503215a 100644 --- a/packages/babel-register/src/node.js +++ b/packages/babel-register/src/node.js @@ -7,11 +7,7 @@ import { addHook } from "pirates"; import fs from "fs"; import path from "path"; import Module from "module"; - -// $FlowIgnore -const escapeRegExp = process.env.BABEL_8_BREAKING - ? require("escape-string-regexp") - : require("lodash/escapeRegExp"); +import escapeRegExp from "./escape-regexp"; const maps = {}; let transformOpts = {}; diff --git a/yarn.lock b/yarn.lock index de6c01cd678b..1f413db2331d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3660,11 +3660,11 @@ __metadata: linkType: hard "@nicolo-ribaudo/chokidar-2@condition:BABEL_8_BREAKING ? : 2.1.8-no-fsevents": - version: 0.0.0-condition-52373d - resolution: "@nicolo-ribaudo/chokidar-2@condition:BABEL_8_BREAKING?:2.1.8-no-fsevents#52373d" + version: 0.0.0-condition-14398a + resolution: "@nicolo-ribaudo/chokidar-2@condition:BABEL_8_BREAKING?:2.1.8-no-fsevents#14398a" dependencies: "@nicolo-ribaudo/chokidar-2-BABEL_8_BREAKING-false": "npm:@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents" - checksum: 28d0f0cd6401170f34c90ba4ca41ad11b07cef27c8b45db56e06d9d758294d5c7a8864dab4aab37aad30e1ad26f936c5d7a141185ee7ded754b5fc7b13d35f21 + checksum: e38d4858ed266c4f04f403d03bd996b43f50759037e80b10f1862b76a1c9fc1522ed00cdb310102d492a3ac36726cc99a3ca6f92a82c859685f4616f65674810 languageName: node linkType: hard @@ -3712,20 +3712,20 @@ __metadata: languageName: node linkType: hard -"@rollup/plugin-commonjs@npm:^13.0.0": - version: 13.0.2 - resolution: "@rollup/plugin-commonjs@npm:13.0.2" +"@rollup/plugin-commonjs@npm:^17.1.0": + version: 17.1.0 + resolution: "@rollup/plugin-commonjs@npm:17.1.0" dependencies: - "@rollup/pluginutils": ^3.0.8 + "@rollup/pluginutils": ^3.1.0 commondir: ^1.0.1 - estree-walker: ^1.0.1 - glob: ^7.1.2 - is-reference: ^1.1.2 - magic-string: ^0.25.2 - resolve: ^1.11.0 + estree-walker: ^2.0.1 + glob: ^7.1.6 + is-reference: ^1.2.1 + magic-string: ^0.25.7 + resolve: ^1.17.0 peerDependencies: - rollup: ^2.3.4 - checksum: 3a3f6fd5ec8608f4bc7343d89d84ae9253d99b45317e3dd2f05ebc7da476490ac553015ae3a4a34bbcd6afc094bfbf47d9a5769c13bb1e2a093703c8533196b4 + rollup: ^2.30.0 + checksum: 9b162f93090e5bf544c85bb835a29f65371726d2e6161aa1a048bbb708b77433184e5836e7118e2c6277f9a9a7b5835f56e420d2040b1b623b03ca76db4b5d10 languageName: node linkType: hard @@ -4861,7 +4861,7 @@ __metadata: "@babel/register": ^7.12.0 "@babel/runtime": ^7.12.0 "@rollup/plugin-babel": ^5.2.0 - "@rollup/plugin-commonjs": ^13.0.0 + "@rollup/plugin-commonjs": ^17.1.0 "@rollup/plugin-json": ^4.1.0 "@rollup/plugin-node-resolve": ^9.0.0 "@rollup/plugin-replace": ^2.3.3 @@ -6498,11 +6498,11 @@ __metadata: linkType: hard "escape-string-regexp@condition:BABEL_8_BREAKING ? ^4.0.0 : ": - version: 0.0.0-condition-76f759 - resolution: "escape-string-regexp@condition:BABEL_8_BREAKING?^4.0.0:#76f759" + version: 0.0.0-condition-d458a5 + resolution: "escape-string-regexp@condition:BABEL_8_BREAKING?^4.0.0:#d458a5" dependencies: escape-string-regexp-BABEL_8_BREAKING-true: "npm:escape-string-regexp@^4.0.0" - checksum: 1c6b06b9d1094aa0c4bcb60d0d8d82237c35a11132cddf9ecf3fe52a356ae1cf5a65a7d2cfc19cfdb7397474dbbfeafeab74944a5f5e35a6e615db7019209a7d + checksum: a67cb3a0fc219d92f2c6f0964e302cc079b0ce38bf2bd19257d26865c600bec42befed4dc88aec2bfbe9e62f757ce4bec80a408937bf48c5c779e13d9b238c01 languageName: node linkType: hard @@ -6769,6 +6769,13 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^2.0.1": + version: 2.0.2 + resolution: "estree-walker@npm:2.0.2" + checksum: 378cc9d3be56962c5219c55ad1fde732cb7d55a11cde5acbf5995f39ddd0e98c1095a43c0ef15a520d1d6910e816bd3daff5fc5d7d38baaf8b12d5a2970df57c + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -7134,12 +7141,12 @@ __metadata: linkType: hard "find-cache-dir@condition:BABEL_8_BREAKING ? ^3.3.1 : ^2.0.0": - version: 0.0.0-condition-e008bc - resolution: "find-cache-dir@condition:BABEL_8_BREAKING?^3.3.1:^2.0.0#e008bc" + version: 0.0.0-condition-1cab84 + resolution: "find-cache-dir@condition:BABEL_8_BREAKING?^3.3.1:^2.0.0#1cab84" dependencies: find-cache-dir-BABEL_8_BREAKING-false: "npm:find-cache-dir@^2.0.0" find-cache-dir-BABEL_8_BREAKING-true: "npm:find-cache-dir@^3.3.1" - checksum: 13e4bcacffca23684358026660d4889531e4a21d0b3cfdf700afa878134b0cbb7929f946e733719d413df60d24b8b86dab58ce75028bf027e368b9482b1fb03b + checksum: ecc27cee26d013251b915cac38083e2cd1e9f965984fce4de5d82391c2c878f22f7d7a717d130912dd85b0a891f58794eab8f94aca8240dbdfb41fae7f6fbb13 languageName: node linkType: hard @@ -7607,12 +7614,12 @@ fsevents@^1.2.7: linkType: hard "globals@condition:BABEL_8_BREAKING ? ^13.5.0 : ^11.1.0": - version: 0.0.0-condition-dbd136 - resolution: "globals@condition:BABEL_8_BREAKING?^13.5.0:^11.1.0#dbd136" + version: 0.0.0-condition-365c0f + resolution: "globals@condition:BABEL_8_BREAKING?^13.5.0:^11.1.0#365c0f" dependencies: globals-BABEL_8_BREAKING-false: "npm:globals@^11.1.0" globals-BABEL_8_BREAKING-true: "npm:globals@^13.5.0" - checksum: 66e0f1f0de738e7675a70c6ed8b5c6661bf56f9d74f7e2c8143435da63176cdc8d5123a733b7f1d02b94b1f3238c9e0517358a632bf5912acbc5a6a644c70519 + checksum: 216349112d414b806012f38d0fd676efae3ac661cf71dfe4324968fd45625c623681436807f8d7ab629b09f7d91f34a341624ad4928498e5c2c8281512f04dec languageName: node linkType: hard @@ -8485,7 +8492,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"is-reference@npm:^1.1.2": +"is-reference@npm:^1.2.1": version: 1.2.1 resolution: "is-reference@npm:1.2.1" dependencies: @@ -9163,12 +9170,12 @@ fsevents@^1.2.7: linkType: hard "js-tokens@condition:BABEL_8_BREAKING ? ^6.0.0 : ^4.0.0": - version: 0.0.0-condition-bceac3 - resolution: "js-tokens@condition:BABEL_8_BREAKING?^6.0.0:^4.0.0#bceac3" + version: 0.0.0-condition-dcdb35 + resolution: "js-tokens@condition:BABEL_8_BREAKING?^6.0.0:^4.0.0#dcdb35" dependencies: js-tokens-BABEL_8_BREAKING-false: "npm:js-tokens@^4.0.0" js-tokens-BABEL_8_BREAKING-true: "npm:js-tokens@^6.0.0" - checksum: 036166b3ba76e31549eeb404d986ff5b1af55f91137bbcc6d5147b1e4c8d4c74f01d9aae10cf5d5221e60f3bcef98e7460bbf2a54a9e7b47d3b63789b11297e3 + checksum: 7d9c1ac51c367b4308071caf2d4ef7c5f5b100e5cfe14afb795b1f6fdcc05e014f2d7039b659f1e2b0615433e1474752209276ce66ae1b530179ddf81df88b2e languageName: node linkType: hard @@ -9249,12 +9256,12 @@ fsevents@^1.2.7: linkType: hard "jsesc@condition: BABEL_8_BREAKING ? ^3.0.2 : ^2.5.1": - version: 0.0.0-condition-31d9b4 - resolution: "jsesc@condition:BABEL_8_BREAKING?^3.0.2:^2.5.1#31d9b4" + version: 0.0.0-condition-bf5234 + resolution: "jsesc@condition:BABEL_8_BREAKING?^3.0.2:^2.5.1#bf5234" dependencies: jsesc-BABEL_8_BREAKING-false: "npm:jsesc@^2.5.1" jsesc-BABEL_8_BREAKING-true: "npm:jsesc@^3.0.2" - checksum: d6751e397e85958087fffcb6fbe5892902d2455e98ff0d69b69d0b15103892465d60aa0d750199a5d45cca75bbd89c4854b80ef4cbb98b229e3e9fa4e567d968 + checksum: c8afcacf75ac3982ed7085291eae4d16d5fcf58040e1ee84554cc571aac07a0fb5fe7debf636c53bfe9f50e1ba51f1f3387860d758af8772ba51e20ae0057018 languageName: node linkType: hard @@ -9714,7 +9721,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"magic-string@npm:^0.25.2, magic-string@npm:^0.25.3, magic-string@npm:^0.25.5, magic-string@npm:^0.25.7": +"magic-string@npm:^0.25.3, magic-string@npm:^0.25.5, magic-string@npm:^0.25.7": version: 0.25.7 resolution: "magic-string@npm:0.25.7" dependencies: @@ -11588,7 +11595,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1": +"resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1": version: 1.19.0 resolution: "resolve@npm:1.19.0" dependencies: @@ -11598,7 +11605,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.4#builtin, resolve@patch:resolve@^1.1.6#builtin, resolve@patch:resolve@^1.1.7#builtin, resolve@patch:resolve@^1.10.0#builtin, resolve@patch:resolve@^1.11.0#builtin, resolve@patch:resolve@^1.13.1#builtin, resolve@patch:resolve@^1.14.2#builtin, resolve@patch:resolve@^1.17.0#builtin, resolve@patch:resolve@^1.18.1#builtin, resolve@patch:resolve@^1.3.2#builtin, resolve@patch:resolve@^1.4.0#builtin, resolve@patch:resolve@^1.8.1#builtin": +"resolve@patch:resolve@^1.1.4#builtin, resolve@patch:resolve@^1.1.6#builtin, resolve@patch:resolve@^1.1.7#builtin, resolve@patch:resolve@^1.10.0#builtin, resolve@patch:resolve@^1.13.1#builtin, resolve@patch:resolve@^1.14.2#builtin, resolve@patch:resolve@^1.17.0#builtin, resolve@patch:resolve@^1.18.1#builtin, resolve@patch:resolve@^1.3.2#builtin, resolve@patch:resolve@^1.4.0#builtin, resolve@patch:resolve@^1.8.1#builtin": version: 1.19.0 resolution: "resolve@patch:resolve@npm%3A1.19.0#builtin::version=1.19.0&hash=3388aa" dependencies: @@ -12031,12 +12038,12 @@ fsevents@^1.2.7: linkType: hard "slash@condition:BABEL_8_BREAKING ? ^3.0.0 : ^2.0.0": - version: 0.0.0-condition-4a957f - resolution: "slash@condition:BABEL_8_BREAKING?^3.0.0:^2.0.0#4a957f" + version: 0.0.0-condition-8fb1fb + resolution: "slash@condition:BABEL_8_BREAKING?^3.0.0:^2.0.0#8fb1fb" dependencies: slash-BABEL_8_BREAKING-false: "npm:slash@^2.0.0" slash-BABEL_8_BREAKING-true: "npm:slash@^3.0.0" - checksum: df1ee51af836baef3cc87639133ae7271078fc0b8761b86d9753a26dcbbf35de305e1050b898e31abf5c4d5dafa94fc3e5b38b06250f0c193b9af0b4dcfb4cd7 + checksum: 9defd9f4a0ac58d7e3b5de662dee97a0c693efdf61116cf7d3db9cff45ce86b5bfbd8461c5c77049e502bed16e8c6387720cf98af0e87a873dc57c21d2e1cac7 languageName: node linkType: hard