mobx-react 10.0.0 → 10.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # mobx-react
2
2
 
3
+ ## 10.0.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [`6f002b8e543ca39d3ee23681e28848d7f1724fae`](https://github.com/mobxjs/mobx/commit/6f002b8e543ca39d3ee23681e28848d7f1724fae) [#4696](https://github.com/mobxjs/mobx/pull/4696) Thanks [@gesposito](https://github.com/gesposito)! - perf: add a `node` export condition that routes Node and Bun to the existing `dist/index.js` entry, which picks the prebaked development or production CJS build once at require time. `import`ing mobx in Node no longer executes the env-agnostic `dist/mobx.mjs` with per-call `NODE_ENV` checks, and mixing `import` and `require` in one Node app now yields a single mobx instance.
8
+
9
+ - Updated dependencies [[`6f002b8e543ca39d3ee23681e28848d7f1724fae`](https://github.com/mobxjs/mobx/commit/6f002b8e543ca39d3ee23681e28848d7f1724fae)]:
10
+ - mobx-react-lite@5.0.3
11
+
12
+ ## 10.0.1
13
+
14
+ ### Patch Changes
15
+
16
+ - [`ec1b708026c1578e1c1f6c7bd90be18b26f7ce85`](https://github.com/mobxjs/mobx/commit/ec1b708026c1578e1c1f6c7bd90be18b26f7ce85) [#4695](https://github.com/mobxjs/mobx/pull/4695) Thanks [@gesposito](https://github.com/gesposito)! - perf: evaluate `NODE_ENV` once at module scope in the env-agnostic esm bundles (`dist/<pkg>.esm.js` and `dist/<pkg>.mjs`) instead of at every `__DEV__` call site. `process.env` is an exotic object in Node, so each check performed a real environment lookup on hot paths; consumers that execute these files as-is (Node ESM, vitest, SSR) see roughly 10x faster observable writes in dev mode. All env-set artifacts and bundler output are unchanged.
17
+
18
+ - Updated dependencies [[`ec1b708026c1578e1c1f6c7bd90be18b26f7ce85`](https://github.com/mobxjs/mobx/commit/ec1b708026c1578e1c1f6c7bd90be18b26f7ce85)]:
19
+ - mobx-react-lite@5.0.2
20
+
3
21
  ## 10.0.0
4
22
 
5
23
  ### Major Changes
@@ -1,3 +1,5 @@
1
+ const __MOBX_DEV__ = process.env.NODE_ENV !== "production";
2
+
1
3
  import { _allowStateChanges, Reaction, _getGlobalState, observable } from 'mobx';
2
4
  import * as React from 'react';
3
5
  import { PureComponent, Component } from 'react';
@@ -111,7 +113,7 @@ function createDefinition(target, methodName, enumerable, mixins, originalMethod
111
113
  const administrationSymbol = /*#__PURE__*/Symbol("ObserverAdministration");
112
114
  const isMobXReactObserverSymbol = /*#__PURE__*/Symbol("isMobXReactObserver");
113
115
  let observablePropDescriptors;
114
- if (process.env.NODE_ENV !== "production") {
116
+ if (__MOBX_DEV__) {
115
117
  observablePropDescriptors = {
116
118
  props: /*#__PURE__*/createObservablePropDescriptor("props"),
117
119
  state: /*#__PURE__*/createObservablePropDescriptor("state"),
@@ -155,7 +157,7 @@ function makeClassComponentObserver(componentClass) {
155
157
  throw new Error("It is not allowed to use shouldComponentUpdate in observer based components.");
156
158
  }
157
159
  }
158
- if (process.env.NODE_ENV !== "production") {
160
+ if (__MOBX_DEV__) {
159
161
  Object.defineProperties(prototype, observablePropDescriptors);
160
162
  }
161
163
  const originalRender = prototype.render;
@@ -174,7 +176,7 @@ function makeClassComponentObserver(componentClass) {
174
176
  };
175
177
  const originalComponentDidMount = prototype.componentDidMount;
176
178
  prototype.componentDidMount = function () {
177
- if (process.env.NODE_ENV !== "production" && this.componentDidMount !== Object.getPrototypeOf(this).componentDidMount) {
179
+ if (__MOBX_DEV__ && this.componentDidMount !== Object.getPrototypeOf(this).componentDidMount) {
178
180
  const displayName = getDisplayName(componentClass);
179
181
  throw new Error(`[mobx-react] \`observer(${displayName}).componentDidMount\` must be defined on prototype.` + `\n\`componentDidMount = () => {}\` or \`componentDidMount = function() {}\` is not supported.`);
180
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mobxreact.esm.js","sources":["../src/utils/utils.ts","../src/observerClass.ts","../src/observer.tsx","../src/index.ts"],"sourcesContent":["export function shallowEqual(objA: any, objB: any): boolean {\n //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (is(objA, objB)) {\n return true\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false\n }\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n if (keysA.length !== keysB.length) {\n return false\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false\n }\n }\n return true\n}\n\nfunction is(x: any, y: any): boolean {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y\n } else {\n return x !== x && y !== y\n }\n}\n\n/**\n * Utilities for patching componentWillUnmount, to make sure @disposeOnUnmount works correctly icm with user defined hooks\n * and the handler provided by mobx-react\n */\nconst mobxMixins = Symbol(\"patchMixins\")\nconst mobxPatchedDefinition = Symbol(\"patchedDefinition\")\n\nexport interface Mixins extends Record<string, any> {\n locks: number\n methods: Array<Function>\n}\n\nfunction getMixins(target: object, methodName: string): Mixins {\n const mixins = (target[mobxMixins] = target[mobxMixins] || {})\n const methodMixins = (mixins[methodName] = mixins[methodName] || {})\n methodMixins.locks = methodMixins.locks || 0\n methodMixins.methods = methodMixins.methods || []\n return methodMixins\n}\n\nfunction wrapper(realMethod: Function, mixins: Mixins, ...args: Array<any>) {\n // locks are used to ensure that mixins are invoked only once per invocation, even on recursive calls\n mixins.locks++\n\n try {\n let retVal\n if (realMethod !== undefined && realMethod !== null) {\n retVal = realMethod.apply(this, args)\n }\n\n return retVal\n } finally {\n mixins.locks--\n if (mixins.locks === 0) {\n mixins.methods.forEach(mx => {\n mx.apply(this, args)\n })\n }\n }\n}\n\nfunction wrapFunction(realMethod: Function, mixins: Mixins): (...args: Array<any>) => any {\n const fn = function (...args: Array<any>) {\n wrapper.call(this, realMethod, mixins, ...args)\n }\n return fn\n}\n\nexport function patch(target: object, methodName: string, mixinMethod: Function): void {\n const mixins = getMixins(target, methodName)\n\n if (mixins.methods.indexOf(mixinMethod) < 0) {\n mixins.methods.push(mixinMethod)\n }\n\n const oldDefinition = Object.getOwnPropertyDescriptor(target, methodName)\n if (oldDefinition && oldDefinition[mobxPatchedDefinition]) {\n // already patched definition, do not repatch\n return\n }\n\n const originalMethod = target[methodName]\n const newDefinition = createDefinition(\n target,\n methodName,\n oldDefinition ? oldDefinition.enumerable : undefined,\n mixins,\n originalMethod\n )\n\n Object.defineProperty(target, methodName, newDefinition)\n}\n\nfunction createDefinition(\n target: object,\n methodName: string,\n enumerable: any,\n mixins: Mixins,\n originalMethod: Function\n): PropertyDescriptor {\n let wrappedFunc = wrapFunction(originalMethod, mixins)\n\n return {\n // @ts-ignore\n [mobxPatchedDefinition]: true,\n get: function () {\n return wrappedFunc\n },\n set: function (value) {\n if (this === target) {\n wrappedFunc = wrapFunction(value, mixins)\n } else {\n // when it is an instance of the prototype/a child prototype patch that particular case again separately\n // since we need to store separate values depending on wether it is the actual instance, the prototype, etc\n // e.g. the method for super might not be the same as the method for the prototype which might be not the same\n // as the method for the instance\n const newDefinition = createDefinition(this, methodName, enumerable, mixins, value)\n Object.defineProperty(this, methodName, newDefinition)\n }\n },\n configurable: true,\n enumerable: enumerable\n }\n}\n","import { PureComponent, Component, ComponentClass, ClassAttributes } from \"react\"\nimport {\n _allowStateChanges,\n Reaction,\n _allowStateReadsStart,\n _allowStateReadsEnd,\n _getGlobalState\n} from \"mobx\"\nimport {\n isUsingStaticRendering,\n _observerFinalizationRegistry as observerFinalizationRegistry\n} from \"mobx-react-lite\"\nimport { shallowEqual, patch } from \"./utils/utils\"\n\nconst administrationSymbol = Symbol(\"ObserverAdministration\")\nconst isMobXReactObserverSymbol = Symbol(\"isMobXReactObserver\")\n\nlet observablePropDescriptors: PropertyDescriptorMap\nif (__DEV__) {\n observablePropDescriptors = {\n props: createObservablePropDescriptor(\"props\"),\n state: createObservablePropDescriptor(\"state\"),\n context: createObservablePropDescriptor(\"context\")\n }\n}\n\ntype ObserverAdministration = {\n reaction: Reaction | null // also serves as disposed flag\n forceUpdate: Function | null\n mounted: boolean // we could use forceUpdate as mounted flag\n reactionInvalidatedBeforeMount: boolean\n name: string\n // Used only on __DEV__\n props: any\n state: any\n context: any\n}\n\nfunction getAdministration(component: Component): ObserverAdministration {\n // We create administration lazily, because we can't patch constructor\n // and the exact moment of initialization partially depends on React internals.\n // At the time of writing this, the first thing invoked is one of the observable getter/setter (state/props/context).\n return (component[administrationSymbol] ??= {\n reaction: null,\n mounted: false,\n reactionInvalidatedBeforeMount: false,\n forceUpdate: null,\n name: getDisplayName(component.constructor as ComponentClass),\n state: undefined,\n props: undefined,\n context: undefined\n })\n}\n\nexport function makeClassComponentObserver(\n componentClass: ComponentClass<any, any>\n): ComponentClass<any, any> {\n const { prototype } = componentClass\n\n if (componentClass[isMobXReactObserverSymbol]) {\n const displayName = getDisplayName(componentClass)\n throw new Error(\n `The provided component class (${displayName}) has already been declared as an observer component.`\n )\n } else {\n componentClass[isMobXReactObserverSymbol] = true\n }\n\n if (prototype.componentWillReact) {\n throw new Error(\"The componentWillReact life-cycle event is no longer supported\")\n }\n if (componentClass[\"__proto__\"] !== PureComponent) {\n if (!prototype.shouldComponentUpdate) {\n prototype.shouldComponentUpdate = observerSCU\n } else if (prototype.shouldComponentUpdate !== observerSCU) {\n // n.b. unequal check, instead of existence check, as @observer might be on superclass as well\n throw new Error(\n \"It is not allowed to use shouldComponentUpdate in observer based components.\"\n )\n }\n }\n\n if (__DEV__) {\n Object.defineProperties(prototype, observablePropDescriptors)\n }\n\n const originalRender = prototype.render\n if (typeof originalRender !== \"function\") {\n const displayName = getDisplayName(componentClass)\n throw new Error(\n `[mobx-react] class component (${displayName}) is missing \\`render\\` method.` +\n `\\n\\`observer\\` requires \\`render\\` being a function defined on prototype.` +\n `\\n\\`render = () => {}\\` or \\`render = function() {}\\` is not supported.`\n )\n }\n\n prototype.render = function () {\n Object.defineProperty(this, \"render\", {\n // There is no safe way to replace render, therefore it's forbidden.\n configurable: false,\n writable: false,\n value: isUsingStaticRendering()\n ? originalRender\n : createReactiveRender.call(this, originalRender)\n })\n return this.render()\n }\n\n const originalComponentDidMount = prototype.componentDidMount\n prototype.componentDidMount = function () {\n if (__DEV__ && this.componentDidMount !== Object.getPrototypeOf(this).componentDidMount) {\n const displayName = getDisplayName(componentClass)\n throw new Error(\n `[mobx-react] \\`observer(${displayName}).componentDidMount\\` must be defined on prototype.` +\n `\\n\\`componentDidMount = () => {}\\` or \\`componentDidMount = function() {}\\` is not supported.`\n )\n }\n\n // `componentDidMount` may not be called at all. React can abandon the instance after `render`.\n // That's why we use finalization registry to dispose reaction created during render.\n // Happens with `<Suspend>` see #3492\n //\n // `componentDidMount` can be called immediately after `componentWillUnmount` without calling `render` in between.\n // Happens with `<StrictMode>`see #3395.\n //\n // If `componentDidMount` is called, it's guaranteed to run synchronously with render (similary to `useLayoutEffect`).\n // Therefore we don't have to worry about external (observable) state being updated before mount (no state version checking).\n //\n // Things may change: \"In the future, React will provide a feature that lets components preserve state between unmounts\"\n\n const admin = getAdministration(this)\n\n admin.mounted = true\n\n // Component instance committed, prevent reaction disposal.\n observerFinalizationRegistry.unregister(this)\n\n // We don't set forceUpdate before mount because it requires a reference to `this`,\n // therefore `this` could NOT be garbage collected before mount,\n // preventing reaction disposal by FinalizationRegistry and leading to memory leak.\n // As an alternative we could have `admin.instanceRef = new WeakRef(this)`, but lets avoid it if possible.\n admin.forceUpdate = () => this.forceUpdate()\n\n if (!admin.reaction || admin.reactionInvalidatedBeforeMount) {\n // Missing reaction:\n // 1. Instance was unmounted (reaction disposed) and immediately remounted without running render #3395.\n // 2. Reaction was disposed by finalization registry before mount. Shouldn't ever happen for class components:\n // `componentDidMount` runs synchronously after render, but our registry are deferred (can't run in between).\n // In any case we lost subscriptions to observables, so we have to create new reaction and re-render to resubscribe.\n // The reaction will be created lazily by following render.\n\n // Reaction invalidated before mount:\n // 1. A descendant's `componenDidMount` invalidated it's parent #3730\n\n admin.forceUpdate()\n }\n return originalComponentDidMount?.apply(this, arguments)\n }\n\n // TODO@major Overly complicated \"patch\" is only needed to support the deprecated @disposeOnUnmount\n patch(prototype, \"componentWillUnmount\", function () {\n if (isUsingStaticRendering()) {\n return\n }\n const admin = getAdministration(this)\n admin.reaction?.dispose()\n admin.reaction = null\n admin.forceUpdate = null\n admin.mounted = false\n admin.reactionInvalidatedBeforeMount = false\n })\n\n return componentClass\n}\n\n// Generates a friendly name for debugging\nfunction getDisplayName(componentClass: ComponentClass) {\n return componentClass.displayName || componentClass.name || \"<component>\"\n}\n\nfunction createReactiveRender(originalRender: any) {\n const boundOriginalRender = originalRender.bind(this)\n\n const admin = getAdministration(this)\n\n function reactiveRender() {\n if (!admin.reaction) {\n // Create reaction lazily to support re-mounting #3395\n admin.reaction = createReaction(admin)\n if (!admin.mounted) {\n // React can abandon this instance and never call `componentDidMount`/`componentWillUnmount`,\n // we have to make sure reaction will be disposed.\n observerFinalizationRegistry.register(this, admin, this)\n }\n }\n\n let error: unknown = undefined\n let renderResult = undefined\n admin.reaction.track(() => {\n try {\n // TODO@major\n // Optimization: replace with _allowStateChangesStart/End (not available in mobx@6.0.0)\n renderResult = _allowStateChanges(false, boundOriginalRender)\n } catch (e) {\n error = e\n }\n })\n if (error) {\n throw error\n }\n return renderResult\n }\n\n return reactiveRender\n}\n\nfunction createReaction(admin: ObserverAdministration) {\n return new Reaction(`${admin.name}.render()`, () => {\n if (!admin.mounted) {\n // This is neccessary to avoid react warning about calling forceUpdate on component that isn't mounted yet.\n // This happens when component is abandoned after render - our reaction is already created and reacts to changes.\n // `componenDidMount` runs synchronously after `render`, so unlike functional component, there is no delay during which the reaction could be invalidated.\n // However `componentDidMount` runs AFTER it's descendants' `componentDidMount`, which CAN invalidate the reaction, see #3730. Therefore remember and forceUpdate on mount.\n admin.reactionInvalidatedBeforeMount = true\n return\n }\n\n try {\n admin.forceUpdate?.()\n } catch (error) {\n admin.reaction?.dispose()\n admin.reaction = null\n }\n })\n}\n\nfunction observerSCU(nextProps: ClassAttributes<any>, nextState: any): boolean {\n if (isUsingStaticRendering()) {\n console.warn(\n \"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\"\n )\n }\n // update on any state changes (as is the default)\n if (this.state !== nextState) {\n return true\n }\n // update if props are shallowly not equal, inspired by PureRenderMixin\n // we could return just 'false' here, and avoid the `skipRender` checks etc\n // however, it is nicer if lifecycle events are triggered like usually,\n // so we return true here if props are shallowly modified.\n return !shallowEqual(this.props, nextProps)\n}\n\nfunction createObservablePropDescriptor(key: \"props\" | \"state\" | \"context\") {\n return {\n configurable: true,\n enumerable: true,\n get() {\n const admin = getAdministration(this)\n const derivation = _getGlobalState().trackingDerivation\n if (derivation && derivation !== admin.reaction) {\n throw new Error(\n `[mobx-react] Cannot read \"${admin.name}.${key}\" in a reactive context, as it isn't observable.\n Please use component lifecycle method to copy the value into a local observable first.\n See https://github.com/mobxjs/mobx/blob/main/packages/mobx-react/README.md#note-on-using-props-and-state-in-derivations`\n )\n }\n return admin[key]\n },\n set(value) {\n getAdministration(this)[key] = value\n }\n }\n}\n","import * as React from \"react\"\nimport { observer as observerLite } from \"mobx-react-lite\"\n\nimport { makeClassComponentObserver } from \"./observerClass\"\nimport { IReactComponent } from \"./types/IReactComponent\"\n\n/**\n * Observer function / decorator\n */\nexport function observer<T extends IReactComponent>(\n component: T,\n context: ClassDecoratorContext\n): void\nexport function observer<T extends IReactComponent>(component: T): T\nexport function observer<T extends IReactComponent>(\n component: T,\n context?: ClassDecoratorContext\n): T {\n if (context && context.kind !== \"class\") {\n throw new Error(\"The @observer decorator can be used on classes only\")\n }\n\n if (\n Object.prototype.isPrototypeOf.call(React.Component, component) ||\n Object.prototype.isPrototypeOf.call(React.PureComponent, component)\n ) {\n // Class component\n return makeClassComponentObserver(component as React.ComponentClass<any, any>) as T\n } else {\n // Function component\n return observerLite(component as React.FunctionComponent<any>) as unknown as T\n }\n}\n","import { observable } from \"mobx\"\nimport { Component } from \"react\"\n\nif (!Component) {\n throw new Error(\"mobx-react requires React to be available\")\n}\n\nif (!observable) {\n throw new Error(\"mobx-react requires mobx to be available\")\n}\n\nexport {\n Observer,\n isUsingStaticRendering,\n enableStaticRendering,\n useLocalObservable,\n _observerFinalizationRegistry,\n clearTimers\n} from \"mobx-react-lite\"\n\nexport { observer } from \"./observer\"\n"],"names":["shallowEqual","objA","objB","is","keysA","Object","keys","keysB","length","i","hasOwnProperty","call","x","y","mobxMixins","Symbol","mobxPatchedDefinition","getMixins","target","methodName","mixins","methodMixins","locks","methods","wrapper","realMethod","args","retVal","undefined","apply","forEach","mx","wrapFunction","fn","patch","mixinMethod","indexOf","push","oldDefinition","getOwnPropertyDescriptor","originalMethod","newDefinition","createDefinition","enumerable","defineProperty","wrappedFunc","get","set","value","configurable","administrationSymbol","isMobXReactObserverSymbol","observablePropDescriptors","process","env","NODE_ENV","props","createObservablePropDescriptor","state","context","getAdministration","component","_component$administra","reaction","mounted","reactionInvalidatedBeforeMount","forceUpdate","name","getDisplayName","constructor","makeClassComponentObserver","componentClass","prototype","displayName","Error","componentWillReact","PureComponent","shouldComponentUpdate","observerSCU","defineProperties","originalRender","render","writable","isUsingStaticRendering","createReactiveRender","originalComponentDidMount","componentDidMount","getPrototypeOf","admin","observerFinalizationRegistry","unregister","arguments","_admin$reaction","dispose","boundOriginalRender","bind","reactiveRender","createReaction","register","error","renderResult","track","_allowStateChanges","e","Reaction","_admin$reaction2","nextProps","nextState","console","warn","key","derivation","_getGlobalState","trackingDerivation","observer","kind","isPrototypeOf","React","Component","observerLite","observable"],"mappings":"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"}
1
+ {"version":3,"file":"mobxreact.esm.js","sources":["../src/utils/utils.ts","../src/observerClass.ts","../src/observer.tsx","../src/index.ts"],"sourcesContent":["export function shallowEqual(objA: any, objB: any): boolean {\n //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (is(objA, objB)) {\n return true\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false\n }\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n if (keysA.length !== keysB.length) {\n return false\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false\n }\n }\n return true\n}\n\nfunction is(x: any, y: any): boolean {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y\n } else {\n return x !== x && y !== y\n }\n}\n\n/**\n * Utilities for patching componentWillUnmount, to make sure @disposeOnUnmount works correctly icm with user defined hooks\n * and the handler provided by mobx-react\n */\nconst mobxMixins = Symbol(\"patchMixins\")\nconst mobxPatchedDefinition = Symbol(\"patchedDefinition\")\n\nexport interface Mixins extends Record<string, any> {\n locks: number\n methods: Array<Function>\n}\n\nfunction getMixins(target: object, methodName: string): Mixins {\n const mixins = (target[mobxMixins] = target[mobxMixins] || {})\n const methodMixins = (mixins[methodName] = mixins[methodName] || {})\n methodMixins.locks = methodMixins.locks || 0\n methodMixins.methods = methodMixins.methods || []\n return methodMixins\n}\n\nfunction wrapper(realMethod: Function, mixins: Mixins, ...args: Array<any>) {\n // locks are used to ensure that mixins are invoked only once per invocation, even on recursive calls\n mixins.locks++\n\n try {\n let retVal\n if (realMethod !== undefined && realMethod !== null) {\n retVal = realMethod.apply(this, args)\n }\n\n return retVal\n } finally {\n mixins.locks--\n if (mixins.locks === 0) {\n mixins.methods.forEach(mx => {\n mx.apply(this, args)\n })\n }\n }\n}\n\nfunction wrapFunction(realMethod: Function, mixins: Mixins): (...args: Array<any>) => any {\n const fn = function (...args: Array<any>) {\n wrapper.call(this, realMethod, mixins, ...args)\n }\n return fn\n}\n\nexport function patch(target: object, methodName: string, mixinMethod: Function): void {\n const mixins = getMixins(target, methodName)\n\n if (mixins.methods.indexOf(mixinMethod) < 0) {\n mixins.methods.push(mixinMethod)\n }\n\n const oldDefinition = Object.getOwnPropertyDescriptor(target, methodName)\n if (oldDefinition && oldDefinition[mobxPatchedDefinition]) {\n // already patched definition, do not repatch\n return\n }\n\n const originalMethod = target[methodName]\n const newDefinition = createDefinition(\n target,\n methodName,\n oldDefinition ? oldDefinition.enumerable : undefined,\n mixins,\n originalMethod\n )\n\n Object.defineProperty(target, methodName, newDefinition)\n}\n\nfunction createDefinition(\n target: object,\n methodName: string,\n enumerable: any,\n mixins: Mixins,\n originalMethod: Function\n): PropertyDescriptor {\n let wrappedFunc = wrapFunction(originalMethod, mixins)\n\n return {\n // @ts-ignore\n [mobxPatchedDefinition]: true,\n get: function () {\n return wrappedFunc\n },\n set: function (value) {\n if (this === target) {\n wrappedFunc = wrapFunction(value, mixins)\n } else {\n // when it is an instance of the prototype/a child prototype patch that particular case again separately\n // since we need to store separate values depending on wether it is the actual instance, the prototype, etc\n // e.g. the method for super might not be the same as the method for the prototype which might be not the same\n // as the method for the instance\n const newDefinition = createDefinition(this, methodName, enumerable, mixins, value)\n Object.defineProperty(this, methodName, newDefinition)\n }\n },\n configurable: true,\n enumerable: enumerable\n }\n}\n","import { PureComponent, Component, ComponentClass, ClassAttributes } from \"react\"\nimport {\n _allowStateChanges,\n Reaction,\n _allowStateReadsStart,\n _allowStateReadsEnd,\n _getGlobalState\n} from \"mobx\"\nimport {\n isUsingStaticRendering,\n _observerFinalizationRegistry as observerFinalizationRegistry\n} from \"mobx-react-lite\"\nimport { shallowEqual, patch } from \"./utils/utils\"\n\nconst administrationSymbol = Symbol(\"ObserverAdministration\")\nconst isMobXReactObserverSymbol = Symbol(\"isMobXReactObserver\")\n\nlet observablePropDescriptors: PropertyDescriptorMap\nif (__DEV__) {\n observablePropDescriptors = {\n props: createObservablePropDescriptor(\"props\"),\n state: createObservablePropDescriptor(\"state\"),\n context: createObservablePropDescriptor(\"context\")\n }\n}\n\ntype ObserverAdministration = {\n reaction: Reaction | null // also serves as disposed flag\n forceUpdate: Function | null\n mounted: boolean // we could use forceUpdate as mounted flag\n reactionInvalidatedBeforeMount: boolean\n name: string\n // Used only on __DEV__\n props: any\n state: any\n context: any\n}\n\nfunction getAdministration(component: Component): ObserverAdministration {\n // We create administration lazily, because we can't patch constructor\n // and the exact moment of initialization partially depends on React internals.\n // At the time of writing this, the first thing invoked is one of the observable getter/setter (state/props/context).\n return (component[administrationSymbol] ??= {\n reaction: null,\n mounted: false,\n reactionInvalidatedBeforeMount: false,\n forceUpdate: null,\n name: getDisplayName(component.constructor as ComponentClass),\n state: undefined,\n props: undefined,\n context: undefined\n })\n}\n\nexport function makeClassComponentObserver(\n componentClass: ComponentClass<any, any>\n): ComponentClass<any, any> {\n const { prototype } = componentClass\n\n if (componentClass[isMobXReactObserverSymbol]) {\n const displayName = getDisplayName(componentClass)\n throw new Error(\n `The provided component class (${displayName}) has already been declared as an observer component.`\n )\n } else {\n componentClass[isMobXReactObserverSymbol] = true\n }\n\n if (prototype.componentWillReact) {\n throw new Error(\"The componentWillReact life-cycle event is no longer supported\")\n }\n if (componentClass[\"__proto__\"] !== PureComponent) {\n if (!prototype.shouldComponentUpdate) {\n prototype.shouldComponentUpdate = observerSCU\n } else if (prototype.shouldComponentUpdate !== observerSCU) {\n // n.b. unequal check, instead of existence check, as @observer might be on superclass as well\n throw new Error(\n \"It is not allowed to use shouldComponentUpdate in observer based components.\"\n )\n }\n }\n\n if (__DEV__) {\n Object.defineProperties(prototype, observablePropDescriptors)\n }\n\n const originalRender = prototype.render\n if (typeof originalRender !== \"function\") {\n const displayName = getDisplayName(componentClass)\n throw new Error(\n `[mobx-react] class component (${displayName}) is missing \\`render\\` method.` +\n `\\n\\`observer\\` requires \\`render\\` being a function defined on prototype.` +\n `\\n\\`render = () => {}\\` or \\`render = function() {}\\` is not supported.`\n )\n }\n\n prototype.render = function () {\n Object.defineProperty(this, \"render\", {\n // There is no safe way to replace render, therefore it's forbidden.\n configurable: false,\n writable: false,\n value: isUsingStaticRendering()\n ? originalRender\n : createReactiveRender.call(this, originalRender)\n })\n return this.render()\n }\n\n const originalComponentDidMount = prototype.componentDidMount\n prototype.componentDidMount = function () {\n if (__DEV__ && this.componentDidMount !== Object.getPrototypeOf(this).componentDidMount) {\n const displayName = getDisplayName(componentClass)\n throw new Error(\n `[mobx-react] \\`observer(${displayName}).componentDidMount\\` must be defined on prototype.` +\n `\\n\\`componentDidMount = () => {}\\` or \\`componentDidMount = function() {}\\` is not supported.`\n )\n }\n\n // `componentDidMount` may not be called at all. React can abandon the instance after `render`.\n // That's why we use finalization registry to dispose reaction created during render.\n // Happens with `<Suspend>` see #3492\n //\n // `componentDidMount` can be called immediately after `componentWillUnmount` without calling `render` in between.\n // Happens with `<StrictMode>`see #3395.\n //\n // If `componentDidMount` is called, it's guaranteed to run synchronously with render (similary to `useLayoutEffect`).\n // Therefore we don't have to worry about external (observable) state being updated before mount (no state version checking).\n //\n // Things may change: \"In the future, React will provide a feature that lets components preserve state between unmounts\"\n\n const admin = getAdministration(this)\n\n admin.mounted = true\n\n // Component instance committed, prevent reaction disposal.\n observerFinalizationRegistry.unregister(this)\n\n // We don't set forceUpdate before mount because it requires a reference to `this`,\n // therefore `this` could NOT be garbage collected before mount,\n // preventing reaction disposal by FinalizationRegistry and leading to memory leak.\n // As an alternative we could have `admin.instanceRef = new WeakRef(this)`, but lets avoid it if possible.\n admin.forceUpdate = () => this.forceUpdate()\n\n if (!admin.reaction || admin.reactionInvalidatedBeforeMount) {\n // Missing reaction:\n // 1. Instance was unmounted (reaction disposed) and immediately remounted without running render #3395.\n // 2. Reaction was disposed by finalization registry before mount. Shouldn't ever happen for class components:\n // `componentDidMount` runs synchronously after render, but our registry are deferred (can't run in between).\n // In any case we lost subscriptions to observables, so we have to create new reaction and re-render to resubscribe.\n // The reaction will be created lazily by following render.\n\n // Reaction invalidated before mount:\n // 1. A descendant's `componenDidMount` invalidated it's parent #3730\n\n admin.forceUpdate()\n }\n return originalComponentDidMount?.apply(this, arguments)\n }\n\n // TODO@major Overly complicated \"patch\" is only needed to support the deprecated @disposeOnUnmount\n patch(prototype, \"componentWillUnmount\", function () {\n if (isUsingStaticRendering()) {\n return\n }\n const admin = getAdministration(this)\n admin.reaction?.dispose()\n admin.reaction = null\n admin.forceUpdate = null\n admin.mounted = false\n admin.reactionInvalidatedBeforeMount = false\n })\n\n return componentClass\n}\n\n// Generates a friendly name for debugging\nfunction getDisplayName(componentClass: ComponentClass) {\n return componentClass.displayName || componentClass.name || \"<component>\"\n}\n\nfunction createReactiveRender(originalRender: any) {\n const boundOriginalRender = originalRender.bind(this)\n\n const admin = getAdministration(this)\n\n function reactiveRender() {\n if (!admin.reaction) {\n // Create reaction lazily to support re-mounting #3395\n admin.reaction = createReaction(admin)\n if (!admin.mounted) {\n // React can abandon this instance and never call `componentDidMount`/`componentWillUnmount`,\n // we have to make sure reaction will be disposed.\n observerFinalizationRegistry.register(this, admin, this)\n }\n }\n\n let error: unknown = undefined\n let renderResult = undefined\n admin.reaction.track(() => {\n try {\n // TODO@major\n // Optimization: replace with _allowStateChangesStart/End (not available in mobx@6.0.0)\n renderResult = _allowStateChanges(false, boundOriginalRender)\n } catch (e) {\n error = e\n }\n })\n if (error) {\n throw error\n }\n return renderResult\n }\n\n return reactiveRender\n}\n\nfunction createReaction(admin: ObserverAdministration) {\n return new Reaction(`${admin.name}.render()`, () => {\n if (!admin.mounted) {\n // This is neccessary to avoid react warning about calling forceUpdate on component that isn't mounted yet.\n // This happens when component is abandoned after render - our reaction is already created and reacts to changes.\n // `componenDidMount` runs synchronously after `render`, so unlike functional component, there is no delay during which the reaction could be invalidated.\n // However `componentDidMount` runs AFTER it's descendants' `componentDidMount`, which CAN invalidate the reaction, see #3730. Therefore remember and forceUpdate on mount.\n admin.reactionInvalidatedBeforeMount = true\n return\n }\n\n try {\n admin.forceUpdate?.()\n } catch (error) {\n admin.reaction?.dispose()\n admin.reaction = null\n }\n })\n}\n\nfunction observerSCU(nextProps: ClassAttributes<any>, nextState: any): boolean {\n if (isUsingStaticRendering()) {\n console.warn(\n \"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\"\n )\n }\n // update on any state changes (as is the default)\n if (this.state !== nextState) {\n return true\n }\n // update if props are shallowly not equal, inspired by PureRenderMixin\n // we could return just 'false' here, and avoid the `skipRender` checks etc\n // however, it is nicer if lifecycle events are triggered like usually,\n // so we return true here if props are shallowly modified.\n return !shallowEqual(this.props, nextProps)\n}\n\nfunction createObservablePropDescriptor(key: \"props\" | \"state\" | \"context\") {\n return {\n configurable: true,\n enumerable: true,\n get() {\n const admin = getAdministration(this)\n const derivation = _getGlobalState().trackingDerivation\n if (derivation && derivation !== admin.reaction) {\n throw new Error(\n `[mobx-react] Cannot read \"${admin.name}.${key}\" in a reactive context, as it isn't observable.\n Please use component lifecycle method to copy the value into a local observable first.\n See https://github.com/mobxjs/mobx/blob/main/packages/mobx-react/README.md#note-on-using-props-and-state-in-derivations`\n )\n }\n return admin[key]\n },\n set(value) {\n getAdministration(this)[key] = value\n }\n }\n}\n","import * as React from \"react\"\nimport { observer as observerLite } from \"mobx-react-lite\"\n\nimport { makeClassComponentObserver } from \"./observerClass\"\nimport { IReactComponent } from \"./types/IReactComponent\"\n\n/**\n * Observer function / decorator\n */\nexport function observer<T extends IReactComponent>(\n component: T,\n context: ClassDecoratorContext\n): void\nexport function observer<T extends IReactComponent>(component: T): T\nexport function observer<T extends IReactComponent>(\n component: T,\n context?: ClassDecoratorContext\n): T {\n if (context && context.kind !== \"class\") {\n throw new Error(\"The @observer decorator can be used on classes only\")\n }\n\n if (\n Object.prototype.isPrototypeOf.call(React.Component, component) ||\n Object.prototype.isPrototypeOf.call(React.PureComponent, component)\n ) {\n // Class component\n return makeClassComponentObserver(component as React.ComponentClass<any, any>) as T\n } else {\n // Function component\n return observerLite(component as React.FunctionComponent<any>) as unknown as T\n }\n}\n","import { observable } from \"mobx\"\nimport { Component } from \"react\"\n\nif (!Component) {\n throw new Error(\"mobx-react requires React to be available\")\n}\n\nif (!observable) {\n throw new Error(\"mobx-react requires mobx to be available\")\n}\n\nexport {\n Observer,\n isUsingStaticRendering,\n enableStaticRendering,\n useLocalObservable,\n _observerFinalizationRegistry,\n clearTimers\n} from \"mobx-react-lite\"\n\nexport { observer } from \"./observer\"\n"],"names":["shallowEqual","objA","objB","is","keysA","Object","keys","keysB","length","i","hasOwnProperty","call","x","y","mobxMixins","Symbol","mobxPatchedDefinition","getMixins","target","methodName","mixins","methodMixins","locks","methods","wrapper","realMethod","args","retVal","undefined","apply","forEach","mx","wrapFunction","fn","patch","mixinMethod","indexOf","push","oldDefinition","getOwnPropertyDescriptor","originalMethod","newDefinition","createDefinition","enumerable","defineProperty","wrappedFunc","get","set","value","configurable","administrationSymbol","isMobXReactObserverSymbol","observablePropDescriptors","__DEV__","props","createObservablePropDescriptor","state","context","getAdministration","component","_component$administra","reaction","mounted","reactionInvalidatedBeforeMount","forceUpdate","name","getDisplayName","constructor","makeClassComponentObserver","componentClass","prototype","displayName","Error","componentWillReact","PureComponent","shouldComponentUpdate","observerSCU","defineProperties","originalRender","render","writable","isUsingStaticRendering","createReactiveRender","originalComponentDidMount","componentDidMount","getPrototypeOf","admin","observerFinalizationRegistry","unregister","arguments","_admin$reaction","dispose","boundOriginalRender","bind","reactiveRender","createReaction","register","error","renderResult","track","_allowStateChanges","e","Reaction","_admin$reaction2","nextProps","nextState","console","warn","key","derivation","_getGlobalState","trackingDerivation","observer","kind","isPrototypeOf","React","Component","observerLite","observable"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ const __MOBX_DEV__ = process.env.NODE_ENV !== "production";
2
+
1
3
  import { _allowStateChanges, Reaction, _getGlobalState, observable } from 'mobx';
2
4
  import * as React from 'react';
3
5
  import { PureComponent, Component } from 'react';
@@ -111,7 +113,7 @@ function createDefinition(target, methodName, enumerable, mixins, originalMethod
111
113
  const administrationSymbol = /*#__PURE__*/Symbol("ObserverAdministration");
112
114
  const isMobXReactObserverSymbol = /*#__PURE__*/Symbol("isMobXReactObserver");
113
115
  let observablePropDescriptors;
114
- if (process.env.NODE_ENV !== "production") {
116
+ if (__MOBX_DEV__) {
115
117
  observablePropDescriptors = {
116
118
  props: /*#__PURE__*/createObservablePropDescriptor("props"),
117
119
  state: /*#__PURE__*/createObservablePropDescriptor("state"),
@@ -155,7 +157,7 @@ function makeClassComponentObserver(componentClass) {
155
157
  throw new Error("It is not allowed to use shouldComponentUpdate in observer based components.");
156
158
  }
157
159
  }
158
- if (process.env.NODE_ENV !== "production") {
160
+ if (__MOBX_DEV__) {
159
161
  Object.defineProperties(prototype, observablePropDescriptors);
160
162
  }
161
163
  const originalRender = prototype.render;
@@ -174,7 +176,7 @@ function makeClassComponentObserver(componentClass) {
174
176
  };
175
177
  const originalComponentDidMount = prototype.componentDidMount;
176
178
  prototype.componentDidMount = function () {
177
- if (process.env.NODE_ENV !== "production" && this.componentDidMount !== Object.getPrototypeOf(this).componentDidMount) {
179
+ if (__MOBX_DEV__ && this.componentDidMount !== Object.getPrototypeOf(this).componentDidMount) {
178
180
  const displayName = getDisplayName(componentClass);
179
181
  throw new Error(`[mobx-react] \`observer(${displayName}).componentDidMount\` must be defined on prototype.` + `\n\`componentDidMount = () => {}\` or \`componentDidMount = function() {}\` is not supported.`);
180
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mobxreact.mjs","sources":["../src/utils/utils.ts","../src/observerClass.ts","../src/observer.tsx","../src/index.ts"],"sourcesContent":["export function shallowEqual(objA: any, objB: any): boolean {\n //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (is(objA, objB)) {\n return true\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false\n }\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n if (keysA.length !== keysB.length) {\n return false\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false\n }\n }\n return true\n}\n\nfunction is(x: any, y: any): boolean {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y\n } else {\n return x !== x && y !== y\n }\n}\n\n/**\n * Utilities for patching componentWillUnmount, to make sure @disposeOnUnmount works correctly icm with user defined hooks\n * and the handler provided by mobx-react\n */\nconst mobxMixins = Symbol(\"patchMixins\")\nconst mobxPatchedDefinition = Symbol(\"patchedDefinition\")\n\nexport interface Mixins extends Record<string, any> {\n locks: number\n methods: Array<Function>\n}\n\nfunction getMixins(target: object, methodName: string): Mixins {\n const mixins = (target[mobxMixins] = target[mobxMixins] || {})\n const methodMixins = (mixins[methodName] = mixins[methodName] || {})\n methodMixins.locks = methodMixins.locks || 0\n methodMixins.methods = methodMixins.methods || []\n return methodMixins\n}\n\nfunction wrapper(realMethod: Function, mixins: Mixins, ...args: Array<any>) {\n // locks are used to ensure that mixins are invoked only once per invocation, even on recursive calls\n mixins.locks++\n\n try {\n let retVal\n if (realMethod !== undefined && realMethod !== null) {\n retVal = realMethod.apply(this, args)\n }\n\n return retVal\n } finally {\n mixins.locks--\n if (mixins.locks === 0) {\n mixins.methods.forEach(mx => {\n mx.apply(this, args)\n })\n }\n }\n}\n\nfunction wrapFunction(realMethod: Function, mixins: Mixins): (...args: Array<any>) => any {\n const fn = function (...args: Array<any>) {\n wrapper.call(this, realMethod, mixins, ...args)\n }\n return fn\n}\n\nexport function patch(target: object, methodName: string, mixinMethod: Function): void {\n const mixins = getMixins(target, methodName)\n\n if (mixins.methods.indexOf(mixinMethod) < 0) {\n mixins.methods.push(mixinMethod)\n }\n\n const oldDefinition = Object.getOwnPropertyDescriptor(target, methodName)\n if (oldDefinition && oldDefinition[mobxPatchedDefinition]) {\n // already patched definition, do not repatch\n return\n }\n\n const originalMethod = target[methodName]\n const newDefinition = createDefinition(\n target,\n methodName,\n oldDefinition ? oldDefinition.enumerable : undefined,\n mixins,\n originalMethod\n )\n\n Object.defineProperty(target, methodName, newDefinition)\n}\n\nfunction createDefinition(\n target: object,\n methodName: string,\n enumerable: any,\n mixins: Mixins,\n originalMethod: Function\n): PropertyDescriptor {\n let wrappedFunc = wrapFunction(originalMethod, mixins)\n\n return {\n // @ts-ignore\n [mobxPatchedDefinition]: true,\n get: function () {\n return wrappedFunc\n },\n set: function (value) {\n if (this === target) {\n wrappedFunc = wrapFunction(value, mixins)\n } else {\n // when it is an instance of the prototype/a child prototype patch that particular case again separately\n // since we need to store separate values depending on wether it is the actual instance, the prototype, etc\n // e.g. the method for super might not be the same as the method for the prototype which might be not the same\n // as the method for the instance\n const newDefinition = createDefinition(this, methodName, enumerable, mixins, value)\n Object.defineProperty(this, methodName, newDefinition)\n }\n },\n configurable: true,\n enumerable: enumerable\n }\n}\n","import { PureComponent, Component, ComponentClass, ClassAttributes } from \"react\"\nimport {\n _allowStateChanges,\n Reaction,\n _allowStateReadsStart,\n _allowStateReadsEnd,\n _getGlobalState\n} from \"mobx\"\nimport {\n isUsingStaticRendering,\n _observerFinalizationRegistry as observerFinalizationRegistry\n} from \"mobx-react-lite\"\nimport { shallowEqual, patch } from \"./utils/utils\"\n\nconst administrationSymbol = Symbol(\"ObserverAdministration\")\nconst isMobXReactObserverSymbol = Symbol(\"isMobXReactObserver\")\n\nlet observablePropDescriptors: PropertyDescriptorMap\nif (__DEV__) {\n observablePropDescriptors = {\n props: createObservablePropDescriptor(\"props\"),\n state: createObservablePropDescriptor(\"state\"),\n context: createObservablePropDescriptor(\"context\")\n }\n}\n\ntype ObserverAdministration = {\n reaction: Reaction | null // also serves as disposed flag\n forceUpdate: Function | null\n mounted: boolean // we could use forceUpdate as mounted flag\n reactionInvalidatedBeforeMount: boolean\n name: string\n // Used only on __DEV__\n props: any\n state: any\n context: any\n}\n\nfunction getAdministration(component: Component): ObserverAdministration {\n // We create administration lazily, because we can't patch constructor\n // and the exact moment of initialization partially depends on React internals.\n // At the time of writing this, the first thing invoked is one of the observable getter/setter (state/props/context).\n return (component[administrationSymbol] ??= {\n reaction: null,\n mounted: false,\n reactionInvalidatedBeforeMount: false,\n forceUpdate: null,\n name: getDisplayName(component.constructor as ComponentClass),\n state: undefined,\n props: undefined,\n context: undefined\n })\n}\n\nexport function makeClassComponentObserver(\n componentClass: ComponentClass<any, any>\n): ComponentClass<any, any> {\n const { prototype } = componentClass\n\n if (componentClass[isMobXReactObserverSymbol]) {\n const displayName = getDisplayName(componentClass)\n throw new Error(\n `The provided component class (${displayName}) has already been declared as an observer component.`\n )\n } else {\n componentClass[isMobXReactObserverSymbol] = true\n }\n\n if (prototype.componentWillReact) {\n throw new Error(\"The componentWillReact life-cycle event is no longer supported\")\n }\n if (componentClass[\"__proto__\"] !== PureComponent) {\n if (!prototype.shouldComponentUpdate) {\n prototype.shouldComponentUpdate = observerSCU\n } else if (prototype.shouldComponentUpdate !== observerSCU) {\n // n.b. unequal check, instead of existence check, as @observer might be on superclass as well\n throw new Error(\n \"It is not allowed to use shouldComponentUpdate in observer based components.\"\n )\n }\n }\n\n if (__DEV__) {\n Object.defineProperties(prototype, observablePropDescriptors)\n }\n\n const originalRender = prototype.render\n if (typeof originalRender !== \"function\") {\n const displayName = getDisplayName(componentClass)\n throw new Error(\n `[mobx-react] class component (${displayName}) is missing \\`render\\` method.` +\n `\\n\\`observer\\` requires \\`render\\` being a function defined on prototype.` +\n `\\n\\`render = () => {}\\` or \\`render = function() {}\\` is not supported.`\n )\n }\n\n prototype.render = function () {\n Object.defineProperty(this, \"render\", {\n // There is no safe way to replace render, therefore it's forbidden.\n configurable: false,\n writable: false,\n value: isUsingStaticRendering()\n ? originalRender\n : createReactiveRender.call(this, originalRender)\n })\n return this.render()\n }\n\n const originalComponentDidMount = prototype.componentDidMount\n prototype.componentDidMount = function () {\n if (__DEV__ && this.componentDidMount !== Object.getPrototypeOf(this).componentDidMount) {\n const displayName = getDisplayName(componentClass)\n throw new Error(\n `[mobx-react] \\`observer(${displayName}).componentDidMount\\` must be defined on prototype.` +\n `\\n\\`componentDidMount = () => {}\\` or \\`componentDidMount = function() {}\\` is not supported.`\n )\n }\n\n // `componentDidMount` may not be called at all. React can abandon the instance after `render`.\n // That's why we use finalization registry to dispose reaction created during render.\n // Happens with `<Suspend>` see #3492\n //\n // `componentDidMount` can be called immediately after `componentWillUnmount` without calling `render` in between.\n // Happens with `<StrictMode>`see #3395.\n //\n // If `componentDidMount` is called, it's guaranteed to run synchronously with render (similary to `useLayoutEffect`).\n // Therefore we don't have to worry about external (observable) state being updated before mount (no state version checking).\n //\n // Things may change: \"In the future, React will provide a feature that lets components preserve state between unmounts\"\n\n const admin = getAdministration(this)\n\n admin.mounted = true\n\n // Component instance committed, prevent reaction disposal.\n observerFinalizationRegistry.unregister(this)\n\n // We don't set forceUpdate before mount because it requires a reference to `this`,\n // therefore `this` could NOT be garbage collected before mount,\n // preventing reaction disposal by FinalizationRegistry and leading to memory leak.\n // As an alternative we could have `admin.instanceRef = new WeakRef(this)`, but lets avoid it if possible.\n admin.forceUpdate = () => this.forceUpdate()\n\n if (!admin.reaction || admin.reactionInvalidatedBeforeMount) {\n // Missing reaction:\n // 1. Instance was unmounted (reaction disposed) and immediately remounted without running render #3395.\n // 2. Reaction was disposed by finalization registry before mount. Shouldn't ever happen for class components:\n // `componentDidMount` runs synchronously after render, but our registry are deferred (can't run in between).\n // In any case we lost subscriptions to observables, so we have to create new reaction and re-render to resubscribe.\n // The reaction will be created lazily by following render.\n\n // Reaction invalidated before mount:\n // 1. A descendant's `componenDidMount` invalidated it's parent #3730\n\n admin.forceUpdate()\n }\n return originalComponentDidMount?.apply(this, arguments)\n }\n\n // TODO@major Overly complicated \"patch\" is only needed to support the deprecated @disposeOnUnmount\n patch(prototype, \"componentWillUnmount\", function () {\n if (isUsingStaticRendering()) {\n return\n }\n const admin = getAdministration(this)\n admin.reaction?.dispose()\n admin.reaction = null\n admin.forceUpdate = null\n admin.mounted = false\n admin.reactionInvalidatedBeforeMount = false\n })\n\n return componentClass\n}\n\n// Generates a friendly name for debugging\nfunction getDisplayName(componentClass: ComponentClass) {\n return componentClass.displayName || componentClass.name || \"<component>\"\n}\n\nfunction createReactiveRender(originalRender: any) {\n const boundOriginalRender = originalRender.bind(this)\n\n const admin = getAdministration(this)\n\n function reactiveRender() {\n if (!admin.reaction) {\n // Create reaction lazily to support re-mounting #3395\n admin.reaction = createReaction(admin)\n if (!admin.mounted) {\n // React can abandon this instance and never call `componentDidMount`/`componentWillUnmount`,\n // we have to make sure reaction will be disposed.\n observerFinalizationRegistry.register(this, admin, this)\n }\n }\n\n let error: unknown = undefined\n let renderResult = undefined\n admin.reaction.track(() => {\n try {\n // TODO@major\n // Optimization: replace with _allowStateChangesStart/End (not available in mobx@6.0.0)\n renderResult = _allowStateChanges(false, boundOriginalRender)\n } catch (e) {\n error = e\n }\n })\n if (error) {\n throw error\n }\n return renderResult\n }\n\n return reactiveRender\n}\n\nfunction createReaction(admin: ObserverAdministration) {\n return new Reaction(`${admin.name}.render()`, () => {\n if (!admin.mounted) {\n // This is neccessary to avoid react warning about calling forceUpdate on component that isn't mounted yet.\n // This happens when component is abandoned after render - our reaction is already created and reacts to changes.\n // `componenDidMount` runs synchronously after `render`, so unlike functional component, there is no delay during which the reaction could be invalidated.\n // However `componentDidMount` runs AFTER it's descendants' `componentDidMount`, which CAN invalidate the reaction, see #3730. Therefore remember and forceUpdate on mount.\n admin.reactionInvalidatedBeforeMount = true\n return\n }\n\n try {\n admin.forceUpdate?.()\n } catch (error) {\n admin.reaction?.dispose()\n admin.reaction = null\n }\n })\n}\n\nfunction observerSCU(nextProps: ClassAttributes<any>, nextState: any): boolean {\n if (isUsingStaticRendering()) {\n console.warn(\n \"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\"\n )\n }\n // update on any state changes (as is the default)\n if (this.state !== nextState) {\n return true\n }\n // update if props are shallowly not equal, inspired by PureRenderMixin\n // we could return just 'false' here, and avoid the `skipRender` checks etc\n // however, it is nicer if lifecycle events are triggered like usually,\n // so we return true here if props are shallowly modified.\n return !shallowEqual(this.props, nextProps)\n}\n\nfunction createObservablePropDescriptor(key: \"props\" | \"state\" | \"context\") {\n return {\n configurable: true,\n enumerable: true,\n get() {\n const admin = getAdministration(this)\n const derivation = _getGlobalState().trackingDerivation\n if (derivation && derivation !== admin.reaction) {\n throw new Error(\n `[mobx-react] Cannot read \"${admin.name}.${key}\" in a reactive context, as it isn't observable.\n Please use component lifecycle method to copy the value into a local observable first.\n See https://github.com/mobxjs/mobx/blob/main/packages/mobx-react/README.md#note-on-using-props-and-state-in-derivations`\n )\n }\n return admin[key]\n },\n set(value) {\n getAdministration(this)[key] = value\n }\n }\n}\n","import * as React from \"react\"\nimport { observer as observerLite } from \"mobx-react-lite\"\n\nimport { makeClassComponentObserver } from \"./observerClass\"\nimport { IReactComponent } from \"./types/IReactComponent\"\n\n/**\n * Observer function / decorator\n */\nexport function observer<T extends IReactComponent>(\n component: T,\n context: ClassDecoratorContext\n): void\nexport function observer<T extends IReactComponent>(component: T): T\nexport function observer<T extends IReactComponent>(\n component: T,\n context?: ClassDecoratorContext\n): T {\n if (context && context.kind !== \"class\") {\n throw new Error(\"The @observer decorator can be used on classes only\")\n }\n\n if (\n Object.prototype.isPrototypeOf.call(React.Component, component) ||\n Object.prototype.isPrototypeOf.call(React.PureComponent, component)\n ) {\n // Class component\n return makeClassComponentObserver(component as React.ComponentClass<any, any>) as T\n } else {\n // Function component\n return observerLite(component as React.FunctionComponent<any>) as unknown as T\n }\n}\n","import { observable } from \"mobx\"\nimport { Component } from \"react\"\n\nif (!Component) {\n throw new Error(\"mobx-react requires React to be available\")\n}\n\nif (!observable) {\n throw new Error(\"mobx-react requires mobx to be available\")\n}\n\nexport {\n Observer,\n isUsingStaticRendering,\n enableStaticRendering,\n useLocalObservable,\n _observerFinalizationRegistry,\n clearTimers\n} from \"mobx-react-lite\"\n\nexport { observer } from \"./observer\"\n"],"names":["shallowEqual","objA","objB","is","keysA","Object","keys","keysB","length","i","hasOwnProperty","call","x","y","mobxMixins","Symbol","mobxPatchedDefinition","getMixins","target","methodName","mixins","methodMixins","locks","methods","wrapper","realMethod","args","retVal","undefined","apply","forEach","mx","wrapFunction","fn","patch","mixinMethod","indexOf","push","oldDefinition","getOwnPropertyDescriptor","originalMethod","newDefinition","createDefinition","enumerable","defineProperty","wrappedFunc","get","set","value","configurable","administrationSymbol","isMobXReactObserverSymbol","observablePropDescriptors","process","env","NODE_ENV","props","createObservablePropDescriptor","state","context","getAdministration","component","_component$administra","reaction","mounted","reactionInvalidatedBeforeMount","forceUpdate","name","getDisplayName","constructor","makeClassComponentObserver","componentClass","prototype","displayName","Error","componentWillReact","PureComponent","shouldComponentUpdate","observerSCU","defineProperties","originalRender","render","writable","isUsingStaticRendering","createReactiveRender","originalComponentDidMount","componentDidMount","getPrototypeOf","admin","observerFinalizationRegistry","unregister","arguments","_admin$reaction","dispose","boundOriginalRender","bind","reactiveRender","createReaction","register","error","renderResult","track","_allowStateChanges","e","Reaction","_admin$reaction2","nextProps","nextState","console","warn","key","derivation","_getGlobalState","trackingDerivation","observer","kind","isPrototypeOf","React","Component","observerLite","observable"],"mappings":";;;;;;AAAgB,SAAAA,YAAYA,CAACC,IAAS,EAAEC,IAAS,EAAA;AAC7C;AACA,EAAA,IAAIC,EAAE,CAACF,IAAI,EAAEC,IAAI,CAAC,EAAE;AAChB,IAAA,OAAO,IAAI,CAAA;AACf,GAAA;AACA,EAAA,IAAI,OAAOD,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,IAAI,IAAI,OAAOC,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,IAAI,EAAE;AACxF,IAAA,OAAO,KAAK,CAAA;AAChB,GAAA;AACA,EAAA,MAAME,KAAK,GAAGC,MAAM,CAACC,IAAI,CAACL,IAAI,CAAC,CAAA;AAC/B,EAAA,MAAMM,KAAK,GAAGF,MAAM,CAACC,IAAI,CAACJ,IAAI,CAAC,CAAA;AAC/B,EAAA,IAAIE,KAAK,CAACI,MAAM,KAAKD,KAAK,CAACC,MAAM,EAAE;AAC/B,IAAA,OAAO,KAAK,CAAA;AAChB,GAAA;AACA,EAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,KAAK,CAACI,MAAM,EAAEC,CAAC,EAAE,EAAE;AACnC,IAAA,IAAI,CAACJ,MAAM,CAACK,cAAc,CAACC,IAAI,CAACT,IAAI,EAAEE,KAAK,CAACK,CAAC,CAAC,CAAC,IAAI,CAACN,EAAE,CAACF,IAAI,CAACG,KAAK,CAACK,CAAC,CAAC,CAAC,EAAEP,IAAI,CAACE,KAAK,CAACK,CAAC,CAAC,CAAC,CAAC,EAAE;AACpF,MAAA,OAAO,KAAK,CAAA;AAChB,KAAA;AACJ,GAAA;AACA,EAAA,OAAO,IAAI,CAAA;AACf,CAAA;AAEA,SAASN,EAAEA,CAACS,CAAM,EAAEC,CAAM,EAAA;AACtB;EACA,IAAID,CAAC,KAAKC,CAAC,EAAE;IACT,OAAOD,CAAC,KAAK,CAAC,IAAI,CAAC,GAAGA,CAAC,KAAK,CAAC,GAAGC,CAAC,CAAA;AACrC,GAAC,MAAM;AACH,IAAA,OAAOD,CAAC,KAAKA,CAAC,IAAIC,CAAC,KAAKA,CAAC,CAAA;AAC7B,GAAA;AACJ,CAAA;AAEA;;;AAGG;AACH,MAAMC,UAAU,gBAAGC,MAAM,CAAC,aAAa,CAAC,CAAA;AACxC,MAAMC,qBAAqB,gBAAGD,MAAM,CAAC,mBAAmB,CAAC,CAAA;AAOzD,SAASE,SAASA,CAACC,MAAc,EAAEC,UAAkB,EAAA;AACjD,EAAA,MAAMC,MAAM,GAAIF,MAAM,CAACJ,UAAU,CAAC,GAAGI,MAAM,CAACJ,UAAU,CAAC,IAAI,EAAG,CAAA;AAC9D,EAAA,MAAMO,YAAY,GAAID,MAAM,CAACD,UAAU,CAAC,GAAGC,MAAM,CAACD,UAAU,CAAC,IAAI,EAAG,CAAA;AACpEE,EAAAA,YAAY,CAACC,KAAK,GAAGD,YAAY,CAACC,KAAK,IAAI,CAAC,CAAA;AAC5CD,EAAAA,YAAY,CAACE,OAAO,GAAGF,YAAY,CAACE,OAAO,IAAI,EAAE,CAAA;AACjD,EAAA,OAAOF,YAAY,CAAA;AACvB,CAAA;AAEA,SAASG,OAAOA,CAACC,UAAoB,EAAEL,MAAc,EAAE,GAAGM,IAAgB,EAAA;AACtE;EACAN,MAAM,CAACE,KAAK,EAAE,CAAA;EAEd,IAAI;AACA,IAAA,IAAIK,MAAM,CAAA;AACV,IAAA,IAAIF,UAAU,KAAKG,SAAS,IAAIH,UAAU,KAAK,IAAI,EAAE;MACjDE,MAAM,GAAGF,UAAU,CAACI,KAAK,CAAC,IAAI,EAAEH,IAAI,CAAC,CAAA;AACzC,KAAA;AAEA,IAAA,OAAOC,MAAM,CAAA;AACjB,GAAC,SAAS;IACNP,MAAM,CAACE,KAAK,EAAE,CAAA;AACd,IAAA,IAAIF,MAAM,CAACE,KAAK,KAAK,CAAC,EAAE;AACpBF,MAAAA,MAAM,CAACG,OAAO,CAACO,OAAO,CAACC,EAAE,IAAG;AACxBA,QAAAA,EAAE,CAACF,KAAK,CAAC,IAAI,EAAEH,IAAI,CAAC,CAAA;AACxB,OAAC,CAAC,CAAA;AACN,KAAA;AACJ,GAAA;AACJ,CAAA;AAEA,SAASM,YAAYA,CAACP,UAAoB,EAAEL,MAAc,EAAA;AACtD,EAAA,MAAMa,EAAE,GAAG,SAALA,EAAEA,CAAa,GAAGP,IAAgB,EAAA;IACpCF,OAAO,CAACb,IAAI,CAAC,IAAI,EAAEc,UAAU,EAAEL,MAAM,EAAE,GAAGM,IAAI,CAAC,CAAA;GAClD,CAAA;AACD,EAAA,OAAOO,EAAE,CAAA;AACb,CAAA;SAEgBC,KAAKA,CAAChB,MAAc,EAAEC,UAAkB,EAAEgB,WAAqB,EAAA;AAC3E,EAAA,MAAMf,MAAM,GAAGH,SAAS,CAACC,MAAM,EAAEC,UAAU,CAAC,CAAA;EAE5C,IAAIC,MAAM,CAACG,OAAO,CAACa,OAAO,CAACD,WAAW,CAAC,GAAG,CAAC,EAAE;AACzCf,IAAAA,MAAM,CAACG,OAAO,CAACc,IAAI,CAACF,WAAW,CAAC,CAAA;AACpC,GAAA;EAEA,MAAMG,aAAa,GAAGjC,MAAM,CAACkC,wBAAwB,CAACrB,MAAM,EAAEC,UAAU,CAAC,CAAA;AACzE,EAAA,IAAImB,aAAa,IAAIA,aAAa,CAACtB,qBAAqB,CAAC,EAAE;AACvD;AACA,IAAA,OAAA;AACJ,GAAA;AAEA,EAAA,MAAMwB,cAAc,GAAGtB,MAAM,CAACC,UAAU,CAAC,CAAA;AACzC,EAAA,MAAMsB,aAAa,GAAGC,gBAAgB,CAClCxB,MAAM,EACNC,UAAU,EACVmB,aAAa,GAAGA,aAAa,CAACK,UAAU,GAAGf,SAAS,EACpDR,MAAM,EACNoB,cAAc,CACjB,CAAA;EAEDnC,MAAM,CAACuC,cAAc,CAAC1B,MAAM,EAAEC,UAAU,EAAEsB,aAAa,CAAC,CAAA;AAC5D,CAAA;AAEA,SAASC,gBAAgBA,CACrBxB,MAAc,EACdC,UAAkB,EAClBwB,UAAe,EACfvB,MAAc,EACdoB,cAAwB,EAAA;AAExB,EAAA,IAAIK,WAAW,GAAGb,YAAY,CAACQ,cAAc,EAAEpB,MAAM,CAAC,CAAA;EAEtD,OAAO;AACH;IACA,CAACJ,qBAAqB,GAAG,IAAI;IAC7B8B,GAAG,EAAE,YAAA;AACD,MAAA,OAAOD,WAAW,CAAA;KACrB;AACDE,IAAAA,GAAG,EAAE,UAAUC,KAAK,EAAA;MAChB,IAAI,IAAI,KAAK9B,MAAM,EAAE;AACjB2B,QAAAA,WAAW,GAAGb,YAAY,CAACgB,KAAK,EAAE5B,MAAM,CAAC,CAAA;AAC7C,OAAC,MAAM;AACH;AACA;AACA;AACA;AACA,QAAA,MAAMqB,aAAa,GAAGC,gBAAgB,CAAC,IAAI,EAAEvB,UAAU,EAAEwB,UAAU,EAAEvB,MAAM,EAAE4B,KAAK,CAAC,CAAA;QACnF3C,MAAM,CAACuC,cAAc,CAAC,IAAI,EAAEzB,UAAU,EAAEsB,aAAa,CAAC,CAAA;AAC1D,OAAA;KACH;AACDQ,IAAAA,YAAY,EAAE,IAAI;AAClBN,IAAAA,UAAU,EAAEA,UAAAA;GACf,CAAA;AACL;;ACvHA,MAAMO,oBAAoB,gBAAGnC,MAAM,CAAC,wBAAwB,CAAC,CAAA;AAC7D,MAAMoC,yBAAyB,gBAAGpC,MAAM,CAAC,qBAAqB,CAAC,CAAA;AAE/D,IAAIqC,yBAAgD,CAAA;AACpD,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAa,YAAA,EAAA;AACTH,EAAAA,yBAAyB,GAAG;AACxBI,IAAAA,KAAK,eAAEC,8BAA8B,CAAC,OAAO,CAAC;AAC9CC,IAAAA,KAAK,eAAED,8BAA8B,CAAC,OAAO,CAAC;IAC9CE,OAAO,eAAEF,8BAA8B,CAAC,SAAS,CAAA;GACpD,CAAA;AACL,CAAA;AAcA,SAASG,iBAAiBA,CAACC,SAAoB,EAAA;AAAA,EAAA,IAAAC,qBAAA,CAAA;AAC3C;AACA;AACA;AACA,EAAA,OAAA,CAAAA,qBAAA,GAAQD,SAAS,CAACX,oBAAoB,CAAC,KAAAY,IAAAA,GAAAA,qBAAA,GAA/BD,SAAS,CAACX,oBAAoB,CAAC,GAAK;AACxCa,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,OAAO,EAAE,KAAK;AACdC,IAAAA,8BAA8B,EAAE,KAAK;AACrCC,IAAAA,WAAW,EAAE,IAAI;AACjBC,IAAAA,IAAI,EAAEC,cAAc,CAACP,SAAS,CAACQ,WAA6B,CAAC;AAC7DX,IAAAA,KAAK,EAAE9B,SAAS;AAChB4B,IAAAA,KAAK,EAAE5B,SAAS;AAChB+B,IAAAA,OAAO,EAAE/B,SAAAA;GACZ,CAAA;AACL,CAAA;AAEM,SAAU0C,0BAA0BA,CACtCC,cAAwC,EAAA;EAExC,MAAM;AAAEC,IAAAA,SAAAA;AAAW,GAAA,GAAGD,cAAc,CAAA;AAEpC,EAAA,IAAIA,cAAc,CAACpB,yBAAyB,CAAC,EAAE;AAC3C,IAAA,MAAMsB,WAAW,GAAGL,cAAc,CAACG,cAAc,CAAC,CAAA;AAClD,IAAA,MAAM,IAAIG,KAAK,CACX,CAAiCD,8BAAAA,EAAAA,WAAW,uDAAuD,CACtG,CAAA;AACL,GAAC,MAAM;AACHF,IAAAA,cAAc,CAACpB,yBAAyB,CAAC,GAAG,IAAI,CAAA;AACpD,GAAA;EAEA,IAAIqB,SAAS,CAACG,kBAAkB,EAAE;AAC9B,IAAA,MAAM,IAAID,KAAK,CAAC,gEAAgE,CAAC,CAAA;AACrF,GAAA;AACA,EAAA,IAAIH,cAAc,CAAC,WAAW,CAAC,KAAKK,aAAa,EAAE;AAC/C,IAAA,IAAI,CAACJ,SAAS,CAACK,qBAAqB,EAAE;MAClCL,SAAS,CAACK,qBAAqB,GAAGC,WAAW,CAAA;AACjD,KAAC,MAAM,IAAIN,SAAS,CAACK,qBAAqB,KAAKC,WAAW,EAAE;AACxD;AACA,MAAA,MAAM,IAAIJ,KAAK,CACX,8EAA8E,CACjF,CAAA;AACL,KAAA;AACJ,GAAA;AAEA,EAAA,IAAArB,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAa,YAAA,EAAA;AACTlD,IAAAA,MAAM,CAAC0E,gBAAgB,CAACP,SAAS,EAAEpB,yBAAyB,CAAC,CAAA;AACjE,GAAA;AAEA,EAAA,MAAM4B,cAAc,GAAGR,SAAS,CAACS,MAAM,CAAA;AACvC,EAAA,IAAI,OAAOD,cAAc,KAAK,UAAU,EAAE;AACtC,IAAA,MAAMP,WAAW,GAAGL,cAAc,CAACG,cAAc,CAAC,CAAA;IAClD,MAAM,IAAIG,KAAK,CACX,CAAiCD,8BAAAA,EAAAA,WAAW,iCAAiC,GACzE,CAAA,yEAAA,CAA2E,GAC3E,CAAA,uEAAA,CAAyE,CAChF,CAAA;AACL,GAAA;EAEAD,SAAS,CAACS,MAAM,GAAG,YAAA;AACf5E,IAAAA,MAAM,CAACuC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;AAClC;AACAK,MAAAA,YAAY,EAAE,KAAK;AACnBiC,MAAAA,QAAQ,EAAE,KAAK;AACflC,MAAAA,KAAK,EAAEmC,sBAAsB,EAAE,GACzBH,cAAc,GACdI,oBAAoB,CAACzE,IAAI,CAAC,IAAI,EAAEqE,cAAc,CAAA;AACvD,KAAA,CAAC,CAAA;AACF,IAAA,OAAO,IAAI,CAACC,MAAM,EAAE,CAAA;GACvB,CAAA;AAED,EAAA,MAAMI,yBAAyB,GAAGb,SAAS,CAACc,iBAAiB,CAAA;EAC7Dd,SAAS,CAACc,iBAAiB,GAAG,YAAA;AAC1B,IAAA,IAAIjC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAA,YAAA,IAAW,IAAI,CAAC+B,iBAAiB,KAAKjF,MAAM,CAACkF,cAAc,CAAC,IAAI,CAAC,CAACD,iBAAiB,EAAE;AACrF,MAAA,MAAMb,WAAW,GAAGL,cAAc,CAACG,cAAc,CAAC,CAAA;MAClD,MAAM,IAAIG,KAAK,CACX,CAAA,wBAAA,EAA2BD,WAAW,CAAqD,mDAAA,CAAA,GACvF,+FAA+F,CACtG,CAAA;AACL,KAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAA,MAAMe,KAAK,GAAG5B,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAErC4B,KAAK,CAACxB,OAAO,GAAG,IAAI,CAAA;AAEpB;AACAyB,IAAAA,6BAA4B,CAACC,UAAU,CAAC,IAAI,CAAC,CAAA;AAE7C;AACA;AACA;AACA;IACAF,KAAK,CAACtB,WAAW,GAAG,MAAM,IAAI,CAACA,WAAW,EAAE,CAAA;IAE5C,IAAI,CAACsB,KAAK,CAACzB,QAAQ,IAAIyB,KAAK,CAACvB,8BAA8B,EAAE;AACzD;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;MAEAuB,KAAK,CAACtB,WAAW,EAAE,CAAA;AACvB,KAAA;IACA,OAAOmB,yBAAyB,oBAAzBA,yBAAyB,CAAExD,KAAK,CAAC,IAAI,EAAE8D,SAAS,CAAC,CAAA;GAC3D,CAAA;AAED;AACAzD,EAAAA,KAAK,CAACsC,SAAS,EAAE,sBAAsB,EAAE,YAAA;AAAA,IAAA,IAAAoB,eAAA,CAAA;IACrC,IAAIT,sBAAsB,EAAE,EAAE;AAC1B,MAAA,OAAA;AACJ,KAAA;AACA,IAAA,MAAMK,KAAK,GAAG5B,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAAgC,eAAA,GAAAJ,KAAK,CAACzB,QAAQ,aAAd6B,eAAA,CAAgBC,OAAO,EAAE,CAAA;IACzBL,KAAK,CAACzB,QAAQ,GAAG,IAAI,CAAA;IACrByB,KAAK,CAACtB,WAAW,GAAG,IAAI,CAAA;IACxBsB,KAAK,CAACxB,OAAO,GAAG,KAAK,CAAA;IACrBwB,KAAK,CAACvB,8BAA8B,GAAG,KAAK,CAAA;AAChD,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOM,cAAc,CAAA;AACzB,CAAA;AAEA;AACA,SAASH,cAAcA,CAACG,cAA8B,EAAA;EAClD,OAAOA,cAAc,CAACE,WAAW,IAAIF,cAAc,CAACJ,IAAI,IAAI,aAAa,CAAA;AAC7E,CAAA;AAEA,SAASiB,oBAAoBA,CAACJ,cAAmB,EAAA;AAC7C,EAAA,MAAMc,mBAAmB,GAAGd,cAAc,CAACe,IAAI,CAAC,IAAI,CAAC,CAAA;AAErD,EAAA,MAAMP,KAAK,GAAG5B,iBAAiB,CAAC,IAAI,CAAC,CAAA;EAErC,SAASoC,cAAcA,GAAA;AACnB,IAAA,IAAI,CAACR,KAAK,CAACzB,QAAQ,EAAE;AACjB;AACAyB,MAAAA,KAAK,CAACzB,QAAQ,GAAGkC,cAAc,CAACT,KAAK,CAAC,CAAA;AACtC,MAAA,IAAI,CAACA,KAAK,CAACxB,OAAO,EAAE;AAChB;AACA;QACAyB,6BAA4B,CAACS,QAAQ,CAAC,IAAI,EAAEV,KAAK,EAAE,IAAI,CAAC,CAAA;AAC5D,OAAA;AACJ,KAAA;IAEA,IAAIW,KAAK,GAAYvE,SAAS,CAAA;IAC9B,IAAIwE,YAAY,GAAGxE,SAAS,CAAA;AAC5B4D,IAAAA,KAAK,CAACzB,QAAQ,CAACsC,KAAK,CAAC,MAAK;MACtB,IAAI;AACA;AACA;AACAD,QAAAA,YAAY,GAAGE,kBAAkB,CAAC,KAAK,EAAER,mBAAmB,CAAC,CAAA;OAChE,CAAC,OAAOS,CAAC,EAAE;AACRJ,QAAAA,KAAK,GAAGI,CAAC,CAAA;AACb,OAAA;AACJ,KAAC,CAAC,CAAA;AACF,IAAA,IAAIJ,KAAK,EAAE;AACP,MAAA,MAAMA,KAAK,CAAA;AACf,KAAA;AACA,IAAA,OAAOC,YAAY,CAAA;AACvB,GAAA;AAEA,EAAA,OAAOJ,cAAc,CAAA;AACzB,CAAA;AAEA,SAASC,cAAcA,CAACT,KAA6B,EAAA;EACjD,OAAO,IAAIgB,QAAQ,CAAC,CAAA,EAAGhB,KAAK,CAACrB,IAAI,CAAW,SAAA,CAAA,EAAE,MAAK;AAC/C,IAAA,IAAI,CAACqB,KAAK,CAACxB,OAAO,EAAE;AAChB;AACA;AACA;AACA;MACAwB,KAAK,CAACvB,8BAA8B,GAAG,IAAI,CAAA;AAC3C,MAAA,OAAA;AACJ,KAAA;IAEA,IAAI;AACAuB,MAAAA,KAAK,CAACtB,WAAW,IAAA,IAAA,IAAjBsB,KAAK,CAACtB,WAAW,EAAI,CAAA;KACxB,CAAC,OAAOiC,KAAK,EAAE;AAAA,MAAA,IAAAM,gBAAA,CAAA;MACZ,CAAAA,gBAAA,GAAAjB,KAAK,CAACzB,QAAQ,aAAd0C,gBAAA,CAAgBZ,OAAO,EAAE,CAAA;MACzBL,KAAK,CAACzB,QAAQ,GAAG,IAAI,CAAA;AACzB,KAAA;AACJ,GAAC,CAAC,CAAA;AACN,CAAA;AAEA,SAASe,WAAWA,CAAC4B,SAA+B,EAAEC,SAAc,EAAA;EAChE,IAAIxB,sBAAsB,EAAE,EAAE;AAC1ByB,IAAAA,OAAO,CAACC,IAAI,CACR,iLAAiL,CACpL,CAAA;AACL,GAAA;AACA;AACA,EAAA,IAAI,IAAI,CAACnD,KAAK,KAAKiD,SAAS,EAAE;AAC1B,IAAA,OAAO,IAAI,CAAA;AACf,GAAA;AACA;AACA;AACA;AACA;EACA,OAAO,CAAC3G,YAAY,CAAC,IAAI,CAACwD,KAAK,EAAEkD,SAAS,CAAC,CAAA;AAC/C,CAAA;AAEA,SAASjD,8BAA8BA,CAACqD,GAAkC,EAAA;EACtE,OAAO;AACH7D,IAAAA,YAAY,EAAE,IAAI;AAClBN,IAAAA,UAAU,EAAE,IAAI;AAChBG,IAAAA,GAAGA,GAAA;AACC,MAAA,MAAM0C,KAAK,GAAG5B,iBAAiB,CAAC,IAAI,CAAC,CAAA;AACrC,MAAA,MAAMmD,UAAU,GAAGC,eAAe,EAAE,CAACC,kBAAkB,CAAA;AACvD,MAAA,IAAIF,UAAU,IAAIA,UAAU,KAAKvB,KAAK,CAACzB,QAAQ,EAAE;QAC7C,MAAM,IAAIW,KAAK,CACX,CAAA,0BAAA,EAA6Bc,KAAK,CAACrB,IAAI,IAAI2C,GAAG,CAAA;;AAE0E,2IAAA,CAAA,CAC3H,CAAA;AACL,OAAA;MACA,OAAOtB,KAAK,CAACsB,GAAG,CAAC,CAAA;KACpB;IACD/D,GAAGA,CAACC,KAAK,EAAA;AACLY,MAAAA,iBAAiB,CAAC,IAAI,CAAC,CAACkD,GAAG,CAAC,GAAG9D,KAAK,CAAA;AACxC,KAAA;GACH,CAAA;AACL;;ACnQgB,SAAAkE,QAAQA,CACpBrD,SAAY,EACZF,OAA+B,EAAA;AAE/B,EAAA,IAAIA,OAAO,IAAIA,OAAO,CAACwD,IAAI,KAAK,OAAO,EAAE;AACrC,IAAA,MAAM,IAAIzC,KAAK,CAAC,qDAAqD,CAAC,CAAA;AAC1E,GAAA;AAEA,EAAA,IACIrE,MAAM,CAACmE,SAAS,CAAC4C,aAAa,CAACzG,IAAI,CAAC0G,KAAK,CAACC,SAAS,EAAEzD,SAAS,CAAC,IAC/DxD,MAAM,CAACmE,SAAS,CAAC4C,aAAa,CAACzG,IAAI,CAAC0G,KAAK,CAACzC,aAAa,EAAEf,SAAS,CAAC,EACrE;AACE;IACA,OAAOS,0BAA0B,CAACT,SAA2C,CAAM,CAAA;AACvF,GAAC,MAAM;AACH;IACA,OAAO0D,UAAY,CAAC1D,SAAyC,CAAiB,CAAA;AAClF,GAAA;AACJ;;AC7BA,IAAI,CAACyD,SAAS,EAAE;AACZ,EAAA,MAAM,IAAI5C,KAAK,CAAC,2CAA2C,CAAC,CAAA;AAChE,CAAA;AAEA,IAAI,CAAC8C,UAAU,EAAE;AACb,EAAA,MAAM,IAAI9C,KAAK,CAAC,0CAA0C,CAAC,CAAA;AAC/D;;;;"}
1
+ {"version":3,"file":"mobxreact.mjs","sources":["../src/utils/utils.ts","../src/observerClass.ts","../src/observer.tsx","../src/index.ts"],"sourcesContent":["export function shallowEqual(objA: any, objB: any): boolean {\n //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (is(objA, objB)) {\n return true\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false\n }\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n if (keysA.length !== keysB.length) {\n return false\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false\n }\n }\n return true\n}\n\nfunction is(x: any, y: any): boolean {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y\n } else {\n return x !== x && y !== y\n }\n}\n\n/**\n * Utilities for patching componentWillUnmount, to make sure @disposeOnUnmount works correctly icm with user defined hooks\n * and the handler provided by mobx-react\n */\nconst mobxMixins = Symbol(\"patchMixins\")\nconst mobxPatchedDefinition = Symbol(\"patchedDefinition\")\n\nexport interface Mixins extends Record<string, any> {\n locks: number\n methods: Array<Function>\n}\n\nfunction getMixins(target: object, methodName: string): Mixins {\n const mixins = (target[mobxMixins] = target[mobxMixins] || {})\n const methodMixins = (mixins[methodName] = mixins[methodName] || {})\n methodMixins.locks = methodMixins.locks || 0\n methodMixins.methods = methodMixins.methods || []\n return methodMixins\n}\n\nfunction wrapper(realMethod: Function, mixins: Mixins, ...args: Array<any>) {\n // locks are used to ensure that mixins are invoked only once per invocation, even on recursive calls\n mixins.locks++\n\n try {\n let retVal\n if (realMethod !== undefined && realMethod !== null) {\n retVal = realMethod.apply(this, args)\n }\n\n return retVal\n } finally {\n mixins.locks--\n if (mixins.locks === 0) {\n mixins.methods.forEach(mx => {\n mx.apply(this, args)\n })\n }\n }\n}\n\nfunction wrapFunction(realMethod: Function, mixins: Mixins): (...args: Array<any>) => any {\n const fn = function (...args: Array<any>) {\n wrapper.call(this, realMethod, mixins, ...args)\n }\n return fn\n}\n\nexport function patch(target: object, methodName: string, mixinMethod: Function): void {\n const mixins = getMixins(target, methodName)\n\n if (mixins.methods.indexOf(mixinMethod) < 0) {\n mixins.methods.push(mixinMethod)\n }\n\n const oldDefinition = Object.getOwnPropertyDescriptor(target, methodName)\n if (oldDefinition && oldDefinition[mobxPatchedDefinition]) {\n // already patched definition, do not repatch\n return\n }\n\n const originalMethod = target[methodName]\n const newDefinition = createDefinition(\n target,\n methodName,\n oldDefinition ? oldDefinition.enumerable : undefined,\n mixins,\n originalMethod\n )\n\n Object.defineProperty(target, methodName, newDefinition)\n}\n\nfunction createDefinition(\n target: object,\n methodName: string,\n enumerable: any,\n mixins: Mixins,\n originalMethod: Function\n): PropertyDescriptor {\n let wrappedFunc = wrapFunction(originalMethod, mixins)\n\n return {\n // @ts-ignore\n [mobxPatchedDefinition]: true,\n get: function () {\n return wrappedFunc\n },\n set: function (value) {\n if (this === target) {\n wrappedFunc = wrapFunction(value, mixins)\n } else {\n // when it is an instance of the prototype/a child prototype patch that particular case again separately\n // since we need to store separate values depending on wether it is the actual instance, the prototype, etc\n // e.g. the method for super might not be the same as the method for the prototype which might be not the same\n // as the method for the instance\n const newDefinition = createDefinition(this, methodName, enumerable, mixins, value)\n Object.defineProperty(this, methodName, newDefinition)\n }\n },\n configurable: true,\n enumerable: enumerable\n }\n}\n","import { PureComponent, Component, ComponentClass, ClassAttributes } from \"react\"\nimport {\n _allowStateChanges,\n Reaction,\n _allowStateReadsStart,\n _allowStateReadsEnd,\n _getGlobalState\n} from \"mobx\"\nimport {\n isUsingStaticRendering,\n _observerFinalizationRegistry as observerFinalizationRegistry\n} from \"mobx-react-lite\"\nimport { shallowEqual, patch } from \"./utils/utils\"\n\nconst administrationSymbol = Symbol(\"ObserverAdministration\")\nconst isMobXReactObserverSymbol = Symbol(\"isMobXReactObserver\")\n\nlet observablePropDescriptors: PropertyDescriptorMap\nif (__DEV__) {\n observablePropDescriptors = {\n props: createObservablePropDescriptor(\"props\"),\n state: createObservablePropDescriptor(\"state\"),\n context: createObservablePropDescriptor(\"context\")\n }\n}\n\ntype ObserverAdministration = {\n reaction: Reaction | null // also serves as disposed flag\n forceUpdate: Function | null\n mounted: boolean // we could use forceUpdate as mounted flag\n reactionInvalidatedBeforeMount: boolean\n name: string\n // Used only on __DEV__\n props: any\n state: any\n context: any\n}\n\nfunction getAdministration(component: Component): ObserverAdministration {\n // We create administration lazily, because we can't patch constructor\n // and the exact moment of initialization partially depends on React internals.\n // At the time of writing this, the first thing invoked is one of the observable getter/setter (state/props/context).\n return (component[administrationSymbol] ??= {\n reaction: null,\n mounted: false,\n reactionInvalidatedBeforeMount: false,\n forceUpdate: null,\n name: getDisplayName(component.constructor as ComponentClass),\n state: undefined,\n props: undefined,\n context: undefined\n })\n}\n\nexport function makeClassComponentObserver(\n componentClass: ComponentClass<any, any>\n): ComponentClass<any, any> {\n const { prototype } = componentClass\n\n if (componentClass[isMobXReactObserverSymbol]) {\n const displayName = getDisplayName(componentClass)\n throw new Error(\n `The provided component class (${displayName}) has already been declared as an observer component.`\n )\n } else {\n componentClass[isMobXReactObserverSymbol] = true\n }\n\n if (prototype.componentWillReact) {\n throw new Error(\"The componentWillReact life-cycle event is no longer supported\")\n }\n if (componentClass[\"__proto__\"] !== PureComponent) {\n if (!prototype.shouldComponentUpdate) {\n prototype.shouldComponentUpdate = observerSCU\n } else if (prototype.shouldComponentUpdate !== observerSCU) {\n // n.b. unequal check, instead of existence check, as @observer might be on superclass as well\n throw new Error(\n \"It is not allowed to use shouldComponentUpdate in observer based components.\"\n )\n }\n }\n\n if (__DEV__) {\n Object.defineProperties(prototype, observablePropDescriptors)\n }\n\n const originalRender = prototype.render\n if (typeof originalRender !== \"function\") {\n const displayName = getDisplayName(componentClass)\n throw new Error(\n `[mobx-react] class component (${displayName}) is missing \\`render\\` method.` +\n `\\n\\`observer\\` requires \\`render\\` being a function defined on prototype.` +\n `\\n\\`render = () => {}\\` or \\`render = function() {}\\` is not supported.`\n )\n }\n\n prototype.render = function () {\n Object.defineProperty(this, \"render\", {\n // There is no safe way to replace render, therefore it's forbidden.\n configurable: false,\n writable: false,\n value: isUsingStaticRendering()\n ? originalRender\n : createReactiveRender.call(this, originalRender)\n })\n return this.render()\n }\n\n const originalComponentDidMount = prototype.componentDidMount\n prototype.componentDidMount = function () {\n if (__DEV__ && this.componentDidMount !== Object.getPrototypeOf(this).componentDidMount) {\n const displayName = getDisplayName(componentClass)\n throw new Error(\n `[mobx-react] \\`observer(${displayName}).componentDidMount\\` must be defined on prototype.` +\n `\\n\\`componentDidMount = () => {}\\` or \\`componentDidMount = function() {}\\` is not supported.`\n )\n }\n\n // `componentDidMount` may not be called at all. React can abandon the instance after `render`.\n // That's why we use finalization registry to dispose reaction created during render.\n // Happens with `<Suspend>` see #3492\n //\n // `componentDidMount` can be called immediately after `componentWillUnmount` without calling `render` in between.\n // Happens with `<StrictMode>`see #3395.\n //\n // If `componentDidMount` is called, it's guaranteed to run synchronously with render (similary to `useLayoutEffect`).\n // Therefore we don't have to worry about external (observable) state being updated before mount (no state version checking).\n //\n // Things may change: \"In the future, React will provide a feature that lets components preserve state between unmounts\"\n\n const admin = getAdministration(this)\n\n admin.mounted = true\n\n // Component instance committed, prevent reaction disposal.\n observerFinalizationRegistry.unregister(this)\n\n // We don't set forceUpdate before mount because it requires a reference to `this`,\n // therefore `this` could NOT be garbage collected before mount,\n // preventing reaction disposal by FinalizationRegistry and leading to memory leak.\n // As an alternative we could have `admin.instanceRef = new WeakRef(this)`, but lets avoid it if possible.\n admin.forceUpdate = () => this.forceUpdate()\n\n if (!admin.reaction || admin.reactionInvalidatedBeforeMount) {\n // Missing reaction:\n // 1. Instance was unmounted (reaction disposed) and immediately remounted without running render #3395.\n // 2. Reaction was disposed by finalization registry before mount. Shouldn't ever happen for class components:\n // `componentDidMount` runs synchronously after render, but our registry are deferred (can't run in between).\n // In any case we lost subscriptions to observables, so we have to create new reaction and re-render to resubscribe.\n // The reaction will be created lazily by following render.\n\n // Reaction invalidated before mount:\n // 1. A descendant's `componenDidMount` invalidated it's parent #3730\n\n admin.forceUpdate()\n }\n return originalComponentDidMount?.apply(this, arguments)\n }\n\n // TODO@major Overly complicated \"patch\" is only needed to support the deprecated @disposeOnUnmount\n patch(prototype, \"componentWillUnmount\", function () {\n if (isUsingStaticRendering()) {\n return\n }\n const admin = getAdministration(this)\n admin.reaction?.dispose()\n admin.reaction = null\n admin.forceUpdate = null\n admin.mounted = false\n admin.reactionInvalidatedBeforeMount = false\n })\n\n return componentClass\n}\n\n// Generates a friendly name for debugging\nfunction getDisplayName(componentClass: ComponentClass) {\n return componentClass.displayName || componentClass.name || \"<component>\"\n}\n\nfunction createReactiveRender(originalRender: any) {\n const boundOriginalRender = originalRender.bind(this)\n\n const admin = getAdministration(this)\n\n function reactiveRender() {\n if (!admin.reaction) {\n // Create reaction lazily to support re-mounting #3395\n admin.reaction = createReaction(admin)\n if (!admin.mounted) {\n // React can abandon this instance and never call `componentDidMount`/`componentWillUnmount`,\n // we have to make sure reaction will be disposed.\n observerFinalizationRegistry.register(this, admin, this)\n }\n }\n\n let error: unknown = undefined\n let renderResult = undefined\n admin.reaction.track(() => {\n try {\n // TODO@major\n // Optimization: replace with _allowStateChangesStart/End (not available in mobx@6.0.0)\n renderResult = _allowStateChanges(false, boundOriginalRender)\n } catch (e) {\n error = e\n }\n })\n if (error) {\n throw error\n }\n return renderResult\n }\n\n return reactiveRender\n}\n\nfunction createReaction(admin: ObserverAdministration) {\n return new Reaction(`${admin.name}.render()`, () => {\n if (!admin.mounted) {\n // This is neccessary to avoid react warning about calling forceUpdate on component that isn't mounted yet.\n // This happens when component is abandoned after render - our reaction is already created and reacts to changes.\n // `componenDidMount` runs synchronously after `render`, so unlike functional component, there is no delay during which the reaction could be invalidated.\n // However `componentDidMount` runs AFTER it's descendants' `componentDidMount`, which CAN invalidate the reaction, see #3730. Therefore remember and forceUpdate on mount.\n admin.reactionInvalidatedBeforeMount = true\n return\n }\n\n try {\n admin.forceUpdate?.()\n } catch (error) {\n admin.reaction?.dispose()\n admin.reaction = null\n }\n })\n}\n\nfunction observerSCU(nextProps: ClassAttributes<any>, nextState: any): boolean {\n if (isUsingStaticRendering()) {\n console.warn(\n \"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\"\n )\n }\n // update on any state changes (as is the default)\n if (this.state !== nextState) {\n return true\n }\n // update if props are shallowly not equal, inspired by PureRenderMixin\n // we could return just 'false' here, and avoid the `skipRender` checks etc\n // however, it is nicer if lifecycle events are triggered like usually,\n // so we return true here if props are shallowly modified.\n return !shallowEqual(this.props, nextProps)\n}\n\nfunction createObservablePropDescriptor(key: \"props\" | \"state\" | \"context\") {\n return {\n configurable: true,\n enumerable: true,\n get() {\n const admin = getAdministration(this)\n const derivation = _getGlobalState().trackingDerivation\n if (derivation && derivation !== admin.reaction) {\n throw new Error(\n `[mobx-react] Cannot read \"${admin.name}.${key}\" in a reactive context, as it isn't observable.\n Please use component lifecycle method to copy the value into a local observable first.\n See https://github.com/mobxjs/mobx/blob/main/packages/mobx-react/README.md#note-on-using-props-and-state-in-derivations`\n )\n }\n return admin[key]\n },\n set(value) {\n getAdministration(this)[key] = value\n }\n }\n}\n","import * as React from \"react\"\nimport { observer as observerLite } from \"mobx-react-lite\"\n\nimport { makeClassComponentObserver } from \"./observerClass\"\nimport { IReactComponent } from \"./types/IReactComponent\"\n\n/**\n * Observer function / decorator\n */\nexport function observer<T extends IReactComponent>(\n component: T,\n context: ClassDecoratorContext\n): void\nexport function observer<T extends IReactComponent>(component: T): T\nexport function observer<T extends IReactComponent>(\n component: T,\n context?: ClassDecoratorContext\n): T {\n if (context && context.kind !== \"class\") {\n throw new Error(\"The @observer decorator can be used on classes only\")\n }\n\n if (\n Object.prototype.isPrototypeOf.call(React.Component, component) ||\n Object.prototype.isPrototypeOf.call(React.PureComponent, component)\n ) {\n // Class component\n return makeClassComponentObserver(component as React.ComponentClass<any, any>) as T\n } else {\n // Function component\n return observerLite(component as React.FunctionComponent<any>) as unknown as T\n }\n}\n","import { observable } from \"mobx\"\nimport { Component } from \"react\"\n\nif (!Component) {\n throw new Error(\"mobx-react requires React to be available\")\n}\n\nif (!observable) {\n throw new Error(\"mobx-react requires mobx to be available\")\n}\n\nexport {\n Observer,\n isUsingStaticRendering,\n enableStaticRendering,\n useLocalObservable,\n _observerFinalizationRegistry,\n clearTimers\n} from \"mobx-react-lite\"\n\nexport { observer } from \"./observer\"\n"],"names":["shallowEqual","objA","objB","is","keysA","Object","keys","keysB","length","i","hasOwnProperty","call","x","y","mobxMixins","Symbol","mobxPatchedDefinition","getMixins","target","methodName","mixins","methodMixins","locks","methods","wrapper","realMethod","args","retVal","undefined","apply","forEach","mx","wrapFunction","fn","patch","mixinMethod","indexOf","push","oldDefinition","getOwnPropertyDescriptor","originalMethod","newDefinition","createDefinition","enumerable","defineProperty","wrappedFunc","get","set","value","configurable","administrationSymbol","isMobXReactObserverSymbol","observablePropDescriptors","__DEV__","props","createObservablePropDescriptor","state","context","getAdministration","component","_component$administra","reaction","mounted","reactionInvalidatedBeforeMount","forceUpdate","name","getDisplayName","constructor","makeClassComponentObserver","componentClass","prototype","displayName","Error","componentWillReact","PureComponent","shouldComponentUpdate","observerSCU","defineProperties","originalRender","render","writable","isUsingStaticRendering","createReactiveRender","originalComponentDidMount","componentDidMount","getPrototypeOf","admin","observerFinalizationRegistry","unregister","arguments","_admin$reaction","dispose","boundOriginalRender","bind","reactiveRender","createReaction","register","error","renderResult","track","_allowStateChanges","e","Reaction","_admin$reaction2","nextProps","nextState","console","warn","key","derivation","_getGlobalState","trackingDerivation","observer","kind","isPrototypeOf","React","Component","observerLite","observable"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mobx-react",
3
- "version": "10.0.0",
3
+ "version": "10.0.2",
4
4
  "description": "React bindings for MobX. Create fully reactive components.",
5
5
  "source": "src/index.ts",
6
6
  "type": "commonjs",
@@ -20,6 +20,10 @@
20
20
  "types": "./dist/index.d.ts",
21
21
  "default": "./dist/mobxreact.esm.js"
22
22
  },
23
+ "node": {
24
+ "types": "./dist/index.d.ts",
25
+ "default": "./dist/index.js"
26
+ },
23
27
  "import": {
24
28
  "types": "./dist/index.d.ts",
25
29
  "default": "./dist/mobxreact.mjs"
@@ -55,15 +59,15 @@
55
59
  },
56
60
  "homepage": "https://mobx.js.org",
57
61
  "dependencies": {
58
- "mobx-react-lite": "^5.0.0"
62
+ "mobx-react-lite": "^5.0.3"
59
63
  },
60
64
  "peerDependencies": {
61
65
  "mobx": "^7.0.0",
62
66
  "react": "^18 || ^19"
63
67
  },
64
68
  "devDependencies": {
65
- "mobx": "^7.0.0",
66
- "mobx-react-lite": "^5.0.0"
69
+ "mobx": "^7.0.3",
70
+ "mobx-react-lite": "^5.0.3"
67
71
  },
68
72
  "keywords": [
69
73
  "mobx",