@elementor/externalize-wordpress-assets-webpack-plugin 3.35.0-493 → 3.35.1

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/index.d.mts CHANGED
@@ -7,7 +7,7 @@ type RequestToGlobalMap = Array<{
7
7
  }>;
8
8
 
9
9
  type Options = {
10
- type: string;
10
+ type: 'window';
11
11
  global?: (entryName: string) => Global;
12
12
  map: RequestToGlobalMap;
13
13
  };
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ type RequestToGlobalMap = Array<{
7
7
  }>;
8
8
 
9
9
  type Options = {
10
- type: string;
10
+ type: 'window';
11
11
  global?: (entryName: string) => Global;
12
12
  map: RequestToGlobalMap;
13
13
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/plugin.ts","../src/utils.ts"],"sourcesContent":["export { default as ExternalizeWordPressAssetsWebpackPlugin } from './plugin';\n","import { type Compiler, ExternalsPlugin } from 'webpack';\n\nimport { type Global, type RequestToGlobalMap } from './types';\nimport { kebabToCamelCase, transformRequestToGlobal } from './utils';\n\ntype Options = {\n\ttype: string;\n\tglobal?: ( entryName: string ) => Global;\n\tmap: RequestToGlobalMap;\n};\n\nexport default class ExternalizeWordPressAssetsWebpackPlugin {\n\toptions: Options;\n\n\texternalPlugin: ExternalsPlugin;\n\n\tconstructor( options: Pick< Options, 'map' | 'global' > ) {\n\t\tthis.options = {\n\t\t\tmap: options.map,\n\t\t\tglobal: options.global,\n\t\t\ttype: 'window',\n\t\t};\n\n\t\tthis.externalPlugin = new ExternalsPlugin( this.options.type, ( { request }, callback ) =>\n\t\t\tthis.externalsPluginCallback( request, callback )\n\t\t);\n\t}\n\n\tapply( compiler: Compiler ) {\n\t\tthis.externalPlugin.apply( compiler );\n\n\t\tcompiler.hooks.environment.tap( this.constructor.name, () => {\n\t\t\tthis.exposeEntry( compiler );\n\t\t} );\n\t}\n\n\texternalsPluginCallback( request: string | undefined, callback: ( err?: undefined, result?: Global ) => void ) {\n\t\tconst global = transformRequestToGlobal( request, this.options.map );\n\n\t\tif ( ! global ) {\n\t\t\tcallback();\n\n\t\t\treturn;\n\t\t}\n\n\t\tcallback( undefined, global );\n\t}\n\n\texposeEntry( compiler: Compiler ) {\n\t\tcompiler.options.output.enabledLibraryTypes?.push( this.options.type );\n\n\t\tconst transformEntryNameToGlobal = this.options.global;\n\t\tconst entry = compiler.options.entry;\n\n\t\tif ( ! transformEntryNameToGlobal ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcompiler.options.entry = Object.entries( entry ).reduce(\n\t\t\t( carry, [ name, entryItem ] ) => ( {\n\t\t\t\t...carry,\n\t\t\t\t[ name ]: {\n\t\t\t\t\t...entryItem,\n\t\t\t\t\tlibrary: {\n\t\t\t\t\t\tname: transformEntryNameToGlobal( kebabToCamelCase( name ) ),\n\t\t\t\t\t\ttype: this.options.type,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} ),\n\t\t\t{}\n\t\t);\n\t}\n}\n","import { type RequestToGlobalMap } from './types';\n\nexport function transformRequestToGlobal( request: string | undefined, map: RequestToGlobalMap ) {\n\tif ( ! request ) {\n\t\treturn null;\n\t}\n\n\tfor ( const item of map ) {\n\t\tlet { request: requestRegex, global } = item;\n\n\t\tif ( ! ( requestRegex instanceof RegExp ) ) {\n\t\t\trequestRegex = new RegExp( `^${ requestRegex }$` );\n\t\t}\n\n\t\tconst matches = request.match( requestRegex );\n\n\t\tif ( matches ) {\n\t\t\treturn replaceGlobal( global, matches );\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction replaceGlobal( global: string | string[], matches: RegExpMatchArray ) {\n\tlet result = typeof global === 'string' ? [ global ] : [ ...global ];\n\n\tmatches.forEach( ( value, index ) => {\n\t\t// Replace regex backreferences with capture groups.\n\t\t// The user can set ['something', '$1', 'a', '$2'] in the global, and the backreferences will\n\t\t// be replaced by the matched groups in the regex.\n\t\tresult = result.map( ( item ) => item.replace( `$${ index }`, kebabToCamelCase( value ) ) );\n\t} );\n\n\treturn result;\n}\n\nexport function kebabToCamelCase( kebabCase: string ) {\n\treturn kebabCase.replace( /-(\\w)/g, ( _, w: string ) => w.toUpperCase() );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,qBAA+C;;;ACExC,SAAS,yBAA0B,SAA6B,KAA0B;AAChG,MAAK,CAAE,SAAU;AAChB,WAAO;AAAA,EACR;AAEA,aAAY,QAAQ,KAAM;AACzB,QAAI,EAAE,SAAS,cAAc,OAAO,IAAI;AAExC,QAAK,EAAI,wBAAwB,SAAW;AAC3C,qBAAe,IAAI,OAAQ,IAAK,YAAa,GAAI;AAAA,IAClD;AAEA,UAAM,UAAU,QAAQ,MAAO,YAAa;AAE5C,QAAK,SAAU;AACd,aAAO,cAAe,QAAQ,OAAQ;AAAA,IACvC;AAAA,EACD;AAEA,SAAO;AACR;AAEA,SAAS,cAAe,QAA2B,SAA4B;AAC9E,MAAI,SAAS,OAAO,WAAW,WAAW,CAAE,MAAO,IAAI,CAAE,GAAG,MAAO;AAEnE,UAAQ,QAAS,CAAE,OAAO,UAAW;AAIpC,aAAS,OAAO,IAAK,CAAE,SAAU,KAAK,QAAS,IAAK,KAAM,IAAI,iBAAkB,KAAM,CAAE,CAAE;AAAA,EAC3F,CAAE;AAEF,SAAO;AACR;AAEO,SAAS,iBAAkB,WAAoB;AACrD,SAAO,UAAU,QAAS,UAAU,CAAE,GAAG,MAAe,EAAE,YAAY,CAAE;AACzE;;;AD5BA,IAAqB,0CAArB,MAA6D;AAAA,EAC5D;AAAA,EAEA;AAAA,EAEA,YAAa,SAA6C;AACzD,SAAK,UAAU;AAAA,MACd,KAAK,QAAQ;AAAA,MACb,QAAQ,QAAQ;AAAA,MAChB,MAAM;AAAA,IACP;AAEA,SAAK,iBAAiB,IAAI;AAAA,MAAiB,KAAK,QAAQ;AAAA,MAAM,CAAE,EAAE,QAAQ,GAAG,aAC5E,KAAK,wBAAyB,SAAS,QAAS;AAAA,IACjD;AAAA,EACD;AAAA,EAEA,MAAO,UAAqB;AAC3B,SAAK,eAAe,MAAO,QAAS;AAEpC,aAAS,MAAM,YAAY,IAAK,KAAK,YAAY,MAAM,MAAM;AAC5D,WAAK,YAAa,QAAS;AAAA,IAC5B,CAAE;AAAA,EACH;AAAA,EAEA,wBAAyB,SAA6B,UAAyD;AAC9G,UAAM,SAAS,yBAA0B,SAAS,KAAK,QAAQ,GAAI;AAEnE,QAAK,CAAE,QAAS;AACf,eAAS;AAET;AAAA,IACD;AAEA,aAAU,QAAW,MAAO;AAAA,EAC7B;AAAA,EAEA,YAAa,UAAqB;AACjC,aAAS,QAAQ,OAAO,qBAAqB,KAAM,KAAK,QAAQ,IAAK;AAErE,UAAM,6BAA6B,KAAK,QAAQ;AAChD,UAAM,QAAQ,SAAS,QAAQ;AAE/B,QAAK,CAAE,4BAA6B;AACnC;AAAA,IACD;AAEA,aAAS,QAAQ,QAAQ,OAAO,QAAS,KAAM,EAAE;AAAA,MAChD,CAAE,OAAO,CAAE,MAAM,SAAU,OAAS;AAAA,QACnC,GAAG;AAAA,QACH,CAAE,IAAK,GAAG;AAAA,UACT,GAAG;AAAA,UACH,SAAS;AAAA,YACR,MAAM,2BAA4B,iBAAkB,IAAK,CAAE;AAAA,YAC3D,MAAM,KAAK,QAAQ;AAAA,UACpB;AAAA,QACD;AAAA,MACD;AAAA,MACA,CAAC;AAAA,IACF;AAAA,EACD;AACD;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/plugin.ts","../src/utils.ts"],"sourcesContent":["export { default as ExternalizeWordPressAssetsWebpackPlugin } from './plugin';\n","import { type Compiler, ExternalsPlugin } from 'webpack';\n\nimport { type Global, type RequestToGlobalMap } from './types';\nimport { kebabToCamelCase, transformRequestToGlobal } from './utils';\n\ntype Options = {\n\ttype: 'window';\n\tglobal?: ( entryName: string ) => Global;\n\tmap: RequestToGlobalMap;\n};\n\nexport default class ExternalizeWordPressAssetsWebpackPlugin {\n\toptions: Options;\n\n\texternalPlugin: ExternalsPlugin;\n\n\tconstructor( options: Pick< Options, 'map' | 'global' > ) {\n\t\tthis.options = {\n\t\t\tmap: options.map,\n\t\t\tglobal: options.global,\n\t\t\ttype: 'window',\n\t\t};\n\n\t\tthis.externalPlugin = new ExternalsPlugin( this.options.type, ( { request }, callback ) =>\n\t\t\tthis.externalsPluginCallback( request, callback )\n\t\t);\n\t}\n\n\tapply( compiler: Compiler ) {\n\t\tthis.externalPlugin.apply( compiler );\n\n\t\tcompiler.hooks.environment.tap( this.constructor.name, () => {\n\t\t\tthis.exposeEntry( compiler );\n\t\t} );\n\t}\n\n\texternalsPluginCallback( request: string | undefined, callback: ( err?: undefined, result?: Global ) => void ) {\n\t\tconst global = transformRequestToGlobal( request, this.options.map );\n\n\t\tif ( ! global ) {\n\t\t\tcallback();\n\n\t\t\treturn;\n\t\t}\n\n\t\tcallback( undefined, global );\n\t}\n\n\texposeEntry( compiler: Compiler ) {\n\t\tcompiler.options.output.enabledLibraryTypes?.push( this.options.type );\n\n\t\tconst transformEntryNameToGlobal = this.options.global;\n\t\tconst entry = compiler.options.entry;\n\n\t\tif ( ! transformEntryNameToGlobal ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcompiler.options.entry = Object.entries( entry ).reduce(\n\t\t\t( carry, [ name, entryItem ] ) => ( {\n\t\t\t\t...carry,\n\t\t\t\t[ name ]: {\n\t\t\t\t\t...entryItem,\n\t\t\t\t\tlibrary: {\n\t\t\t\t\t\tname: transformEntryNameToGlobal( kebabToCamelCase( name ) ),\n\t\t\t\t\t\ttype: this.options.type,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} ),\n\t\t\t{}\n\t\t);\n\t}\n}\n","import { type RequestToGlobalMap } from './types';\n\nexport function transformRequestToGlobal( request: string | undefined, map: RequestToGlobalMap ) {\n\tif ( ! request ) {\n\t\treturn null;\n\t}\n\n\tfor ( const item of map ) {\n\t\tlet { request: requestRegex, global } = item;\n\n\t\tif ( ! ( requestRegex instanceof RegExp ) ) {\n\t\t\trequestRegex = new RegExp( `^${ requestRegex }$` );\n\t\t}\n\n\t\tconst matches = request.match( requestRegex );\n\n\t\tif ( matches ) {\n\t\t\treturn replaceGlobal( global, matches );\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction replaceGlobal( global: string | string[], matches: RegExpMatchArray ) {\n\tlet result = typeof global === 'string' ? [ global ] : [ ...global ];\n\n\tmatches.forEach( ( value, index ) => {\n\t\t// Replace regex backreferences with capture groups.\n\t\t// The user can set ['something', '$1', 'a', '$2'] in the global, and the backreferences will\n\t\t// be replaced by the matched groups in the regex.\n\t\tresult = result.map( ( item ) => item.replace( `$${ index }`, kebabToCamelCase( value ) ) );\n\t} );\n\n\treturn result;\n}\n\nexport function kebabToCamelCase( kebabCase: string ) {\n\treturn kebabCase.replace( /-(\\w)/g, ( _, w: string ) => w.toUpperCase() );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,qBAA+C;;;ACExC,SAAS,yBAA0B,SAA6B,KAA0B;AAChG,MAAK,CAAE,SAAU;AAChB,WAAO;AAAA,EACR;AAEA,aAAY,QAAQ,KAAM;AACzB,QAAI,EAAE,SAAS,cAAc,OAAO,IAAI;AAExC,QAAK,EAAI,wBAAwB,SAAW;AAC3C,qBAAe,IAAI,OAAQ,IAAK,YAAa,GAAI;AAAA,IAClD;AAEA,UAAM,UAAU,QAAQ,MAAO,YAAa;AAE5C,QAAK,SAAU;AACd,aAAO,cAAe,QAAQ,OAAQ;AAAA,IACvC;AAAA,EACD;AAEA,SAAO;AACR;AAEA,SAAS,cAAe,QAA2B,SAA4B;AAC9E,MAAI,SAAS,OAAO,WAAW,WAAW,CAAE,MAAO,IAAI,CAAE,GAAG,MAAO;AAEnE,UAAQ,QAAS,CAAE,OAAO,UAAW;AAIpC,aAAS,OAAO,IAAK,CAAE,SAAU,KAAK,QAAS,IAAK,KAAM,IAAI,iBAAkB,KAAM,CAAE,CAAE;AAAA,EAC3F,CAAE;AAEF,SAAO;AACR;AAEO,SAAS,iBAAkB,WAAoB;AACrD,SAAO,UAAU,QAAS,UAAU,CAAE,GAAG,MAAe,EAAE,YAAY,CAAE;AACzE;;;AD5BA,IAAqB,0CAArB,MAA6D;AAAA,EAC5D;AAAA,EAEA;AAAA,EAEA,YAAa,SAA6C;AACzD,SAAK,UAAU;AAAA,MACd,KAAK,QAAQ;AAAA,MACb,QAAQ,QAAQ;AAAA,MAChB,MAAM;AAAA,IACP;AAEA,SAAK,iBAAiB,IAAI;AAAA,MAAiB,KAAK,QAAQ;AAAA,MAAM,CAAE,EAAE,QAAQ,GAAG,aAC5E,KAAK,wBAAyB,SAAS,QAAS;AAAA,IACjD;AAAA,EACD;AAAA,EAEA,MAAO,UAAqB;AAC3B,SAAK,eAAe,MAAO,QAAS;AAEpC,aAAS,MAAM,YAAY,IAAK,KAAK,YAAY,MAAM,MAAM;AAC5D,WAAK,YAAa,QAAS;AAAA,IAC5B,CAAE;AAAA,EACH;AAAA,EAEA,wBAAyB,SAA6B,UAAyD;AAC9G,UAAM,SAAS,yBAA0B,SAAS,KAAK,QAAQ,GAAI;AAEnE,QAAK,CAAE,QAAS;AACf,eAAS;AAET;AAAA,IACD;AAEA,aAAU,QAAW,MAAO;AAAA,EAC7B;AAAA,EAEA,YAAa,UAAqB;AACjC,aAAS,QAAQ,OAAO,qBAAqB,KAAM,KAAK,QAAQ,IAAK;AAErE,UAAM,6BAA6B,KAAK,QAAQ;AAChD,UAAM,QAAQ,SAAS,QAAQ;AAE/B,QAAK,CAAE,4BAA6B;AACnC;AAAA,IACD;AAEA,aAAS,QAAQ,QAAQ,OAAO,QAAS,KAAM,EAAE;AAAA,MAChD,CAAE,OAAO,CAAE,MAAM,SAAU,OAAS;AAAA,QACnC,GAAG;AAAA,QACH,CAAE,IAAK,GAAG;AAAA,UACT,GAAG;AAAA,UACH,SAAS;AAAA,YACR,MAAM,2BAA4B,iBAAkB,IAAK,CAAE;AAAA,YAC3D,MAAM,KAAK,QAAQ;AAAA,UACpB;AAAA,QACD;AAAA,MACD;AAAA,MACA,CAAC;AAAA,IACF;AAAA,EACD;AACD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/plugin.ts","../src/utils.ts"],"sourcesContent":["import { type Compiler, ExternalsPlugin } from 'webpack';\n\nimport { type Global, type RequestToGlobalMap } from './types';\nimport { kebabToCamelCase, transformRequestToGlobal } from './utils';\n\ntype Options = {\n\ttype: string;\n\tglobal?: ( entryName: string ) => Global;\n\tmap: RequestToGlobalMap;\n};\n\nexport default class ExternalizeWordPressAssetsWebpackPlugin {\n\toptions: Options;\n\n\texternalPlugin: ExternalsPlugin;\n\n\tconstructor( options: Pick< Options, 'map' | 'global' > ) {\n\t\tthis.options = {\n\t\t\tmap: options.map,\n\t\t\tglobal: options.global,\n\t\t\ttype: 'window',\n\t\t};\n\n\t\tthis.externalPlugin = new ExternalsPlugin( this.options.type, ( { request }, callback ) =>\n\t\t\tthis.externalsPluginCallback( request, callback )\n\t\t);\n\t}\n\n\tapply( compiler: Compiler ) {\n\t\tthis.externalPlugin.apply( compiler );\n\n\t\tcompiler.hooks.environment.tap( this.constructor.name, () => {\n\t\t\tthis.exposeEntry( compiler );\n\t\t} );\n\t}\n\n\texternalsPluginCallback( request: string | undefined, callback: ( err?: undefined, result?: Global ) => void ) {\n\t\tconst global = transformRequestToGlobal( request, this.options.map );\n\n\t\tif ( ! global ) {\n\t\t\tcallback();\n\n\t\t\treturn;\n\t\t}\n\n\t\tcallback( undefined, global );\n\t}\n\n\texposeEntry( compiler: Compiler ) {\n\t\tcompiler.options.output.enabledLibraryTypes?.push( this.options.type );\n\n\t\tconst transformEntryNameToGlobal = this.options.global;\n\t\tconst entry = compiler.options.entry;\n\n\t\tif ( ! transformEntryNameToGlobal ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcompiler.options.entry = Object.entries( entry ).reduce(\n\t\t\t( carry, [ name, entryItem ] ) => ( {\n\t\t\t\t...carry,\n\t\t\t\t[ name ]: {\n\t\t\t\t\t...entryItem,\n\t\t\t\t\tlibrary: {\n\t\t\t\t\t\tname: transformEntryNameToGlobal( kebabToCamelCase( name ) ),\n\t\t\t\t\t\ttype: this.options.type,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} ),\n\t\t\t{}\n\t\t);\n\t}\n}\n","import { type RequestToGlobalMap } from './types';\n\nexport function transformRequestToGlobal( request: string | undefined, map: RequestToGlobalMap ) {\n\tif ( ! request ) {\n\t\treturn null;\n\t}\n\n\tfor ( const item of map ) {\n\t\tlet { request: requestRegex, global } = item;\n\n\t\tif ( ! ( requestRegex instanceof RegExp ) ) {\n\t\t\trequestRegex = new RegExp( `^${ requestRegex }$` );\n\t\t}\n\n\t\tconst matches = request.match( requestRegex );\n\n\t\tif ( matches ) {\n\t\t\treturn replaceGlobal( global, matches );\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction replaceGlobal( global: string | string[], matches: RegExpMatchArray ) {\n\tlet result = typeof global === 'string' ? [ global ] : [ ...global ];\n\n\tmatches.forEach( ( value, index ) => {\n\t\t// Replace regex backreferences with capture groups.\n\t\t// The user can set ['something', '$1', 'a', '$2'] in the global, and the backreferences will\n\t\t// be replaced by the matched groups in the regex.\n\t\tresult = result.map( ( item ) => item.replace( `$${ index }`, kebabToCamelCase( value ) ) );\n\t} );\n\n\treturn result;\n}\n\nexport function kebabToCamelCase( kebabCase: string ) {\n\treturn kebabCase.replace( /-(\\w)/g, ( _, w: string ) => w.toUpperCase() );\n}\n"],"mappings":";AAAA,SAAwB,uBAAuB;;;ACExC,SAAS,yBAA0B,SAA6B,KAA0B;AAChG,MAAK,CAAE,SAAU;AAChB,WAAO;AAAA,EACR;AAEA,aAAY,QAAQ,KAAM;AACzB,QAAI,EAAE,SAAS,cAAc,OAAO,IAAI;AAExC,QAAK,EAAI,wBAAwB,SAAW;AAC3C,qBAAe,IAAI,OAAQ,IAAK,YAAa,GAAI;AAAA,IAClD;AAEA,UAAM,UAAU,QAAQ,MAAO,YAAa;AAE5C,QAAK,SAAU;AACd,aAAO,cAAe,QAAQ,OAAQ;AAAA,IACvC;AAAA,EACD;AAEA,SAAO;AACR;AAEA,SAAS,cAAe,QAA2B,SAA4B;AAC9E,MAAI,SAAS,OAAO,WAAW,WAAW,CAAE,MAAO,IAAI,CAAE,GAAG,MAAO;AAEnE,UAAQ,QAAS,CAAE,OAAO,UAAW;AAIpC,aAAS,OAAO,IAAK,CAAE,SAAU,KAAK,QAAS,IAAK,KAAM,IAAI,iBAAkB,KAAM,CAAE,CAAE;AAAA,EAC3F,CAAE;AAEF,SAAO;AACR;AAEO,SAAS,iBAAkB,WAAoB;AACrD,SAAO,UAAU,QAAS,UAAU,CAAE,GAAG,MAAe,EAAE,YAAY,CAAE;AACzE;;;AD5BA,IAAqB,0CAArB,MAA6D;AAAA,EAC5D;AAAA,EAEA;AAAA,EAEA,YAAa,SAA6C;AACzD,SAAK,UAAU;AAAA,MACd,KAAK,QAAQ;AAAA,MACb,QAAQ,QAAQ;AAAA,MAChB,MAAM;AAAA,IACP;AAEA,SAAK,iBAAiB,IAAI;AAAA,MAAiB,KAAK,QAAQ;AAAA,MAAM,CAAE,EAAE,QAAQ,GAAG,aAC5E,KAAK,wBAAyB,SAAS,QAAS;AAAA,IACjD;AAAA,EACD;AAAA,EAEA,MAAO,UAAqB;AAC3B,SAAK,eAAe,MAAO,QAAS;AAEpC,aAAS,MAAM,YAAY,IAAK,KAAK,YAAY,MAAM,MAAM;AAC5D,WAAK,YAAa,QAAS;AAAA,IAC5B,CAAE;AAAA,EACH;AAAA,EAEA,wBAAyB,SAA6B,UAAyD;AAC9G,UAAM,SAAS,yBAA0B,SAAS,KAAK,QAAQ,GAAI;AAEnE,QAAK,CAAE,QAAS;AACf,eAAS;AAET;AAAA,IACD;AAEA,aAAU,QAAW,MAAO;AAAA,EAC7B;AAAA,EAEA,YAAa,UAAqB;AACjC,aAAS,QAAQ,OAAO,qBAAqB,KAAM,KAAK,QAAQ,IAAK;AAErE,UAAM,6BAA6B,KAAK,QAAQ;AAChD,UAAM,QAAQ,SAAS,QAAQ;AAE/B,QAAK,CAAE,4BAA6B;AACnC;AAAA,IACD;AAEA,aAAS,QAAQ,QAAQ,OAAO,QAAS,KAAM,EAAE;AAAA,MAChD,CAAE,OAAO,CAAE,MAAM,SAAU,OAAS;AAAA,QACnC,GAAG;AAAA,QACH,CAAE,IAAK,GAAG;AAAA,UACT,GAAG;AAAA,UACH,SAAS;AAAA,YACR,MAAM,2BAA4B,iBAAkB,IAAK,CAAE;AAAA,YAC3D,MAAM,KAAK,QAAQ;AAAA,UACpB;AAAA,QACD;AAAA,MACD;AAAA,MACA,CAAC;AAAA,IACF;AAAA,EACD;AACD;","names":[]}
1
+ {"version":3,"sources":["../src/plugin.ts","../src/utils.ts"],"sourcesContent":["import { type Compiler, ExternalsPlugin } from 'webpack';\n\nimport { type Global, type RequestToGlobalMap } from './types';\nimport { kebabToCamelCase, transformRequestToGlobal } from './utils';\n\ntype Options = {\n\ttype: 'window';\n\tglobal?: ( entryName: string ) => Global;\n\tmap: RequestToGlobalMap;\n};\n\nexport default class ExternalizeWordPressAssetsWebpackPlugin {\n\toptions: Options;\n\n\texternalPlugin: ExternalsPlugin;\n\n\tconstructor( options: Pick< Options, 'map' | 'global' > ) {\n\t\tthis.options = {\n\t\t\tmap: options.map,\n\t\t\tglobal: options.global,\n\t\t\ttype: 'window',\n\t\t};\n\n\t\tthis.externalPlugin = new ExternalsPlugin( this.options.type, ( { request }, callback ) =>\n\t\t\tthis.externalsPluginCallback( request, callback )\n\t\t);\n\t}\n\n\tapply( compiler: Compiler ) {\n\t\tthis.externalPlugin.apply( compiler );\n\n\t\tcompiler.hooks.environment.tap( this.constructor.name, () => {\n\t\t\tthis.exposeEntry( compiler );\n\t\t} );\n\t}\n\n\texternalsPluginCallback( request: string | undefined, callback: ( err?: undefined, result?: Global ) => void ) {\n\t\tconst global = transformRequestToGlobal( request, this.options.map );\n\n\t\tif ( ! global ) {\n\t\t\tcallback();\n\n\t\t\treturn;\n\t\t}\n\n\t\tcallback( undefined, global );\n\t}\n\n\texposeEntry( compiler: Compiler ) {\n\t\tcompiler.options.output.enabledLibraryTypes?.push( this.options.type );\n\n\t\tconst transformEntryNameToGlobal = this.options.global;\n\t\tconst entry = compiler.options.entry;\n\n\t\tif ( ! transformEntryNameToGlobal ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcompiler.options.entry = Object.entries( entry ).reduce(\n\t\t\t( carry, [ name, entryItem ] ) => ( {\n\t\t\t\t...carry,\n\t\t\t\t[ name ]: {\n\t\t\t\t\t...entryItem,\n\t\t\t\t\tlibrary: {\n\t\t\t\t\t\tname: transformEntryNameToGlobal( kebabToCamelCase( name ) ),\n\t\t\t\t\t\ttype: this.options.type,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} ),\n\t\t\t{}\n\t\t);\n\t}\n}\n","import { type RequestToGlobalMap } from './types';\n\nexport function transformRequestToGlobal( request: string | undefined, map: RequestToGlobalMap ) {\n\tif ( ! request ) {\n\t\treturn null;\n\t}\n\n\tfor ( const item of map ) {\n\t\tlet { request: requestRegex, global } = item;\n\n\t\tif ( ! ( requestRegex instanceof RegExp ) ) {\n\t\t\trequestRegex = new RegExp( `^${ requestRegex }$` );\n\t\t}\n\n\t\tconst matches = request.match( requestRegex );\n\n\t\tif ( matches ) {\n\t\t\treturn replaceGlobal( global, matches );\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction replaceGlobal( global: string | string[], matches: RegExpMatchArray ) {\n\tlet result = typeof global === 'string' ? [ global ] : [ ...global ];\n\n\tmatches.forEach( ( value, index ) => {\n\t\t// Replace regex backreferences with capture groups.\n\t\t// The user can set ['something', '$1', 'a', '$2'] in the global, and the backreferences will\n\t\t// be replaced by the matched groups in the regex.\n\t\tresult = result.map( ( item ) => item.replace( `$${ index }`, kebabToCamelCase( value ) ) );\n\t} );\n\n\treturn result;\n}\n\nexport function kebabToCamelCase( kebabCase: string ) {\n\treturn kebabCase.replace( /-(\\w)/g, ( _, w: string ) => w.toUpperCase() );\n}\n"],"mappings":";AAAA,SAAwB,uBAAuB;;;ACExC,SAAS,yBAA0B,SAA6B,KAA0B;AAChG,MAAK,CAAE,SAAU;AAChB,WAAO;AAAA,EACR;AAEA,aAAY,QAAQ,KAAM;AACzB,QAAI,EAAE,SAAS,cAAc,OAAO,IAAI;AAExC,QAAK,EAAI,wBAAwB,SAAW;AAC3C,qBAAe,IAAI,OAAQ,IAAK,YAAa,GAAI;AAAA,IAClD;AAEA,UAAM,UAAU,QAAQ,MAAO,YAAa;AAE5C,QAAK,SAAU;AACd,aAAO,cAAe,QAAQ,OAAQ;AAAA,IACvC;AAAA,EACD;AAEA,SAAO;AACR;AAEA,SAAS,cAAe,QAA2B,SAA4B;AAC9E,MAAI,SAAS,OAAO,WAAW,WAAW,CAAE,MAAO,IAAI,CAAE,GAAG,MAAO;AAEnE,UAAQ,QAAS,CAAE,OAAO,UAAW;AAIpC,aAAS,OAAO,IAAK,CAAE,SAAU,KAAK,QAAS,IAAK,KAAM,IAAI,iBAAkB,KAAM,CAAE,CAAE;AAAA,EAC3F,CAAE;AAEF,SAAO;AACR;AAEO,SAAS,iBAAkB,WAAoB;AACrD,SAAO,UAAU,QAAS,UAAU,CAAE,GAAG,MAAe,EAAE,YAAY,CAAE;AACzE;;;AD5BA,IAAqB,0CAArB,MAA6D;AAAA,EAC5D;AAAA,EAEA;AAAA,EAEA,YAAa,SAA6C;AACzD,SAAK,UAAU;AAAA,MACd,KAAK,QAAQ;AAAA,MACb,QAAQ,QAAQ;AAAA,MAChB,MAAM;AAAA,IACP;AAEA,SAAK,iBAAiB,IAAI;AAAA,MAAiB,KAAK,QAAQ;AAAA,MAAM,CAAE,EAAE,QAAQ,GAAG,aAC5E,KAAK,wBAAyB,SAAS,QAAS;AAAA,IACjD;AAAA,EACD;AAAA,EAEA,MAAO,UAAqB;AAC3B,SAAK,eAAe,MAAO,QAAS;AAEpC,aAAS,MAAM,YAAY,IAAK,KAAK,YAAY,MAAM,MAAM;AAC5D,WAAK,YAAa,QAAS;AAAA,IAC5B,CAAE;AAAA,EACH;AAAA,EAEA,wBAAyB,SAA6B,UAAyD;AAC9G,UAAM,SAAS,yBAA0B,SAAS,KAAK,QAAQ,GAAI;AAEnE,QAAK,CAAE,QAAS;AACf,eAAS;AAET;AAAA,IACD;AAEA,aAAU,QAAW,MAAO;AAAA,EAC7B;AAAA,EAEA,YAAa,UAAqB;AACjC,aAAS,QAAQ,OAAO,qBAAqB,KAAM,KAAK,QAAQ,IAAK;AAErE,UAAM,6BAA6B,KAAK,QAAQ;AAChD,UAAM,QAAQ,SAAS,QAAQ;AAE/B,QAAK,CAAE,4BAA6B;AACnC;AAAA,IACD;AAEA,aAAS,QAAQ,QAAQ,OAAO,QAAS,KAAM,EAAE;AAAA,MAChD,CAAE,OAAO,CAAE,MAAM,SAAU,OAAS;AAAA,QACnC,GAAG;AAAA,QACH,CAAE,IAAK,GAAG;AAAA,UACT,GAAG;AAAA,UACH,SAAS;AAAA,YACR,MAAM,2BAA4B,iBAAkB,IAAK,CAAE;AAAA,YAC3D,MAAM,KAAK,QAAQ;AAAA,UACpB;AAAA,QACD;AAAA,MACD;AAAA,MACA,CAAC;AAAA,IACF;AAAA,EACD;AACD;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elementor/externalize-wordpress-assets-webpack-plugin",
3
- "version": "3.35.0-493",
3
+ "version": "3.35.1",
4
4
  "private": false,
5
5
  "author": "Elementor Team",
6
6
  "homepage": "https://elementor.com/",
package/src/plugin.ts CHANGED
@@ -4,7 +4,7 @@ import { type Global, type RequestToGlobalMap } from './types';
4
4
  import { kebabToCamelCase, transformRequestToGlobal } from './utils';
5
5
 
6
6
  type Options = {
7
- type: string;
7
+ type: 'window';
8
8
  global?: ( entryName: string ) => Global;
9
9
  map: RequestToGlobalMap;
10
10
  };