New:Socket for Asana Is Now Available.Learn more
Get Started

@pmmmwh/react-refresh-webpack-plugin

Package Overview
Dependencies
Maintainers
1
Versions
72
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@pmmmwh/react-refresh-webpack-plugin - npm Package Compare versions

Comparing version
0.6.2
to
0.6.3
+5
loader/utils/webpackGlobal.js
// When available, use `__webpack_global__` which is a stable runtime function to use `__webpack_require__` in this compilation
// See: https://github.com/webpack/webpack/issues/20139
const webpackGlobal = `(typeof __webpack_global__ !== 'undefined' ? __webpack_global__ : __webpack_require__)`;
module.exports = webpackGlobal;
+3
-2

@@ -15,2 +15,3 @@ // This is a patch for mozilla/source-map#349 -

normalizeOptions,
webpackGlobal,
} = require('./utils');

@@ -49,7 +50,7 @@ const schema = require('./options.json');

cjs: Template.asString(
`__webpack_require__.$Refresh$.runtime = require('${RefreshRuntimePath}');`
`${webpackGlobal}.$Refresh$.runtime = require('${RefreshRuntimePath}');`
),
esm: Template.asString([
`import * as __react_refresh_runtime__ from '${RefreshRuntimePath}';`,
`__webpack_require__.$Refresh$.runtime = __react_refresh_runtime__;`,
`${webpackGlobal}.$Refresh$.runtime = __react_refresh_runtime__;`,
]),

@@ -56,0 +57,0 @@ };

+3
-1

@@ -0,1 +1,3 @@

const webpackGlobal = require('./webpackGlobal');
/**

@@ -24,3 +26,3 @@ * @typedef ModuleRuntimeOptions {Object}

return Template.asString([
`${constDeclaration} $ReactRefreshModuleId$ = __webpack_require__.$Refresh$.moduleId;`,
`${constDeclaration} $ReactRefreshModuleId$ = ${webpackGlobal}.$Refresh$.moduleId;`,
`${constDeclaration} $ReactRefreshCurrentExports$ = __react_refresh_utils__.getModuleExports(`,

@@ -27,0 +29,0 @@ Template.indent('$ReactRefreshModuleId$'),

@@ -5,2 +5,3 @@ const getIdentitySourceMap = require('./getIdentitySourceMap');

const normalizeOptions = require('./normalizeOptions');
const webpackGlobal = require('./webpackGlobal');

@@ -12,2 +13,3 @@ module.exports = {

normalizeOptions,
webpackGlobal,
};
{
"name": "@pmmmwh/react-refresh-webpack-plugin",
"version": "0.6.2",
"version": "0.6.3",
"description": "An **EXPERIMENTAL** Webpack plugin to enable \"Fast Refresh\" (also previously known as _Hot Reloading_) for React components.",

@@ -59,3 +59,3 @@ "keywords": [

"generate:client-external": "webpack",
"generate:types": "run-s types:clean types:compile types:prune-private \"format --log-level=silent\"",
"generate:types": "run-s types:clean types:compile types:prune-private \"format -- --log-level=silent\"",
"prepublishOnly": "run-p generate:*"

@@ -82,5 +82,5 @@ },

"babel-loader": "^10.0.0",
"cross-env": "^7.0.3",
"cross-env": "^10.1.0",
"cross-spawn": "^7.0.5",
"del-cli": "^6.0.0",
"del-cli": "^7.0.0",
"eslint": "^8.6.0",

@@ -98,15 +98,16 @@ "eslint-config-prettier": "^10.1.1",

"module-alias": "^2.2.3",
"nanoid": "^3.3.8",
"npm-run-all2": "^7.0.2",
"nanoid": "^3.3.12",
"npm-run-all2": "^9.0.1",
"prettier": "^3.3.0",
"puppeteer": "^24.4.0",
"puppeteer": "^24.43.1",
"react-refresh": "^0.18.0",
"sourcemap-validator": "^2.1.0",
"terser-webpack-plugin": "^5.3.10",
"type-fest": "^4.41.0",
"typescript": "~5.9.3",
"webpack": "^5.94.0",
"webpack-cli": "^6.0.1",
"webpack-dev-server": "^5.0.4",
"type-fest": "^5.6.0",
"typescript": "~6.0.3",
"webpack": "^5.104.1",
"webpack-cli": "^7.0.3",
"webpack-dev-server": "^5.2.6",
"webpack-dev-server-v4": "npm:webpack-dev-server@^4.8.0",
"webpack-dev-server-v6": "npm:webpack-dev-server@^6.0.0",
"webpack-hot-middleware": "^2.26.1",

@@ -122,3 +123,3 @@ "webpack-plugin-serve": "^1.6.0",

"webpack": "^5.0.0",
"webpack-dev-server": "^4.8.0 || 5.x",
"webpack-dev-server": "^4.8.0 || 5.x || 6.x",
"webpack-hot-middleware": "2.x",

@@ -148,5 +149,12 @@ "webpack-plugin-serve": "1.x"

"resolutions": {
"@types/retry": "^0.12.0",
"memfs": "^4.0.0",
"rimraf": "^5.0.0",
"type-fest": "^4.41.0"
"memfs/@jsonjoy.com/json-pack": "^17.67.0",
"memfs/@jsonjoy.com/util": "^17.67.0",
"nanoid": "^3.3.12",
"rimraf": "^6.0.0",
"tslib": "^2.8.0",
"type-fest": "^5.6.0",
"uuid": "^11.1.1",
"webpack-plugin-serve/http-proxy-middleware": "^2.0.10"
},

@@ -153,0 +161,0 @@ "engines": {

@@ -323,7 +323,7 @@ # React Refresh Webpack Plugin

| Dependency | Version |
| ------------------------ | ----------------- |
| `webpack-dev-server` | `4.8.0`+ or `5.x` |
| `webpack-hot-middleware` | `2.x` |
| `webpack-plugin-serve` | `1.x` |
| Dependency | Version |
| ------------------------ | -------------------------- |
| `webpack-dev-server` | `4.8.0`+ or `5.x` or `6.x` |
| `webpack-hot-middleware` | `2.x` |
| `webpack-plugin-serve` | `1.x` |

@@ -330,0 +330,0 @@ ## API

@@ -7,4 +7,2 @@ /**

function initWDSSocket(messageHandler) {
const { default: SockJSClient } = require('webpack-dev-server/client/clients/SockJSClient');
const { default: WebSocketClient } = require('webpack-dev-server/client/clients/WebSocketClient');
const { client } = require('webpack-dev-server/client/socket');

@@ -14,5 +12,8 @@

let connection;
if (client instanceof SockJSClient) {
if (client.sock) {
// SockJSClient exposes the underlying socket via `.sock`.
// WDS 6.0.0 dropped SockJS support, so this branch is dead in WDS 6+.
connection = client.sock;
} else if (client instanceof WebSocketClient) {
} else if (client.client) {
// WebSocketClient exposes the underlying socket via `.client`.
connection = client.client;

@@ -19,0 +20,0 @@ } else {

@@ -14,4 +14,3 @@ export type ErrorOverlayOptions = {

sockIntegration?:
| import('type-fest').LiteralUnion<false | 'wds' | 'whm' | 'wps', string>
| undefined;
import('type-fest').LiteralUnion<false | 'wds' | 'whm' | 'wps', string> | undefined;
};

@@ -18,0 +17,0 @@ export type NormalizedErrorOverlayOptions = import('type-fest').SetRequired<

@@ -1,1 +0,1 @@

(()=>{var t={214:(t,e,r)=>{"use strict";r(397);var n=r(3565);t.exports=n},397:(t,e,r)=>{"use strict";r(2344)},470:(t,e,r)=>{"use strict";var n=r(6028),o=r(5594);t.exports=function(t){var e=n(t,"string");return o(e)?e:e+""}},581:(t,e,r)=>{"use strict";var n=r(3930),o=r(2250),i=r(6285),u=TypeError;t.exports=function(t,e){var r,s;if("string"===e&&o(r=t.toString)&&!i(s=n(r,t)))return s;if(o(r=t.valueOf)&&!i(s=n(r,t)))return s;if("string"!==e&&o(r=t.toString)&&!i(s=n(r,t)))return s;throw new u("Can't convert object to primitive value")}},798:(t,e,r)=>{"use strict";var n,o,i=r(5951),u=r(6794),s=i.process,c=i.Deno,a=s&&s.versions||c&&c.version,f=a&&a.v8;f&&(o=(n=f.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!o&&u&&(!(n=u.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=u.match(/Chrome\/(\d+)/))&&(o=+n[1]),t.exports=o},1091:(t,e,r)=>{"use strict";var n=r(5951),o=r(6024),i=r(2361),u=r(2250),s=r(3846).f,c=r(7463),a=r(2046),f=r(8311),p=r(1626),l=r(9724);r(6128);var v=function(t){var e=function(r,n,i){if(this instanceof e){switch(arguments.length){case 0:return new t;case 1:return new t(r);case 2:return new t(r,n)}return new t(r,n,i)}return o(t,this,arguments)};return e.prototype=t.prototype,e};t.exports=function(t,e){var r,o,y,h,d,b,m,g,w,x=t.target,_=t.global,j=t.stat,S=t.proto,O=_?n:j?n[x]:n[x]&&n[x].prototype,R=_?a:a[x]||p(a,x,{})[x],E=R.prototype;for(h in e)o=!(r=c(_?h:x+(j?".":"#")+h,t.forced))&&O&&l(O,h),b=R[h],o&&(m=t.dontCallGetSet?(w=s(O,h))&&w.value:O[h]),d=o&&m?m:e[h],(r||S||typeof b!=typeof d)&&(g=t.bind&&o?f(d,n):t.wrap&&o?v(d):S&&u(d)?i(d):d,(t.sham||d&&d.sham||b&&b.sham)&&p(g,"sham",!0),p(R,h,g),S&&(l(a,y=x+"Prototype")||p(a,y,{}),p(a[y],h,d),t.real&&E&&(r||!E[h])&&p(E,h,d)))}},1175:(t,e,r)=>{"use strict";var n=r(9846);t.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},1505:(t,e,r)=>{"use strict";var n=r(8828);t.exports=!n(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})},1626:(t,e,r)=>{"use strict";var n=r(9447),o=r(4284),i=r(5817);t.exports=n?function(t,e,r){return o.f(t,e,i(1,r))}:function(t,e,r){return t[e]=r,t}},1907:(t,e,r)=>{"use strict";var n=r(1505),o=Function.prototype,i=o.call,u=n&&o.bind.bind(i,i);t.exports=n?u:function(t){return function(){return i.apply(t,arguments)}}},1960:(t,e,r)=>{"use strict";var n=r(2671);t.exports=n},2046:t=>{"use strict";t.exports={}},2159:(t,e,r)=>{"use strict";var n=r(2250),o=r(4640),i=TypeError;t.exports=function(t){if(n(t))return t;throw new i(o(t)+" is not a function")}},2250:t=>{"use strict";var e="object"==typeof document&&document.all;t.exports=void 0===e&&void 0!==e?function(t){return"function"==typeof t||t===e}:function(t){return"function"==typeof t}},2344:(t,e,r)=>{"use strict";var n=r(1091),o=r(5951);n({global:!0,forced:o.globalThis!==o},{globalThis:o})},2361:(t,e,r)=>{"use strict";var n=r(5807),o=r(1907);t.exports=function(t){if("Function"===n(t))return o(t)}},2532:(t,e,r)=>{"use strict";var n=r(5951),o=Object.defineProperty;t.exports=function(t,e){try{o(n,t,{value:e,configurable:!0,writable:!0})}catch(r){n[t]=e}return e}},2574:(t,e)=>{"use strict";var r={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,o=n&&!r.call({1:2},1);e.f=o?function(t){var e=n(this,t);return!!e&&e.enumerable}:r},2671:(t,e,r)=>{"use strict";r(2344),t.exports=r(5951)},3565:(t,e,r)=>{"use strict";var n=r(1960);t.exports=n},3648:(t,e,r)=>{"use strict";var n=r(9447),o=r(8828),i=r(9552);t.exports=!n&&!o(function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a})},3846:(t,e,r)=>{"use strict";var n=r(9447),o=r(3930),i=r(2574),u=r(5817),s=r(7374),c=r(470),a=r(9724),f=r(3648),p=Object.getOwnPropertyDescriptor;e.f=n?p:function(t,e){if(t=s(t),e=c(e),f)try{return p(t,e)}catch(t){}if(a(t,e))return u(!o(i.f,t,e),t[e])}},3930:(t,e,r)=>{"use strict";var n=r(1505),o=Function.prototype.call;t.exports=n?o.bind(o):function(){return o.apply(o,arguments)}},4239:(t,e,r)=>{"use strict";var n=r(7136),o=TypeError;t.exports=function(t){if(n(t))throw new o("Can't call method on "+t);return t}},4284:(t,e,r)=>{"use strict";var n=r(9447),o=r(3648),i=r(8661),u=r(6624),s=r(470),c=TypeError,a=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p="enumerable",l="configurable",v="writable";e.f=n?i?function(t,e,r){if(u(t),e=s(e),u(r),"function"==typeof t&&"prototype"===e&&"value"in r&&v in r&&!r[v]){var n=f(t,e);n&&n[v]&&(t[e]=r.value,r={configurable:l in r?r[l]:n[l],enumerable:p in r?r[p]:n[p],writable:!1})}return a(t,e,r)}:a:function(t,e,r){if(u(t),e=s(e),u(r),o)try{return a(t,e,r)}catch(t){}if("get"in r||"set"in r)throw new c("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},4444:(t,e,r)=>{"use strict";t.exports=r(214)},4640:t=>{"use strict";var e=String;t.exports=function(t){try{return e(t)}catch(t){return"Object"}}},5582:(t,e,r)=>{"use strict";var n=r(2046),o=r(5951),i=r(2250),u=function(t){return i(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?u(n[t])||u(o[t]):n[t]&&n[t][e]||o[t]&&o[t][e]}},5594:(t,e,r)=>{"use strict";var n=r(5582),o=r(2250),i=r(8280),u=r(1175),s=Object;t.exports=u?function(t){return"symbol"==typeof t}:function(t){var e=n("Symbol");return o(e)&&i(e.prototype,s(t))}},5644:(t,e)=>{"use strict";!function(){function t(e){if(null!==e.fullKey)return e.fullKey;var r=e.ownKey;try{var n=e.getCustomHooks()}catch(t){return e.forceReset=!0,e.fullKey=r}for(var o=0;o<n.length;o++){var i=n[o];if("function"!=typeof i)return e.forceReset=!0,e.fullKey=r;if(void 0!==(i=l.get(i))){var u=t(i);i.forceReset&&(e.forceReset=!0),r+="\n---\n"+u}}return e.fullKey=r}function r(t){return v.get(t)}function n(t){var e=new Set;return t.forEach(function(t){e.add(t)}),e}function o(t,e){try{return t[e]}catch(t){}}function i(t,e){var r=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n=3<arguments.length?arguments[3]:void 0;if(l.has(t)||l.set(t,{forceReset:r,ownKey:e,fullKey:null,getCustomHooks:n||function(){return[]}}),"object"==typeof t&&null!==t)switch(o(t,"$$typeof")){case s:i(t.render,e,r,n);break;case c:i(t.type,e,r,n)}}function u(e){void 0!==(e=l.get(e))&&t(e)}var s=Symbol.for("react.forward_ref"),c=Symbol.for("react.memo"),a="function"==typeof WeakMap?WeakMap:Map,f=new Map,p=new a,l=new a,v=new a,y=[],h=new Map,d=new Map,b=new Set,m=new Set,g="function"==typeof WeakMap?new WeakMap:null,w=!1;e._getMountedRootCount=function(){return b.size},e.collectCustomHooksForSignature=u,e.createSignatureFunctionForTransform=function(){var t,e,r=!1;return function(n,o,s,c){if("string"==typeof o)return t||(t=n,e="function"==typeof c),null==n||"function"!=typeof n&&"object"!=typeof n||i(n,o,s,c),n;!r&&e&&(r=!0,u(t))}},e.getFamilyByID=function(t){return f.get(t)},e.getFamilyByType=function(t){return p.get(t)},e.hasUnrecoverableErrors=function(){return!1},e.injectIntoGlobalHook=function(t){var e=t.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(void 0===e){var r=0;t.__REACT_DEVTOOLS_GLOBAL_HOOK__=e={renderers:new Map,supportsFiber:!0,inject:function(){return r++},onScheduleFiberRoot:function(){},onCommitFiberRoot:function(){},onCommitFiberUnmount:function(){}}}if(e.isDisabled)console.warn("Something has shimmed the React DevTools global hook (__REACT_DEVTOOLS_GLOBAL_HOOK__). Fast Refresh is not compatible with this shim and will be disabled.");else{var n=e.inject;e.inject=function(t){var e=n.apply(this,arguments);return"function"==typeof t.scheduleRefresh&&"function"==typeof t.setRefreshHandler&&h.set(e,t),e},e.renderers.forEach(function(t,e){"function"==typeof t.scheduleRefresh&&"function"==typeof t.setRefreshHandler&&h.set(e,t)});var o=e.onCommitFiberRoot,i=e.onScheduleFiberRoot||function(){};e.onScheduleFiberRoot=function(t,e,r){return w||(m.delete(e),null!==g&&g.set(e,r)),i.apply(this,arguments)},e.onCommitFiberRoot=function(t,e,r,n){var i=h.get(t);if(void 0!==i){d.set(e,i);var u=(i=e.current).alternate;null!==u?(u=null!=u.memoizedState&&null!=u.memoizedState.element&&b.has(e),i=null!=i.memoizedState&&null!=i.memoizedState.element,!u&&i?(b.add(e),m.delete(e)):u&&i||(u&&!i?(b.delete(e),n?m.add(e):d.delete(e)):u||i||n&&m.add(e))):b.add(e)}return o.apply(this,arguments)}}},e.isLikelyComponentType=function(t){switch(typeof t){case"function":if(null!=t.prototype){if(t.prototype.isReactComponent)return!0;var e=Object.getOwnPropertyNames(t.prototype);if(1<e.length||"constructor"!==e[0]||t.prototype.__proto__!==Object.prototype)return!1}return"string"==typeof(t=t.name||t.displayName)&&/^[A-Z]/.test(t);case"object":if(null!=t)switch(o(t,"$$typeof")){case s:case c:return!0}return!1;default:return!1}},e.performReactRefresh=function(){if(0===y.length||w)return null;w=!0;try{var e=new Set,o=new Set,i=y;y=[],i.forEach(function(r){var n=r[0];r=r[1];var i=n.current;v.set(i,n),v.set(r,n),n.current=r,i.prototype&&i.prototype.isReactComponent||r.prototype&&r.prototype.isReactComponent?r=!1:(i=l.get(i),r=l.get(r),r=void 0===i&&void 0===r||void 0!==i&&void 0!==r&&t(i)===t(r)&&!r.forceReset),r?o.add(n):e.add(n)});var u={updatedFamilies:o,staleFamilies:e};h.forEach(function(t){t.setRefreshHandler(r)});var s=!1,c=null,a=n(m),f=n(b),p=(x=d,_=new Map,x.forEach(function(t,e){_.set(e,t)}),_);if(a.forEach(function(t){var e=p.get(t);if(void 0===e)throw Error("Could not find helpers for a root. This is a bug in React Refresh.");if(m.has(t),null!==g&&g.has(t)){var r=g.get(t);try{e.scheduleRoot(t,r)}catch(t){s||(s=!0,c=t)}}}),f.forEach(function(t){var e=p.get(t);if(void 0===e)throw Error("Could not find helpers for a root. This is a bug in React Refresh.");b.has(t);try{e.scheduleRefresh(t,u)}catch(t){s||(s=!0,c=t)}}),s)throw c;return u}finally{w=!1}var x,_},e.register=function t(e,r){if(!(null===e||"function"!=typeof e&&"object"!=typeof e||p.has(e))){var n=f.get(r);if(void 0===n?(n={current:e},f.set(r,n)):y.push([n,e]),p.set(e,n),"object"==typeof e&&null!==e)switch(o(e,"$$typeof")){case s:t(e.render,r+"$render");break;case c:t(e.type,r+"$type")}}},e.setSignature=i}()},5807:(t,e,r)=>{"use strict";var n=r(1907),o=n({}.toString),i=n("".slice);t.exports=function(t){return i(o(t),8,-1)}},5816:(t,e,r)=>{"use strict";var n=r(6128);t.exports=function(t,e){return n[t]||(n[t]=e||{})}},5817:t=>{"use strict";t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},5951:function(t,e,r){"use strict";var n=function(t){return t&&t.Math===Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof r.g&&r.g)||n("object"==typeof this&&this)||function(){return this}()||Function("return this")()},6024:(t,e,r)=>{"use strict";var n=r(1505),o=Function.prototype,i=o.apply,u=o.call;t.exports="object"==typeof Reflect&&Reflect.apply||(n?u.bind(i):function(){return u.apply(i,arguments)})},6028:(t,e,r)=>{"use strict";var n=r(3930),o=r(6285),i=r(5594),u=r(9367),s=r(581),c=r(6264),a=TypeError,f=c("toPrimitive");t.exports=function(t,e){if(!o(t)||i(t))return t;var r,c=u(t,f);if(c){if(void 0===e&&(e="default"),r=n(c,t,e),!o(r)||i(r))return r;throw new a("Can't convert object to primitive value")}return void 0===e&&(e="number"),s(t,e)}},6128:(t,e,r)=>{"use strict";var n=r(7376),o=r(5951),i=r(2532),u="__core-js_shared__",s=t.exports=o[u]||i(u,{});(s.versions||(s.versions=[])).push({version:"3.47.0",mode:n?"pure":"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru), 2025 CoreJS Company (core-js.io)",license:"https://github.com/zloirock/core-js/blob/v3.47.0/LICENSE",source:"https://github.com/zloirock/core-js"})},6206:(t,e,r)=>{"use strict";t.exports=r(5644)},6264:(t,e,r)=>{"use strict";var n=r(5951),o=r(5816),i=r(9724),u=r(6499),s=r(9846),c=r(1175),a=n.Symbol,f=o("wks"),p=c?a.for||a:a&&a.withoutSetter||u;t.exports=function(t){return i(f,t)||(f[t]=s&&i(a,t)?a[t]:p("Symbol."+t)),f[t]}},6285:(t,e,r)=>{"use strict";var n=r(2250);t.exports=function(t){return"object"==typeof t?null!==t:n(t)}},6499:(t,e,r)=>{"use strict";var n=r(1907),o=0,i=Math.random(),u=n(1.1.toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+u(++o+i,36)}},6624:(t,e,r)=>{"use strict";var n=r(6285),o=String,i=TypeError;t.exports=function(t){if(n(t))return t;throw new i(o(t)+" is not an object")}},6794:(t,e,r)=>{"use strict";var n=r(5951).navigator,o=n&&n.userAgent;t.exports=o?String(o):""},6946:(t,e,r)=>{"use strict";var n=r(1907),o=r(8828),i=r(5807),u=Object,s=n("".split);t.exports=o(function(){return!u("z").propertyIsEnumerable(0)})?function(t){return"String"===i(t)?s(t,""):u(t)}:u},7136:t=>{"use strict";t.exports=function(t){return null==t}},7374:(t,e,r)=>{"use strict";var n=r(6946),o=r(4239);t.exports=function(t){return n(o(t))}},7376:t=>{"use strict";t.exports=!0},7463:(t,e,r)=>{"use strict";var n=r(8828),o=r(2250),i=/#|\.prototype\./,u=function(t,e){var r=c[s(t)];return r===f||r!==a&&(o(e)?n(e):!!e)},s=u.normalize=function(t){return String(t).replace(i,".").toLowerCase()},c=u.data={},a=u.NATIVE="N",f=u.POLYFILL="P";t.exports=u},8280:(t,e,r)=>{"use strict";var n=r(1907);t.exports=n({}.isPrototypeOf)},8311:(t,e,r)=>{"use strict";var n=r(2361),o=r(2159),i=r(1505),u=n(n.bind);t.exports=function(t,e){return o(t),void 0===e?t:i?u(t,e):function(){return t.apply(e,arguments)}}},8661:(t,e,r)=>{"use strict";var n=r(9447),o=r(8828);t.exports=n&&o(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},8828:t=>{"use strict";t.exports=function(t){try{return!!t()}catch(t){return!0}}},9298:(t,e,r)=>{"use strict";var n=r(4239),o=Object;t.exports=function(t){return o(n(t))}},9367:(t,e,r)=>{"use strict";var n=r(2159),o=r(7136);t.exports=function(t,e){var r=t[e];return o(r)?void 0:n(r)}},9447:(t,e,r)=>{"use strict";var n=r(8828);t.exports=!n(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})},9552:(t,e,r)=>{"use strict";var n=r(5951),o=r(6285),i=n.document,u=o(i)&&o(i.createElement);t.exports=function(t){return u?i.createElement(t):{}}},9724:(t,e,r)=>{"use strict";var n=r(1907),o=r(9298),i=n({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},9846:(t,e,r)=>{"use strict";var n=r(798),o=r(8828),i=r(5951).String;t.exports=!!Object.getOwnPropertySymbols&&!o(function(){var t=Symbol("symbol detection");return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&n&&n<41})}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return t[n].call(i.exports,i,i.exports,r),i.exports}r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}();{const t=r(4444),e=r(6206);if(void 0!==t){var n="__reactRefreshInjected";"undefined"!=typeof __react_refresh_library__&&__react_refresh_library__&&(n+="_"+__react_refresh_library__),t[n]||(e.injectIntoGlobalHook(t),t[n]=!0)}}})();
(()=>{var t={5644(t,e){"use strict";!function(){function t(e){if(null!==e.fullKey)return e.fullKey;var r=e.ownKey;try{var n=e.getCustomHooks()}catch(t){return e.forceReset=!0,e.fullKey=r}for(var o=0;o<n.length;o++){var i=n[o];if("function"!=typeof i)return e.forceReset=!0,e.fullKey=r;if(void 0!==(i=l.get(i))){var s=t(i);i.forceReset&&(e.forceReset=!0),r+="\n---\n"+s}}return e.fullKey=r}function r(t){return v.get(t)}function n(t){var e=new Set;return t.forEach(function(t){e.add(t)}),e}function o(t,e){try{return t[e]}catch(t){}}function i(t,e){var r=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n=3<arguments.length?arguments[3]:void 0;if(l.has(t)||l.set(t,{forceReset:r,ownKey:e,fullKey:null,getCustomHooks:n||function(){return[]}}),"object"==typeof t&&null!==t)switch(o(t,"$$typeof")){case u:i(t.render,e,r,n);break;case c:i(t.type,e,r,n)}}function s(e){void 0!==(e=l.get(e))&&t(e)}var u=Symbol.for("react.forward_ref"),c=Symbol.for("react.memo"),a="function"==typeof WeakMap?WeakMap:Map,f=new Map,p=new a,l=new a,v=new a,y=[],b=new Map,h=new Map,d=new Set,m=new Set,w="function"==typeof WeakMap?new WeakMap:null,g=!1;e.injectIntoGlobalHook=function(t){var e=t.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(void 0===e){var r=0;t.__REACT_DEVTOOLS_GLOBAL_HOOK__=e={renderers:new Map,supportsFiber:!0,inject:function(){return r++},onScheduleFiberRoot:function(){},onCommitFiberRoot:function(){},onCommitFiberUnmount:function(){}}}if(e.isDisabled)console.warn("Something has shimmed the React DevTools global hook (__REACT_DEVTOOLS_GLOBAL_HOOK__). Fast Refresh is not compatible with this shim and will be disabled.");else{var n=e.inject;e.inject=function(t){var e=n.apply(this,arguments);return"function"==typeof t.scheduleRefresh&&"function"==typeof t.setRefreshHandler&&b.set(e,t),e},e.renderers.forEach(function(t,e){"function"==typeof t.scheduleRefresh&&"function"==typeof t.setRefreshHandler&&b.set(e,t)});var o=e.onCommitFiberRoot,i=e.onScheduleFiberRoot||function(){};e.onScheduleFiberRoot=function(t,e,r){return g||(m.delete(e),null!==w&&w.set(e,r)),i.apply(this,arguments)},e.onCommitFiberRoot=function(t,e,r,n){var i=b.get(t);if(void 0!==i){h.set(e,i);var s=(i=e.current).alternate;null!==s?(s=null!=s.memoizedState&&null!=s.memoizedState.element&&d.has(e),i=null!=i.memoizedState&&null!=i.memoizedState.element,!s&&i?(d.add(e),m.delete(e)):s&&i||(s&&!i?(d.delete(e),n?m.add(e):h.delete(e)):s||i||n&&m.add(e))):d.add(e)}return o.apply(this,arguments)}}}}()},6206(t,e,r){"use strict";t.exports=r(5644)},3565(t,e,r){"use strict";var n=r(1960);t.exports=n},2671(t,e,r){"use strict";r(2344),t.exports=r(5951)},4444(t,e,r){"use strict";t.exports=r(214)},214(t,e,r){"use strict";r(397);var n=r(3565);t.exports=n},2159(t,e,r){"use strict";var n=r(2250),o=r(4640),i=TypeError;t.exports=function(t){if(n(t))return t;throw new i(o(t)+" is not a function")}},6624(t,e,r){"use strict";var n=r(6285),o=String,i=TypeError;t.exports=function(t){if(n(t))return t;throw new i(o(t)+" is not an object")}},5807(t,e,r){"use strict";var n=r(1907),o=n({}.toString),i=n("".slice);t.exports=function(t){return i(o(t),8,-1)}},1626(t,e,r){"use strict";var n=r(9447),o=r(4284),i=r(5817);t.exports=n?function(t,e,r){return o.f(t,e,i(1,r))}:function(t,e,r){return t[e]=r,t}},5817(t){"use strict";t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},2532(t,e,r){"use strict";var n=r(5951),o=Object.defineProperty;t.exports=function(t,e){try{o(n,t,{value:e,configurable:!0,writable:!0})}catch(r){n[t]=e}return e}},9447(t,e,r){"use strict";var n=r(8828);t.exports=!n(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})},9552(t,e,r){"use strict";var n=r(5951),o=r(6285),i=n.document,s=o(i)&&o(i.createElement);t.exports=function(t){return s?i.createElement(t):{}}},6794(t,e,r){"use strict";var n=r(5951).navigator,o=n&&n.userAgent;t.exports=o?String(o):""},798(t,e,r){"use strict";var n,o,i=r(5951),s=r(6794),u=i.process,c=i.Deno,a=u&&u.versions||c&&c.version,f=a&&a.v8;f&&(o=(n=f.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!o&&s&&(!(n=s.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=s.match(/Chrome\/(\d+)/))&&(o=+n[1]),t.exports=o},1091(t,e,r){"use strict";var n=r(5951),o=r(6024),i=r(2361),s=r(2250),u=r(3846).f,c=r(7463),a=r(2046),f=r(8311),p=r(1626),l=r(9724);r(6128);var v=function(t){var e=function(r,n,i){if(this instanceof e){switch(arguments.length){case 0:return new t;case 1:return new t(r);case 2:return new t(r,n)}return new t(r,n,i)}return o(t,this,arguments)};return e.prototype=t.prototype,e};t.exports=function(t,e){var r,o,y,b,h,d,m,w,g,x=t.target,_=t.global,O=t.stat,S=t.proto,j=_?n:O?n[x]:n[x]&&n[x].prototype,R=_?a:a[x]||p(a,x,{})[x],E=R.prototype;for(b in e)o=!(r=c(_?b:x+(O?".":"#")+b,t.forced))&&j&&l(j,b),d=R[b],o&&(m=t.dontCallGetSet?(g=u(j,b))&&g.value:j[b]),h=o&&m?m:e[b],(r||S||typeof d!=typeof h)&&(w=t.bind&&o?f(h,n):t.wrap&&o?v(h):S&&s(h)?i(h):h,(t.sham||h&&h.sham||d&&d.sham)&&p(w,"sham",!0),p(R,b,w),S&&(l(a,y=x+"Prototype")||p(a,y,{}),p(a[y],b,h),t.real&&E&&(r||!E[b])&&p(E,b,h)))}},8828(t){"use strict";t.exports=function(t){try{return!!t()}catch(t){return!0}}},6024(t,e,r){"use strict";var n=r(1505),o=Function.prototype,i=o.apply,s=o.call;t.exports="object"==typeof Reflect&&Reflect.apply||(n?s.bind(i):function(){return s.apply(i,arguments)})},8311(t,e,r){"use strict";var n=r(2361),o=r(2159),i=r(1505),s=n(n.bind);t.exports=function(t,e){return o(t),void 0===e?t:i?s(t,e):function(){return t.apply(e,arguments)}}},1505(t,e,r){"use strict";var n=r(8828);t.exports=!n(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})},3930(t,e,r){"use strict";var n=r(1505),o=Function.prototype.call;t.exports=n?o.bind(o):function(){return o.apply(o,arguments)}},2361(t,e,r){"use strict";var n=r(5807),o=r(1907);t.exports=function(t){if("Function"===n(t))return o(t)}},1907(t,e,r){"use strict";var n=r(1505),o=Function.prototype,i=o.call,s=n&&o.bind.bind(i,i);t.exports=n?s:function(t){return function(){return i.apply(t,arguments)}}},5582(t,e,r){"use strict";var n=r(2046),o=r(5951),i=r(2250),s=function(t){return i(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?s(n[t])||s(o[t]):n[t]&&n[t][e]||o[t]&&o[t][e]}},9367(t,e,r){"use strict";var n=r(2159),o=r(7136);t.exports=function(t,e){var r=t[e];return o(r)?void 0:n(r)}},5951(t,e,r){"use strict";var n=function(t){return t&&t.Math===Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof r.g&&r.g)||n("object"==typeof this&&this)||function(){return this}()||Function("return this")()},9724(t,e,r){"use strict";var n=r(1907),o=r(9298),i=n({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},3648(t,e,r){"use strict";var n=r(9447),o=r(8828),i=r(9552);t.exports=!n&&!o(function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a})},6946(t,e,r){"use strict";var n=r(1907),o=r(8828),i=r(5807),s=Object,u=n("".split);t.exports=o(function(){return!s("z").propertyIsEnumerable(0)})?function(t){return"String"===i(t)?u(t,""):s(t)}:s},2250(t){"use strict";var e="object"==typeof document&&document.all;t.exports=void 0===e&&void 0!==e?function(t){return"function"==typeof t||t===e}:function(t){return"function"==typeof t}},7463(t,e,r){"use strict";var n=r(8828),o=r(2250),i=/#|\.prototype\./,s=function(t,e){var r=c[u(t)];return r===f||r!==a&&(o(e)?n(e):!!e)},u=s.normalize=function(t){return String(t).replace(i,".").toLowerCase()},c=s.data={},a=s.NATIVE="N",f=s.POLYFILL="P";t.exports=s},7136(t){"use strict";t.exports=function(t){return null==t}},6285(t,e,r){"use strict";var n=r(2250);t.exports=function(t){return"object"==typeof t?null!==t:n(t)}},7376(t){"use strict";t.exports=!0},5594(t,e,r){"use strict";var n=r(5582),o=r(2250),i=r(8280),s=r(1175),u=Object;t.exports=s?function(t){return"symbol"==typeof t}:function(t){var e=n("Symbol");return o(e)&&i(e.prototype,u(t))}},4284(t,e,r){"use strict";var n=r(9447),o=r(3648),i=r(8661),s=r(6624),u=r(470),c=TypeError,a=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p="enumerable",l="configurable",v="writable";e.f=n?i?function(t,e,r){if(s(t),e=u(e),s(r),"function"==typeof t&&"prototype"===e&&"value"in r&&v in r&&!r[v]){var n=f(t,e);n&&n[v]&&(t[e]=r.value,r={configurable:l in r?r[l]:n[l],enumerable:p in r?r[p]:n[p],writable:!1})}return a(t,e,r)}:a:function(t,e,r){if(s(t),e=u(e),s(r),o)try{return a(t,e,r)}catch(t){}if("get"in r||"set"in r)throw new c("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},3846(t,e,r){"use strict";var n=r(9447),o=r(3930),i=r(2574),s=r(5817),u=r(7374),c=r(470),a=r(9724),f=r(3648),p=Object.getOwnPropertyDescriptor;e.f=n?p:function(t,e){if(t=u(t),e=c(e),f)try{return p(t,e)}catch(t){}if(a(t,e))return s(!o(i.f,t,e),t[e])}},8280(t,e,r){"use strict";var n=r(1907);t.exports=n({}.isPrototypeOf)},2574(t,e){"use strict";var r={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,o=n&&!r.call({1:2},1);e.f=o?function(t){var e=n(this,t);return!!e&&e.enumerable}:r},581(t,e,r){"use strict";var n=r(3930),o=r(2250),i=r(6285),s=TypeError;t.exports=function(t,e){var r,u;if("string"===e&&o(r=t.toString)&&!i(u=n(r,t)))return u;if(o(r=t.valueOf)&&!i(u=n(r,t)))return u;if("string"!==e&&o(r=t.toString)&&!i(u=n(r,t)))return u;throw new s("Can't convert object to primitive value")}},2046(t){"use strict";t.exports={}},4239(t,e,r){"use strict";var n=r(7136),o=TypeError;t.exports=function(t){if(n(t))throw new o("Can't call method on "+t);return t}},6128(t,e,r){"use strict";var n=r(7376),o=r(5951),i=r(2532),s="__core-js_shared__",u=t.exports=o[s]||i(s,{});(u.versions||(u.versions=[])).push({version:"3.49.0",mode:n?"pure":"global",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE",source:"https://github.com/zloirock/core-js"})},5816(t,e,r){"use strict";var n=r(6128);t.exports=function(t,e){return n[t]||(n[t]=e||{})}},9846(t,e,r){"use strict";var n=r(798),o=r(8828),i=r(5951).String;t.exports=!!Object.getOwnPropertySymbols&&!o(function(){var t=Symbol("symbol detection");return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&n&&n<41})},7374(t,e,r){"use strict";var n=r(6946),o=r(4239);t.exports=function(t){return n(o(t))}},9298(t,e,r){"use strict";var n=r(4239),o=Object;t.exports=function(t){return o(n(t))}},6028(t,e,r){"use strict";var n=r(3930),o=r(6285),i=r(5594),s=r(9367),u=r(581),c=r(6264),a=TypeError,f=c("toPrimitive");t.exports=function(t,e){if(!o(t)||i(t))return t;var r,c=s(t,f);if(c){if(void 0===e&&(e="default"),r=n(c,t,e),!o(r)||i(r))return r;throw new a("Can't convert object to primitive value")}return void 0===e&&(e="number"),u(t,e)}},470(t,e,r){"use strict";var n=r(6028),o=r(5594);t.exports=function(t){var e=n(t,"string");return o(e)?e:e+""}},4640(t){"use strict";var e=String;t.exports=function(t){try{return e(t)}catch(t){return"Object"}}},6499(t,e,r){"use strict";var n=r(1907),o=0,i=Math.random(),s=n(1.1.toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+s(++o+i,36)}},1175(t,e,r){"use strict";var n=r(9846);t.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},8661(t,e,r){"use strict";var n=r(9447),o=r(8828);t.exports=n&&o(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},6264(t,e,r){"use strict";var n=r(5951),o=r(5816),i=r(9724),s=r(6499),u=r(9846),c=r(1175),a=n.Symbol,f=o("wks"),p=c?a.for||a:a&&a.withoutSetter||s;t.exports=function(t){return i(f,t)||(f[t]=u&&i(a,t)?a[t]:p("Symbol."+t)),f[t]}},2344(t,e,r){"use strict";var n=r(1091),o=r(5951);n({global:!0,forced:o.globalThis!==o},{globalThis:o})},397(t,e,r){"use strict";r(2344)},1960(t,e,r){"use strict";var n=r(2671);t.exports=n}};const e={};function r(n){const o=e[n];if(void 0!==o)return o.exports;const i=e[n]={exports:{}};return t[n].call(i.exports,i,i.exports,r),i.exports}r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}();{const t=r(4444),e=r(6206);if(void 0!==t){var n="__reactRefreshInjected";"undefined"!=typeof __react_refresh_library__&&__react_refresh_library__&&(n+="_"+__react_refresh_library__),t[n]||(e.injectIntoGlobalHook(t),t[n]=!0)}}})();
## 0.6.2 (26 Nov 2025)
### Fixes
- Relaxed peer dependency requirement on `type-fest` to allow v5.x
([#934](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/934))
## 0.6.1 (26 Jun 2025)
### Fixes
- Ensure `this` propagates into module factory properly
([#921](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/921))
## 0.6.0 (28 Apr 2025)
### BREAKING
- Minimum required Node.js version has been bumped to `18.12.0`.
- Minimum required `webpack` version has been bumped to `5.2.0`.
- Minimum supported `webpack-dev-server` version has been bumped to `4.8.0`.
- Minimum supported `webpack-plugin-serve` version has been bumped to `1.0.0`.
- `overlay.sockHost`, `overlay.sockPath`, `overlay.sockPort`, `overlay.sockProtocol` and `overlay.useURLPolyfill` have all been removed.
([#850](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/850))
It was necessary to support WDS below `4.8.0` (published in April 2022).
It is no-longer necessary as a direct integration with WDS is now possible.
### Features
- Added helper script to better support use cases where React and/or React-DOM are externalized
([#852](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/852))
### Fixes
- Ensure plugin injected entries are no-op in production
([#900](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/900))
### Internal
- Dropped support for Webpack 4 / WDS 3
([#850](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/850),
[#904](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/904))
- Migrated from `ansi-html` to `anser` in error overlay
([#854](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/854))
- Bumped all development dependencies
([#905](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/905))
## 0.5.17 (26 Jun 2025)
### Fixes
- Ensure `this` propagates into module factory properly
([#922](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/922))
## 0.5.16 (31 Mar 2025)
### Fixes
- Fixed out of order cleanup when using top-level await
([#898](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/898))
## 0.5.15 (3 Jun 2024)
### Fixes
- Fixed wrong import in error overlay for `ansi-html`
([#853](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/853))
## 0.5.14 (1 Jun 2024)
### Fixes
- Moved to `ansi-html` `v0.0.9` and `schema-utils` `v4.x`
([#848](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/848))
### Internal
- Run tests on latest versions of Node.js 18, 20 and 22
([#848](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/848))
- Bumped `jest` to v29 and some other development dependencies
([#848](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/848))
- Removed `yalc`
([#849](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/849))
## 0.5.13 (28 Apr 2024)
### Fixes
- Fixed module system inferring (ESM vs CJS) to start from the point of each file
([#771](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/771))
## 0.5.12 (27 Apr 2024)
### Fixes
- Fixed incorrect `sockProtocol` override
([#835](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/835))
- Relaxed peer dependency requirement on `webpack-dev-server` to allow v5.x
([#837](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/837))
## 0.5.11 (15 Aug 2023)
### Features
- Added support to exclude dynamically generated modules from other loaders
([#769](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/769))
### Fixes
- Fixed unnecessary memory leaks due to `prevExports`
([#766](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/766))
- Relaxed peer dependency requirement on `type-fest` to allow v4.x
([#767](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/767))
- Fixed module type resolution when there is difference across contexts
([#768](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/768))
## 0.5.10 (24 Nov 2022)
### Fixes
- Bumped `loader-utils` to fix security vulnerability
([#700](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/700))
## 0.5.9 (10 Nov 2022)
### Fixes
- Bumped `loader-utils` to fix security vulnerability
([#685](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/685))
## 0.5.8 (9 Oct 2022)
### Fixes
- Fixed performance issue regarding `require.resolve` in loader injection
([#669](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/669))
- Bumped `core-js-pure` to not depend on deprecated versions
([#674](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/674))
## 0.5.7 (23 May 2022)
### Fixes
- Removed debug `console.log` statement
([#631](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/631))
### Internal
- Run tests on Node.js 18
([#631](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/631))
## 0.5.6 (10 May 2022)
### Fixes
- Fixed faulty `this` type import in loader
([#624](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/624))
- Made current script detection more robust for edge cases
([#630](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/630))
### Internal
- Swapped to new `ReactDOM.createRoot` API in examples
([#626](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/626))
## 0.5.5 (4 April 2022)
### Fixes
- Handle unknown `moduleId` for dynamically generated modules
([#547](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/547))
- Handle WDS `auto` value on `port`
([#574](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/574))
- Fixed `react-refresh@0.12.0` compatibility
([#576](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/576))
- Fixed crash when parsing compile errors in overlay
([#577](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/577))
- Respect virtual modules when injecting loader
([#593](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/593))
- Allow `port` to be missing for WDS, also some general refactoring
([#623](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/623))
### Internal
- A couple documentation changes in README
([#575](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/575),
[8c39623](https://github.com/pmmmwh/react-refresh-webpack-plugin/commit/8c39623dac237aa15795b60820babcffebb28c64),
[#597](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/597))
- Bumped dependencies for testing infrastructure
([#526](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/526),
[#564](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/564),
[#567](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/567),
[#581](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/581),
[#588](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/588),
[#591](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/591),
[#594](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/594),
[#616](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/616))
## 0.5.4 (22 December 2021)
### Fixes
- Skip loader injection for files referenced as assets
([#545](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/545))
- Changed failures of `exports` capturing to warn instead of throw
([#546](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/546))
## 0.5.3 (28 November 2021)
### Fixes
- Updated overlay for unsafe area in Safari
([#528](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/528))
- Fixed performance in large projects due to memory leak in loader
([#537](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/537))
## 0.5.2 (19 November 2021)
### Features
- Added support for WDS v4 `client.webSocketURL`
([#529](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/529))
### Fixes
- Fixed lost module context due to interceptor by always using regular functions
([#531](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/531))
- Relaxed peer dependency requirement on `react-refresh`
([#534](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/534))
## 0.5.1 (15 September 2021)
### Fixes
- Relaxed peer dependency requirement on `type-fest` to allow v2.x
([#507](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/507),
[#508](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/508))
### Internal
- Fixed typos in README
([#509](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/509))
## 0.5.0 (14 September 2021)
### BREAKING
- While most of the public API did not change,
we've re-written a large chunk of the runtime code to support a wider range of use cases.
This is likely to provide more stability, but if `0.4.x` works in your setup but `0.5.x` doesn't,
please file us an issue - we would love to address it!
- The `disableRefreshCheck` option have been removed.
([#285](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/285))
It has long been effect-less and deprecated since `0.3.x`.
- The `overlay.useLegacyWDSSockets` have been removed.
([#498](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/498))
It is aimed to support WDS below `3.6.0` (published in June 2019),
but looking at current usage and download stats,
we've decided it is best to drop support for the old socket format moving forward.
- Handling of port `0` have been removed.
([#337](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/337))
- `html-entities` have been bumped to `2.x`.
([#321](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/321))
- `react-refresh` have been bumped to `0.10.0`.
([#353](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/353))
### Features
- Added WDS v4 support with new socket defaults through Webpack config
([#241](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/241),
[#286](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/286),
[#392](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/392),
[#413](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/413),
[#479](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/479))
- Added the `overlay.sockProtocol` option
([#242](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/242))
- Added monorepo compatibility via the the `library` option
([#273](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/273))
- Rewritten URL handling using WHATWG `URL` APIs with automatic pony-filling
([#278](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/278),
[#332](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/332),
[#378](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/378))
- Rewritten Webpack 5 compatibility using new APIs and hooks
([#319](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/319),
[#372](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/372),
[#434](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/434),
[#483](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/483))
- Rewritten refresh runtime to be fully module system aware
([#337](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/337),
[#461](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/461),
[#482](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/482),
[#492](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/492))
- Rewritten Webpack 4 and 5 checks using feature detection on compiler
([#415](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/415))
- Added support for `experiments.topLevelAwait`
([#435](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/435),
[#447](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/447),
[#493](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/493))
- Added retry logic when socket initialisation fails
([#446](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/446))
### Fixes
- Relaxed peer dependency requirement on `type-fest`
([#257](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/257),
[c02018a](https://github.com/pmmmwh/react-refresh-webpack-plugin/commit/c02018a853f58341d44ea9f1b56a9568ffe7b657),
[#484](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/484))
- Relaxed requirement on the `overlay` option to accept relative paths
([#284](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/284))
- Patched unstable initialisation of global scope across module boundaries
([#290](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/290),
[#369](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/369),
[#464](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/464),
[#505](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/505))
- Patched quote escaping in injected runtime code
([#306](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/306))
- Invalidate updates outside of Refresh boundary for consistency
([#307](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/307))
- Properly throw when an ambiguous entrypoint is received while using Webpack 4
([#320](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/320))
- Fixed overlay script source detection for WDS when no `src` is found
([#331](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/331))
- Fixed possible Stack Overflow through self-referencing
([#370](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/370),
[#380](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/380))
- Relaxed errors on HMR not found to not crash JS parsing
([#371](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/371))
- Ensure overlay code won't run if disabled
([#374](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/374))
- Relaxed peer dependency requirement on `@types/webpack`
([#414](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/414))
- Fixed compiler error overlay crashes when messages are empty
([#462](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/462))
- Swapped `ansi-html` to `ansi-html-community` to fix ReDoS vulnerability
([#501](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/501))
### Internal
- More stable testing infrastructure
([#234](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/234))
- Run tests by default on Webpack 5
([#440](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/440))
- Rewrite documentation and fix outstanding issues
([#283](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/283),
[#291](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/291),
[#311](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/311),
[#376](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/376),
[#480](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/480),
[#497](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/497),
[#499](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/499))
- Added documentation on community plugins: `react-refresh-typescript` and `swc`
([#248](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/248),
[fbe1f27](https://github.com/pmmmwh/react-refresh-webpack-plugin/commit/fbe1f270de46c4a308d996a4487653a95aebfc25),
[#450](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/450))
## 0.4.3 (2 November 2020)
### Fixes
- Fixed Yarn 2 PnP compatibility with absolute `react-refresh/runtime` imports
([#230](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/230))
- Fixed Webpack 5 compatibility by requiring `__webpack_require__`
([#233](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/233))
- Fixed IE 11 compatibility in socket code
([4033e6af](https://github.com/pmmmwh/react-refresh-webpack-plugin/commit/4033e6af279f5f50396ff24fb1ec89c41fc2df32))
- Relaxed peer dependency requirement for `react-refresh` to allow `0.9.x`
([747c19ba](https://github.com/pmmmwh/react-refresh-webpack-plugin/commit/747c19ba43d81f19a042d44922d0518c6403528c))
## 0.4.2 (3 September 2020)
### Fixes
- Patched loader to use with Node.js global `fetch` polyfills
([#193](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/193))
- Patched default `include` and `exclude` options to be case-insensitive
([#194](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/194))
## 0.4.1 (28 July 2020)
### Fixes
- Fixed accidental use of testing alias `webpack.next` in published plugin code
([#167](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/167))
## 0.4.0 (28 July 2020)
### BREAKING
- Minimum required Node.js version have been bumped to 10 as Node.js 8 is EOL now.
- Minimum required Webpack version is now `v4.43.0` or later as we adopted the new `module.hot.invalidate` API.
([#89](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/89))
The new API enabled us to bail out of the HMR loop less frequently and provide a better experience.
If you really cannot upgrade, you can stay on `0.3.3` for the time being.
- While most of our public API did not change, this release is closer to a rewrite than a refactor.
A lot of files have moved to provide easier access for advanced users and frameworks.
([#122](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/122))
You can check the difference in the PR to see what have moved and where they are now.
- The `useLegacyWDSSockets` option is now scoped under the `overlay` option.
([#153](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/153))
### Features
- Adopted the `module.hot.invalidate()` API, which means we will now bail out less often
([#89](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/89))
- Attach runtime on Webpack's global scope instead of `window`, making the plugin platform-agnostic
([#102](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/102))
- Added stable support for **Webpack 5** and beta support for **Module Federation**
([#123](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/123),
[#132](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/132),
[#164](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/164))
- Socket integration URL detection via `document.currentScript`
([#133](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/133))
- Relaxed requirements for "required" `overlay` options to receive `false` as value
([#154](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/154))
- Prefixed all errors thrown by the plugin
([#161](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/161))
- Eliminated use of soon-to-be-deprecated `lodash.debounce` package
([#163](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/163))
### Fixes
- Fixed circular references for `__react_refresh_error_overlay__` and `__react_refresh_utils`
([#116](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/116))
- Fixed IE11 compatibility
([#106](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/106),
[#121](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/121))
- Rearranged directories to provide more ergonomic imports
([#122](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/122))
- Fixed issues with Babel/ESLint/Flow regarding loader ordering and runtime cleanup
([#129](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/129),
[#140](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/140))
- Correctly detecting the HMR plugin
([#130](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/130),
[#160](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/160))
- Fixed unwanted injection of error overlay in non-browser environment
([#146](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/146))
- Scoped the `useLegacyWDSSockets` options under `overlay` to reflect its true use
([#153](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/153))
- Fixed non-preserved relative ordering of Webpack entries
([#165](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/165))
### Internal
- Full HMR test suite - we are confident the plugin works!
([#93](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/93),
[#96](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/96))
- Unit tests for all plugin-related Node.js code
([#127](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/127))
## 0.3.3 (29 May 2020)
### Fixes
- Removed unrecoverable React errors check and its corresponding bail out logic on hot dispose
([#104](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/104))
## 0.3.2 (22 May 2020)
### Fixes
- Fixed error in overlay when stack trace is unavailable
([#91](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/91))
- Fixed IE11 compatibility
([#98](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/98))
## 0.3.1 (11 May 2020)
### Fixes
- Relaxed peer dependency requirements for `webpack-plugin-serve`
([64bb6b8](https://github.com/pmmmwh/react-refresh-webpack-plugin/commit/64bb6b8c26bbf9e51484ef7a109c0921be7889ff))
## 0.3.0 (10 May 2020)
### BREAKING
- Deprecated the `disableRefreshCheck` flag
([#60](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/60))
### Features
- Added custom error overlay support
([#44](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/44))
- Added example project to use TypeScript without usual Babel settings
([#46](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/46))
- Added custom socket parameters for WDS
([#52](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/52))
- Added TypeScript definition files
([#65](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/65))
- Added stricter options validation rules
([#62](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/62))
- Added option to configure socket runtime to support more hot integrations
([#64](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/64))
- Added support for `webpack-plugin-serve`
([#74](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/74))
### Fixes
- Fixed non-dismissible overlay for build warnings
([#57](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/57))
- Fixed electron compatibility
([#58](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/58))
- Fixed optional peer dependencies to be truly optional
([#59](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/59))
- Fixed compatibility issues caused by `node-url`
([#61](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/61))
- Removed check for `react` import for compatibility
([#69](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/69))
## 0.2.0 (2 March 2020)
### Features
- Added `webpack-hot-middleware` support
([#23](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/23))
### Fixes
- Fixed dependency on a global `this` variable to better support web workers
([#29](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/29))
## 0.1.3 (19 December 2019)
### Fixes
- Fixed runtime template injection when the `runtimeChunks` optimization is used in Webpack
([#26](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/26))
## 0.1.2 (18 December 2019)
### Fixes
- Fixed caching of Webpack loader to significantly improve performance
([#22](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/22))
## 0.1.1 (13 December 2019)
### Fixes
- Fixed usage of WDS SockJS fallback
([#17](https://github.com/pmmmwh/react-refresh-webpack-plugin/pull/17))
## 0.1.0 (7 December 2019)
- Initial public release