From 1926c69f53168619d688f348aa587e8f3ae579ae Mon Sep 17 00:00:00 2001 From: Egor <7gorbachevm@gmail.com> Date: Fri, 31 Jul 2026 01:54:37 +0700 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=9A=80=F0=9F=9A=80=20MobX=207=20?= =?UTF-8?q?=F0=9F=9A=80=F0=9F=9A=80=20(#4671)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Set up bundle check * Remove legacy MobX runtime support * Fold lite React bindings into mobx-react * Remove mobx-react-lite workspace * Update docs for MobX 7 * Restore actions docs from main * Clean up MobX 7 docs wording * Trim Proxy support docs wording * Refine installation guide wording * Remove redundant decorator cleanup note * cleanup * Tighten MobX 7 migration guide * cleanup * cleanup * cleanup * cleanup * cleanup * stable formatting on installation * Restore migrated mobx-react-lite tests * Remove batching * Add react batching tests * cleanup test * Remove useless alias * better changeset * better changeset [skip ci] * wording [skip ci] * Centralize mobx-react test cleanup * Switch to plain rollup * Bring back mobx-react-lite * cleanup * Fix observer test type errors * migration 7 cleanup [skip ci] * cleanu p * Fix TS * clean up [skip ci] * f [skip ci] * cross update required deps * f * shorten diff * cleanup * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Fix mobx-react test source import * Fix copilot warning * Shrink dev deps * Simplify test * don't deep-import mobx internals in size comparison script * Fix MobX 7 peer dependency ranges * Update trace note * wording [skip ci] * Simplify decorator types / factories * Remove outdated errors * Correct cross deps + drop perf script param * Version packages for MobX 7 * Remove the fallback for the old makeObservable usage without the second arg * Fix alias * Revert "Version packages for MobX 7" This reverts commit 493ab2874ccbc8ec0db6ebfe1536dede4dbbc0c4. * Keep prerelease dev deps installable * Address become observed feedback * Hoist dev deps * Unify rollup config creation * All configs to .mjs * Clean up build * Even smaller bundle size * Move size check to the root * Fix check size CI * resurrect benchmarks in tests * Further reduce bundlesize * Remove namespaced annotations / comparers * reflect new bundlesize improvements * rename comparer* -> compare* * upd changeset * clarify changeset [skip ci] * clean up * Use assign alias to trim down the bundle * Shorten errors & flow names in prod * drop unreachable branch * restore formatting * http isn't required * Reduce tree-shaken Mobx size to ~10kb gzip --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .changeset/mobx-7-react-10.md | 69 + .github/workflows/build_and_test.yml | 4 +- docs/analyzing-reactivity.md | 52 - docs/api.md | 15 +- docs/assets/getting-started-assets/script.js | 12 +- docs/assets/trace-tips2.png | Bin 265124 -> 0 bytes docs/assets/trace.gif | Bin 1037711 -> 0 bytes docs/collection-utilities.md | 4 +- docs/computeds-with-args.md | 20 +- docs/computeds.md | 16 +- docs/configuration.md | 34 +- docs/enabling-decorators.md | 49 +- docs/installation.md | 37 +- docs/migrating-from-6-to-7.md | 295 ++ docs/observable-state.md | 77 +- docs/react-integration.md | 32 +- docs/reactions.md | 20 +- docs/the-gist-of-mobx.md | 3 +- docs/understanding-reactivity.md | 83 +- package-lock.json | 3138 ++--------------- package.json | 23 +- packages/eslint-plugin-mobx/package.json | 11 +- packages/mobx-react-lite/README.md | 111 +- .../__tests__/ObserverComponent.test.tsx | 8 +- .../__snapshots__/observer.test.tsx.snap | 48 - .../printDebugValue.test.ts.snap | 26 - ...sObservableSource.deprecated.test.tsx.snap | 24 - .../useLocalStore.deprecated.test.tsx.snap | 33 - .../__tests__/{api.test.ts => api.test.tsx} | 6 - .../__tests__/assertEnvironment.test.ts | 21 - .../__tests__/assertEnvironment.test.tsx | 31 + .../__tests__/enforceActions.test.tsx | 10 +- .../__tests__/observer.test.tsx | 122 +- .../__tests__/printDebugValue.test.ts | 27 - .../strictAndConcurrentMode.test.tsx | 5 +- ...rentModeUsingFinalizationRegistry.test.tsx | 4 +- ...trictAndConcurrentModeUsingTimers.test.tsx | 4 +- .../useAsObservableSource.deprecated.test.tsx | 348 -- .../__tests__/useAsObservableSource.test.tsx | 437 --- .../__tests__/useLocalObservable.test.tsx | 9 +- .../useLocalStore.deprecated.test.tsx | 441 --- packages/mobx-react-lite/__tests__/utils.ts | 18 - .../mobx-react-lite/batchingForReactDom.js | 3 - .../mobx-react-lite/batchingForReactNative.js | 3 - packages/mobx-react-lite/batchingOptOut.js | 3 - packages/mobx-react-lite/jest.setup.ts | 30 +- packages/mobx-react-lite/package.json | 61 +- packages/mobx-react-lite/rollup.config.mjs | 11 + .../mobx-react-lite/src/ObserverComponent.ts | 48 +- packages/mobx-react-lite/src/index.ts | 31 +- packages/mobx-react-lite/src/observer.ts | 90 +- .../src/useAsObservableSource.ts | 18 - .../mobx-react-lite/src/useLocalObservable.ts | 2 +- packages/mobx-react-lite/src/useLocalStore.ts | 23 - packages/mobx-react-lite/src/useObserver.ts | 8 +- .../src/utils/assertEnvironment.ts | 12 +- .../src/utils/observerBatching.ts | 25 - .../src/utils/printDebugValue.ts | 5 - .../src/utils/reactBatchedUpdates.native.ts | 2 - .../src/utils/reactBatchedUpdates.ts | 1 - .../mobx-react-lite/tsconfig.build.cjs.json | 7 - .../mobx-react-lite/tsconfig.build.es.json | 7 - packages/mobx-react-lite/tsconfig.build.json | 9 - packages/mobx-react-lite/tsdx.config.js | 15 - packages/mobx-react/README.md | 272 +- .../__tests__/ObserverComponent.test.tsx | 42 + .../mobx-react/__tests__/Provider.test.tsx | 85 - .../__snapshots__/hooks.test.tsx.snap | 24 - packages/mobx-react/__tests__/api.test.tsx | 19 + .../mobx-react/__tests__/context.test.tsx | 134 - .../__tests__/disposeOnUnmount.test.tsx | 489 --- .../__tests__/enforceActions.test.tsx | 66 + packages/mobx-react/__tests__/hooks.test.tsx | 101 - packages/mobx-react/__tests__/inject.test.tsx | 553 --- .../mobx-react/__tests__/issue21.test.tsx | 41 +- .../mobx-react/__tests__/observer.test.tsx | 260 +- .../mobx-react/__tests__/propTypes.test.ts | 216 -- .../__tests__/reactBatching.test.tsx | 53 + .../__tests__/reactContext.test.tsx | 71 + .../mobx-react/__tests__/stateless.test.tsx | 61 +- .../mobx-react/__tests__/utils/compile-ts.tsx | 189 +- packages/mobx-react/batchingForReactDom.js | 1 - packages/mobx-react/batchingForReactNative.js | 1 - packages/mobx-react/batchingOptOut.js | 1 - packages/mobx-react/jest.config.js | 3 + packages/mobx-react/jest.setup.ts | 30 +- packages/mobx-react/package.json | 46 +- packages/mobx-react/rollup.config.mjs | 12 + packages/mobx-react/src/Provider.tsx | 29 - packages/mobx-react/src/disposeOnUnmount.ts | 111 - packages/mobx-react/src/index.ts | 15 +- packages/mobx-react/src/inject.ts | 107 - packages/mobx-react/src/observer.tsx | 17 +- packages/mobx-react/src/propTypes.ts | 210 -- .../mobx-react/src/types/IStoresToProps.ts | 7 - packages/mobx-react/src/types/IValueMap.ts | 1 - .../mobx-react/src/types/IWrappedComponent.ts | 4 - packages/mobx-react/src/utils/utils.ts | 46 - packages/mobx-react/tsdx.config.js | 16 - .../base/__snapshots__/proxies.js.snap | 35 - packages/mobx/__tests__/base/action.js | 4 +- packages/mobx/__tests__/base/api.js | 14 +- .../mobx/__tests__/base/babel-decorators.js | 1100 ------ packages/mobx/__tests__/base/babel-tests.js | 42 +- .../mobx/__tests__/base/become-observed.ts | 30 +- packages/mobx/__tests__/base/decorate.js | 3 +- packages/mobx/__tests__/base/errorhandling.js | 66 - packages/mobx/__tests__/base/extras.js | 27 +- .../mobx/__tests__/base/make-observable.ts | 551 +-- packages/mobx/__tests__/base/makereactive.js | 16 +- packages/mobx/__tests__/base/map.js | 16 +- packages/mobx/__tests__/base/observables.js | 17 +- packages/mobx/__tests__/base/proxies.js | 39 +- packages/mobx/__tests__/base/reaction.js | 4 +- packages/mobx/__tests__/base/set.js | 4 +- packages/mobx/__tests__/base/spy.js | 2 +- .../stage3-decorators-inheritance.ts | 11 +- .../stage3-decorators.ts | 58 +- packages/mobx/__tests__/base/tojs.js | 9 - packages/mobx/__tests__/base/trace.ts | 148 - .../__tests__/base/typescript-decorators.ts | 1273 ------- .../mobx/__tests__/base/typescript-tests.ts | 50 +- .../__tests__/decorators_20223/tsconfig.json | 12 - packages/mobx/__tests__/perf/index.js | 9 +- .../__tests__/perf/lazy-computed-decorator.ts | 7 +- packages/mobx/__tests__/perf/perf.js | 55 +- packages/mobx/jest.config-decorators.js | 11 - packages/mobx/jest.projects.js | 2 +- packages/mobx/jest.setup.ts | 1 - packages/mobx/package.json | 38 +- packages/mobx/rollup.config.mjs | 10 + packages/mobx/scripts/perf.sh | 2 +- packages/mobx/src/api/action.ts | 62 +- packages/mobx/src/api/annotation.ts | 1 - packages/mobx/src/api/autorun.ts | 6 +- packages/mobx/src/api/computed.ts | 49 +- packages/mobx/src/api/configure.ts | 16 +- packages/mobx/src/api/decoratorannotation.ts | 20 + packages/mobx/src/api/decorators.ts | 86 +- packages/mobx/src/api/extras.ts | 2 +- packages/mobx/src/api/flow.ts | 55 +- packages/mobx/src/api/intercept.ts | 7 +- packages/mobx/src/api/makeObservable.ts | 62 +- packages/mobx/src/api/object-api.ts | 2 +- packages/mobx/src/api/observable.ts | 101 +- packages/mobx/src/api/observe.ts | 85 +- packages/mobx/src/api/trace.ts | 35 - packages/mobx/src/api/when.ts | 7 +- packages/mobx/src/core/action.ts | 17 +- packages/mobx/src/core/atom.ts | 27 +- packages/mobx/src/core/computedvalue.ts | 94 +- packages/mobx/src/core/derivation.ts | 29 +- packages/mobx/src/core/globalstate.ts | 21 +- packages/mobx/src/core/observable.ts | 48 - packages/mobx/src/core/reaction.ts | 44 +- packages/mobx/src/core/spy.ts | 6 +- packages/mobx/src/errors.ts | 33 +- packages/mobx/src/internal.ts | 3 - packages/mobx/src/mobx.ts | 31 +- packages/mobx/src/types/actionannotation.ts | 14 +- packages/mobx/src/types/autoannotation.ts | 19 +- packages/mobx/src/types/computedannotation.ts | 24 +- packages/mobx/src/types/decorator_fills.ts | 4 + packages/mobx/src/types/dynamicobject.ts | 29 - packages/mobx/src/types/flowannotation.ts | 11 +- .../mobx/src/types/legacyobservablearray.ts | 155 - .../mobx/src/types/observableannotation.ts | 13 +- packages/mobx/src/types/observablearray.ts | 69 +- packages/mobx/src/types/observablemap.ts | 33 +- packages/mobx/src/types/observableobject.ts | 75 +- packages/mobx/src/types/observableset.ts | 33 +- packages/mobx/src/types/observablevalue.ts | 36 +- packages/mobx/src/types/overrideannotation.ts | 29 +- packages/mobx/src/types/type-utils.ts | 6 +- packages/mobx/src/utils/comparer.ts | 21 +- packages/mobx/src/utils/global.ts | 20 - packages/mobx/src/utils/iterable.ts | 7 +- packages/mobx/src/utils/utils.ts | 50 +- packages/mobx/tsdx.config.js | 35 - scripts/build.js | 67 - scripts/create-rollup-config.mjs | 267 ++ scripts/size/index.js | 174 + scripts/size/minimal-example.js | 14 + tsconfig.json | 1 - website/i18n/en.json | 4 + website/sidebars.json | 1 + website/static/getting-started.html | 28 +- 187 files changed, 2660 insertions(+), 12668 deletions(-) create mode 100644 .changeset/mobx-7-react-10.md delete mode 100644 docs/assets/trace-tips2.png delete mode 100644 docs/assets/trace.gif create mode 100644 docs/migrating-from-6-to-7.md delete mode 100644 packages/mobx-react-lite/__tests__/__snapshots__/printDebugValue.test.ts.snap delete mode 100644 packages/mobx-react-lite/__tests__/__snapshots__/useAsObservableSource.deprecated.test.tsx.snap delete mode 100644 packages/mobx-react-lite/__tests__/__snapshots__/useLocalStore.deprecated.test.tsx.snap rename packages/mobx-react-lite/__tests__/{api.test.ts => api.test.tsx} (71%) delete mode 100644 packages/mobx-react-lite/__tests__/assertEnvironment.test.ts create mode 100644 packages/mobx-react-lite/__tests__/assertEnvironment.test.tsx delete mode 100644 packages/mobx-react-lite/__tests__/printDebugValue.test.ts delete mode 100644 packages/mobx-react-lite/__tests__/useAsObservableSource.deprecated.test.tsx delete mode 100644 packages/mobx-react-lite/__tests__/useAsObservableSource.test.tsx delete mode 100644 packages/mobx-react-lite/__tests__/useLocalStore.deprecated.test.tsx delete mode 100644 packages/mobx-react-lite/__tests__/utils.ts delete mode 100644 packages/mobx-react-lite/batchingForReactDom.js delete mode 100644 packages/mobx-react-lite/batchingForReactNative.js delete mode 100644 packages/mobx-react-lite/batchingOptOut.js create mode 100644 packages/mobx-react-lite/rollup.config.mjs delete mode 100644 packages/mobx-react-lite/src/useAsObservableSource.ts delete mode 100644 packages/mobx-react-lite/src/useLocalStore.ts delete mode 100644 packages/mobx-react-lite/src/utils/observerBatching.ts delete mode 100644 packages/mobx-react-lite/src/utils/printDebugValue.ts delete mode 100644 packages/mobx-react-lite/src/utils/reactBatchedUpdates.native.ts delete mode 100644 packages/mobx-react-lite/src/utils/reactBatchedUpdates.ts delete mode 100644 packages/mobx-react-lite/tsconfig.build.cjs.json delete mode 100644 packages/mobx-react-lite/tsconfig.build.es.json delete mode 100644 packages/mobx-react-lite/tsconfig.build.json delete mode 100644 packages/mobx-react-lite/tsdx.config.js create mode 100644 packages/mobx-react/__tests__/ObserverComponent.test.tsx delete mode 100644 packages/mobx-react/__tests__/Provider.test.tsx delete mode 100644 packages/mobx-react/__tests__/__snapshots__/hooks.test.tsx.snap create mode 100644 packages/mobx-react/__tests__/api.test.tsx delete mode 100644 packages/mobx-react/__tests__/context.test.tsx delete mode 100644 packages/mobx-react/__tests__/disposeOnUnmount.test.tsx create mode 100644 packages/mobx-react/__tests__/enforceActions.test.tsx delete mode 100644 packages/mobx-react/__tests__/hooks.test.tsx delete mode 100644 packages/mobx-react/__tests__/inject.test.tsx delete mode 100644 packages/mobx-react/__tests__/propTypes.test.ts create mode 100644 packages/mobx-react/__tests__/reactBatching.test.tsx create mode 100644 packages/mobx-react/__tests__/reactContext.test.tsx delete mode 100644 packages/mobx-react/batchingForReactDom.js delete mode 100644 packages/mobx-react/batchingForReactNative.js delete mode 100644 packages/mobx-react/batchingOptOut.js create mode 100644 packages/mobx-react/rollup.config.mjs delete mode 100644 packages/mobx-react/src/Provider.tsx delete mode 100644 packages/mobx-react/src/disposeOnUnmount.ts delete mode 100644 packages/mobx-react/src/inject.ts delete mode 100644 packages/mobx-react/src/propTypes.ts delete mode 100644 packages/mobx-react/src/types/IStoresToProps.ts delete mode 100644 packages/mobx-react/src/types/IValueMap.ts delete mode 100644 packages/mobx-react/src/types/IWrappedComponent.ts delete mode 100644 packages/mobx-react/tsdx.config.js delete mode 100644 packages/mobx/__tests__/base/babel-decorators.js rename packages/mobx/__tests__/{decorators_20223 => base}/stage3-decorators-inheritance.ts (98%) rename packages/mobx/__tests__/{decorators_20223 => base}/stage3-decorators.ts (97%) delete mode 100644 packages/mobx/__tests__/base/trace.ts delete mode 100644 packages/mobx/__tests__/base/typescript-decorators.ts delete mode 100644 packages/mobx/__tests__/decorators_20223/tsconfig.json delete mode 100644 packages/mobx/jest.config-decorators.js create mode 100644 packages/mobx/rollup.config.mjs create mode 100644 packages/mobx/src/api/decoratorannotation.ts delete mode 100644 packages/mobx/src/api/trace.ts delete mode 100644 packages/mobx/src/types/legacyobservablearray.ts delete mode 100644 packages/mobx/src/utils/global.ts delete mode 100644 packages/mobx/tsdx.config.js delete mode 100644 scripts/build.js create mode 100644 scripts/create-rollup-config.mjs create mode 100644 scripts/size/index.js create mode 100644 scripts/size/minimal-example.js diff --git a/.changeset/mobx-7-react-10.md b/.changeset/mobx-7-react-10.md new file mode 100644 index 0000000000..6894385033 --- /dev/null +++ b/.changeset/mobx-7-react-10.md @@ -0,0 +1,69 @@ +--- +"mobx": major +"mobx-react-lite": major +"mobx-react": major +--- + +Release MobX 7, mobx-react-lite 5, and mobx-react 10. + +Bundle sizes are down: ESM prod 17.02 KiB gzip -> 13.96 KiB gzip; a minimal tree-shaken example is 10.32 KiB gzip now. + +It removes long-deprecated compatibility paths and keeps the React bindings split between `mobx-react-lite` for function components and `mobx-react` for class-component support. + +## MobX 7 + +MobX 7 is a cleanup release focused on the modern runtime and decorator model. + +- MobX now always uses Proxy-backed observable objects and arrays. The ES5/non-proxy fallback has been removed. +- `configure({ useProxies: ... })` is no longer supported. +- `{ proxy: false }` options for `observable`, `observable.object`, and `observable.array` are no longer supported. +- Legacy decorators are no longer supported. +- Namespaced annotation and comparer properties now use named exports to reduce bundle size: + +| Removed API | Replacement | +| --------------------- | ------------------- | +| `observable.ref` | `observableRef` | +| `observable.shallow` | `observableShallow` | +| `observable.deep` | `observableDeep` | +| `observable.struct` | `observableStruct` | +| `computed.struct` | `computedStruct` | +| `action.bound` | `actionBound` | +| `flow.bound` | `flowBound` | +| `comparer.identity` | `compareIdentity` | +| `comparer.default` | `compareDefault` | +| `comparer.structural` | `compareStructural` | +| `comparer.shallow` | `compareShallow` | + +- The public `trace` API and its related runtime support have been removed. Use `toJS`, `getDependencyTree`, `getObserverTree`, `spy` or `mobx-log` package for debugging. + +## mobx-react-lite 5 and mobx-react 10 + +mobx-react-lite 5 and mobx-react 10 require MobX 7 and React 18 or later. + +`mobx-react-lite` remains the function-component package. `mobx-react` remains a thin wrapper around `mobx-react-lite` that adds class component and Stage 3 `@observer` class decorator support. + +- Keep function-component imports on `mobx-react-lite` if you do not need class component support. +- Use `mobx-react` when you need class components or `@observer` class decorators. +- `mobx-react-lite` supports function components and `forwardRef`; `mobx-react` delegates function components to `mobx-react-lite` and handles classes itself. +- Remove React batching imports, including the stale React Native batching deep import. React 18+ renderers handle batching. + +The recommended public React binding surface for both packages is: + +- `observer` +- `Observer` +- `useLocalObservable` +- `enableStaticRendering` +- `isUsingStaticRendering` + +The following APIs have been removed from the React binding packages: + +- `Provider`, `inject`, and `MobXProviderContext`; use `React.createContext` directly. +- `disposeOnUnmount`; dispose reactions in `componentWillUnmount` or return cleanup functions from `useEffect`. +- `PropTypes`; use TypeScript or the regular `prop-types` package. +- `useObserver`; wrap components with `observer` or use ``. +- `useLocalStore`; use `useLocalObservable`. +- `useAsObservableSource`; synchronize values from props into local observable state explicitly. +- `useStaticRendering`; use `enableStaticRendering`. +- `observerBatching`, `isObserverBatched`, `batchingForReactDom`, `batchingOptOut`, and `batchingForReactNative`; remove these imports because React 18+ renderers handle batching. +- Deprecated `observer(fn, { forwardRef: true })`; pass an already-created `React.forwardRef(...)` component to `observer` instead. +- Legacy function-component `contextTypes` handling. diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 0c49260cbe..85f6cb9adb 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -35,8 +35,8 @@ jobs: - name: Test run: npm test -- -i - - name: Test size - run: npm run test:size + - name: Check size + run: npm run check-size - name: Test performance run: npm -w mobx run test:performance diff --git a/docs/analyzing-reactivity.md b/docs/analyzing-reactivity.md index 80ad31378a..fb230add38 100644 --- a/docs/analyzing-reactivity.md +++ b/docs/analyzing-reactivity.md @@ -8,58 +8,6 @@ hide_title: true # Analyzing reactivity {🚀} -# Using `trace` for debugging - -Trace is a small utility that helps you find out why your computed values, reactions or components are re-evaluating. - -It can be used by simply importing `import { trace } from "mobx"`, and then putting it inside a reaction or computed value. -It will print why it is re-evaluating the current derivation. - -Optionally it is possible to automatically enter the debugger by passing `true` as the last argument. -This way the exact mutation that causes the reaction to re-run will still be in stack, usually ~8 stack frames up. See the image below. - -In debugger mode, the debug information will also reveal the full derivation tree that is affecting the current computation / reaction. - -![trace](assets/trace-tips2.png) - -![trace](assets/trace.gif) - -## Live examples - -Simple [CodeSandbox `trace` example](https://codesandbox.io/s/trace-dnhbz?file=/src/index.js:309-338). - -[Here's a deployed example](https://csb-nr58ylyn4m-hontnuliaa.now.sh/) for exploring the stack. -Make sure to play with the chrome debugger's blackbox feature! - -## Usage examples - -There are different ways of calling `trace()`, some examples: - -```javascript -import { observer } from "mobx-react" -import { trace } from "mobx" - -const MyComponent = observer(() => { - trace(true) // Enter the debugger whenever an observable value causes this component to re-run. - return
{this.props.user.name} -}) -``` - -Enable trace by using the `reaction` argument of a reaction / autorun: - -```javascript -mobx.autorun("logger", reaction => { - reaction.trace() - console.log(user.fullname) -}) -``` - -Pass in the property name of a computed property: - -```javascript -trace(user, "fullname") -``` - # Introspection APIs The following APIs might come in handy if you want to inspect the internal state of MobX while debugging, or want to build cool tools on top of MobX. diff --git a/docs/api.md b/docs/api.md index 4db83b102a..9f3fc32460 100644 --- a/docs/api.md +++ b/docs/api.md @@ -25,7 +25,7 @@ _Making things observable._ ### `makeObservable` -Usage: `makeObservable(target, annotations?, options?)` +Usage: `makeObservable(target, annotations, options?)` ([further information](observable-state.md#makeobservable)) Properties, entire objects, arrays, Maps and Sets can all be made observable. @@ -89,7 +89,7 @@ If the values in the array should not be turned into observables automatically, Creates a new observable [ES6 Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) based on the provided `initialMap`. They are very useful if you don't want to react just to the change of a specific entry, but also to their addition and removal. -Creating observable Maps is the recommended approach for creating dynamically keyed collections if you don't have [enabled Proxies](configuration.md#proxy-support). +Creating observable Maps is the recommended approach for creating dynamically keyed collections. Besides all the language built-in Map functions, the following goodies are available on observable Maps as well: @@ -216,7 +216,7 @@ Creates an observable value that is derived from other observables, but won't be ## React integration -_From the `mobx-react` / `mobx-react-lite` packages._ +_From `mobx-react-lite` for function components, or `mobx-react` for class component support._ ### `observer` @@ -345,7 +345,7 @@ Use it to change how MobX behaves as a whole. ## Collection utilities {🚀} -_They enable manipulating observable arrays, objects and Maps with the same generic API. This can be useful in [environments without `Proxy` support](configuration.md#limitations-without-proxy-support), but is otherwise typically not needed._ +_They enable manipulating observable arrays, objects and Maps with the same generic API._ ### `values` @@ -462,13 +462,6 @@ Is this a boxed computed value, created using `computed(() => expr)`? Is this a computed property? -### `trace` - -{🚀} Usage: `trace()`, `trace(true)` _(enter debugger)_ or `trace(object, propertyName, enterDebugger?)` -([further information](analyzing-reactivity.md)) - -Should be used inside an observer, reaction or computed value. Logs when the value is invalidated, or sets the debugger breakpoint if called with _true_. - ### `spy` {🚀} Usage: `spy(eventListener)` diff --git a/docs/assets/getting-started-assets/script.js b/docs/assets/getting-started-assets/script.js index 1d51fd9ce7..a4ddfe6db4 100755 --- a/docs/assets/getting-started-assets/script.js +++ b/docs/assets/getting-started-assets/script.js @@ -25,9 +25,10 @@ function runCodeHelper(code) { window.autorun = mobx.autorun window.computed = mobx.computed window.action = mobx.action - window.observer = mobxReactLite.observer + window.observer = mobxReact.observer window.makeObservable = mobx.makeObservable window.makeAutoObservable = mobx.makeAutoObservable + window.renderReactApp = renderReactApp var globalEval = eval // global scope trick, See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval @@ -41,6 +42,15 @@ function runCodeHelper(code) { } } +function renderReactApp(element) { + var container = document.getElementById("reactjs-app") + if (!window.__cachedReactRoot) { + // Reuse one React 18 root across repeated "Run code" clicks. + window.__cachedReactRoot = ReactDOM.createRoot(container) + } + window.__cachedReactRoot.render(element) +} + function runCode(ids) { $(ids.join(",")).each(function(i, elem) { clearConsole() diff --git a/docs/assets/trace-tips2.png b/docs/assets/trace-tips2.png deleted file mode 100644 index 56f4c17d2091041697f32c9f20c5f7818d8ceac5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265124 zcmd?Qgq-tg6mcfD(UAHg3Kq%cs4QDI5pU z7g;HBn8&A|A5D3&z?)~*@73*KV9;=%KCm#!sf55wWP53O3FI|6L>xTywR>F>7#KAUTKx=dlje^j zljJ}#Fqv3#J9jtECzPCaTUx@~sY!NAkh;XPvooro|E^B+*>VYgw!S141gifoBYc0) z|L&=b2>;Iy1tFs1|E})-{fo2nam5O!V;y&4ifJu7jLpr>(`f;I{%h#5m!h&Vu4hZe z!h)9YMZTg<8zMnx-fWE(g`)7yD+>z?!T{inR_hB@EuTqK`Q%|-MZvaoAvc&e`-K&1 zb+$D4p7=(Ej)miH|rFSLDTy*IKgZN z-RLYW_qL$nbh3mHJdKZ$A*Co(x_VtVT9Q^Jlr%Axg#3SQ{2vYyva!7_=*awF}Ap{zM;Xy#AH=D;}*}w z#l^Wv$MdRTnVpRdYx%SH*_kb%m{K*S#_P4vLiLIOO{=E3eC0g2k?H9kzU|a^`uZ

`iK>lZ>K-MhKzHSRl9RMePw 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

cXC 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≤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 z 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 diff --git a/docs/assets/trace.gif b/docs/assets/trace.gif deleted file mode 100644 index 35f171861ccf1bc2079cdfc6bfc82209499501e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1037711 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 z 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⪙=ZE>@j{aEWOceJYH~V*Q>a4y!QlppW0t>7YlWPpdOac*&jv}$gxlwnJ!Iuwe;x!v3l$x+&FQ?+sD0z?S4Ok zbLvg0r@w!iJLJb}Zl&_!ahE)soh36aDLN_zM4&>~Er>C;we_7Arp?R!~i z^_}m3HA$mCr}eEz#(@F8b|c;&AKdCpOEd_%(@f%_Yko2P!rzCr63aV!yeojRk-EpF zK|4LGE_WLvyWr6x`_#3pO89xy{PzXTsj zJ0~mg#M8&GHyi(nIe+8&a`N1@Rg@>tnNR3JG|0Yjoc*X&x9x{M&7Vhpj|20r^Q@Y< z{+Wn>ll$Kd?-=xe%7R>!a;dk3R46BZuDVOm^x*D#>#D_ue8W@ki?(YXZ{}xIZ_-Dgik2a{!E}u>nhDE}){yos3o-FS^ z-fC6+d(QtaaWa}ZdrRxt-+{}&kNBwn3IQMz6^aFlU_qP%XH~BI{7%sgeAbY{ge5-k zFdqyR|BnSrBSAQDSOInyLh6^th_0`em_V~HHeX}u8cB2=SY$s5IgX{DBhfb!U}7;) zGop?K8FE4bPzY#F2m|XXnv1z_t-6f0HBwq@Mjk}9Y7fa6x$b2c5*%XisDwd!HNPL@x^gXcW-J0>^8PmuSujUiwmUX;bj>uae8hf?DS#S}-B}7eP(hQcc!%P1aHX zS@6Op)|KehRbOXOT-UiOq~}`Up@O(FB!9YR-rdFoyD)C^j;koUBtyKQdR*puE=+i?2eZe+AP@lmDFjLj00E@(0gnJS!0P}2oC<)# zxs7T`UD0sFr`8bJqMmrPAgV#MuDCCmUHBr|Rd-SM;@L~&HntKnil<(!c1FmT;bo=% zx9+t`j!?b(qgQ;gw95%Z{PIUQ+ee#Z2o-RtZum}?)b_vJcH`DurIQg9{f{Mkd-9EL zB78_?u9ex6$q%r!?!m+;Zxf~s(=2TH}{tdKOx$?ADb-LblJMKyP zC;9Pw^E<3Y59Ig0_GhvE_W9&i@B5_CH2#;pKyc)|c2YmQt@+*Pa#1Xm`qJ!qofDOl zvrReuQh4OT5?!cP;bnv4kM(XdUJ;KU-l8G^SY;4MHC-8m6-!tCE38T)LV=<5;h%$< z#_^xcRF~uCDc8~;Lhdct$Nd_bFG}R1)mv8jSnK^HiN=Mg5b*hI{t1!!Q-a_V#>X*N zp5V`oR)~6xiE9~qLzU|h#z9-_8RGX9S5uT|7wDsTKtp`WlV?#AmoBqpkHv#5zLw&> z%Eigax88jB$`5!dj#u{TSKCYuSMwBkad+-?voNq@up%!AM!SU%ZE@HtO5{}B)Q+K5 zEH8|+`!rP&E+ZkPH%syTUXc>_X)~UwQFXP7={`rfNyeMrZv__<JaHt^e<@f zqg>ix;if_LVCj@2jOkd+Cw9r3W@E=9n|O$c-xV*F$H|+D^T4yo+TYI;C$u(44{tx3 zTTw56fG&EqR<+|E|HK16CyD9f@1Vg2?^?cl(|919Wu_tb+?@{v5G`&I;{#X*=7ZYHvPM@}a5#ah?z8RT?*^?!k7XuQw2+4bqifVFVv3t+t7xT<+{eFi z6O1+PlD$hly-}Vnz#DgOr(1j7pRXI(QL=JcJQ!9>mQqmOuC!iOEWP%|R(?Jh+{3p? zG?P;+7nLHbY{P3C@-}OF-YaiICIs%2vkq=ke)|Z@7i}+PQCiz?E*vQCWYE_tcaq6r zbw=UYJg7x|n`lpnWfl?zs=?6(e14oeD*jBYJ5i~}N*BeBK)R>Ov66`zmzQ(nR4Ll2 zwHeW2yU!;zAcRy_%N}m4K>!Qy9{t_3uSAe4NiD@N_1@rE5cLG6)Vr5fCwG$vp5Lzm zpLus%%HrzrUqdeWfY#_l!7GTH2^W=;uKt>@JavLk$EmZHU?xI|zLHPR&+|Q$zo%eG zhe8%?tV@l#+9O8Q!4Ulc_|}0;1}SZED5n&~APGPg(b|5k$J#)TrRcEAZkXVOzAqs) z#w=J1;NN_QYSfO#yRJu$@~YCa+eC6tiwV*=YO4o2gE=pr8)okJD7gYG$KJjp(|<*% zn2pq=c@lu%J*1(V(kt-p#7GjIsR3*N!I~tOXW>D~LPA}%DYdXf6X8?`b^?fM5d~}} zptKrR*)~sN*}deRC?tVX^_ajcVtdNRDP%}sZmb$FKh!!m8uJ=AAZD=l#Lj{e`8plM zp6QnAWTA}~5Ta4xt3!F%6wx#NfpSA?sfLk8I!M(OfLclAj1CPQy9d@ieMa#5V8)|ztEbZfgR-h_h^u-!#ueRh3Ufsl+fG0rD|P^Z zBmfX+YZ#bClme0x9YHng;gHwqKM|uOEVxC3S?z&hJC%|2_f~p9gixB$2ZW@EGXhA76vHfn1t4%yNoT8RYG3x~5Cszu z5Ge*qa-)^XCH8#rkBt+K9K3_pp=E`C120ELGo5*WtU`Msl|DcNb}&*D-mTFwwSr+^ zp|aWJlHq6^h{EZ?gR|(?sH~6x7EB8e#1gn60UzTbEdn!Q6K|2-3fAl;s7ciiGM#mn zbE!JWhS;A7JvV?jUa*l$Gyv7@(b;&CI;PPB@LKc_#MuffD>;%~6$_vRD1ZsL_#9ze za`dA;R!v-en(1$FE2l1qWD)hO3m zXyv43Wes2fIu9@i4QxAEtZ->ke2a7}llAcv!+$T~mj`v6Ck>Ll4v$0}if6I3iBOJ}LEf!RfNuJ}dy#FB|YjA_K@N@6a0v zgUMs3fM1+iBmk=62jP!N6i8Gtl5w^UyK4b9Cq@uf-xuOKHdcX)pfcN4&PjUreslPwd`0bv0XI zwGbSTU819xnV)Mdtp((im?TE5dWei%UpTj^Be{u zYaY$5iu(ub3uK_PXstVJjcrGaMDL^mIH$h_zsAzz3{k8AS5rfFZcC_T5GMHu-OYaw z#*Z*r31QQfTENjZ!{^o#%)t`eDllui)7qOxL>YVqqKs^bk*%93~n@3My?Q z;7Cc=@&k-&0o{FyXOgFP4F!F|(c7QcfPSNJWbh^)NW!Bya5Po{psz}x*?@;20x%l@ zvsZe|8UVtrI8BmW*h*123s?JeV8(Af6Y5hAoFRSjW>99pU5Fln5gT)n<6a}6Y;m9; zXj>BCu?Xq$jyB4?9JNLPix73vwNZi`nt=Fe$~~A`is}2Y(25nL4OVSpRz*M;)gBK%S#ha>x~&m_pY5T)j_KwB+MocB zBPDvcyZv^6BMtyA4PdYWxRG#Xn?yo30IY!r22DN^2>{9UgPGF3AE>wk2EYJA1Y(k& zfCVZMfPw_%pU_m^>=0Z4h>1jRaHP+=k_c7<5(t`=QE|37mnB%nZh(gd;d&a5uagMq z#KPfd2qPdM#Lz91N&sn~{fe>y3ZnE0>`tm=_%0F3RGSt-$-Kj&{R0bQCeVlJ=|3<6 znvlV^*Fv=js4*3gDo&Z3oCBi3X%1zERy=kmVK4w#J3WY_7JQC#2jM__)6Sv<)MkK( z76D+3cRsf;*hND|Z3!OMQf46-LM`~6jU0$V1M0f`T+W9hLmU!GZx>HLBm@s!klE4p z)558hiaw9rF3D+<^u9T|ZKey4;Gh+q>ut@bP|FhM;E4f(ubVN2k(B_Q|q=$o)m zRV>YhDyu0euiW9iA_FXjYL*|lJ89L*d7l}#lp zE5=xBkl{e(%x#?R3?8nr;=3mRwZhT7zSt-rUUJ6q6G-7HEBPiwXt*NH7iLXXl9$R1 zOrsX8N`Wt+QE&-FiwInU0#C!yY~v9rllLddN<$V&&PMPTI=`eh28 z3FYGU;whO(d-7Ef8BCi5{e*>OV*wLlP#$-!AUt9jptf%eFU2BaYEdzG_&L@(3>{XP zX-^x9Sq@;xX2n#vF$m2tnR;O6BPAy@G(e>&L^OV`J`bsPX@SUOl}NvfXP*>-h6tly zWNX8-wSx|HsU*!$*vFtryj=2JQ&yiZ{86FuxJgP9)v_&ffj zB)lWUaF@uC$Ei7uf1_apjKbx{sFm?$AV<HVO5{I$)o$&S%u<`lb?oTo!wAk!1e6+JI7lvljle zKz2PQ@q$Rz&Y-u!(d-{5={qSNlX@xGuFIpjxwJE)D^@Zi0+B0G4%d^>OKTT!eO>w- z{k#vA2shNJJ0?{Doh4rtBp`PTYJAo$@iVaYr?#s3&7=Um|Goz`Sry5(>WC+GGkRr4 zTg`}%bSunGUmU0uIkaD2=c?t_ZjMYwpUd;b%+R08#Zd&x`q&#Y#7#M)rDbRS%WG|^ zp=&}EiPYvhyh?sww^n_+_ujkZP01_q;^|hByIAt3c)Tf79arnT`;)=^wxN;M&c)Wa zS0es8t(G&ba~_wb7i&^BMP5fq9%_r_hhw^_T%xfzTbo`r6S)L+vpRmXcI?ne>mCSE zZVJ$w2p&XYq1OVA!aM)8cAhPE{=TV*nC<{+l7Hm$?``v0XOc<(nL?zhX^@V_j9pCK zWWGgpOP#lebi$mPe9W3s|ANSN2U09n{1gE}t7_iY;h26RGEEpQxzw#W+zsCA24Q=K zDE2B+T&it7>PtOpXFZw)J({0-be(&pANEQW^vc%snzi*_UFwzJ>9*wV!I||~o%Pxy z`|Qm66g2ys3i|Aq`doMVJe~WjchDZl9%JVo`?KyLJoEQD3Gp-Z$STjE+rZEid+0m% z$vw5lO9RBwfvB^AC^H@}>-G=H?TXaMfs}^>gR7V)HQcEM1Hos5nGc6DQU*{NLkrqG z3AZi{5qSyqt#{3s_(o(Z3IwX!hLcX)%g%;tZ!ztR2p3BY)NwPdZnw7F5>3`=stz9^ zbC1f&%k{3+6-$mP$%)ryijTI9j@OJ%wuw!3`&3D`4n7>~D(DFE=#EVslbqsf)|7O8 z)zq*(wwWUJiM#Bx^YF&m@GQQ3Wr^!k?X{`t@ox_&tcp4!!beZeFoo8&1sIhZAQc&f z$)r{J-7fg(r}mjO$*%d!9ZM68(j&TpacK?XW!#soB2%DlYJKcgU?9Et6ztz&%QOiq zp*$tg-tvdLg`KClX%d=LdksT1VnT|c>}Hr~iuAx36iyTE(t^p~qfa51>|~gT08EeD zrp?AMZ1e2iVS%Jqt>QaiOQKW>8FONbIj$?a^6x{}^t8SOoDIKGLi#nr}xxY_B_(JF(pnjtX|w z(LI3%B0Ak*71VV4w>ZRf04=l#&KAgNf#teR%Q#|;PJMw!ZeVCZG@0pgbB~s9OMaBO zvIw6-{i8)C8q^M1D(?ExA0jcu87Oez672y|?5u^Ab(KSxk2VNBA|@V}yv&)}5#GLB zT7W*}=Az-9##nMaZ|6j&Htp;+qb@!$e+8zAqQa8WI2n#P61yBq(nIGn*ZC*+M;!>a z|B|HEZ!hxV)`t1JF{g5(N=z88TLPT>>oiMWZQkVhd|j2865B(Lj93mkUEjETed^u6 zRX#bS<}WEL(5Bzz0j)QmdjmHMqDDWiN;5crvq}}X`DWF>V|*ojfkRu;V}Ij&J?_Ev zt;p7I)>J>l_#|ouC!*%RmCpN}8?$(%u$dwGJ@@7JtT)RZ{xWkl-$}ebSOhmewvVq) ziWR^7QJlKPP&rzC{v-41_e%Gv+rLI@A8%)j|M(rX-FADcMP|I6cgOF18#47RH^awY za%ULzvG=yjJU}O66Z2DQYvlS*iHz~GtBWqTe=fb8UwA38y;KGbQ z?Tfg|hp{ieC>_(i=WiZg9fHVx+k3hDUw%{0%b&(~<%73*t>|Yfu>iI=yYRR3eJLBB z0)n>h_{Y(Fmj=S6u`})83KwjVZwD-iQ z`%-(q*r`DIS@40f*88)|nNkr4nrY)|Zx67`2Rg2;Kb^J{G!Bg-x)$hvok=&wZLgWW zI223!CI9Y#Q})Qda9zUn==>_v?xo8iFOIm)kJJVaJ!Q~q=l{9O9(lg~b>$9v7`%$W zDAULRIoppve>t|JqQ{EmLMHGs&KPnaB{c1O*zyqrW{T5817=BqSkA*D*;8CkiXNYM z$u=JIe1op9Bjit)32G9CXwx1RE7Q|gJI4~{Qr<{ zpR)Zsw&(g*;4hhBiu$BO|0!y>`OZn{%&srY z_Lc1$ht}IioUBszz@e0!OE+16I{xQB({Y1t-ru?9?$2TAu=`bV9gnj1uiU4zRRMmi z=g}{)-eEtuoOkh!F2cuhl%=kN>Ze5I!j4IAZoYFP$95BGg5Kq9SI#~knb zOqc|VYQSn#4n7Xt2>0%7Z>+z$8o)=5b#Z?GsVMB3<00Ljw{pIlklc42_J8m9oi|6& z@LfL(-QO51G%URSFYNf|=gxRO*Yk&ej(#o=6uMF$pa1(urNQBWG~By&M5Zq*8C z`^^hEF8!|%%^RUD7=MMRoGxZvy(DHlEejlka7K%h?alI)?)(@XVyc+PmyEX4{2=jh zG^jQI~*UZ;##P+S9Ni^6VDr>ZdiuGQ=32wesJoC_Ya!yS3ozMrdv0Hn#eea~uZ_8X&tDVW8<#)!7&yN|NdEz7hF2{LqW(k z8cr6@g`f5f@M)hAS+TC?l?s#UyWCrj5gPwXD95cT&)g8Z7R{>;b596| z{(o}+H4p;`coCHWz##zW|L+5210DjLf$snB^8c?7z$D>3So^;|fQh2do&WIx6#SM3 zF(sW*yJv~qiEm4XGC%_y+#cEh23b(QkXWuZF+EaWifCkOPL79ym|rthj$c?zkUfNj zI;HUcu=ZY2O@(i_ZxRB8kc5Dg&=YzSLlFT%LX{>0B2pzFB2A?z0-}V_dnnSRgx-6V z8hRB0QE4hoq^V$`DmnS@bN1ffzWBzuIA@I9t&xlM<{c~Vn)CO}Nr9m~yA|4u0EhxQ zBV*R(N6YF!i4IwIX}nZ#lIzw2xH6J_tzbfsHvFE+*-YKb&W_tgr zt9BpUZ5w(0eD_l!qlCXUQ@2N-{4icPy=uMO^_aBpn0xZ(v+Co+PaL8<*Co3jb4Xr3 zXP;E*F`hXtHFWFg-j@$QzTaHeYmytCr2CdRxO-udLiu_nwK+Y#dXe<5(c|-E*Qrg2 zka{rnpMP8D%1_d`hKa)`!N-qutvnlp4nOsH3lNGQ+&6C+nGt@mVQD+`@6s&;fO%_z z!U5LL+@qKS;^@p`GV)TR%fAkO$K&EgUZen#Zc-IdpgpQoZcz5|@uy~5>>IWq-1JG` zN=ky<;?a{28V95l>o`Bhp_l3ry(5JxyEZs!y=vB5vZrS*4 zeMz^!vf=D8|L-k|aI4|Zo6BSToP`c13+W#`5GTKiY|UJTow9-sm$eg z%*=0YD<#J%NqvY*(35g|5gpjNS(E{Vx|L-6#oQ`ZG}+oJyZOLyyS%JLx1_kBWP97M zq?;;LSw!}EvQ^c#{n)goQ{HCBuk}F6(|;xB;%>d=nUtvCh(L#Q9{!@VTa%Au<-N+8 zpFH<9=lzV_>pm$NR@W>=cziEf-hM1w_@?INc3XMLX<0`|i_wp+TVt`c?f$)|668|` zSW!1HInC3he-(-LFLUrAY$?#3z z+22~%F7{n>h_8KTb3OaYmYyLy;raLY(^)m_<4oxdlM}^r1EGc?&^kHuD2N?{R@Xi!lU&A-I1JNZ>I## zO+VtisDW+E7t3Y&tYgcGE0@kLP!f+hGSxR>zAWx^=K3>{dG^mCy`X^lsMI;*zVd5UE!kCw4`dcQR!`0H@;)YcJ5%-uM@*MDn-fCq(?2AU33AX_A@{ z9w<7Vt&T`VvSYN-Ut!*!jB9tQ_G8_`1_Y+Cde+%au+8Qnfo%Qo%w5eG962Ot{s{e& z+K`WU>U@X4zD-+xW}nHz;)mcRABKAmQsa`Bu^gMObl7dyXrpD}h{YpDmA-uzU%NHI zY~{g3d}J@Ip%@()HGo^#gJ?_i33TkyiGsYD9&PS(2(1W;uJ1wli{~zwu}MU=T>kHH6rU`83WHJZ-io5Ax{eK^$6ujTL?-EU2hr&AV~H;($ON+>xW~_ znp8jSvhn-QF{q==;@GkK?itkF(Y2K<{D%N|0G;rE;RSq9p!D!%e&bo!*p&!!W9*ur`FlG8N+^6{7mc|Ypr zCrzHvxuMI--b`vIE9@$UjN-faC2A6 zG4bhYUo5~__eM(ZOfdNla<1)OsF$kdxCL8jn5mm+x|tc6?JdG{VY4gaSb=Ee#J1(X zp~x{B^|-TH;Dvv9;$)J3(B5NS(6y_WI(>-mfD;?IOZcJ4Xx9@9A1ot`4jU8AVuTao zk3}=6e%Oz{I{Pc@T?Sfpi#t0w&KLD(@2c!Pd-M(GJFHf5{n)U831{l|CQ(52mK0bh z(!f(2FzR_#erume3+aR!$AX1T9Cgi)9FY_DLuR79qn|kUgH`@cxCF^X2U|=Dv_*vq z;A0SayDO{|+*OfXG{6)|7dcoKDWT8pV8Y(7eeL3kMn%4rN6;z@_OT@4LvQpgY-Iea zoSX+u&M(i7!mkvpybe-Y6A7FkvL)gMMTed90@Z{#^5*v*KW{IA)NbY2_f2Fyw_#J` z)-z_CU?q|twR7YZA}D)TdAWuxbKzl<%hoTPiP|Dx*aP@q7s3^v*Q+b6lxu*njKONZ z1yf+IiW-9rB(YHP&3}v$5`hyx;_f5|TixOD2>dyvnuSj_{zmP6&U!A>Fw|)hi8S{5 znVr>Cb+@_2s@l&7OMdfiEqgHLywhr2js*L?!_>(qTjf)^$7(#y4KjTQOJ?WP!q&$e z3oenLOqPv(3=C?+XRHK%XA|$Z-|Y3R_I#i)Kb9u0SdWR2Dj3k^iYmg8NP!Q6*`3k9YK zxlatjvIgf01vZpnNhS(e44BNTJJ?7cflkaMsZ8_!=%wiORL(nB`}xNcZ2Np|k$ohd zYeUwI;hpLaTrwp|cm2jyl>l+~Qy&ETu}!)>N+QB60Bq&dY4a14)}P|#47n3G1fyT; ztTIwl;V$TUo7t5F*S4$gUY-1&fC@dBU{6BnlX|7k_Mw8y{oE!O1{q4OgbynVZ~gSu zlMEt+Wm5~;^+$li@Ajc0Q52Zy#m-q;Z2D`+pG{Q5(7q&t*2FK5K;o_dy+5f3ZKVdCG!0vhCq58{hKT1twB(Wu*s7MBem`xEs zb_~PaG5~fG020UJVREj+j8;fyHsf9aU5F-Cl$IUo7la0PpsAM;tfBTuAoRC#@JZ?N zoWKB}MBxLQdMa!Ds=*suEk*_UY3?-4V-;kO3xUNv63pI&s7x0=z!Q3(Fpbm!GkU#? z$-wR9Knf1QOQIX_3XsGIt&S+gQed_hj})HQIRNDN5StT=I^E~`O|{Y3V{!FkTy!F z-mj1=%a8$NI4?OQv_6o67jxXCE3SjHw0Y~N(;eYpcfQ^i%n&YI;cTu8irZ&tAqgIM zF(^_PEJ;jy%TT%H(2FCXU#S#e`5vMU3HoLV!bybf?E&SG5DPD+Z(bl5!1Jqnh(D%a z(`9=S{q-O3eg6=6%NYoE8JgBa^mEMPOjgtp(y#U_S8W}zZ2vKDotTPw2&m56Ycm!^ z@m@EL=w@W<-r)K|0=lLnCXw;!B!tKmy(f}B6AkV{f_8BrmpX(xj&5a>{@MuWg@5!7 z5<;C4c321B2gHQx(^1#Lh%Ex@x187ByZfDsZ3sn<{bK1&e+1o(?QBK$rqg+#f`o99 zESrJlXap~suJ=-s%dMoq4EL8?P#DFO@!HfIZ2Fuqy2=>dh zZhCDH9zKI(ne;;Z7-1SvK)u_8+|^hARS#P>WqT5RWzyGSd>QuL(!e}S;OBea{W^io z`tZwQ91MrGpy{Ujfk*2n8p4*4PP!7G@AQ5DhK`f&;Re^m zuP<-tPv@{OmLuy_)#TAkTf;3nA_*{XXk4Hy1vclg-eLQHXm~iEVp6pV3kUCoW@AE^pw- zcFVy1Z5q!Kx4QW&PLqOMZbKD;g?zaab-=u`hF^g=RI_{N-s$`m>Jzoo%zUrjf<46| zA57jo-$EjtWZw$Qlqod6yvX0%0~UCGEEBI_etDe&ox~%c6(YAPB#dn?nFO+Ip^L>A zge+A{^2|%T=p;MMSgNo>7B9M74IF(T!c$q z%%R1AlK2YF%CU;9jfy+MrM10j_pB@3yer#O!`rizKuoz$q$D-ktNPnj7?Q%@Z%K`x z6u#!U@idxpiT6Wv|Qz_(o zFJuw&$@)~iz-c|2w?XJ~gNSVdCf50RJwoiXext5I_Ot=Z+bDmzQPHUJJk_=l?SWA3 zXjEHlymH!z<89Kq+@v$!XqJYo#=~4RmGFI{Cem3Zz~<|`&D_)QLNuTd07vX|IVzso96lP^W~ctNiTESN&7%w(5e?sW2~G^W~i*=e>KCAAp!a*6li zV>CrN`q>|}u%~LGD3{rTvbbhl#X)AQfK|a9O#wm8yZC92N*|UGX5Vpwh=34a70E{@ z_h2oSW!?*(=^>~k1eo0vb6sJ-*>XPBj8e09_s>ixD-fM>wCnDqb2n zjz&1IG`+!azV~AJh(=If*7K&qZ7#DPVBt379ESjeO=Uj_&^09u_)s?>Puss!l;$MZ z22P?z8Zf%deXyK9MH&Q6!9f7{y?L_VdyHwPC>`tIQU_uN54)s>93{c2XoLaZ&?CMf z#~?i`7+hazP{h+k-XhKnHE86Cm_ftG$-`#UQ;rb~;ED`jh}^$1H8_Lk#(NIezZ{qX zz;7hU>n`m8* z5SAG%+*Jy0lHVM{+hh8d)u^gjPX@4Dr+JT=^9BY!ix<|0!A;i((M@_QtgUO8RY7Q7 za6Rl-Nc#j+{~Td>9tWpefqf=7?^W?G=d({OW>EoM8edr4?Z!cJFmwp_%cRzAazjED z?^`l^W<3m)gcw0{c6lQ2iok!<+@M{gvvyyq8SfylSwU@*!CP#8Sr}$FJc&chlIroE zoEn^MGdKj-c_ia`0S9l2AQcEd!owHveIUNcl**|aKwRm=cbD5%8#yt#vc#eLPoJB)%VJ3)-fkLFFKV;HGG)thJ8sOYPgLzE^7Pl3 z18dtD=KU6Q@WNmHCw8olJh>fM2jlDCS9`wQB)|<>X`=XKoR!?ZX#c3=Mf9y#rV%-@)HYKLl~uI*1}UfTcy|F;79-)dw3?S&M; zGyo1@qlsoO{{zoT?0r%P9zhVPvr?g9k7tS`|B9ly>FJIJB>BX=GQ+`V?4Jt6>QM9~ zM#fzC^s(4s@F5$UotWwLXa@KpQ)kg;p?W3=^>{tt=e=RoQkr}?s}N!a99)O}POfkr z3;8C?WaaXh%;!Mou+X9U))@qJ?$7GtGAE~5gRWb5xLz*=7=px@QrA7e^iSVUL61tY zBDTQ)Z+H0L-g+Vc02l#6LH`Fg{9p9KMb0Gx32RW@agml#0debet+OWdWntj{(nA84Ix8zk*V%~XIk~K{4 z>&H+8)H2_X3o3#MWxxG3-*7SD(o0)vxN`o(s4r=DbPy~yH>&+E7oKkFJOSlvlN2sY z$5M8Q*Y~g6;3pqHbpjHK^p^9&tK<&3?G;_BBY5!96(zE;9x2l~TGT0gB7L zdfVGZvyK9qV7l}YByENM;^!B^m=2Otlhce4eej_)3xpkt{$R$v1QA8#%a?eGf{QEeEw}Cc4A%dA80xcVv{?7-@6QbYFeVZ+7 zN=S)Xpv`%RMOZ$VY0imvfi6YJRFmy|(~&F#C2qPPjb(RBq%%c|tS`ofmdwJ72LQvsd0}dZ(#I%_u9JpH>^cwM@0mxf?nn$pyF3^1HuKqaN zy2Ie>htFxRrvjiT@393ttEpebdLr6mk{v}jD+YFBoF@I+Ds_CQO=-qmrz^-82lRg= zTMGEhDY2|8x+Z%GSPe2oX3)po$XX3{mqmh5Jwv+_yr8eYrQX7)GC&h-v*+nb@txmUX|!494S|vo zAdV=aVscV66JeQca4wvgJt^*PCl17p2TU5?W4Lov0AU6s=7Z9EM1I%8pxA!-5)6`Q zq7pS#rqf&kfV(#lAxa>aYepjh>fg)BPK&vt22OWaq?)jnFY7_I@bLmV*BxZ6(31M- zhBuFlf!fPMj0i8qq+$?1i1x;vjmFyQ6Q0f;4ays)$B1JI^yPJWGWuvyjAbD`vninj zJQeOF6ACXh)RIc;r6~A0@^m9_Cdbf8b_|3Yh^smzZ?GHa<+>#&Ruzd*SJC=54M`c< z>;Louu51>sa+N7Y@MvbdxFlQ1c+CSrr?w0fmI(!8tP1I|UNLgZ@sYgFz4B2cbpaIu zh}|oPE-)ho=Zt;~D$`-=oQfqHXane~(u92O%j0S}`~P=Sbiw8F z7gAI7hQ?0ZMxDi~7c{{)dt+Vn*0i}AALkCO zx}n3(Mj988poFK->8Y5ykIB_77wMn3=SnjKK2tSgbyfsP?vmo>2HYu=*IoOI^OY`q2tr!5;VoJFuIg!G3_E9jp>KdlIA5x3P3KdgCb&b zgHx`t#dY!3SJl$vZcqyvh^jXTMedfbK4?<1MF=voDdM%+B+=N6`>bizg(*`Qy9toL%I>zjNfOkago_$)%LhaN;30g!Lt0J4 zUJfcVV0hLzx-%Yn^U=z={`R3d&y8F#pJsN2F0;R-g#u;oe7f?eco3V=T&1!0%JFwC zQHlR`JUak{hM*xe+Ue{>vYn_a)D=h4LcOTFgh%$$;mBHn+J))ZFLDbzAP!a@08!i& zce`64WQLtJ+Rj252vzaRhSGDL}7(qw9%rFV$9U}sEOi9ynwafeG#L0RCb%QNk z4Ih4a#F3#;D8UQVSjkylx*>2HS5(56fs_ymm|EqCA9|l{@3yIb`Rhv3?7D-inXOX5 zm|^T{zqIF;i0U_DT3TAUC=UnJhWo7%-oJSw#B_UON|mQpRq5`XZJwQ7>%eCTMK9=G zyUZotbX0K^V=vl&Q?aNx2p-7oLAi!N&PlwOOTKYm>e}OMkk;JK&YX1%f1 z*>jNb;)-vQObst47Ks!;^#C&^i!jdAn}0O;Q5X5`MGNsnAM;%~ck4sYqr0>-thgTj zsd3_DDsTCkg8QFe3qKr1v&UhjYUxRnmbbx`5f%=Z3w`EyoZdW}7t;`W7^2q)_4qhTbzHH5nj`6xX^**io?nOJ{72gZ1Hmw*}ay(A?7 zI5HS}M5NF6ypTb}?a>+HLqVj_%l@G%QK45*VL0V54XZFM*DxLbFvE;6@N9IW&%ch{!q?oF zBerQXrn4-z*dIx;itU?=9dJeVqvA$f6IvInfQhXS%kGPB2CWlzj!PabDaap%ma z1j!L<-mHA|}6sDPy62PC>UY@;Bo_kVG69@}< z%8~+8O59Vl%QImsnN{tXt#TE0Je3Wql}$F4&teji@z9T0n%YOxLg17@_&okU;vb`9 z6$po5!h>4TOsP1gkN5Db-5EYTKN`7% z2Z)iNHW&0c|s9 zxv^-CCNp?}C}hYumPt7lSt3=QY?E=7IfHILoiQmn&<3fylWb<&q<^{D@^bS{kCdBF zn=N;cr8XIK`Au+4vz=`Vh_%^Kx)~qa;%U@u8{7OawwVynI*>yC(lKix-=>jherCwB#^%w=g%q8t?e=wC6~=hqTzfd)iU*l(g#wEvbX+lYxZF%z+(x zeG>GUQ5SC=d~%P%3WG&IWs1Qu9qu8Rr@PS}$SribQU~JDG<9pIoBFcn?6h0wWzRuu z%jeiWnW`SFTK~2OX%O#nI7QhZCl7SM2grzG0vOo|#MyNY?m(iSLYFEL2|KTxpEjpj zH$E|-Eq9|%dGE{P0mX?F@5{}kXqH&+W_%~@(|%#8`@CI`yNQ#FG3#hBqV7~E?_~1Gq(s5`5B3n+)*T5! zDLmP|a?+{7eD#XQnaV~j9-e((ysf`0`@HQs3bV(`|JK#Wq*G%Pp7;&(0$`J5#0~*0 zUzdD@>qHpCSUnjgO`+T95f_}5aTW4MWg~GhGi*E)?8rite*Jp4{cq(MXg~c3&oc9O z>{I89na!U&K#;`8C&Z~PYoE>mKJ?M?{ ziTgXWLPVC26HOoty>MM}icIQt*f5_RQf_DDGxhJ-^U-9x`Q&Xf;%ILq>u;;VF(TFO zt-KMn?M+9X2@6={Q=`nF_T(2*wE2s- zSzBXKPwPX$GqC-cGLMS5t<3e^E(PlktwtT?mwV*-XDi&xgKb7Z`v_r~)Xwn?Md^3s z%sJhyF-H5wTd(K*?tifCnq|lziL!rd_-~GsGoR`HE<0zQzbdiFD`LVE}C06qbzb8-u;Aec3AZjKUN$bN}C~0^^>Fn3NiuB_)Fo(s3ORjK+2s zS;x<}KRA64{n+xPqpx7MBsixb@DQ-dl~U*dDWh9 zb{@cbw#b+7PzTH!le5fE5Ke_95~tqMI~70X?f=w6ljv?|lR4A*2z#zE&u zaHR)peGBjp$ZBRFg3Sx`di%x}8oBJnCJW07+noW0EP<06LDVGXy}Ho|1nbYGNiF_N@W(fio-Of+BKBjj* zuy@<~+iKMfG@_e_Zw8T+`Ui)!$Yx`e2CR``?KMs5X9W~AAR=xXqnQd?L5%0_u+g&S zfZxs9;pimhT@qV$ZjlS&n?T4eXc@Rj`i{{2;o+W+<7Yzwe(>52=07i4_>L3=(EGb1 z-wCkt?Riew?Mdw;)+hIng8OV5`|J+;oWc93ynUXYeZJ580@Qu9;7=iqpa02>3;rpQ z_fx9pr_AS{vechg!C&%JjbDlmzm$T1Dd+uC?fIql`PUWdFPz|SEsftg4!`w+f9vP{ zHthLr{Q0*D^|z_uA9IaA77l+bgK6CGADf;(cAx*;rvAYT9ynPTPA?i4dmsF7F7Mw$&%Y(==YOB5|CR;MRyEGn9nLm_&o=YUwtLQYKc9W4p6v-ze`-+g zjxpVHq(Xa{Qpwb#3jjcGbTYsM1QXE7FkR7#fb(AoLz%7W#BiMdf4E_Ob*(s4bYCw? z_*?|L>CYnlB#>2tC-=FMv2@v+LY)Q;F4sa;j9Lbc%{Q;7YCaY?ANYICyyRNWm2jS$ z?l%AomC&}pKX}VZNVAh@-9;Hf{oTRbZ|xVq*;L(r>vOa6Ksp3~tcoVbnJ(s1$c9<%e=T*e z?up>HJs6xWp&He?WP4q78*F{3aXb6+&+nfKLl_V5clbGVrtZw_$rs^%&A+R5_?ms} zLjXl}Fj7CMH~H_!+Xr%;{gXRh{W9(Qurue`=AR#5dTQVBs~@esxR9Z_0@`H|siX8J zYm-{n{VzlQ!wv6Uq8EnUZ+$Ja2dbRqQLNKu(TIa+F$k)~E3QlEB=xazWKZ>lLdZ1@ zkO$&@b7v#!N|YUo!taAc^RQ}aDzd6*dzHd4A-4x{a<|J_Z8Yf zQMe??p5b{T{$Y`GN=u%Xy_H$t@YM`*zPKT$yH=xUK2BmVT?bVUNjF~Ca7d}^{Su?_ z{gPJfQ{V6b?KR`1epQu@W>X0Ix!`kR5+V}$WFXK$N(Yip=)*;`v0A2*0XP~_3;Rqcb53mPD&WD17c$~( zG2}n%>_t*QJPw-_`W6HR`0uyBb2kMZ))?qxAAK?8xe+aeI>Ifhhp>q#>z2Qu5Sp2J zkZQ)ry8w^{U|bfUp^TP_aY#)N1ZpZxl0mO;PYDVeI#+ZYuBTx% z-*;ao`An|0C4E(_vBUh@fUq$BmnHabEsy{9LIn+7M*;+Ci+22hxv5KK#a4SdK3+?P-mD!6|enpEtU=m-9O0 z2)x_G`N!U-)*~gkee>qW$qZ-dz`?6h*5*W6-#+74akK5Mm#FI3tc{az0oMo2RHaBW zcS6W&ejJ2vS%5c}m@9anJ(SQ6|KTowciV4;68wYB(D<9rW_v!!+o9#Fhn0s(wYl>a12>`D-0;`6@-=IEL1>zIO~qem6Gm4bzA=gSn=)N35>MZAldUKt3cA`0xK z-eMM-oX6$W3~wyk)M#)!iEcjpX3+JR`RoPL{%yMsw^r!UJ=Fe6)LB99vy;iZ_MxOa z0o|B~PWON>Kd+popP%n3J=|ro+K8+FI+^Ks^}$#G=E~E9?-!LK;Ia#K?4P?7_~!Gx ziqF3PYfLl#eSazXl3-Ws6TGVPHm7;(wGRre^)5Z3)b}!fbJT}k=6rgZ{{6$<$*p1* zV~t#oTPJI!Hw2z_cWs9B_eL)GlmOEwB^Dv11W6`Yv1wPjF5MZ|QkAGTmqFj;qkZ*@ zImSf`)xqhZ;+o3mG}#S{7B7FDtG^aQe4RdL+?W3@^Fq14g>~dRGRDTHt@)=@OpZa+ z9B$LNVA6J>>rZAB*TP)7gGX^j+J#Y>ty$Zz zfm>9fBi81XW$fbL!|Rs=)}u{Oi$%ilhjG@wVgZNxznGPdoEs-KwxSxd$FP2}4o zqG#2o(035BPjGKvs*fYx6AC`)JF_Sb+5MW-SVmEQtyXkyxv+@WE)BVpLC)o5Ko3cn zpfV0wt_T=+4q%b>Ln{;k>WL>T<)c+Mu8XALeqC1|QuejI^znWF_QiSBImDG6Y*vDt zbwRVNQh~1J1CM!`ipjcNp`A+QA?4FIvVJ1{n`YnOp_AxxT&P7=H?a}s=T>cdzF`V% zRaVt%{dU`R$q8oiaLcp*8Yo7^stb%;QnXO^%VGzDJ(Js6pbPB_A?zGSojQo+upp= zEY#}vd`z|C<}XHJKS1HBu!6Q!jOcA2;&Yi8a>}r9xt0CKtR6&f2`Jb>=og7&WilYI z@~b<=`Alg-@NI6$#Utbu5<{I@d5J)ta`**y%|uQ8JFMyCtC-up8sG;ILH4BxRVM}^ zqs~6H-%&b%OGTJR1CG3ZkUDZynf$0g87)?F;0ty9rjXjrA%UH;2*7*RSc@|4$alCr z0J}E=_pTo~NC_80KBmpC>udi;hW1u1$6bd2hy*P@6_lnryj(lZ@adq+cYqdtiiUYd zg>!GS#$F~5x@=oTii$ZV>Pr;xL`?AWMNI4B2Z$&Kz9HEuMlq8KnI}{IZ(Re!;6}($ zfe0@Ks?*S5?ah9uqJooD8a>k^wbk2-{gJA3Ns-t|7+3n-n#7ADjK>i$Dovjr`@=gy zxoJbto+rU)rk;@*^pKYlH$P$H7av(roI~w5&W8`u@O68tgiFB-5 zlh>&lmft3f-v66~qV5ekDf~$Y@Y{+7$%To%a8BS}UAuo_Y*y(#Q1erCKTn+NL(Ib|2qR;YhZNWapEVqW-rEWJ zylp_eVnrxus(<*V5u+>vCd%%-H+ND-D8Mf%rl*9+mx$Eik64MlRi!;lwPFw#!Z6@x zL#gMy{lip(Rv7gj1(>u2MqYqsz#L#&EWCZX>GWMNi?BluP@T9i?(LeY@*U+3Bt51* zAn`7?0O=LD$Y1B!!0}!i5TNCoxj!AVat$Py4Tw-Lxy54mcZGGZOkn-svJzKyAqSBJ zR;sI79I@u&>L(A2Z%=)RIK$YICGwIFWTI}k3cqtq!O99?7=DjFMqJ^)rYf+{Xd!Vb zA6x$$t@O`DgEl%K=MlQSJOJ1Ko4^{nwds@wwh6vGSWP;1 zmuF2w)-*DoI&9*+edzQ&ELE`C&89HmCahyMb)F)sz>t4KJ3E=ZE9l-0`23Uk8+7pw ziltZdGh=bf?r~SWOVEc$Z864*q(82rsv^^u3CYQanNzw7qnYPCXZragJxkVi%r3`d z`v^9BFepZ-BvkL#*Ep~jZXK1gEMEGI8tsq#c4%g}yYC2hjk+qwkAj?imW zNz$YYq~`<;2@OY%hU+wX$$t|#eAsmD8sTlq>vge1nOcPQSxRb&1@&Mga*VoC&GL-> zV%J~PipqheIsfmqGdbJ*?$fW=sV9rnv!gdXXNPa7XQxyu07Xj&qq$E627dx1g8*$K zz~%^uBLWf?!loR;PII69Lr@tZJZ&L-b0GppA!rnl=01s75ykw85*b9PHloZNQTB+4 zMTN>MhbmfyD*1;hXN0P@g{sYkUO5V-b(Cuc*FlB-d=jQ1@gMQJ5zS->2|L6C zgb8r7qtLTDghj@G^ktbR;mSuWyLSL$0GJDH&nbtC)gkUhNiar6C>4qH{xptW+O)0EADP=s0WzXZ`D_c6#O&y;NL1X%2RrwpOsi2F zmOM^XP*Wh%62A|kx3{TykHe(Oh4^(yVh3aev3r;(u9k~HA1R8OQ2*cVDxi| zZ*5~LixXgjBdxwBW}Mg}7%l+-aXLyk_C7#FKH&smWZw3*2}(^_(oHnK5KY~_%YE~O zr3sV3sVlWX>g|*NFpw-xU-QEW$lN1xW3+uxF37NbC`*U-bPEvUGI5`P+3rqGEq~N%yg!(wSzcuC;)WG#Jlx|d!6Hl6JuNQlL zoU>OUBZ%N2@1#l8iNAMojg<{Qw3!9ZDN}crS>qo5tt-De7T02Pn}=&vPibL4_Tu6U zSc)8lgF$aYtwLz<6%*2O)s0p^Jc9PB#{3qdi%}NI8PW+c)Y1cfmDXZFA&D03z0ohu z;bio%VVz89ZcqjpAX3MBAXhJyC$tW7B{Q?RVmbMu*59&Eg&*gWxj9VpOxZg*EB1Q6Waky#Umvz{o{90^ox`sOmaDZCvFWKqZ|gX zyLW*zn|SWLDS=C8gy>CcMoY~ITeC7XGAs`VqBr|4AVLTtn?x&SeUPNrQ7n7dGS_(= zL0FssvQI^qGGVjMDF${6fTbMQ)o^Qu_z2^o8K+WXcj;8o?A7HPd4zA)#O%R%ZW#*b z+Kn*30#hbtf6eHOFwO}zN{8@(*298Et2nDLkW2wt@;j7Xp>3s&T!0-K5YuOj z&V8PW^SLH|?b&cQZEWuDf{-LK$JrcYrI2&I`R#1igXe2mv+Aejc{c)>9PsXxR`R)r z;8}^HFd{ej`K26Qbqa6>^!AYeR+2&AP}e@@5ZCFPyyDMf$5nGgC$=XV_m&sPLycX@ z67>Q+3t$>T^2GOih~tcYI3iM^g)oMsW;{BzGmNvoVR@j)ZG5c%=u4OIxAsO#GoBE=xp;Ta6Z|BQ2M|+C=)9FP42|sAz{kW@vKk!kT zb)8*%kyKy5h8uuku2XKtwVQxX5ccnB=sQ4xU>NZ%vo`(7+GkS7e!63`auG8ajMXx7Dn zw*sc%v>cNmTx8V$#oK#DHTCx2zAKf`LIlK64We{4RH+(@^d?QD8Hz|Zf+B(?2_XqR z^p2rQm)_9`N)ah4(p5mEs$fGzgp=R9|L=MKdyjq2*yrZl7zqHX=l_7hLw zW8(=^%jr!k(Xkq|=`pVGEZ)XVz5;YSp3WC5O9#)#-*BQmM^hVRQT}wkpaJ?2UG%^2 zM*qKyr~i@iAO1_q$AI|QQoeMWjX^wx#>HtRn}uUBp&DXl=(elH`s_EbJ>>@q`zZoP zv(VXJ3x`srWh@Ybw(p1NVDCz?!D2ITK1%Ae1)e-c;SsVeyY@R79Lq}z`Lgw+H2z5=x?4ql#jN3gEvDjkEEZG;W-}hfcW2!HmcY{dof5G^gqeI z|K5_LICpZ{vhO4MzaS<56*>?k{3~=I>g<}`P|6N1c|Chhzfv}wD}Ubc$zbFC(R;d$ zrbViP|K5_@Gc{};WvGe!1y{bVa%wEwy}@TMfA(p~#I5PiWsk1^O4$*uYJTsWbVax? z$ozb%?k#49o2_7|n|jpt-ruU<)_7+S?V!+Ulc_va-wEWQhcZsU!%i6FP+xyW<400n z{|V`~>4xsRKl2KYePR&sq;w^Ci}9CyAas56jg(H-&*k9)4grhK-|w`1s}ddvwB356 zwUBAxf>cD#Xt$Jj#O1bVYcG81gvISIE9zWzD-O>*{$2qm9+tWo%vr8ybISM|V!t$3 zI=nhyirYhG&a;$cByuM=TV+@~?KYKh8TdjKB^2xa;L{v~`V6b>iPPT%fM5TRaM`LZ zwhEtglA57zablTqufv`5cPyhuwO%3!b6Q(-6~6SB=vVJ?=IhmsU4f13`@~Sot9gzs@6x$_dM~QKbe$|KQSge7*W#Zv%%0piR_w35 zR`R`WZmlh{=)sR*?bMS|W&8Z8x`OvGPZ9i+!>hV_`>D-Q92I6h%GligY>jaq@8!&w zQz{ASmd>Fnf&2k-PU?fGKZzO@v8{#UV^4+;Q#YDolQc)>R05S}uALt%p7<6gRtL5} zKlLaU-ZFBs^_G+?eMhr65%~U4`_t&lz*SG(nn$S#DixZJqpE3ApMuA~1RE5*cDhlS zTkxb(%I~#GSXiNI&H@B^H*EG*f+|J*uISt~i1GSMk9a>FBaevhrta0GqoB0)V=^{} zs8Bqg|Fzig=@r31>{&fOMz5Q%65l132k%hKd*eKhgHvX{Nn}^3LHY~>7igfLg6I<& z1}{u}5bCUYs(7lBoSwL^4C9R)usj7C>hq(>0DO+7!2E!#kJb_oDR4!?J5C}G3ek_h zYOR)C<*vS#+|J{+bXzJ=$fF@lSZtIM1BfO z&FDIYlIFIDMtbr;zJ3fM3O4CeM_oo*``KL9Dtdo)T(V(#+{6eXJfk~MFBULY;gn(4 zKUx{BH1N9j7Qc$I*2@?5N5EHTL)%k8Pz&Ului8hk&)vlgB|TmwUVBu>4VQKdUgeZkgEdMKYUcU6FKOF$1vKaD-<6V z8!a+_#d$@`Vp;wNHF>`2$2(Kc`SdtZnOB?Nyr{j_e$!rA;-+vr$r|%!AVupfNxDgR zU4qs?^`DTGwR^p8UifUd79WwcMwGjft;(=d%HjRxjZ(V9pFUKQ93Qy(Lu9-tL-UE= zxYF+v!hN!FXQJUl_6pf_xCrmlkHpw&k2Qwr(d#kX2@UhN)Qm2H$VPl zOu6>)SiyXh;GmQDpzAk@kgI2dqHn&{?NUF|^1S+V_5nW9-a^ugPgT-9`~zpD`3vNy z;fFWctO7l9AKci_TQLkhy6TbTC+vGG>WEmq+wHek4=l<<5AR`W&)iYX1AZfvsD?qo z!iS2IBq$p9+fjK_4hPX{88SD%#@c6j4J2B$o<4kpuC^%RX8zi{Sw1;|j+>SIVaCza zulxFAhTYp;tA4#BIUBdCT;BY#y`i=G^ucxQ@pmI_Hxy|VrYo55FUs#6k}idvbt2lj zZ@W)Porztd4SQzYPS}=SWKtrmuBIm!WJ#S6;?VTAcrQHL)~E5XJ~8z9d+|SQ{kXk) zMwG<|NdfN?1FMka%<2!)D!&J zSB$iGUN91yN@Ofo&0Ka~W{otJof=-Xirjg{L^hWjTdvvW?u?gPHCLV=UUTf+d0od2 z9bC3tcb?suXd7v+y)nG*{%2>Bg>0##S$^^q{WCRS)zXkT{K-fA&-7SgOVfSJ&;Bld zW~N43T3Uxc2S@&yokzB|^;>=k$^A38V%6F)Is7H8^Us^j#MZ85%Z-THKX123S|9!z z-njGU&pUvxjm2TLNfzCmM_9M@92(iAYVR(flG>igSbdFk*S-!eLPKVp;GpI^56o-@0yDS1BR|Tt|E}63b&TJ)`dR7ncg<t$uaP{{0d@+WGd^$ghWg{<1N>UGp5)+dZOtn{?~0#Y3apecF3p z8A)9qWUPNbbJ_crHQKdwYV`L=!hIl8-~z5jbGiM=Ja{=4R~zcV%Z zaI1Bcy(QoOGtc*Ef4kp$?_2Kv?uzxJoypO?t}R2RYKgi{QiPyhyi5-0{}3P<5TxdUS~z!rk- zH7G`iXk85yh!M^8mEzt;aa^G|PKD??0SA(!^};DoR0mK54fdFNhE56Cr-OZPkl<~qFM>uu(_*)&iS(E( z1R#rrISs^sm145#6x-G)7z#MVG&z6+TugvN#G?n82ndQC>;(AG<054N5T0~sB^Hc| z3HFVHj>QT)QCrcVnDY2qr}!au^q`!kiw508lMiLZAHXEs$|6k+#1RLsnW90nSeQG5 z3pPdvV_~vbXt)L}77sr_0NJq>V=Pp^jrIi*YvK#f#6ltSuvjb%1|(IP00uY+U;}(H zfk1&6A0imaNaFH?$1>wHamivUiJ4f~0X*EDNaM^-0_tL8y-9+rN$&=tjBX^#5;&h= zlK=we#TPUH1**WqVf#d|I|k62PS(+crpcnj2T8y@?7)1Cws4Fp5iHB#f&fWR%Mphd zj7%(0)fNjOrh#z~J516l9bC1YdORk|#0fZ9k+{GQI;_dKot0v|Ox4Qf%EXgcD8{5y z8p0HU(2R4h$oy5F5li3{Lj&&EbOQz#+irabljJ&>?t_TS#6chckDw+jLX+~-Db=k# zRkkkeds`w52Zj?y&EKH;c#jd-j-l~cG_L!`Kv9*50Im&?g_T}^5$FAiv>8P1@L{RIxxr8T2( zs8${<8A$NCPXpsh9nFA<@KT4^QV|^r&aLatn4@e%WCc4U-KW|I65iUfru~B1;xsC_ud#=DvbjNjtH_E?{h}F z-;t;IdAg)|9#Bg(aTs$yS0rT&D3p&}e0*2R0W3ZU%6$;GaJ1U@>?&Rzv>(10YWf2| zmxO!Z&V%^Rk6^>L`y2%QhYk8~IA!_R;eSf1%<}$kyAS&7yE8N~cG%ps;h(TMM+EfW zbDwHk2z&0+2(|6H!FLaLSCJFk?9_-keNWF)T6g8U1H|WI{2Ht-t}t=7jkiW(uq^w z#d{zAy0dt_?bq^Hr-|;2i+bhMeB`>*%)z=tp-#_ZWVj9GnfFH{H{Ko(-P*_>O}~-9 z*SH)o^{C*Y)cv=er$VM~Y{h$MYh`LKb$2EN_5R7IGobBPAG7Pf{n>9QrdMHK=O8g=UW++sZL;_Yz<@53P2M9{a} zuLbe$3tpqT5>Jav$Y+FM^B01ry-ek|=Rz0mY#rTt9scO2G)_03=R4B+@0(W=&U150 zL&rCE8=uSh{`~pMm~941&`NYWUvP6ZdAa1)r{k;nsg6n&N7EPe+R?XvauTgXS>pnn zF=LpV5={Ad(&yH?S5 zMHgLaTjhf0jjmo^k=3@^5t#~mJC5nQy0t?`hqmi^OXvqt5TcJtj&|D z(?__7=4C&f^euFw1VcAI&p6pWKex~HDrre}s<-^|WUkmFG2~sLRkF%f&HkSAmyJ`W z^R;*)#zIbBLluR@^+q50bhSxB?~6p+fHS%UqzMZ);znssx^BTz()}E- zk_q`hxf6AEPmj+Cz6Y0pFZS9`uVdW4bl z`P2Cp$2Ty87o9XMN*Gpk$_vFpzaBq9N{TQ6`-4rW$XCC#E3y%X*X)c}rIR(KGy{bL zOY-O9eRDgvHxgIY4oi@VPEa(;-R$C_N5>XuiGQs~tL()ZmKhti4Pq0(7`kF?Fl4m> zuna(sDi8KupM!|4%~KEBYw$!?8xZcZs2Zo0Vy;;zB&=2SKX}fjVwM;L3%K@cN;@T( zUXwyqWaVv3lX%VXJepFAgAc=$6e7K?cxGjfoK{rgbhi48+z2hqqAq9$I-T@a4w2S{ z>&4%GQ4yGI1J$}kO~j%g!D}nWYQHIW>n>R)ZK<9=%(u8NSL(r&kWmhKPw_z%SO#mI z=BHrxURSuWcn;5@aAMerZhO{%LVji6;Wb>n|8ox%E_DH8n~XHyCMB$FAJU!5;$4MeELQIdj05W|Aqfd@;`P9p}{TE(;^eW%2Yy1~x8n%yISVQQep9tJZ zfj>NP0HZ%felN&ztnXxSLR`0gA;y5xV`QaFO;=2REdP7ZCb1zcE}ki2{`;BJh_Z2> zE91J&T8}fbF{?kGu`lS|TG?~o zH8Z1Q?77eRs3oYs@X)YtY2{?9rJ0A>IPl>a|04JIhuzt_=!L!SR@9pw}m z_#d`e_B#5TAoVY3i|b%Y;a~<^Kg~1!K0lQ6k8RfUtMn+_(y*wisrQe5Y85 z{((&Wf1oYnl}?Q!-IdK%lR2)BV#RZn6{j10wR0?oT7v9B7H^*AcM^`j=?wY2_$JQr zx@FX5xp&e1(=MS`cMq9v3kJm`7}CZ67y0+Xy5 z`L!pWap_NCQsHtV1MUgx4{2VB-#!m`-9EiXzsS)4BIA{ON+PBt(d@*uSE?15^HQ3D zm1$}6dFAY5ZYP6mLMP<#T*_mvByK{lrc!m?6An9zx~HH&(E41yD;BAJ68oac z{ZdlV^^asWa+Mz{yqf*id9q40v|VNNf=b@0*6hX{?R(QI*=K0NO_`X?_@WnwkK|{+ z)IT_U?UFS_?MH^)(X~iu2Fh8_eAK(xL>NwNIotS{#UL^){G{aEb?>kTDdtVL;!bOgYD+2 zbjY0$3@2dp9=JZ@|L;56|HtE;e~vg#|0_%I-<<6N$RGW6g$8%wlJa>b=N5Y7;9ni) z2F}etrNRC=zGx^mrA*j5OO-eL>-Zu+&y7A zZB$Fp6^D?qlyi|cuntw1K10JLuP4>LN#b8G%(*mD(0yrk^H{I6&Dw8zT@xvE8yde*!ql{{qwgJ~+8Yhm=7kA&q^JiuGjAm(pCcF=K)yOJty!y3gnr!=2 zU&|LV%*nE{$$wc;a`V?dRm{zdaaY3#pW9*~rhls>Mf2i~2R~NF9m28I9!Hv8L5{o> zL2G5sCM#D}J!#;M&Tgs*kIdZrB%_2k#mQ&(iQiJg;Rn@h{GH}ElQg$?L%}>-n4`#J z7xQ}-^ghrHM$}%$Y+L$EFQP{D=84Muaxk}E4|RyClp8OSi|v;YLNg6dm91VEBc3#( zT;yHPBgF9wn;aQb+&gZVW#}M5$pKthKom$1?e$pk+-)O9-ld1F^JhHK_#Q(X{bt`!Z( zhB8lh^|)4SdRoTlh?#W>Q|?>m>yq}G*w^}tV(kR!vm$A$W2H8^Mz`ggazKuv>fh_q8`etqw(#|r z`G3wU&2`eH%oEqQl|ByM+;HrB-rl&(iW6S1v6yLCd3m4xyszo_`SD2_Ox1~n-}(e= z3tfLZ+}XPEjupjy*s81T>-&LJg^MFy?cbNjip}p?z4;w9KUo!U>Q1*F1j50J+vhv% zuJiWW(yQW&hck6uf33|9-92;W^xr>Q-+SL(ym#i#{?1RC`MVIf$vg=zjhH9HlBjEV`R(97h@G${(<`U$-a+Qeb&aJor=hk z0&8#4-zRB-2a6e};eH<&#zHY4Qq0s%Kct%K50<1^8ToxoQ}d}f7Q=yKOJ;boDJj#7 z>bI2bTUN1@6WFr4luPK7Th6;S;kTS09+AD2d2_4%{=Lv|oGVOqi=t0a{RTLEDo(XO(g{%foEnN<0;@{$aHHq^hYa;>uB^d_;QmJRjCRX6sn`PZ~8 zRj$`|ZBz*L1{AwG6<*TZh%6}>v^Yul8%3p>!f3B~VHV(H{aRPbs=jo5YMHI6nUF9KsL37?ebC&xC?DAUkjo|T(cqrKCJWm8XYFyT^juYI zpK@1SZ&%1{UFV9BD;CO!#eMA)yYcC3|2O{ilMPQ3#lF_=y{u9k6p|9FecT%%98x!s z6Tdm!#}yblr1R_3_fg!w7-6L8OKg1~MyBS+ON%q2KVDgH?4ImHs zzE0pn#kVFdCMJBX_KZu|dhB|4wWZ+Feetc?YeR3;=feAgw&rfG@3*(UxjXrH>m3CW z9KH}e8PGZ(p6mAOg{AR{-ya0ui#2A0A(0AYMt5s8>!i&;U(e$6O>C$t>)ct%dP3F= zfZ#J~Z$j$Jto|&sz~-HwpaCu$Evz%^L7P3NazD2|viss!y8zc&>)m};z58SQ{JUxv zN)_-7Vx@cmARZCMWhFdmH=En}Hp81s68cVeEaw&P>q2#F58qk+b*~)Fo0!o~lVKRf#DWk#*PKLYVs*%=QA z<`u)ZOnOeadm(H|2~Od-1CN}j0!QmiIoXb|^c8(Y*)fB&iVzXKvp9a+ z`uIx-d}{48-p|lAm>Yv={G*p8UYi`RY=Z+C&CAQZrGu)Z4GsyhaPlj$)clTvVY(Ji zCHZ6OZ<$F6KlBBGov`tKZAD=AXse<@dL_&5>utnEt7Pa=IPEc9+HTPGYd$A4b297& zhCb{$-z19*Misl;%H3bNOggcj*8{ts6=hI(z4z75R;x($1$Mt+lgPKyjNqd8oN#A>uQf4Kd7Q5B&1hG2?3_Q4Js@{S z5(Pdrq1Nl}d;f^UI?P2D->pI?spgHHql14v&3`GdH2+f$fx&Zl)G0yS~1f1X8e(LsJ)#F$t#1S}-Ha7o9b z`;rNumQMgg=GFE&>lwiHdl*ndPL%kS>XTHNI^xe97EiVbEANsSS$&<%wq8;|PBy%d z4F{0>=2IzR7I;&R*?Sg;3o3}@l)=piao|WNP7@Z--D^E0l%+2X{uB%2DLl0Nkt+TL z!+AuJ$%g5gKDxEDC|Kk4k>kh8s@xAUc;zq4CJxX>WHsid zYMs1%m<7IAf=7g>%iWDz@H@$zSy=mM{XftAu3NN#mr1JJF9F zGnJ??v@&!Gqn~6@hdg5Q>X7LrCBc-dv7Yvx+4$IE*zZ;zKRo2oxP_6j{MQLdG^Ac% z_vy(K9**DCb8<4z=)6Ru-uUqpXZ>|x(GOrLZua$H1417*jP&Z8Eo%WJ(GSIrMK|RB zoOsSJJZT-^#b?oj9Ju#{Gflj5QR*F1qs{*4fq9Zx>m=9N{-ckmqkn5(wS|3ttG5p? zs3HrtHNdsANQw#oS$rG=sr!!Gc~?mmCot7{H*vgOzX9$xOj3mn{KS~0=20E`7d5?ILRGBCRjaCaH|X4z#r6fmO$95_*{LxD4) zz}k1O0b1nMROUliC^y$Mz)VlYQ+@*e? z5-D=-REhKOl*?z6#Z2^`Fx2+=xp+Ovl^57CS73I0?JAdktm z`%3@Kh)qzI2LFh4n_(!@8`B<=q%MGK zASv)U7~1-t{ZXz3Y1bABO>E*n(@>;z_IuJ#bdnO(Y9s5vAYJw3B#D1Rx=N)^s|YF_ ze3Hm*sI@hvyzG^tteL8MA+-aXqRxhNX|<=S4AOLdr{aXu^xKnTY}1TxrkP}?nYE`` zOs84>W<$EtZL^P5VBtuxjjn*pA|irm9&}_ zdowFlIGgO3oyM7+-kzN^ot?6pojI6&Pcxe$2eTi`JdcA_v}gXGK)UK;U?aYHcW>rB z%g%cqlQ+_yH(HU|y2;&YlRvJR|B93ADxT*92Kkl~xqvEI*eCM77e>Be@=lHMP65bu zIph=@#v+XT!g+5&^WIm#dp~~{{HnP3+w|VI!F&6w_qK(Zf8>~e784P{1my3%_2asO z0VZ$ezt;RONY_Dm0R3-B*Wt>-R!kA*e+TIj*5Xq2=PJe*YeW>Qbrh>U`v=&?94pq+ z;wr}$G6^Lnu_Z-#E|So(Nj&caj7w@IYRA)=}+r>di)s%xg| z;Z7CHtaK8O1Y_W5A}R-Rs-JaKKcA@{*{L2Asd@RoK)PmX-mX>$8It{OHF4=8LM zV}EmQ?Mqx~V_ezSYvVT&A7iw1h04^N`n5_*=Gxq_zg*kqV%hHVMno|yiWv>6 zf7+R%9Yxw5B`zI`xs6}sYYS$%>@hGi0N#pevIQV`CRBZv%NB<)5N$YZ&e_U>T?60_ zHqAvCARforzf-KKz*UZd$1{*q1l|t}(EK@2&z39u=wD|O84}4m#fE9^NAg`;Z<%EB zeu#WnyTd!h* zBjggcKHeOeHU`Ita$X&K@S(C+Qgnb~(a=a>6_`JMy)O^M&J85)4lsCX%p)4h84XYW zK%!8cG8p(%e{d@vYzuHj5y0e4?kIpuh6PEg<4D1R2|#Z-&*)^#3U?BUFd&b9Guj8#-JUrHBHF1KT zV84nQy{c2q#DjzIJXj|5_H65tDKcpcuFS(>9XCeFALFnb%Qb&>pnEF*%~ay?#)XK- zm_LvrEciwZRE_b1$$~He$Rit=yhW#jO=W)^;Xx%~ zoR^89OM!e7pI_HT@bxeO+n*p=JfC+r^5+;t5sMVU!?*CB6?kOC>|6Aow|zE{jN=bm z*>po32Pl9m2!m)O6a#zj;Fe>NWA$7G%MlNklY$;=adDZA!40d<*|$Q96x7_5pCT4p$NeUW{FiP8f@{SiH6OWm95%2ex*&kDAv`#caJY%^x={(vIFjW50&Z4w0!KVFXxs;OkSJ z(KY~5!9cFypf*J0d>`l>_O&n}>H(22op{vC2j@Ae= z3z3sM6oqSV5B!;9ju^VwKC+J}k0|EZ4@7?FUb}4#BAf&1bpz4wrqqdF7%jqT?(>z6<&9oH8hUhn-^ zxv#kHoe#3LE-lH6J-17G2gYS>JSB$xqbm-C&QA3?~M~a^#%TAX0de=et5*F=4}=_IKQUKvB#p@?}}c5QNFX9 zaY)URU2mun|FN0o{h)Vc&`MtG>h9b7a0%CK!s63}!>8n*$&?qD&*&)MI6kLFxY|oH z&wS(B;kndusXy$ii^jKT%as1`Zmb5o+_!Z@=#+9>@Z^VvL$rjy9--gPv&(&1@eMa? z6>a9{!90qB_9*TXb?j^?teyx-D`50u4R}v|_y^Jz7~5Wm^GM{!vJ2o<*Lgb2&IZ;N zF6DSSt0w4tLo_Ps_Pl+6;PmgQstu8V+5<9YB-gbqaK|!r62xp+PBDgZ_e&bg zn;&oe&@gn)5Ts(E)PJD1sE%D}dxM=)|ZwOs!?UbRT zgzeo%8v`YN<9$HsD9JBFT{I|E+C(&8@P4jHx2m1Rsn<<*R%d>y+S?c(Y__+xR#S7Z z*Gw>VIDh`OnxoU@^kzr4#OP4wc;j{Rq+|Hs*XQxHgO2AtXNd+p*gKLmEv?U=mO8GW zv{hMzrUMnuLEP6&-=80j2R|PAHNEvR#}lBXiqJSKhzvGx_1|@7A+e2fS?rX2A4g$^NFxT#DKfV;y`uJWgn^>68_WyXmG;F#1#=E;5r^6R$G7rPw zCmEl<`7!hI!<);IhcGwIn3~-Y>kl^mguQIuphv#$x_f(R>U+VP`5C^C4}Xp~DshzE zeM>uY=lAmcM|b{g^q;x=_t)~HyZiebcmSrsx)9$ZHv5YHt8TIz7Q7zDHHUz5!}K^k z4cX{5i6uj%`hk40~{aqw25@UX%IhmaUU>87cU&0Qb%L=~brK8_#q8@CT@>*~(yT-y& zoymzIlpAC;?o*B_##GcLHwEV$7&l3@N|7RX+5juRshZM$NFTBxu;JxoH1U;BZf`YA zJk7#;pzyGEY@PMHUAl%u12QYxK&eo)1bWC{CuZs7#Pwp1#V&qIC zQ7)JlV>4HLFuu3y{s9ivk_$%_?_53F zhlQ)gC-bav{*?NF^K*T_gGwF0FEzjNRHdLW<}&vBgWG309%o&c07ZL=yK2uH+unHW zXW>N%&ZF+DRxikK=X}o#ecUHi!h)TM2Nw#(rr>_FcGn}Ev4yD4zVjOO`HxD&ou`dyfc1b*)tlw8TsLC4fn;^hf?B9EX~{@!r<3K z`_g?Ffe6#VgAYxyIE)D7gI##IoxKvaEZyC4kl-w{Y)mrT%?)Kdo6xy=%Pfu{HKMsXMxEg2QuJ7cl0>9<8iq3S+Vt)Ni=S;ridUS%hHtOV41 z*95|$!!%Tu{Td~LE584|8U}BQd}eBU?aoG>F`o@CNrGoVd<`!bDOLG4%)|q|MySwz zN#ZstIWqT}omF>^T}WTXG<-_+ZIqY=|K!_RetwG5cHGKF=i=y?*E)>@KGc4!xi| z*hh)QzZl57q(kH$yVa-mp#4ZovW#vJ<@6F3eh5nPK9NVf5XD|AH;M3>-75_ov5xbp)2Lt0mv%vP2 zd^g!u;>PhTsFVhYKaBu>lterb7Za~g_&5raR?Oca+kb)%_)5rxir35ojh}LOZ^?o< ztnCvt!tvyn2L`ju+i4u2>wMxDYMBog>zihJv z*&%8F=Z{ggZBNdGor4+J=)Fm=)5kRACgLb0Za0l%kyFsK7`YJN(~$_;#&?cL49E4U zXazKNE}$r{h{aXS+Fk&oS>)|(IoZm(A1IFBPPCh{ z^#Z-onQ=*3Qnc*GdXZP{I?3EjNe(jx*bE(g7k~+{z(&}zU|D6uWVlxw)!Rnd3mbh` z34Z!q@lQ#PwodqFg^9LKgHb>@5t7+R=?Hr6gWvW~icG9*PEOVq*CK$$>NXjPUA zhba~$Km?hULyQ0zdb88mhQpr`$FD52B}oy%L^+jH210erP{cvs;_E;(&vx|n6?n*Y z+g*%$WShYoTe663H~$*_l?zQBOVV+AaOV%LCre02US9L-q4SZ-<~kr#;Awy_3_TBU z*EOp{PlH%ADlS@tdBSfSF`=9;w2yWzVX|QEIzV=t7P1230!Tpw7(bJUwxJ!t zlY9dJE*5Y-G@6e|M9EUG0{v)qw<#XrGl{m$0w?TnSfCSdHk2FXloL#vJoeOyHcAMV z9E9UIfu`QTaVP@R=rpqSHizpxcwe5;>cjvmVWQ1%X}G|&B1M&dZ6>qUy1 zToriOK+P%_z3;Uh?bsIW2b2eHa$vEb$(Ou(1CY611Jk*RyS@-Pd_^!2fJY)s+z?Ug-}~>5!4%qPhS;cU7>*QYj$kGjKW`ja zPW`kdn_~asphJ;e2dpO`%4M78V)Imh@xtyKPK~Q7eH-SxdCq2RP~Pxy;uO^%MeRC5 z^V%k=V%y!bI2?hq`vY{eC?Hb)Qn=B!x}!e7@tJS^foKt^7!ZAZJ6Zq_O%?3o`#|3( z)KQV<)Icme<)(hX=D8U~Z3zb1cw14r$-FC1Is~iD{!1P3(e4=gGI^!z2#feSsxcM> zA&$4l4J$tDeH00mm6CXnojG@zR!(5qr)0ese%W@ytY@DrvqMUAAxROqmMRU3|oP2)(+$uK7P z2BgGozB~z|tq9t4M)i+khR^V1CZ4sXOzD}G?%5V_ya&EjD@1^0DQ7Od6@z`~S>B>6FiPQ$LQYsVXVqXV5_*EDEe04*e(>g8n66I&DP z#DS*Un?xtNI>_pZktD@H$SkPG&+#CDgXf!O0D@vR6&)hW5loL(4kx>@sJ*_)22EY& zs#Hfz*T8L#spqe=Z#}2 zKP}y`HtgBNY6(;#{IHjA+ppgs{qVLBUQ!Tq^e%b|ivgX)%l!}~hhj((KS>eg>etax zC|~$j%DcT1no>Dnh9Q~P$^PoGkwQN(52v}WfD;pJ?uyYq`O{9Dz+ed`h}-v~EuuqL zra+3*^ry1vujhI9Xg8Iq0=SW2YzJ)}=kN@XBc|s~q+ZDf#1MqH!BT(2uDXytUdy0U&yhQaUS$6ONUcd6+Y;! zpiv4xD9!O&&A=N$)-ZvKvB*p5$o<>+fc?YikOti&aaNw*h1XdijcpDP>&aa_ z6pi6H7(u(ii2f!BhvA}BP}aT=qf9l}4|b3n6F56>9l8QKY{OxQAce8vZ1iYOI@uow zInN}TYFL}f!p$|JFKI+yG@+c>ra9G-FPbWmLZoNROU|DF8`+$FHB{Ya{-zDCE;RDpeM`_;ua zk?p$N?EJzhA}f~YI=8eA4yCTyGiQ4r@-$j~L4=0eLu|kS2(XgVaYh?FblwZuM!vwL zXlRfy1d=I29z;+ku=|Tq(Kr)Tw@ujbF|au9Q||;gl0NauJL7m7HF(7z?HlkKSE1|n z>f8iXZxwDA{C@#;K#IRyf??&37*1%w>}bu(;bMeVAOzu>xLsZ$igH~pcr*cMgWDTv zbwCFqn1XdU1pgAifcT?_C&&O70ES*jfei2fU>FB`9D^zNhfELxbts1-r~o5)hi|Na zB(R5GAOU-{1VyL@FaU!)Xufrb1ug(Mhg<|Pc!gv>&@dQ=dsqZW7$ka#ge$m%ci06m z-~v0?21`fTlFO@S_<#gh zg%6-XbJ!6qx`rPvVokcXtC|88PX{m_kagHv4vV~Htr;Y$r zIQZaN#R4eGjT+d4!YRWOMh3ACGhEH0_JLF}zySlm0kX#Mx8~y!SVn1}0woXwNi;=| zxCTn_#s5kmf+zR|8|VNV&;c7@a~-G$HOhv2m<3FHxwNUYQADNCQvw)R2C~Fm*ddZ| z_yHIoD~t&3nY1_*tSd5KhgsO&3^0Ko05l^zAzt33Ul>IksDU52(M@`7l1k?HIi;Oi zq4?>jnd;zVwug6^CuC0bVzefcQZIpPsCO;(cg-Y+WJp*ar2E;ohMK7ZH+Bn@ur^?X zhGK*^n5PIY>6tVrwJPl=3rZBrt5rB!zwCvANc4=zX&Q*7b;zcur2!;%@e>X@S<5;p zxPs9F1wGD)Cv>{EctR90s8;fsO-zOwpixGU1TlbB9KeAeIJzar2tal6RS*VsmaGO^YtXTdcL|o+d?&po2vfhGSs-V*mukU;Julu~0KZV7LISLIJI! zflDZcbU$I3VVi?`ErrPj4#U~mop;x>hG`JYxpWJqN0e-U=@D~d+L!#<%?5jb2LDOu zctHmVa+rl55Pl^Hf*@dU)vdg1u!lCV#tN{29@qj&Q28vl0hhOdZD4d_Ek(D(f)Qu~ zO+yWFK+Ds>CnAvyIl-buug(8>i=>g0P|P)BOQiUMB&&BJNh(H9YN7w?w@m_wd;k3X z8|d#K!h{MJCM@_5A4G@+2|B!o&!It#6AwCM=y_Gu{&7@#o^li;o!n{CRbM zEvjR#4xe=B&d(>0PX0dr{QCFv@9+Qrf8jy*Pd73N_S;r%DTo$s3g$%>PTvHT&Rzo8 z)KpO4fWwb4O-|@qz&6x z^Ji9-T6!s_mL9q(SI~^oN-L(A5-O>qnp!HVr>dGNtE;-&Dy*-{8Y``{+FC2Fx9XZJ zue8hb3V$tt_)HQEqaWM-K~Iuu*s@Oe`@eO=qlp51!e?XsL+6OJ^$ zn0w1F=&GA8yX(5!F1+u`8!x@{+FLKa_v)K3zx(>zFTno_95BK6N<&V#2`juX!{TC7 z%qbB^tOzN~6hqWfKkC#hP+B$nW2Pa8j3db{4&fj%RKYT0?>Rj z&N=J6GtWKy{4>x&_xzK}MH_uI(n%}5G}BEx{q)HaVv|lW+FX1wHWGRTmY?152DMRP zi#;~kWt)9A+G(r3Hrs8x{Wjcj%RM*Ub=!S6-g)c2H{X5x?e;a+2tIhFQ~s?sD2Xe+ zIOB~w{y5~3OFlW}m0Nx}=9z20Ip>{w{yFHOi#|H(rJH^_=A?k4I_i&80?O;L!w$-v zXu=6+?Hb{3d+r$R&gSoO{=WN~zPIU6@CDu8SntO(-#qluOFupJ)mwi(_HvrFJ@?{7 z1QAQ$i$6a3iY zJRkxSsK5m>uz?PIAOs^Q!H66Ld@u3GJ-DI}d=TU!20_V37~>BWg$O090U-)KB7hXK zaD^-c;R;>&!Wq)AhBmw*4s)o(9rCb;3wcgU1mK*5Wbh_C>V`rdB9MYW2R%-FA{3)2 z#VMXg093pp7PF|uEk?(RT%@8GzbM8r+9QlvG$R?)sKzz2v5jtgBOK!>M>!VcB2_#H zTe9(%yksMZ2PsEC(l6 zp8O;zLn+Ep5^^7=+($pk0UmqQV}(VuhCOES1OIyf2Z;%}2q4h`k$3R2m%jWZFoP+~ zVG@%u#5^W4c_{#2F7uboOeQp=iOgq4lbXr|rZsz+O=)too8J5;IKwHY9hyn`|4n1?ElBawf6BRIb>fdzhG4hd}#AN@GT_ih+N5)!mA3{g=+PNR^4J_aET z9brLFSV9p-w4$tWs0a@d!-ZP(q9aTwLLu7Gk&?8eCOs)iQ>xOHvb3cxZQnoM2_MGX zLx|lVhcQl&0TX0E3G3)%LIffYb4cfdHDstt4@y#yzO<=MeJWI=D%Gh{wW?OVYEtDOD;~<0{v=(zUL3y(?bxiqe0igR5R` zUs)7mmeSY~Ap+q?bS{EJx1w|*dVMTpBP-d-Qns>p<*Q%cSH!EJ^&k6Ct6~Kz(xqyY zq8PO-YE!G))v~s=dc|y49fOaRbr!KjUF>Kp`q72%wzRJOEpUS?+~E?pG5AOaKVoZK z4F=V-pk?a}8C%ej6t}w8y)JgME7jvB_pj$;u3`US+tAujx&%F_W3{W^^|H6U?mZuJ zmD@h>64AM9#Vu(~^4|UOx4-^{(n2Mvpy@TNnT9u&Yiz!8y$boCtTFpry- zXc2)V*&H5xlW|}Cm?pEC9J*XpR4tco*ZtiFA8{T@%gCERT zg(+1rj$;&6!4)}(J>KCCW*{RXgsujB-eiw|u!GWHmJT~G&A~UZBp&_9#`#=4Pvy05 z9;QU}KHzx_a;oA{DWfgq@fKEI8$Rh+4pG}(5PE<^-1xi4 zdnS#HXRCYK5P3I5=wao0#2O#JCN{zouJDo?d%&Cp^m7>^ok?foFWa7nJoe%1a_oa2 z`@qHd$~ft6f0^LbFh@UPEsuGmgBkPa2Qyd^4`wh!(Xmc>HRw_9am3oyn6?EoR=y7{ z#|Iz!ruD@QU5%Dk+SU7rwlZkWiVQEj>Q=w{V;W9kWY<^O630h5m;nuoufo?WU&lUF z@eiI?oH^TehB->E@n$ds9Oz)iGwf0GbwuMBe1C=j#<2>3_G2F8p!BwpL5_Z?;_kkN zxwBhhk#kTw?%S@$;{OdV_H8@6@Mvd67qKq-(IZ^zMLzL?H?8ky?}OISct$;#QI2Ya z9rP3TwA{-vk9mA~_e@_0$HB4tbu?oiU$zD8x!nuD<74;1#|P)(^PNeT0wT&dhL(}v z@@!!I9Mzb|Gsv-zUPzzx=0AUsP0w``dwn6&347$5;rDgSLly8~#xVrh4@|qA+i`z~ z&gq^iT*U6h-o6E&GCTu5$lsT}p57tDILJfx$r{oP-KPn}>OtSo;lt}~Uo@;jAQc`y z?1SwA8~U9f3WivGjo9f08j2BwKd2tJS)96YpaS;Vbbx~ZEXO~L++W~>$-Ulm@PjI} zL*)hE@I~NX*#Cmz?Hu#jf-1lt2hQO4P~N^l-~1t8?14isD4=nC**=s5t=(A)o>y)K z*BL%k8kS*)so%pT+mQuT41yi*EnnP$-#=hnF9Z_Nt%KkdUj20%E>PY)2!qSf12dF@ zJ#e1jRm1Yp8u%e1GRPk!D&W%zgFIm0ItbB=Q6GF1pR?_rqpYqyj=IPB3G{HAG8@8+yP; zcQ8jptOGeLhZVg8bo_;3GKU|!B<6jYc6{0WeAzn`#1As&CbCm=a6>=vgEW!@dYn%f zf&a&g{o1Eh=5icdlsOhfTBL;S5L@CFTK14bZWMK;r7#wwZN88iR;66>7hT>&NxoqC zJj6V~;7iy~jjd4mNQc3B+l!e`_yo|sjgZ0J8AfqX{!~!;JSPR2&}xpQ4}B+i>X1i) zCtT|0ZqDTj6509*L^Gz)b{6COyboe}TW!)<0Lf4jaaaw#Ck(Y_c>X7VmX}(7XL(}e zdA3(?+Qe@jSPQM8{1oU^-sW@qCxCWmTLmbFW@s#iCxpi3fo4~N)`VROT6uZsMZRW3 zYG_+tC`nK#g{o+Dac6zDXnz*yhl*r+`q>+HT^yEZexc}w!YEb>DUrq~i^`&f0{^KB z#b$1r=#5rah!$3TwWnzPs7Q!Nk(O4LZmERAka#9(4vi;mKB;;|>4M_dNG)l4rDc|O z=zqQ_mxd65HffliD4D8Ycd6%&ni!S(Xqw)pg<559!l_$E*NlE;hQ?+J5h_(?C2qnM zT>2-If~lA~>75FfnKoDZ`DsU~DMzuXqAn_~)Jtd1$Ha%Eep>X;hnrCwL2hF6~+m8H6Apzi9S(&~z-Y>gkMCxjJ4r)Zg=cfXzn3@-KAEQ z<*hcWZBADjf-APJ=0{Fstnw?XO4PBoRQ4pS!Y(ZEh{(C}>0KU`xQ0}{$|^7pW235J zT(K#9VkyT~qTEYJq+&lZ(%k|BKMsg5qAruJxCO{~WvDzIv6#@eV=X(`HDt+Uc8FaGOkz2&4n z)Vy}B)lzGu5-g>-tH~m_O0LU?JpR^ zHM~jxv`>y6+n%y##5V20f~m!NEaXCKS(+9_b);^^Dp>~UxHi;4RsWdSqHS4*?6i)q z<0fRuiX~d6?aMaRI=C&|Cd1ppt})0i?Z&R{&hG8jF7EEG?)Gl({x0tVukQvg@eZ%? z3NP{&Z}R%C?2^Mntj5C{S-LW=l@6(S3TmaQP_B|J3NfU9S!~7j>-T~$Y-(k}q(Zvf{n0r&3!8?XQ;Z~?>a z;F_Ru9j?PEEwL`Hp*HSWa%Hqe>td0rSGr=DqV7VjDveg?$fj@9O6IgT5a?bBWr7#A@90x}t^@!XQKAftjLP=YG2GApZcDz`E$$MPym0w^S~7|ZPq z@9+`VZ7$<&0~_tp3K$bhFuDR~3pw&5KW+xo>m_$Dq$;zmHglbFFeYE`M0#;aeex|E zG5iW~H+ysZ0`U-sGb0495i2h`>#i|C!z0Xs>(XsE)BmvS#;^<9u>l#-I`ASFD-=gDG{2%GPx6*7E3`T)k#4f-O0?JJmnXBZAoH;q7qR??^V{mP zN6RiUtTQ7l(e;>uJI^lst~Bv3!$=da8Q*X&>+UbOG(3+q4de6MA~I_%@}^SnpF*wF z8lx4Lu!?G}Lre38Qgc?iEH;yrHqWp+Z}cC>ZZbf_AcJ%%3otUc@G?AtIkYcfMp|Tc zRirt@dDM?UfWj>7?>pOWGF&z6&h_j{Lp>*hjJU2ICxbLlgEcIJ+q$qbOv5#}?nsvv zK!0@Hdi5a-5ptMdK~pepA~Q2X@-iE2`35KkL;q+}D>VwEa0);5NPRL@%X3xduP>Ow zFT`))n)BP53n;sGO&bGP7X&n5LqXVsFTBDw6vQ%^f-?wbMXmKL7=t;tcHF}DGR%T& zyRco0!YL$!FHpiGFoG#yH7AUMbV~wvgF@g+H+9g;7(fVM!x$I<1x!E; z?7{~mfB~>TCM19aB)|c9!5eD=m0Ni+%&;zGIRYfXJSRBrvbRcn2Ye$f;u15&lBlto z6xMDwGdHP0%_8RtXf=~=LX(hv|M{PK!z(1UU0!+dwVE;oVRKO{GfdVK(EBHbWRKPIQG`lN;YeNIQcL5u) zxlNlf?((z}(|H7wQtP?Nf@DUTE+=>B)2eWNOZ+3t6{L1C#tXP;r>a$vwpJIi z86yKUym~tjff+Qz1VF(UC;+y{z$R3HB8-6tlz|5TLne5DC49gT*g^@|0SQFGF4Vyt z$k{ubfr=NEE$sX|EQ8KN0(Ml?MVLY_kU$sUJhq2`&i}#~2*ECp02&ZM66^vR5V-hP=hQSz!advFHFN57=Q#EKoYpEE+hZ~fWRrdHSq5A z^D1(DuO}l{srn{s_G&CbxBsaH*XqVRBw6_SO5%601J#m z30#6J?7Sw#fD?oOJf46QfIu;10tiS#3MfK341E!Jfi*}2Bh*Db5P=Y=19S+zBB;YZ z=t2s>fEfrF30*xdn7||?`8zy48Gyhr?1BT`+&g3rDet-8cP-t;>3sD{^1j_k)r^7>G=J# z*AZVglP6L7Q>pUaKYsS?;rq9eW=)$nX$tVyk!Mez9aV0$`BSLQl{}9URSI`}UR|Hd5o_s^9JVE^bb+J>(dhIcWgwlo#% zgrYMn-U;(S286X9EP7e!;zWo!imA$d2w^Tz7;JA8U;zT`i~%#Y5)7Gm>sRr5Y7{7f zR&8ODMR$-PTWb+6T#OofehfL1V@Z_nYqs2H?w(AX_wj!v%Q2|fq(6sZYOMVTEYQFM z5lnEutqS~4!Jo`>D=muPVr#94tT`hDY_K^e1t2(3#Fh&D0zsDyfM_9xSTZo8hzdx_ zK#_4QxTA*<2LH0do^t~Epn@oRNgxI?s7U1u52{EZiPO-7O0```2q6;=fJngzS11Uh z2M~I6p$HaS5n`HOpvmL|0}cSp00|6WA(J%|An}X?ypTp0ArD!z&18Pb#uf=I5Hgtx zCw$A8^L$cIB$D2PkEWJhifN|&D6Q!!t8fy^QlfGK%fSah4OP@pNd@rI1^X*?qX;2d zhR|0HMQfQwCP_v-OBi7!6iA4z`l9^SCIqdMok5sDh;}lnnup|yU?m0&a zEUK`gIw_=}0+@6bk>U<@JesN{P<)962!WKaA{B0==t7rvEfHf7RAT9Z&tzixL5g92 zsifUhmj8*RTZAmpHW_aEKw}w!!zdP_UMw)IIF=w-{zkWxZcis_Tv-+qyx0P$sF^1`MelbQHX`nGj>Tc+E#^|`r z5vOUl$(hVma=LkFnrt9K1{@)dfn4MBt zKmSr~IVS;YZr%0QNoA10oJVC9W1o8_@8{irjyodXdyhLAM%MY~p5tXYo@C>f2iy7Q zH~%vmlvybHCGKUcHzsc2gU??3>V@aN`rW-p>*5JD=1I}aJ>uLX&qoejbV_fQ>ORy- z#~-QGVejAn|5H}Ktk6zWJ8Mg!DCZVf@s5EFEKkxH(G7EugMt;b-~}<5!3&DR9+a4c z#Uy0D2JUWhBjla#LO7B1kpy#$a-ZiSCBOOMM}Sbd3I6!klTGm_hXC~94}T~-RORnM zwu2S!LTExI{!C&Mfd(ZQ@rWo+QHoWJVimD?MJ+xei(HK2^+*W9C5};v4^&Hq2(`lY zw9sQO3|ah2HpBZ7kyD~uipvNHL_O}2Wmy_ zpaG3!L~@dnq+}#9nMqA?nuQ8kkqepdkfl`QA=`pRCbmV5nq#Bp+}F8~#W0R? z3=kawWXC$Lj)#2o^mQN8vlb=frr8UVo zIelV`pt(!op^SGqZ?+Mfje;TQYFW;t;8KU^)ZZ@INl|!il%uh0XCUb*5k^jEqz^%) zNYQvwl)go!#WH0{UmDX>&eWvkIVtX{`M{EjGNnC@l^DmP(rq@0g$spcH~$*ysFlcP zoDr3%$_A**T;}Yf9kuFJA0*ErexsjV_3Br_8dk9~5E`gaXvdD4RFEz8bCP=MEu(s} zsZv#=Shee2tD@Bh;lmu^5XWBu8(6^(mav62>|qg`Sj8@uv5j@CV!I&@jZBuP9(iT^ zkQ&Z6ngbu?d}~qSYAKiLP@P7>>uFIt#G1(jdaZTsYhfE(+0K@>wYBYSar=)|Ro1db z#jILS5}$YM1EOy=XM-}Ol+so;was-d>z*53*mbtEPWi|_(E3}=t|TV3H16u^D$E;} zj(^OR?s@I1SM;v8X8%ZsJhJN^;J%M0_V`CX(18!-?U%p(_3wWH9RJ||3g8|D7Vv-# zd|(AHn86Kp@Pi>7VF^!|!WE8if-M|idt{iy9ro~tLEK=_onsy%X_9=mtCG!>1HZX- zt=V+z;un7n#<^XUjB%V}9q*XOJ@)aBfgEHZ51GhCHnQ{3F^_Ukm!X4|^PAxuXF1O~%lzO+KgzKV zCTlJnQnSXN|16Dc*yJ?pfQg~aVUI*FTG5SW^rIaeX-H36(v_z4r7fLlOmAA#o#ynX zJsoOLk6P5FCiSUJooZCCTGgqB$*W-NNP^jt5C9{LVH4_3o7&a3cD2iOZEbIR&)DYnx4|85agUqa=Z(VcE} zubbUWZuh(49dCKho8IKk$Ywg5k?QgU*~)IVvmX)d@7giEJd`VY5uWf}DxBeZ?Dw*p zEr5UzoZ#oo)My)?arCNJ;~fvx!v)~%jZB>4m8zk5Z-{Y^ul%$eXZgzs^zevFT;L_o z&&g3P+S0)2kl!t9QNU*~gK%OJeT+Fy24Zp^hEbIL1D%G4GEYeBlqD_{BH=@sXc=<-3@* z`JVdFXI}f3phFn*m`6XbpMC9bpZneS{`bKje({f={N*?Q`O%+#^{=1(?RWqC;U9nb z&!7JFxBvaQZ+)+!P4>_i``BqhCP=Its(}E{!2l7k8V*na6L0|?umK6M92QUlBX9yO zumUl#054DjGmru~@B=+C1UFCwJ8%R|umn*M1piM^1yhg&S?~p2Fa}pp23v3jZLkJ$ z5C(7X1$U4Jbub5gFbI2a2!W6YfA9!}un3iq1rP8X4iLZgZ6jnZ8*@ema;5d~lo9WfCh@ew645-D*KEwK_Y@e(yL6FG4cJ+Tu( z@e@Tc6iM+9OYsy(F%?m96;-hnS@9K95p+6h9l)U<_^|){tt0MGWb~{)*bNQA5E$EV z7>ThMjWHNC=NOf78JY3iz+oS5Q3|0?7yqr$ALL^lj>qOe>#n>`D+a{vVkdy6BI(|) z9G#20Kq49m%>V4L8m}=MOKuz6PE)!foygIK#^NZzv1OD_D-15}u;O&`Xy?qaAQ4VI z)G_R;5Pq=n9<=f7L}lsv1FH7N9#amq0&*fV(jJvg>r!Q+H1d9W=~DD@WkRwelgo4n z(jZwfy4Hsd{ZH(6aUUA;A@A{zW~d@jQX>Cjya1Bmz5={TQY6K~w0=_OEOL(YVZpR?Y zCG)PJNXV5~jL#UpIud2(VVn(rSv zbKo|^8ZV>wKJ(t{?lNqzY!Z_;6BEknF6AJzE+;cNH>xt@4glGTxQeqT46Qz7k+r~v z+Omz>M3W22#@IB+zR;t;ASxq{=l9H}5$^#!VXG$cZ8KtmY;1ETTH<+LEzveizw8V5 zq72{O0eSFq!~W|y8Ph10vq1HTIb(7v#mT9P#~t^dFSr8OZY=#(^1}bRSZ*v+U~}@=zH>G#y@a9&mxWO4J&KRC)4J zKqIpx4YW*u2thAX?%r}pZ6YR`)ERnlHfJI~eKR*XG;EB=9&+wfHO%w z;&`Hg8Ia)|(4kT{RVUzq8Nh)S*I^#2VI9zc900XNN7cZP@-c@J>5S7X%K_0plA3}6nvlSoEp&#~P z9&}Y~)FDLi0a3#>Q2`Vt_Msf)ffe%ZAGVcJ%fU%;p%+T*9Mm;i*TEJ9RvzX7Qgvb^ z`r#P_;0;}M%7lSh=Yb#Q0U88=VAmBL)83pZlJn)DeYP|vKk7tlc-RN)`2FUg+4Y_l~- z1-BaXmKCCv70zKFo?#G`ff;(CbbH|(%ppbj_87Ky9@v3&*I^%6Ay#_<959w`Van0Ay%JJU)Mo%r8j!3VH_S5 zAEMzIq7_18)nj8KNzGPYwO0?{!TNAjddU_a$iZ9tA#&$I7@}2IUpL9-LC^Rha_#Fo z?I8}G^cmLSd-aTa)1h$f0Ufw^R$sSu`L`ErA$08_8jfK`?RFKe?_rUlfxng+$l-g< z_Exj@82>t}f%joY)3>^KX|9U)j>a)5^U*Phw}z87Y15SU)-*cnOKw&5c?q{__u+GK z;dx{A7@(9HSYaGYxK>r6Ntq#uk>PojK_137QQJX!^(=a$cpp|l71%bIJ9;|kX4_H>$p&e9}eet1<*SJ>qm%0pC3qN>P z|8;9s0Yyoe6~4E#xItFQxQ}I5x9YAamFwoR3gbA^hC#VNjQ9U$a(Ua-9=I1y^^6{* z*J`Vmvm}se!GVJCp&9D-dnXwjba_?{O#o8%9%NSlvbY+^;edxYSF1R7Bex#PfgI*n za{q+^9$0rB9@rKNxssXeL>*TPtuINzfgUJ`a7)1)n3;(k_>V<2kRdsA<5fxXEt#jS zNoTc53s^~MmK;i0w;K4FhnWkRa&*LzyjmC~L%E>CVw7cahnbg2nL!oGp%HD#lBN6|rv`APs>7Ko{~8JIzUYf&EJ zb$?SdT}{|zH-l{LA!7xAoXvKo%fS|un084_75qV6S?n1kdLB5oR?~JLgkhz7;a~G` z9qPe*!}hALdZnS-iwRi(n8BV^;dM_JbVX)I<3Wi$9I$U5C|iGfL01i1MD2kdtWOw3b{z7omT#4#OIKf` zhhSTKe(wQWZFNTpkR0Oh9GbyfVcXCkdLwKB9Q-*c7jsw#R44b*uIn11ne{oHmaQn- z`pCPy$=hYm8@;Vhz0q5}t8cyAd%e%Qy#4z6=-a&2TfR4#yxVsB%-g>4`@i3tzT+Fe zTl>EeT)*f0z5#q5IE#nlS}wPeK)JiZi2|>6ctLL>Bb-nHtKq{5(8D9}!~aP<#78^= z%fSFiyZ~9;#6kSCVf@5b{Ka9M#bZ3hNBpyMyu?HN#Z`R7&!NOyyvIRY##cPWkG#c` ze8y4y!%=rQBRtBt+rp0)!)G$QX+qz$P0zHjx~7fG5!ns3Z8WQ^%dsV(9FGU z+S-G%@PW;{{CVRX+=LMgMRpd~T->DmDv6dWr<}@>)ym(}l%-8bE0NatkPu-l5d*Oi z4RItAokm9@5ZQx9J)+Sq@edo3(jDEb9^Di#aliJkIy+s{`|#Buwa=wo(5W1+kyk#j zoIN9yIIT?>w~arp?Fwt1*KvK{yd2Jj9l|Z8)`NXGbDi4c=-99A*Z*1l*STBm- z?Y)O&xEl+8GQ*wPk8Uor?sx0`8#{$%7{re-v7QZI9^ya;}i(@EwdQL&>nqKLjUeH5cq3Jz_H?rfaUZ8DWlb2rOdD73VUaQ)v=l?g^K-0YJeZn-0D!TwP z8RlKx)xO;=%A+P6D6)R;Q|I0rgzs0Y!2G`K4-=Co-<5pp9>if55dIOM0e%)$CS6fqkl9uzM@ALI~ifYz{KX%vyyhpEbMqO2 z_8?9G1b^q(-5=52^x56|4W#Y2zbwuoEs|;c`M>`G!kEB;1PdBGh%lkTfysV#`*%-( z#EAm%rQ`R{9>sg&W=Wz15~QSL{z{g-_ivxMe-fYjP^!!GI|WrD_C;`JARDV>cC}LDI2qlxw7WV zn=^C%>^XGj(V#acgN8b_>eZ}Uw?3V0nK9C$OWUrETeHJ|_|9I;NRh3$aKyuPGv2Lk z%9VtF_Vue1sNm+*eGWam7%AlK+`D`K&QtPitmMa=&w9Q*`t|DDr+?2L{=i?YTFtVL z|GxhG{P+9k-^wlHv6oeW%V$MD5*t5<((oRclwbouM?K=N}GXD#plOFq-R#wUuUqKM^1gb>6Wmu+Mr>3du zUu>qRQ=BbPb+1f(tr~BOM6sxAzyc3E5sjDrNuIFDA`Iwk))XtyFY`@|kiDImS?GX=4F4jK*DmvLkcWdvr8UeP(eu< zMw|l8COcS>3@%|fBY!Jx1R{kZu6)1(E><9#i5R?N3?WztJ{&g{l%V1e6iC7{67hpB zK;sM+@WL*Xpae6VqX;a}MHoCL4K*l03@1QCCP-j_5LiQE)HnkIsL%oy7$|$3dI-95 zx0c+-EeJs+CXj?mP{9uN5QjSap@|S! z1zUuimOUb}k$<3K3>HYj7(5^a4s^i@6}UqYV(fKGdH{uboU;rdSOyVX@PrCX zq6kUIMxaC)0&{!-1I0*X0gX{oSjJ!yRKgNLAoNlT#gvyc^`%OH`KFs*Enm{A%Jq2fC?N?L_dKs1`r$q1NDr7 zD@veXc-U7#T=(s;uGUSNO@db9#mAZa#gaR3*nvKS!ik!-F(%$Qz80QMN|OxaSVliuT0vXsohs03pNrs~q#2oW9R#{sf)@&s&qR==oOsmOI zlPEmf$}6@x=8N^r7Oryrc1y-;2s+4+1ZezX8Dyw}6fO~q7!(5&Mp(uZO8E<4JfQ|k zpu!`7utgyJBD#S9f*tBn1`eEH1Tj#rdf9ue3~Or=yLbW!d_ja003j8+IO8D{{RALX z!GuQe*#9!rYylu3;}9gsfCXf!Qe?2<)03bbOK*wVdx;h)GHsWcPV!5e3KNQ5b1e~_ z64Vl(_%S8H$30lfB%?2jsz?OWl( z-mu1FtdtGP8Pb>r+#I$HYkcEj$+$*0s38q#@NH$raE9Ho!7P9#3LgUPw|loW3vqyB z8Q~CzW1&F~YfQu7;IKx#$;}XKn8O;zSa>?j0S=ELgShp;sCr5^8a<)tLAL%eiAfAS za9?V0aakdp<_6M3$4J&7(xaEVFO3Y=voe2E{H4#cVtzdrZTGMvuJWcvbj!ev* zE15b*rKW{% z>OvfZu+S64=~#KhBP0R;_{)F(^sj&YDIo{}fom*SYKW9=)Fm(hQ>?~&C+B;o<^Ona zB7B-hd@g5v$M<;K(FO(}5mvzx2UK%;bsaZ>bk^2@n+Jj&NO*;jG@g=TNQ5HdVHw>+ zE(*gvQRW^{b~fY!dbEK}n3Z)osDnGmgFWbjbyt1^QX4gb8{O7|p4SjIBuweDcdm9S z284mMg;Rv5Yl0zy5cqOb@m>>=0pNfS$aN2mBP|ut8+4^EW{6j5sD^k&hGckGZg@a& zxQ26BhID9$cZi31NLT)_TT!Pc4&oWMu|3{4C{X7;31dYtC?DRF3hhe?JDoj{%PH0*y5rwIhg;(et4rq8-2>)Z<@m^I> z5j9YO&ysC5_hKH{i`FNL!T1x_V<3jOf(pWZGZY&ILW2m>AfWh+4uT%Zh!vjb9`S*V z*O*k!xQv*{jV3+C+K6;hjTwRi#hc?A}DmQ0)lHY6Oz#x}%o85Fr7<=BlO!;ui9 z87p{%9f^q}DUu~wexG=Q)+mkXA&tkFjmBU@iIR6=(vCZnio6kzCDMw-=8D61bPp&Z z-gkZ6L1PqB5yi7FP=swbMv&5nls^6niRnUN`(lS!GCX_=RanUx6*)?f~DsA2rTVIJmcc2!U+k%5L8 zhp1_W6(NUmsG6?{o2p42waA(j!2>}Po4Ki*yUCk(#T%>#oWUua!%3XQX`ILTC^<2J zy;gwTU{@%?4~GPsu1T0VV^`GKo7t(Is|XmhSrZf>097C@IVp_g*+kokp6RKcbLbPx zS#!-9Q)t4As)?O~X`O4io`$&=a9E%CS(ql)lrtw0QeXj`ApZcZkbOm?Q#J*R=INjh z3ZY_iKpWO!Cedo{*lYaO59xpp_FxZTR}UX*42%a-lY9q4>}X^MI55 zhNr)or+ccWeafeQ>Zhz(hI(2NMp>x*CLw^TsD8?*e441g`KXB6r;!S&je4kx=cxR+ zsOqA465^?yN+ItsS8ItbswV(;AOK%f0oG7~o?3y7^8c#HX`HGjtF>yYw~DK|s;j%o ztG&8!{5B8cU_cY%mZe2S9Xb!ms;tY(tj+4I&kC*4Dy`E>t<`F+*NUy#s;%3K2Oq!; z^Y8^3AOIh*t>tR2=ZdcBs;=wGuI=is?+UNj+6(CrD!a#bFHunca1Q0bul?$;{|c}H zE3gAgumx+d2aB)?tFQ~punpU=xKIt{Pz_1|1F_(+7mKkOtFar)u^sEN9}BV}E3yiE z4)92<_KJ$@h^P3l4lV1lFAK9V3$wZPYbnCE45QgwN>k~q*|4t<`xPRH2f_jF# zxw!f1xQ`3Dk(-8p>o~1u4Jd;$1}K1(JDB}Bhn`!9XqcPS3A$^z7OUx>q05GVS-NUS zoiSCPvCE&=S-7o9&yw3~0 z5kW|z61`?On1vCL!$T{`hnF!&Fy9Nl;rkeDK@P?s1!4dOS0D!D;GD@@z3&UZ@hiX4 zOTF_ez0*Q{4Coxl*PxXrkU!?X4l2F_O#i?IoD?!84oW})7GMF4z`n<{a*+3ZLPT?1 z<1}(2Hp9m%!8d(_H*-4`p+0HABTT{p!xqPZ4^@x>r0@^f(02*BfIAj~^~h^->A_41 zTSDe+JJr29hrtw_c~B9;0$RdFY{W9sYQtd)V5zy(6Tvr(crms$9_*C``HL{8!LJB? zO$Lj?CYO1+zm|8zV@$>|a-rdnH^`x#t(%6u>&ChZxk{nBcv!o&JIA8?DR(u7om-o? zYlqm`hJ#zVpAsBi^0}tVyNmlJyc@iY?8uL-oA$6F*Wkih>#K@ls;pNq0rjbue6q9( ztFel!pp40$%&Qckc*H7Dqzs&_4F9Xdxydpa%fdO!rfkc%jLW&K%ZXwRz3j`s{DZ+P z%)?B~#ca&SjLgZb%*)Ko&Fsw249(Fj&C^WH)ojhzjLq3>&9lJG-R#Yv0M6ko&f`qZ zG4A22B&;y;%Ph!vq zy(CD|&q}h;NrEH@jnJb|&JPXI6>ZTM-6Z6!B%pxN9qrK{4bmZ<(Be$dBAw6#ZM8Am zv?txxJ)>in4b{gX4pTkVd>7SMjsMkcaSdC|)m`n?U%k~?{nTJh)?^*kWsTNp-PL0q)>_@x z-JsTSE!J~Q*L7{zZb2rMeAj!;*M043?xxk<5Ep(;*oAG_bPd>tjnzF<9AE9ij1AdS z-5T969E`m)kd4`yt=W*x*9EuPpKaAy{n?6LCYdc4#c|p`L)f6r+O6%{uMOL=E!(qA z+qG@mw~gDmt=pG9+Q%{5l?~eDkZl8H6`S1+>mUeH;AP9L+?3rj;=oGgK-JSt-NRAc z*Nxphu!S{oPcp+n7Dx#6jNZUDcTV4bIKl-96q_9pCd^-L+lW-%#GI zjo+jF+WY<6w(Z}tJ^vit5a5ix-N2pS32xxu5a7HW4&Oiy+l1hdO%8pu-u(UA-B7-5 z00tfI;g7K0&m9iguntx53-3_WD>KlklKcA;B7(VcK+FM9_N)U z)m6>q=0FZQt|72}4O2aK;D8*)Q5@<0=-3eFSx)AaE^wD#>ENL0o6hLukPc~H*;B6N z>^tB*KHmig;~}o#j4l6h>pj)l(91~<4&-nPES}l3{tJu%4FWgXWxn3M{MmHT2KiSX ztzZhbVB+S0*&2=ySO5+GAQ#zS4po3~&&^8g3)xwYQS>nj(@+U!P!BO9Bu1te?H!tP7cfPdU6g9*)Z7Iu+{C2?*yI=mun8YKn2B6@7eI_n;jPrz6`gp zaNuwaF%#B#-4^&x9QCdt63^P}#^T@*Z{H9%?zZlv5*H(G9Om8)e-jClfbA0w*^Dj? zzHke_(C%Cv@z;XlFL*&Z<4cIW)0@v01 z?iQ7d@B6OT8&dz@ZGlmVKH_eH-{npY+#m+dU<^4PH=nNQg3ajQP;b}}Hw^B=VgA`W z^Ecga3#TCIQJ)R^Ug&sy1TAlYA9t&u24aT4i)l3zVP)gD?u#FyQO3;xPW`*RJXh zE)MIE2`(T7QUD2u&;>MY^v?pM_h1j79xc*sK+cj5kuVJ8pe;ZC-Sut`u}}j%-~yK* z{}}-g;LQKs`)98kIehoXbsM-YU9T9}2HMM(4qP{I;WBOv7w%vzDN2C+BDZcGxohUq ziF3Hl9=VAY*WEKG@SZ)38g+8qxULtDOZF;R*+%Z(I&;;~{Hv*wWxAN+-rd901)n`| z;&yJ`XfBhBkX^!=duPy`J$&4x0Q>$1TFrw(7NB;3%n%Og>p!f!+Nk0lEX1g6 zz~ds6FtBbaw6L3O+RG)Eamcxdv`VB1f+%pv`9&IX0yHnQZ_K$R4r4S^aYYu%F@^^v zps|Mz7zi;3!sD*_M+{Ts>qZ=N*11I*ae(Y-Iwekk0frNP`Ej}`pdm*vaik&1$-u-( zClfR9!AAg0rl6+}ATB`%j4G&@gbX8+Nv9GeCYfdtE~L1mmlKkZW)UUO2#+*GP219( zb80Zdo=jK}iU%W#0VxP0w%O&07!;|e5*#YkWruBCfx!rDG|OsLaabjd4KD?ucyRH`}FQYpIV1BNK92}BAr(uswN zFe1T1iaP=U;+1qb*%ucv&fP|uNEAuun)S4qQ9yHWc>>jJ7QuoFMbHuB=u5bvVwpIwsYVJaQpskyNqix~ zgx0er5;PpwdOZ;!hnWmN(do^h#2&MgunkwJnUJU z!Nf@^79NsVhnq0Uy&9ekPn1sZI6_x<;j-ZAHz-;4KMn{|G{L5enD5M&)N2g_#2BD>)N z3{ZXv5VXM#k^&kn!59U4hNM7|OD`8XuEk7@;DnN5GVx-QD0VTT8XhJI#D!DHh$0p% z{Gtkzcmf(WVT5I{K@q(e2^Lb(8E1h;8|B&oFu;)wY{Y_pV;I6AT(Aom5D*Fg)CCMq zF@_}UA_lr}!8FDI1$%rWE62$SIVwSgI}ihMM(_o%4q*n|o#F{m(AWPdG64l$Adm~9 zP{JuH(S>bTV|z4Q$HAnqz$Bo93$F-77b+nHbVwl;PXGcpfUpZ7oT3k2j6pI25r!)w zYC;pt1Q1B!uw_W$6;C__5G)0RVH{9jmpFtGpn<{?QqBn607Ej!Umo=A{Jm&g3h#2p5B2&m%CgE zJ-A>8KcV9ZUg(7sP7wq}xB>{ipaL56IEkU)A`E#nViMB9t2M>~2+2^5GPhy2YG zWw62|im@g$=)ww|SY{ROK!&C%VHrW_f-msJ21qUvU*usHiw6IL4K3QC3d7ii6iQ_T zWA!fyN#w>4Qjv)iTEQ9LKo9o{H=S(2;1AL`0VAO2ERcp&q#7CrJ9se;Y@`Dt_0a_t zEa)OgJ)e4I2UxJeFalu*G5~=KI{<}C$6*9>xWZpMkOL3GPz7L& zg9^?d10>X9g;!w1sNh(KE`C6aY>49@WJtn07}$p-;DZfahy@OS)joCT0tl7>LMA*Q zg&D9w0Oe6sq68Z>DU75KX1K>t0%3+Qrh*KqNTNErVU7PoC_xNFK*J5~AlR$`#yEuS zMH2LthcN8Iu0uf#c;4fzi||4{u8_2~RD%k{*hL|pKv@{};SOcE#5$%?iS#}}2+I1HIW}Ph zESv%ihOojeT%cYf0Pr31qem4UA%$VA$qxI4hZGn=g<|aNLc3%!Ik=$&U}Pc+^?+wP zu5bq~3`2`;^@SAxnBrtu!xEXhge#(;#Yngm9b}jU7l46X#7qc7Dv89ed@(dK`~VDH zScf$7*fbz~4H#c5#t)rF;cbMb8wK(iaxlV>T~Pl48;LN38N1`-B>dxv_`w}83L1uA zh(jAZ18+(gfrC~Ef(N%iNmar7=+g~u(A(IMGL*3)ig=_wwQS0XG$R_&godz#fPo}r zC(_WsWDq#O5j1`@At4dT9OMwilxiReX{2td*T{xH#E{kSn!|ievXD5S!Dz5bBoK6wD+B0Jl-f_MKwdVstMwX6vPK1uoRiN=Y?<;@Bi$mVtpVLOmwyi(m9H zQucs|HY?!*R7fJQ1nOtM1*?%f0OKDAEJK+dTn0tN!%y(kg%IwsjAZn|3a4lVGJf%k zK19JBi4AFedg1U*0Bl^R7zHx$gAZNs;12(m*g-0W@{c51!V34;1Q4#MtnY$X8|f(J zKW>sxQT!qkQ?N&zi}A>MB*KebsK*t*mI~|^^cP(4VieNB1x1iS5%w^KHcdf_K>N%< zRV8~j(lIZ}9?O-x_`xYqkqTERuHfyE0wu)QbWT*Q9$$G}VvmE7aGbptFi^q_fWX(V z@yf|xGet9v&*W9J2oiIc5e4yBx&R6UqiO1_V|L4TwjAP~H!WA&$^@ zE-=#r!z})hyc*zv9}oq6xCSuso(dU~@!_?t(h~Gxv~gPzayWz-FoZC8g+ursDqsXO zC_1Vu=~e1U;WC?R4v2PJ5OD;f%QP&&hkDMCvfZSV>x zNC#=a25abpFpz^&D1#^{IzRs^CNbEiGMIvPcqBZ8x-(LOI-n;@q6aV3CU*M;DVT#l zI0X+8jEk@kaQKF8$b=y{hZ8UZ6ofA;n1f_W0(;27dQgH(s01Kjw-?i)61oJ7Xcc5+ zl~u6^hB3c9p_4K|pb=p#GeVgJjxds%ZdPj7tz3m zZO9`lSdLWK1S*JxJ5UQaxT5wc0~fHTVR*3^D;ZY+fd|S8Y`7(gk~DFsrDD*RIRS&A zSq3GDgeORX;%bKiS_CRs1VHMB@6x4;$Oeyu3QA}Ndtd}#Fb8Y6h;+yXjabQ+WJwx? zNtcYtm!y$&PzTuI1=s%(KYYjrcXI(t7=%|K2XeTD=Mb#?TNY@T1wzZev11735ric9 z1s-UF9|=9dm<~y(0x4iLC3u8Z-~mcdpR6PYDgceEngz<346Z_-K#M@pxFuf@gg9t} zX?q(>kOMav1!6#lQ`m-Tc!hP?1wT*(X&?n`SO!!ehiaIFYmla)JQ4{x4TF)Blc)wR zz&+J72T@1`j0uBcNQ%rfhh@OMYN!G`a0Z@n%CXZ1Yv6=Jz`c!ugG(?6bg+a+AcbOR zg=BacLzskA@dYu!y=5o_G>9p!crXg*Z@~_0$GZa0YNdg}y`u zaM%SxFojo8y>yrbwXsjNS%yWp17}dFtlWqS`37?E1!HUlXFvy3Xh%Xw&Gk%&4<&_U zv4lF%F;sAd#o4cP@DPh=Q5t;F5;@Uts0Uw|g)#^OMi_>3AcHxu0~57|4Mhh-xPz3! z%@c)&Pxu84MTbX7&2%`?Y@pBJG7lCDD|Cp23mhI!2!jWzh7#O{=zIiJu!dGB1`SQj zM<9lB=&o#lv;aYcVz`C_O@_Iogj-08IGBW2ScX#wnn@4`PPor^5iG!4MT}UKErE^q zgEU69kdFUY5nZZ=Xt1=`Q3iBqQCtuNL#TsfF_GuczwSv86QBg_d%^+b` zQ7X^C2bs{Rlduk=R4V&`jU=Jgno@{_wF{8qw@^b0&tMj%GKYzE35I#y zjPUY^&Iw+RXwwQw-QInY0dX|cT{G2{!Ce9k*KL(Wjo#(0kTCfM10=iTe3GI%UFiP> z-sdG<=6yfVTi(tc-{(c$_3fPQJ*uQ=17f&{<+Wb|xh+me1#keUM;Hcivk_g7 z5r<^(I|)gWEdkxt$w~z_4r0@cVhh~q@CSVG2Y=vKAFd3GdQ=z|VIt1nMm=IAw%{UO zVkT~4Cw^imj$#@fM0{}G5Y{EnP^sQ=2r2Gj^{uMONX{AdVlpmcqf*?zi>lC&;s_Eh zc7?RLjbk~c5d#slbhzVs$YXP;hdu6NKK^4r4rD+cWIs-adcb41H4ighWJdoM;S4T2 z1AgL1o@7uhVy!4DOI9-#@rX5UWa6b{=w)JJt7IYuTgGOkCK4^tb=!I@*hbHJ#_=Q;jXp6pRjLv9{ z-e`{QXpjDAkPc~)9%+&;X_G$bi}qoa=2sr>;gx=An2u=y;MbXsX`BDPX`04qo&E=P z*oK}q+n)Ybp6=;wDC%v940RytoU&sOQO zE^X6(Y}8I|)n0AZZf)0oZP<=&*`96Mu5H`CZNnaGvd-#zNC>cIX|w)^#cpl0UhI~} z?b*(1;O60fkY-wbZs?9~>26eU;A+#h?!k8KyG3s9?r!h?Zt(vOZ}GP6yVc>WPV22E z2p<+~(eCoK)^fGR2V=-^d#DSS0C66^a;$FJ08eWcSMwWh+Ju<% zrj73vFYKcz^O=xwKJRls|8w!?*KSaPACQFgKJE_J;eY=i#TtNtAE1OZhw^Ml1|jcl z_{N8_=x+f)i_2zh;|^=Zj`1reZ4!@itJ>jzNCvd%@A~!!WVQ6lj`hmE>@%VD?Y4DU z&vjkb^|apZTDR<7zuR?4hN`X$mG14{_PKl5g-Q62Z@q`Kwg>HagzA%|KtFeMPj_`M?4~6NP>>QSP}Nhn>JIO3Q*iW=#}0R~7fUnSLt)FoteNIpM<$`N77w`VAKOUG8!mEKc@Hu*i@^08w9)O1amV^_y z1tC{-e>ZPeA2>i-2i3b)Y4C*&HIsz@YQ|o27w>Olpb{7u)u+FBi?8y0<%TNA+)4O_ zSLg*Zs0UOyTKlGHGzaxWM|sLu_`){%3~zZ4{|9}@ldn+(hY$s1cn4)7hJTRzYvuWR zP*Z(E1I*B`ZK#JOQe|Q8FppqJp2D+bm0pH%ipJwo;lpTCM0FJkm3 zK;y=Y9zTK%DKcY60VYpgG&$1ZJ!AhW3cyE?OR9IesF>?xh03W+E-vAs!o>elNBkXXqFR#jtdtm$pT%vIdt1SeE;xCfdPZk*^_SH!i_6;F5S9z z@8Zp?cQ4<*e*fw<3rz`(D*{`=s6h!PN{j3M399k$+YcPS{z*~t?w&=n){^<77#iO= zDD|WaqbKDTSk;%>-sK3_;>Oy5_nQADNBEb3dne5r>-H4*V{UDRB~us6j4m|Xs1U1W z=a-&keb8)+DVH%xl5a;gUMW6&Y?vWiJ{2I)^}lLKfneK|gj*5;zJ{Gsl8nmHB)g2% zBgQc52vCj{z8K|-5tW$XiW$8Cu}vmj1oDb2No4bjI=4d8nZ#q1WP+m%KBM5xTh0l_Hk5M+F#4EW@9HO3_or zYwswv3lCUOF$p(a0Tas(RZxLSAd0LLixg-~#3ephi~?Jj!xCGpvB#=tRvT*ZV2UwV zs1-yu!d_%nHavjw&OhWxQ3DL5oYh&9powPIEx>&IeH0azKiz3_@ zb>>Ottb?!AQ&U~Fv1b200>cbysWrn1QjkL}M*mO(gA|~kBE<<{a8~WOOODo#y6BVv z#3fT^rchaVHA?80R0{+baQ_nbPE_igxm+)1utSq{$jpL{6~hEB=)@TtE8fN=cKpvf z_5>1y6nB^zOAtU1Q%)E7R3k+dV8p6~6kSvk#yhc?j1M<>>Y@Y{m*7(g8vod1Nf1^{ zW634wNC5;S_SoZAB zf?Lwy1vBWu4}$+Ngc#J02Tj635{fW|^y-*N&ZI5knMEK1F_Jy*@s5ei@P%a|o(+j- zl6ROyAkeemSvo|&A-V;C*jpkKn=QPg(4SJ4-f-aIT=31kANH`Ap;3W^&GO0 zid3X}5Lrk^1`&~tTqGr*;u7hZ$%Y;yBfW}~>CJC~Go0caCppV$&U2#ko7aGbG}1E{CBns>Z;@yIW@*oR;?r1w zq}T>MNJdVI@FgkSTLo3v!4Z~lg#9!qLmTSPf@VV+)|duGD{9e;Vl<-~-6%&p>d}va zG^84pMm84e(37Gxr7B%1OIzyFm%=orGL0!IeREJERx+nL733s$n$w>8G^j!yDj|cY zQ=tBosEJ%^P?4(Cr$RNVQk^PQt7_G&Vl}H;C8{*K>ea7;HLPMCYc{7r*0Z8Dt!iB> zTifc^x5729a-FMMMQYc(;x(^&-78=F>es&lHn4&fX*UXM*ux?=v5H+RV;k$($3ix; zlAZr7Wh-0Qa9}pGn%yjCJL}ocf;P0G9W7}~YueMIHnpl!##hb%EPQ z^f*F|)H6l!e5YIt%A_TQ5hLjhCU)EF-jC!nzVe+feE|dCVy@&&{$O87=r^d}jMs#1 zJMS-3axsnI$b@K8V_o(ZlleI(K9nJECDd+G8C@!thGg`(FHN zuD&W>F^g4vU-7(TkYx!a8U4XYf%xMk^Ydg|v}Ys@&+jq5MAMCOOuypZkzaW30NqfE-|DT3~exPi+tc>iV=ME24=fZS0ab1V?f{DvbpGE*sQ`eRb|=9t|9 zW=U4k;ydFx&#`$ra$7P7;XnJX+ z4KpO(FXlMW-GVxhtpJ6k2O*AINMROcB5n)``3otS;w+MAXNk5CV%;_}^B&)VKLxADd23;#nLBT#}l zVDOGvNWvw_XeTtNK@LW+MSG)|#j{k zx1dBgV)CVb{NNX}5WqSf5%F+XqY7N$jWi_QZvl{FUuIc{vIX*Lfr#M`#0&T>5cvyG zWMdt(7zM5AAcz}*ff0YkVk@Sdq)|*e8(^qHz_1uLe6+I-ZJ34>v{8jy7z1ola5f>3 zA%zM50}O1z$1F@C4tv}J6zvp%F^tiQb?!hC&?sj4P@G*xC92zUpF7=4^lg!tB^*1D z0xEv64MxP_2iF)x6)+uT@PHB->O5OM#RxH&;~!Np^kcfGJs1D^oDqXSxfrnU zh<`ky3WAu0I3&RcEZE5T^uq!euApf#44o}XV8rpGE(JK44j97@Yy&b7+>uShFK~fCQ~@R6gA&ZbZ$aEY%mNijL*a=SCB&Q7 zVTMasgE*W8X3*L%T)_?z!tjZM68u9qNWnWO!8ZtmI0zpPsM`Pk83`5`!#7lcImBSp zp&=tcLx+F@Bm7=r-N-%s0vNPH`awe*2m&RDK{9~BBeVe}pqh<5Vz|YiK$rs~2m%hY z0>tGKW`vC-@r@f{8+k}f-%yQr%thQ;&fC>pE3Vkx^%s!*Kr&RuBuD|`&A~r_V77Qj z6}-bY?0`A+oiX5m0C)=WNr6E809&ksI_$urDZ!a=hPI4Ck^I9IFakbAoSBS942}X7 zo!ny(f}v&I%}D_=2*5Oa9k5Z+j)(zUz5hWnzvcbU~Xj+m~fgg$_9Nfqta6uJxTI*5KKeT}q_`yF!VHE_+ zBgET3v;r51fi!f(BjTg(eHqzc!L*5@PFh>G#pM4@=A>I}j@@M&wr$LC&W79ddxHkgC9h=Vk&19~FEHE0WW znnOi!#-WJ=H00hl1g2X)hA~LOC{Q6N2q+;C=qNk_A>6`QQlTk~f+SEvE5HE{jM^wj z0TqlIC}`;afr2S80wb70hbCx*KEfkNf`%d}BY*;guIMO?0{4X|CQ`yE5GaQ}s3e5w zBmBW5xF{$L!i<^%B^YRpf+#2`291j7{F%c4o#={c=#zfvN>&?AzSrAT>7Wc}c4?_d z5a)QznVmsrm@biYhQt<{sX*nCS=^Ax<(&UH>?WJ^is!`7keM0$2$9DuNr#NW6@UR3 z^r@eM!Jh^yZDOCF8mga)0b&MfpZ+PJaz&w5-=YF4qw*=E8fu>wDxp^2qYA2}7ODUY zDi}~-rVc7?HmajeDpv?97SJXa7(;Iu(@b8eOL{4Ibm^CJsd37xt+tn#`fAnOS5)25 z3lZy@-WI5>>97{7vKs3n9qV-A)^h3ARkcW{4b>zG*Ksvfwnmk-E)uo|m$y3Ww2CXV zn(MiuD|IOnJ+N!Ly6d~bYrM+qywYpC)`Pv?D?Qw6zVa)(=4(3uY`_Zaz!Gf18tlO$ zY{Dw+!ZK{b0&KlPY{W|J#8Pab5THYHsX`?(5R7 z?7FV)!tU%QF6R0z@Ahu(>Tdt=-mdWG?(iCK@ggtq9-duI`Lb)kLTvWhEBdl8`bzA*LT~rJ@85Q8JJdro zC__EWue;)}yVe6b;4eF*ufPg$`m)3Pq60njZ@U7l05>r7q60S+F!ZKFJH!LPoc;XvjaCAF+H3EI@B+{w!;P2gBI^`z@mc=FT=y4!!jIjJ1j#Bd+;5< z>-=W2CU^1nH1j1Y3i@&N9d1?>OW_E{sDx!~*~a!Xx~z zzB<7!(1R0jLn6y>JyZe()5C^gu{|X6Dc3{rWWwU=D>^tqCNwcNPj5Z=LJ=GS|Js8t z>;gV;@EqF%{>HQ7k~6zvbGwqWJuHJOyu%;|a2Y%^J;Z`8-0M9|GwNnDG+(nK%d_I5 zLnXWeyhcwVLofgI)B`s-LFwY}<(BTd)78)593- z!avyaNVDq`j4?M<0`#&28Bj0}OLIUgGzz0`ER=!aYV=BD@k-mX{L%yTu&V%IGdl>t zG@DT(w{$%S08wKxK4UZfnnPD_vsMEzzan)zurveLgA;6m;Z}n#tV8u8vP+xvRF}a$ zx3M(u0zGH1Svzi18!kqZ68=taHB7VN>Ov0?G#-zE6C6S-<8LK2!5QTB#Nuxx1cEtB zK^aH^Jp@4@#0(BdGAR&&6!5PSJOLJfa%M{b8{@AOECb{2>*B(8J%E8P>_QFff+F{| zM{|NN_-p@5LvA~8ffSIzGQ><~V|E#UfjP?#C)9%_$PP7gY%W9tb@y&-pFkD(w!SvO zF0?}tu){8t0YKA3C5*uj@4_J*LM7D0IgEEE#6#i6!XY?8C6sp=*tahnh`>TtaLyI2*d1pdM1C5Y#13Q#KJQR2d zkHP-}&oKkrLx;z68=JQzm-l)TaQ`B>kPCo#X97LIcuMncAapo4K)58=xG$iCdRMV7 zv;cp{gL?yXJ=}RtqcDUMbR~3nUc)$JZ#6pv0s(VFB-Hpb<2QMuLlaa(J?z4Q2f`LZ zx=MfaF6hD&NIHyLc#D&HF{iISnD>SQdVl+Gm*aPM3;BZ=L5zQNEW`r~6Lp+}a}y-C zznZr>boaX!0Xl&6B+KhEC;>f0LLq=b5cmQQSb{7o!5Cjf09Sz|*8?d?fjwA-9J{-6 zKXW9ogD>d9GAx22L<00$wiM_BK5zjp7%sjS!VkY|Bs{t_R00+-Gd=8rZ?l6woQD4; z5cz5BLLnGJJp_Sj>;gIjK|3e`JS;iJ25db5Gdr9^E|i1+p2iEP1s6c?GV23)Gqw*C zc@gM>K{o+LAG(XT01jXDGB-gb^g?~(JUx85BNw=kvqKTILoAHJI<)vLXSf-+D?2cD z)eCuoH#tV9cO^jfI=6r>jCqQWIm?%UEBtE`7eQ`!Ib(OYhBpB^i~-m;fjv}05paVp zu!Ae?eE$Z0hNpB$t9Lt${d&`V8Ds&xVzeu~b|$od54(aBR6|H_J$`TXEwjTqi~)VG zw=0Z+euHyLk3o5l0ZcP+9@}e>lQ6*QcV4G@ES$Z+o^%QHw16v6 zczu_F6TEaKkp0s`HZzAa$%garH@$wFxEO;ycn^Ig90E8axQPR7Jm@`6A41)SJ%d|6 z0|#_F#Q5y%E7S|Rly`UC+rwgW!$Y6GNaL{+#KJlkfiHl$Cl^5`0K}Lwx|-}NlZjmm zU1KV-b8@H*yfM1UG>KJ7*P&hY=yjx52ILr5_S&_hht5ezlO9>N^k`BEx+=Tml&Mn2 zP`!3B>DAjMMW>V?T+p=>T83r2dP){ak`hk|J5GUi1>q*e7pF2+ebtk)k)D)Ai=J@w zSZ|pWPWB9aEm|*-oSxj2D1lcGZOmmso)q#LsO?WFWtO=#e7K~^T)F?oMavb9-b$rX zOw3Ti$)uBwP0mp~#EqW4G2GTwI`nR|lXLNk=MGfX4i%BUosvvw)spGpQQLPuRH$wZyn+GzsC z8?)HNm1VlKr=EoZDMFWfCQ=8T7F?O}yLGO7u&0G8Y2lpF{9FG>o#GO^uOjT4aL~Rc z&{>Ehj+C;E!;bm`sfqW-D6@>~Tv_M17TiS7&VlUtu0owmV&}sE$5RE)6NFrH>i(Tx&f)t%*u*48cYQ)RVKy+D$o49r<=`4-{ ziNqe6tPO;eozPKY8FqrGsvS$XXqDfR>KSLTfEjzqDFo;!pdZj>sH8z<1I#LY2$`3;{~x>NtEj6=}1Q_^bM5qXR(#yBq3 zCMd#);{-KMke%{0o{`JfhBUPdR|0f&nUpbV!W`2gqi5lw&*Fw5SFjr`W_Ehu=8#NK zf+%B_ChE!RgU`ew>lWz|k4|ppqe? z$d!y_@v%9MD(Nc0bBOe*lAa0*oKSu};>H9pJ|h2xtw2J?!51a5gc90;jsS9D5uA96 z6o^$4bkrjVi}(pUu(Aj)=mIEZkc1@y!44c)s|t}Qi4t}}k7eis9g!$ZNw~lXw4g%{ z%4!EE7`KdbiDf4uG>Re65d?H#p%S2wLJzqi2mjd*F|Y}kV-^#Qq*)|}?fA_D#g~+g{f;6F+Efu3 z(hgrZ;XDR`-EScG8pA1yW`{WArhF8Oi!{LruISGg=0vU zMFyj9TRyLs$`uL3#%7HuYlz~;Qa^BpwRuTF5 z2bVo54;!IVi8JoPnSEqsQRtDNzJ+XxyFdp-$}kRdj6)#$C|Td!hP|u#;t-*PM;6e* z4I0^oAhs^>-Y%<>{?MA;QbNvt%k!;~~LrY`nbiCC}%ce~Jq zD}0flh;S`umwV_|YNI1--RD@Y8(c*q(Gy&NXJaoyB1`OnP+z>m66kn`FS=3)DFmV( z$zotV3Q+~u5);bfFHo zuwxzeum@HCv5Yb-0;%@kgeCq#k3jzb5iK_@!vkZri*>ja3^H9tAQmCdl_o_gjfuu! z2a8Wv5ezTJu}5S~QjfcW3orgDLl%l~i&W?7mN|7yXXDeLfDowlLMHgNc+Y)mKRViY%tZZMx zTcbhNy8dEpI)+Q#^NLrzb}A2NIa^x17$ggfn_1n`)!p{8_pfJ(gcQI~1}R{n3WLco z7v3s`n}C4}QsBaf2ZIGJSXloGgGq52Ky2ZgU;zsvR&fb2z+HgORfJnfJjASJ z-_j$F8Kav?62oStwDU~mVRKT#ykNk#BpwZuOq|yYUG%m&RBc8V;jV^d$q3lZb}sZK z0li>1FS;G+Xi3qM_L4ZRB#xq$b32NL#YSiO(0?{GptUw=P>Z>~usbxmShVQF(j##t zx%8(Wt!O~kZ?lcw^Po%OAav}a8e~46s~w$XD0jpcyVwOOl&x%LFPovy*2S}(y=-e+ zo7tq8cD1RUZEjy1+q?g0MYElq>}p@z+sq!fM7dt0nHyf`B`a&`!(HK zTi-_VE(he6Mr3k~2qhsGqomUqMrjqi2{pyH<9 zbN%LhY&##kRU|KYeObP8m-ox%D2Fn|Q$2B4-~8pxO)P&2+;hC}+~+|rZ_tTe^a2|l z>Fm91&ii%6Wq>R+y$UaVA z0Q2WNj63>+mk!ZNprgE9H;LJ_I$lm^B90$hq+pg>6PyrUeW|*2Cp z0RLF$YRSU35;EI|KNfgzb~OrjjuZ8#*(TXkjrvwX1DZdl0(c-tHtrE{OnMzKAOWKhOg)Q1c8V9!kbU zn&#^u;{9Y!7Zd^?6zL2iDU1Zf9t1=n?7+rK^xl227(=8K}B?dl^`O1Ok*@$##7iK0$mQ|Ku{4Ekr5lw z5g!o}EwF%0Msgm)S~9^(k_qS1K{UptHvZ!foC6=4pc*(sADm#6Dy2(!<=z}f7jQvj z^r0lkOh8z#?6g zqEvQ~NIC{3zQ_qm&`Rnd)9lB2VgW%EWFitI{T##z;NehounEc_9&`kk&LdSyZSqvF z9xwk1AM4Td@{u3!(I5K}AnlRX0+JyA(I5*FArDd^8BOE@Qr8-CA@va=`Em6eavujW zBJ=SgF)|@LZXypd!rB32N|7FhuLZcl6~@3EhOPAeK|bE0X__WL`owp7$v$+%I2Iza z{z+qshhzF^lv2fzenvxFW?~XV02o3a#sErKi&09b6Jh2M?4fTM!ZakrRYb!!TtPsz z5hcojYl4zjQ12`T!XGjspL79nT8T|$>P9>w7A8doB}6FC0`|-z5jjvV?~*Uat1q8x z@$M}!{gN>EvM~P=F%MHQ4U;hwvoRObF(VT)C-X5YQ!*`+GA~mzGm|qhQv~S@X0-oE zjedhj9Ab)gk0n^C1-XjZop==-tWSl9Ijw2JY2arI+^-OIp7yuDX%{x5kLb}KnIjSLD0^)A%MKB z)k^UC5Q7`efg235XddVw>cus<0W@@?)iN$Zan3N>2_CFr_yVXyCX_{P1|8z4ogAdq zEXOY6;dqK7d$=JUV3f?L=`cFYa&AUs3g{db&k#!z@96746$e9$0`JHUK~Mj*1gYsr zPvSv~=19#fBdhe11i(tOv?H~YOSjZZyA({nR7}H^Ovltr%QPbqljN4}vQ}%g_;TlX zt4X?IwX_bh+%!}+Fi%12PWSRoOY7c%u2*=nxeB#SeJ=0v?ogA9JX@q5-pk(dG+pK^ zv?jGcFBMZWRZ}-rQ%%oP$?VTORa8e+(29#xO^?h{Rp3_jR9ltSRFAP9(p5K7R!KEh zSyfcYZd3=ZRR@mj22NFjbybCxSclbEixpXqRaujjS(nvWn-yB0Ra&E!TBp@os}))_TesC)yA@oARYKuGLfL^_&D9Xk6or~X z)n3chU;hk9=I~HU|R%A;yWKWi4QPyNrmSrc_AN=7T{sA9mmS$_#W@+{wZdPY$RseR^XMeV4 zd)8)!7HEt19f}rdlh$W@mS~mMX`dEqqc&)pc4h^DX{}ajgBBmCHfyVPYr7U~!&Yp^ zmTb$`Y|j>LhZbr50UyL_9ZmralE4bk;1y!lX4e59*!E@jc5m;&9{AQD1R!v&mT(2& z9tsz66PIw=wrB4lth|@nLw0_i}wVZIf4d zmse_Qmv~c`cyktapLb?Ow|b%XZk-lyTPkU>*Jr2KdS{l(o;P);cWHN4aQXHh`~e%f zKnUI!e$n6^Bv*1{R%XRYa{a+?b2er*SAVyba|`z$a<*sj7j-oka}l_0@8M}cylqhfBpYq9g5h2t(I>un1pedeld56 z2iSu3*Kd1xeNWhOQP^_>_lXntWyKhbA-HwV7>&s|jn_DR)7XsJ_>6^EW;vLG?bd#` zmV!^%gt4}N0a$2V_=4+LbtPAI3pa%Un1KH{kMnqf=a`9$_=^E|jMH~-@!=iN;C&$h z85F??-d7P)H-k~(2WFv;-+_XEAr4~Jl>gx!HuxQmHiO^c7fiW|>sXcT*OWI{h;QKs zMnM3E*OY&O5lmSdq+kaKfsX4q8Kxm-dAXNk78PQ)mRA{nGq;Bo+;QEwBdvw;T9y}A7)_(q`(|rxoS(juSV7 zM}eZPp$*yqnZe)@#394X;U8{63Fv^O!9WSBKpOBt5Trm5IM*J~IU6L{mSH$%A0Zh= zK?#zH8K&VU`I&3AW)D-eCtAVG_ha07g5chnu1wK?>f% z6xQJ#Mu8I4;T>+_!IPn`x7ivhItbpOrS11+@faHXdwnN4gC(H~Vpa*_fE@fgx=q;_ zet{B@0UCCo3T}ZMPyq*w`5JzJpTYm&9XPy|-(k8bfvu7Hc7I_MP(dC3;TKFn3E}fE_&TMPV7*D)#Cydc^;s6)Ic_qWN%_c&}$c zs*S-OzCjvld=^+-%CCTwrN9&%*dAKp!ey46Z-EhL8y|EW8n#v(!hxk%y9y)$AFKf% zlz@~?fd{Nw3R(dgeqbGLVI8V~uM3&YgPL!J7!}|*30@SPc{G&YAIFVZ4aQg-``E{j z#=fs(j~YuNDqA(OWGzLSg&A9nH6o3D%Pu6}j5V|gN!pMk#E_!M{QUlY&Uwyr?z#7# z=iblz^Lhcqvso>N95xOaIXfp^1%M{ZL34d2axM6-&WR-eAQSIUiJWAi3g+0iJF$IC z$SkY({TxWfPl(wkFl)i{sSlOF*x25VTT6A2${4`-8f zn|LYQDL$dTSSXjtuk0s{l0)PkKAi_)0MMyhK6TR>xPYH|+1mv5iov_I1 z`>@I-n$TCIGB3?yeW+)ZDb0WN`kUwMwYbWaC-@&cn*)Hr{BkS(pocQ0N;F>umt++H z(o90u03>tKy>~p}7(Z&S-}=vv7uRn@?Ck%J=⁣dFNNpPSETQ-F)}@tyzxGxZvsJ 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�Ol8fQO>1CzRyJQAO7XsteLPI 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 diff --git a/docs/collection-utilities.md b/docs/collection-utilities.md index f97bf9ae9a..d4bf7894be 100644 --- a/docs/collection-utilities.md +++ b/docs/collection-utilities.md @@ -9,7 +9,7 @@ hide_title: true # Collection utilities {🚀} They enable manipulating observable arrays, objects and Maps with the same generic API. -These APIs are fully reactive, which means that even [without `Proxy` support](configuration.md#limitations-without-proxy-support) new property declarations can be detected by MobX if `set` is used to add them, and `values` or `keys` are used to iterate over them. +These APIs are fully reactive and can track keys, values and entries without depending on the concrete collection type. Another benefit of `values`, `keys` and `entries` is that they return arrays rather than iterators, which makes it possible to, for example, immediately call `.map(fn)` on the results. @@ -28,8 +28,6 @@ Mutation: - `has(collection, key)` returns _true_ if the collection has the specified _observable_ property. - `get(collection, key)` returns the child under the specified key. -If you use the access APIs in an environment without `Proxy` support, then also use the mutation APIs so they can detect the changes. - ```javascript import { autorun, get, set, observable, values } from "mobx" diff --git a/docs/computeds-with-args.md b/docs/computeds-with-args.md index c217b28cc1..e848f48fe1 100644 --- a/docs/computeds-with-args.md +++ b/docs/computeds-with-args.md @@ -16,13 +16,11 @@ and the application supports multi-selection. How can we implement a derivation like `store.isSelected(item.id)`? ```javascript -import * as React from 'react' -import { observer } from 'mobx-react-lite' +import * as React from "react" +import { observer } from "mobx-react-lite" const Item = observer(({ item, store }) => ( -

+
{item.title}
)) ``` @@ -46,17 +44,13 @@ This is a worst-case example. In general, it is completely fine to have unmarked This is a more efficient implementation compared to the original. ```javascript -import * as React from 'react' -import { computed } from 'mobx' -import { observer } from 'mobx-react-lite' +import * as React from "react" +import { computed } from "mobx" +import { observer } from "mobx-react-lite" const Item = observer(({ item, store }) => { const isSelected = computed(() => store.isSelected(item.id)).get() - return ( -
- {item.title} -
- ) + return
{item.title}
}) ``` diff --git a/docs/computeds.md b/docs/computeds.md index 9e4f78a937..d0f2eb00fb 100644 --- a/docs/computeds.md +++ b/docs/computeds.md @@ -214,22 +214,22 @@ This string is used as a debug name in the [Spy event listeners](analyzing-react ### `equals` -Set to `comparer.default` by default. It acts as a comparison function for comparing the previous value with the next value. If this function considers the values to be equal, then the observers will not be re-evaluated. +Set to `compareDefault` by default. It acts as a comparison function for comparing the previous value with the next value. If this function considers the values to be equal, then the observers will not be re-evaluated. -This is useful when working with structural data and types from other libraries. For example, a computed [moment](https://momentjs.com/) instance could use `(a, b) => a.isSame(b)`. `comparer.structural` and `comparer.shallow` come in handy if you want to use structural / shallow comparison to determine whether the new value is different from the previous value, and as a result notify its observers. +This is useful when working with structural data and types from other libraries. For example, a computed [moment](https://momentjs.com/) instance could use `(a, b) => a.isSame(b)`. `compareStructural` and `compareShallow` come in handy if you want to use structural / shallow comparison to determine whether the new value is different from the previous value, and as a result notify its observers. Check out the [`computed.struct`](#computed-struct) section above. #### Built-in comparers -MobX provides four built-in `comparer` methods which should cover most needs of the `equals` option of `computed`: +MobX provides four built-in comparison functions which should cover most needs of the `equals` option of `computed`: -- `comparer.identity` uses the identity (`===`) operator to determine if two values are the same. -- `comparer.default` is the same as `comparer.identity`, but also considers `NaN` to be equal to `NaN`. -- `comparer.structural` performs deep structural comparison to determine if two values are the same. -- `comparer.shallow` performs shallow structural comparison to determine if two values are the same. +- `compareIdentity` uses the identity (`===`) operator to determine if two values are the same. +- `compareDefault` uses `Object.is` to determine if two values are the same. +- `compareStructural` performs deep structural comparison to determine if two values are the same. +- `compareShallow` performs shallow structural comparison to determine if two values are the same. -You can import `comparer` from `mobx` to access these methods. They can be used for `reaction` as well. +You can import these functions from `mobx`. They can be used for `reaction` as well. ### `requiresReaction` diff --git a/docs/configuration.md b/docs/configuration.md index 0b3486357b..7a4171406a 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -13,37 +13,11 @@ Most configuration options can be set by using the `configure` method. ## Proxy support -By default, MobX uses proxies to make arrays and plain objects observable. Proxies provide the best performance and most consistent behavior across environments. -However, if you are targeting an environment that doesn't support proxies, proxy support has to be disabled. -Most notably this is the case when targeting Internet Explorer or React Native without using the Hermes engine. +MobX requires [`Proxy` support](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) to make arrays and plain objects observable. +Proxies provide the best performance and most consistent behavior across environments. -Proxy support can be disabled by using `configure`: - -```typescript -import { configure } from "mobx" - -configure({ - useProxies: "never" -}) -``` - -Accepted values for the `useProxies` configuration are: - -- `"always"` (**default**): MobX expects to run only in environments with [`Proxy` support](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) and it will error if such an environment is not available. -- `"never"`: Proxies are not used and MobX falls back on non-proxy alternatives. This is compatible with all ES5 environments, but causes various [limitations](#limitations-without-proxy-support). -- `"ifavailable"` (experimental): Proxies are used if they are available, and otherwise MobX falls back to non-proxy alternatives. The benefit of this mode is that MobX will try to warn if APIs or language features that wouldn't work in ES5 environments are used, triggering errors when hitting an ES5 limitation running on a modern environment. - -**Note:** before MobX 6, one had to pick either MobX 4 for older engines, or MobX 5 for new engines. However, MobX 6 supports both, although polyfills for certain APIs like Map will be required when targetting older JavaScript engines. -Proxies cannot be polyfilled. Even though polyfills do exist, they don't support the full spec and are unsuitable for MobX. Don't use them. - -### Limitations without Proxy support - -1. Observable arrays are not real arrays, so they won't pass the `Array.isArray()` check. The practical consequence is that you often need to `.slice()` the array first (to get a shallow copy of the real array) before passing it to third party libraries. For example, concatenating observable arrays doesn't work as expected, so `.slice()` them first. -2. Adding or deleting properties of existing observable plain objects after creation is not automatically picked up. If you intend to use objects as index based lookup maps, in other words, as dynamic collections of things, use observable Maps instead. - -It is possible to dynamically add properties to objects, and detect their additions, even when Proxies aren't enabled. -This can be achieved by using the [Collection utilities {🚀}](collection-utilities.md). Make sure that (new) properties are set using the `set` utility, and that the objects are iterated using one of the `values` / `keys` or `entries` utilities, rather than the built-in JavaScript mechanisms. -But, since this is really easy to forget, we instead recommend using observable Maps if possible. +MobX 7 does not include the older ES5 fallback implementation and no longer supports `configure({ useProxies })`. +Use MobX 6 if you need to support environments without Proxy support, such as Internet Explorer or older React Native versions. ## Decorator support diff --git a/docs/enabling-decorators.md b/docs/enabling-decorators.md index 29850a8523..98f3696d4e 100644 --- a/docs/enabling-decorators.md +++ b/docs/enabling-decorators.md @@ -90,47 +90,8 @@ class TodoList { Notice the usage of the new `accessor` keyword when using `@observable`. It is part of the 2022.3 spec and is required if you want to use modern decorators. -
Using legacy decorators - -We do not recommend codebases to use TypeScript / Babel legacy decorators since they well never become an official part of the language, but you can still use them. It does require a specific setup for transpilation: - -MobX before version 6 encouraged the use of legacy decorators and mark things as `observable`, `computed` and `action`. -While MobX 6 recommends against using these decorators (and instead use either modern decorators or [`makeObservable` / `makeAutoObservable`](observable-state.md)), it is in the current major version still possible. -Support for legacy decorators will be removed in MobX 7. - -```javascript -import { makeObservable, observable, computed, action } from "mobx" - -class Todo { - id = Math.random() - @observable title = "" - @observable finished = false - - constructor() { - makeObservable(this) - } - - @action - toggle() { - this.finished = !this.finished - } -} - -class TodoList { - @observable todos = [] - - @computed - get unfinishedTodoCount() { - return this.todos.filter(todo => !todo.finished).length - } - - constructor() { - makeObservable(this) - } -} -``` - -
+If you still need legacy TypeScript decorators, use MobX 6. +MobX 7 requires migrating to modern decorators.
Migrating from legacy decorators @@ -146,15 +107,13 @@ Please note that adding `accessor` to a class property will change it into `get`
Decorator changes / gotchas -MobX' 2022.3 Decorators are very similar to the MobX 5 decorators, so usage is mostly the same, but there are some gotchas: +MobX' 2022.3 decorators have some gotchas: - `@observable accessor` decorators are _not_ enumerable. `accessor`s do not have a direct equivalent in the past - they're a new concept in the language. We've chosen to make them non-enumerable, non-own properties in order to better follow the spirit of the ES language and what `accessor` means. The main cases for enumerability seem to have been around serialization and rest destructuring. - Regarding serialization, implicitly serializing all properties probably isn't ideal in an OOP-world anyway, so this doesn't seem like a substantial issue (consider implementing `toJSON` or using `serializr` as possible alternatives) - Addressing rest-destructuring, such is an anti-pattern in MobX - doing so would (likely unwantedly) touch all observables and make the observer overly-reactive). -- `@action some_field = () => {}` was and is valid usage. However, inheritance is different between legacy decorators and modern decorators. - - In legacy decorators, if superclass has a field decorated by `@action`, and subclass tries to override the same field, it will throw a `TypeError: Cannot redefine property`. - - In modern decorators, if superclass has a field decorated by `@action`, and subclass tries to override the same field, it's allowed to override the field. However, the field on subclass is not an action unless it's also decorated with `@action` in subclass declaration. +- `@action some_field = () => {}` is valid usage. If a superclass has a field decorated by `@action`, a subclass can override the field. However, the field on the subclass is not an action unless it is also decorated with `@action` in the subclass declaration.
diff --git a/docs/installation.md b/docs/installation.md index b6bae03c20..e25769bc5d 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -8,18 +8,21 @@ hide_title: true # Installation -MobX works in any ES5 environment, which includes browsers and NodeJS. +MobX works in browsers and Node.js environments that provide native `Proxy` support. There are three types of React bindings: -- [mobx-react-lite](https://github.com/mobxjs/mobx/tree/main/packages/mobx-react-lite). Utilities to manually apply observation -- [mobx-react-observer](https://github.com/christianalfoni/mobx-react-observer). Babel/swc plugin to automatically apply observation to components -- [mobx-react](https://github.com/mobxjs/mobx/tree/main/packages/mobx-react). Support for class components -Append the appropriate bindings for your use case to the _Yarn_ or _NPM_ command below: +- [mobx-react-lite](https://github.com/mobxjs/mobx/tree/main/packages/mobx-react-lite). Utilities to manually apply observation +- [mobx-react-observer](https://github.com/christianalfoni/mobx-react-observer). Babel/swc plugin to automatically apply observation to components +- [mobx-react](https://github.com/mobxjs/mobx/tree/main/packages/mobx-react). Support for class components -**Yarn:** `yarn add mobx` +Append the appropriate bindings for your use case to one of the commands below: -**NPM:** `npm install --save mobx` +**npm:** `npm install mobx` + +**pnpm:** `pnpm add mobx` + +**yarn:** `yarn add mobx` **CDN:** https://cdnjs.com/libraries/mobx / https://unpkg.com/mobx/dist/mobx.umd.production.min.js @@ -28,9 +31,7 @@ Append the appropriate bindings for your use case to the _Yarn_ or _NPM_ command ## MobX and Decorators Based on your preference, MobX can be used with or without decorators. -Both the legacy implementation and the standardised TC-39 version of decorators are currently supported. See [enabling-decorators](enabling-decorators.md) for more details on how to enable them. -Legacy decorator support will be removed in MobX 7, in favor of the standard. ## Use spec compliant transpilation for class properties @@ -38,6 +39,7 @@ When using MobX with TypeScript or Babel, and you plan to use classes; make sure - **TypeScript**: Set the compiler option `"useDefineForClassFields": true`. - **Babel**: Make sure to use at least version 7.12, with the following configuration: + ```json { // Babel < 7.13.0 @@ -50,25 +52,14 @@ When using MobX with TypeScript or Babel, and you plan to use classes; make sure } } ``` -For verification insert this piece of code at the beginning of your sources (eg. `index.js`) -```javascript -if (!new class { x }().hasOwnProperty('x')) throw new Error('Transpiler is not configured correctly'); -``` -## MobX on older JavaScript environments - -By default, MobX uses proxies for optimal performance and compatibility. However, on older JavaScript engines `Proxy` is not available (check out [Proxy support](https://compat-table.github.io/compat-table/es6/#test-Proxy)). Examples of such are Internet Explorer (before Edge), Node.js < 6, iOS < 10, Android before RN 0.59. - -In such cases, MobX can fallback to an ES5 compatible implementation which works almost identically, although there are a few [limitations without Proxy support](configuration.md#limitations-without-proxy-support). You will have to explicitly enable the fallback implementation by configuring [`useProxies`](configuration.md#proxy-support): +For verification insert this piece of code at the beginning of your sources (eg. `index.js`) + ```javascript -import { configure } from "mobx" - -configure({ useProxies: "never" }) // Or "ifavailable". +if (!new (class { x })().hasOwnProperty("x")) throw new Error("Transpiler is not configured correctly") ``` -This option will be removed in MobX 7. - ## MobX on other frameworks / platforms - [MobX.dart](https://mobx.netlify.app/): MobX for Flutter / Dart diff --git a/docs/migrating-from-6-to-7.md b/docs/migrating-from-6-to-7.md new file mode 100644 index 0000000000..02921f6c71 --- /dev/null +++ b/docs/migrating-from-6-to-7.md @@ -0,0 +1,295 @@ +--- +title: Migrating to MobX 7 +sidebar_label: Migrating to MobX 7 {🚀} +hide_title: true +--- + + + +# Migrating to MobX 7 {🚀} + +MobX 7 is mostly a cleanup release. Most applications that already use MobX 6 idiomatically can upgrade with minimal changes. + +## Updating React bindings + +MobX 7 keeps the React bindings split: + +- `mobx-react-lite` supports function components and `forwardRef`. +- `mobx-react` is a thin wrapper around `mobx-react-lite` that also supports class components and the `@observer` class decorator. + +`mobx-react-lite` and `mobx-react` require React 18 or later. + +The public React binding surface has been reduced to the APIs that are still recommended: + +- `observer` +- `Observer` +- `useLocalObservable` +- `enableStaticRendering` +- `isUsingStaticRendering` + +The following APIs have been removed: + +| Removed API | Replacement | +| ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `disposeOnUnmount` | Dispose reactions in `componentWillUnmount`, or return a cleanup function from `useEffect`. | +| `PropTypes` | Use TypeScript or the regular `prop-types` package. | +| `useLocalStore` | Use `useLocalObservable`. | +| `useAsObservableSource` | Store the values you need locally and synchronize them from props with `useEffect`. | +| `useObserver` | Wrap the component in `observer`, or use the `` component. | +| `useStaticRendering` | Use `enableStaticRendering`. | +| `observerBatching`, `isObserverBatched`, `batchingForReactDom`, `batchingOptOut`, `batchingForReactNative` | Remove these imports. React 18+ renderers handle batching automatically, and the React Native side-effect import is no longer needed. | +| `Provider`, `inject`, `MobXProviderContext` from `mobx-react` | Use `React.createContext` directly. | + +## Migrating legacy decorators + +MobX 7 supports Stage 3 decorators only. + +To keep decorators, switch the class to Stage 3 decorator syntax: remove `makeObservable(this)` from decorated classes, drop its import when unused, and add `accessor` to observable fields. + +```diff +-import { makeObservable, observable, computed, action } from "mobx" ++import { observable, computed, action } from "mobx" + +class Todo { +- @observable title = "" ++ @observable accessor title = "" +- @observable finished = false ++ @observable accessor finished = false +- +- constructor() { +- makeObservable(this) +- } + + @computed + get label() { + return `${this.finished ? "[DONE]" : "[OPEN]"} ${this.title}` + } + + @action + toggle() { + this.finished = !this.finished + } +} +``` + +Switch your compiler to modern decorators: + +- For TypeScript, use TypeScript 5 or later and disable or remove the `experimentalDecorators` flag. +- For Babel, use `@babel/plugin-proposal-decorators` with the current Stage 3 configuration. See [Enabling decorators {🚀}](enabling-decorators.md) for the exact compiler setup. + +If you don't want to keep decorators, remove them and pass an explicit annotation map to `makeObservable`: + +```javascript +import { makeObservable, observable, computed, action } from "mobx" + +class Todo { + title = "" + finished = false + + constructor() { + makeObservable(this, { + title: observable, + finished: observable, + label: computed, + toggle: action + }) + } + + get label() { + return `${this.finished ? "[DONE]" : "[OPEN]"} ${this.title}` + } + + toggle() { + this.finished = !this.finished + } +} +``` + +## Replacing namespaced APIs + +Namespaced annotation and comparer properties have been replaced by named exports for better tree-shaking: + +| Removed API | Replacement | +| --------------------- | ------------------- | +| `observable.ref` | `observableRef` | +| `observable.shallow` | `observableShallow` | +| `observable.deep` | `observableDeep` | +| `observable.struct` | `observableStruct` | +| `computed.struct` | `computedStruct` | +| `action.bound` | `actionBound` | +| `flow.bound` | `flowBound` | +| `comparer.identity` | `compareIdentity` | +| `comparer.default` | `compareDefault` | +| `comparer.structural` | `compareStructural` | +| `comparer.shallow` | `compareShallow` | + +Annotation map: + +```diff +-import { action, comparer, computed, flow, makeObservable, observable } from "mobx" ++import { actionBound, compareStructural, computed, computedStruct, flowBound, makeObservable, observableRef } from "mobx" + + makeObservable(this, { +- value: observable.ref, ++ value: observableRef, +- total: computed.struct, ++ total: computedStruct, +- rounded: computed({ equals: comparer.structural }), ++ rounded: computed({ equals: compareStructural }), +- save: action.bound, ++ save: actionBound, +- load: flow.bound ++ load: flowBound + }) +``` + +Decorator: + +```diff +-import { action, comparer, computed, flow, observable } from "mobx" ++import { actionBound, compareStructural, computed, computedStruct, flowBound, observableRef } from "mobx" + + class Store { +- @observable.ref accessor value = null ++ @observableRef accessor value = null + +- @computed.struct ++ @computedStruct + get total() { + return { value: this.value } + } + +- @computed({ equals: comparer.structural }) ++ @computed({ equals: compareStructural }) + get rounded() { + return { value: Math.round(this.value) } + } + +- @action.bound ++ @actionBound + save() {} + +- @flow.bound ++ @flowBound + *load() {} + } +``` + +Old structural boolean options should use `equals` explicitly: + +```diff +-computed(() => value, { compareStructural: true }) ++computed(() => value, { equals: compareStructural }) + +-reaction(() => value, effect, { compareStructural: true }) ++reaction(() => value, effect, { equals: compareStructural }) +``` + +## Proxy support is required + +MobX 7 requires native Proxy support and no longer includes the ES5 fallback implementation. + +Remove `useProxies` from `configure` calls: + +```diff + import { configure } from "mobx" + + configure({ + enforceActions: "observed", +- useProxies: "ifavailable" + }) +``` + +Also remove `{ proxy: false }` from `observable`, `observable.object` and `observable.array` options: + +```diff +-const todos = observable.object({}, {}, { proxy: false }) ++const todos = observable.object({}) +``` + +## Removed `trace` + +The `trace` API has been removed. For debugging reactivity, use [`getDependencyTree`](api.md#getdependencytree), [`getObserverTree`](api.md#getobservertree), [`spy`](analyzing-reactivity.md#spy), the MobX developer tools, or packages such as `mobx-log`. + +```javascript +import { autorun, getDependencyTree } from "mobx" + +const disposer = autorun(() => { + console.log(message.title) +}) + +console.log(getDependencyTree(disposer)) +``` + +## Replacing `Provider` and `inject` + +`Provider` and `inject` were removed. Use React context directly. Keep the context value stable and mutate the observable store instead of replacing the provider value. + +Before: + +```javascript +import { Provider, inject, observer } from "mobx-react" + +// prettier-ignore +const UserName = inject("userStore")( + observer(({ userStore }) => {userStore.name}) +) + +const App = ({ userStore }) => ( + + + +) +``` + +After, using a function component: + +```javascript +import React, { createContext, useContext } from "react" +import { observer } from "mobx-react" + +const RootStoreContext = createContext(null) + +export const RootStoreProvider = ({ rootStore, children }) => ( + {children} +) + +export const useRootStore = () => { + const store = useContext(RootStoreContext) + if (!store) { + throw new Error("RootStoreProvider is missing") + } + return store +} + +const UserName = observer(() => { + const { userStore } = useRootStore() + return {userStore.name} +}) + +const App = () => ( + + + +) +``` + +After, using a class component: + +```javascript +import React from "react" +import { observer } from "mobx-react" + +const RootStoreContext = React.createContext(null) + +class UserName extends React.Component { + static contextType = RootStoreContext + + render() { + const { userStore } = this.context + return {userStore.name} + } +} + +const ObservedUserName = observer(UserName) +``` diff --git a/docs/observable-state.md b/docs/observable-state.md index c7311ad984..b2d01c99a0 100644 --- a/docs/observable-state.md +++ b/docs/observable-state.md @@ -20,7 +20,7 @@ The most important annotations are: Usage: -- `makeObservable(target, annotations?, options?)` +- `makeObservable(target, annotations, options?)` This function can be used to make _existing_ object properties observable. Any JavaScript object (including class instances) can be passed into `target`. Typically `makeObservable` is used in the constructor of a class, and its first argument is `this`. @@ -72,7 +72,7 @@ class Doubler { When using modern decorators, there is no need to call `makeObservable`, below is what a decorator based class looks like. -Note that the `@observable` annotation should always be used in combination with the `accessor` keyword. +Note that the `@observable` decorator should always be used in combination with the `accessor` keyword. ```javascript import { observable, computed, action, flow } from "mobx" @@ -147,39 +147,6 @@ tags.push("prio: for fun") In contrast to the first example with `makeObservable`, `observable` supports adding (and removing) _fields_ to an object. This makes `observable` great for collections like dynamically keyed objects, arrays, Maps and Sets. - - -To use legacy decorators, `makeObservable(this)` should be called in the constructor to make sure decorators work. - -```javascript -import { observable, computed, action, flow } from "mobx" - -class Doubler { - @observable value - - constructor(value) { - makeObservable(this) - this.value = value - } - - @computed - get double() { - return this.value * 2 - } - - @action - increment() { - this.value++ - } - - @flow - *fetch() { - const response = yield fetch("/api/value") - this.value = response.json() - } -} -``` - ## `makeAutoObservable` @@ -216,7 +183,7 @@ The `source` object will be cloned and all members will be made observable, simi Likewise, an `overrides` map can be provided to specify the annotations of specific members. Check out the above code block for an example. -The object returned by `observable` will be a Proxy, which means that properties that are added later to the object will be picked up and made observable as well (except when [proxy usage](configuration.md#proxy-support) is disabled). +The object returned by `observable` will be a Proxy, which means that properties that are added later to the object will be picked up and made observable as well. The `observable` method can also be called with collections types like [arrays](api.md#observablearray), [Maps](api.md#observablemap) and [Sets](api.md#observableset). Those will be cloned as well and converted into their observable counterparts. @@ -274,36 +241,35 @@ Making class members observable is considered the responsibility of the class co
-
{🚀} **Tip:** observable (proxied) versus makeObservable (unproxied) +
{🚀} **Tip:** observable clones versus makeObservable in-place updates The primary difference between `make(Auto)Observable` and `observable` is that the first one modifies the object you are passing in as first argument, while `observable` creates a _clone_ that is made observable. -The second difference is that `observable` creates a [`Proxy`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) object, to be able to trap future property additions in case you use the object as a dynamic lookup map. -If the object you want to make observable has a regular structure where all members are known up-front, we recommend to use `makeObservable` as non proxied objects are a little faster, and they are easier to inspect in the debugger and `console.log`. +`observable` creates a [`Proxy`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) object, to be able to trap future property additions in case you use the object as a dynamic lookup map. +If the object you want to make observable has a regular structure where all members are known up-front, `makeObservable` is often the clearer API because it keeps the original object identity. Because of that, `make(Auto)Observable` is the recommended API to use in factory functions. -Note that it is possible to pass `{ proxy: false }` as an option to `observable` to get a non proxied clone.
## Available annotations -| Annotation | Description | -| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Annotation | Description | +| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `observable`
`observable.deep` | Defines a trackable field that stores state. If possible, any value assigned to `observable` is automatically converted to (deep) `observable`, [`autoAction`](#autoAction) or `flow` based on its type. Only `plain object`, `array`, `Map`, `Set`, `function`, `generator function` are convertible. Class instances and others are untouched. | -| `observable.ref` | Like `observable`, but only reassignments will be tracked. The assigned values are completely ignored and will NOT be automatically converted to `observable`/[`autoAction`](#autoAction)/`flow`. For example, use this if you intend to store immutable data in an observable field. | -| `observable.shallow` | Like `observable.ref` but for collections. Any collection assigned will be made observable, but the contents of the collection itself won't become observable. | -| `observable.struct` | Like `observable`, except that any assigned value that is structurally equal to the current value will be ignored. | -| `action` | Mark a method as an action that will modify the state. Check out [actions](actions.md) for more details. Non-writable. | -| `action.bound` | Like action, but will also bind the action to the instance so that `this` will always be set. Non-writable. | -| `computed` | Can be used on a [getter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get) to declare it as a derived value that can be cached. Check out [computeds](computeds.md) for more details. | -| `computed.struct` | Like `computed`, except that if after recomputing the result is structurally equal to the previous result, no observers will be notified. | -| `true` | Infer the best annotation. Check out [makeAutoObservable](#makeautoobservable) for more details. | -| `false` | Explicitly do not annotate this property. | -| `flow` | Creates a `flow` to manage asynchronous processes. Check out [flow](actions.md#using-flow-instead-of-async--await-) for more details. Note that the inferred return type in TypeScript might be off. Non-writable. | -| `flow.bound` | Like flow, but will also bind the flow to the instance so that `this` will always be set. Non-writable. | -| `override` | [Applicable to inherited `action`, `flow`, `computed`, `action.bound` overridden by subclass](subclassing.md). | -| `autoAction` | Should not be used explicitly, but is used under the hood by `makeAutoObservable` to mark methods that can act as action or derivation, based on their calling context. It will be determined at runtime if the function is a derivation or action. | +| `observable.ref` | Like `observable`, but only reassignments will be tracked. The assigned values are completely ignored and will NOT be automatically converted to `observable`/[`autoAction`](#autoAction)/`flow`. For example, use this if you intend to store immutable data in an observable field. | +| `observable.shallow` | Like `observable.ref` but for collections. Any collection assigned will be made observable, but the contents of the collection itself won't become observable. | +| `observable.struct` | Like `observable`, except that any assigned value that is structurally equal to the current value will be ignored. | +| `action` | Mark a method as an action that will modify the state. Check out [actions](actions.md) for more details. Non-writable. | +| `action.bound` | Like action, but will also bind the action to the instance so that `this` will always be set. Non-writable. | +| `computed` | Can be used on a [getter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get) to declare it as a derived value that can be cached. Check out [computeds](computeds.md) for more details. | +| `computed.struct` | Like `computed`, except that if after recomputing the result is structurally equal to the previous result, no observers will be notified. | +| `true` | Infer the best annotation. Check out [makeAutoObservable](#makeautoobservable) for more details. | +| `false` | Explicitly do not annotate this property. | +| `flow` | Creates a `flow` to manage asynchronous processes. Check out [flow](actions.md#using-flow-instead-of-async--await-) for more details. Note that the inferred return type in TypeScript might be off. Non-writable. | +| `flow.bound` | Like flow, but will also bind the flow to the instance so that `this` will always be set. Non-writable. | +| `override` | [Applicable to inherited `action`, `flow`, `computed`, `action.bound` overridden by subclass](subclassing.md). | +| `autoAction` | Should not be used explicitly, but is used under the hood by `makeAutoObservable` to mark methods that can act as action or derivation, based on their calling context. It will be determined at runtime if the function is a derivation or action. | ## Limitations @@ -331,7 +297,6 @@ The above APIs take an optional `options` argument which is an object that suppo - **`autoBind: true`** uses `action.bound`/`flow.bound` by default, rather than `action`/`flow`. Does not affect explicitly annotated members. - **`deep: false`** uses `observable.ref` by default, rather than `observable`. Does not affect explicitly annotated members. - **`name: `** gives the object a debug name that is printed in error messages and reflection APIs. -- **`proxy: false`** forces `observable(thing)` to use non-[**proxy**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) implementation. This is a good option if the shape of the object will not change over time, as non-proxied objects are easier to debug and faster. This option is **not** available for `make(Auto)Observable`, see [avoiding proxies](#avoid-proxies).
**Note:** options are *sticky* and can be provided only once `options` argument can be provided only for `target` that is NOT observable yet.
diff --git a/docs/react-integration.md b/docs/react-integration.md index b86c41a085..8ab2197a0d 100644 --- a/docs/react-integration.md +++ b/docs/react-integration.md @@ -18,7 +18,7 @@ const MyComponent = observer(props => ReactElement) While MobX works independently from React, they are most commonly used together. In [The gist of MobX](the-gist-of-mobx.md) you have already seen the most important part of this integration: the `observer` [HoC](https://reactjs.org/docs/higher-order-components.html) that you can wrap around a React component. -`observer` is provided by a separate React bindings package you choose [during installation](installation.md#installation). In this example, we're going to use the more lightweight [`mobx-react-lite` package](https://github.com/mobxjs/mobx/tree/main/packages/mobx-react-lite). +`observer` is provided by the [`mobx-react-lite` package](https://github.com/mobxjs/mobx/tree/main/packages/mobx-react-lite) for function components. Use [`mobx-react`](https://github.com/mobxjs/mobx/tree/main/packages/mobx-react) if you also need class component support. ```javascript import React from "react" @@ -198,7 +198,7 @@ ReactDOM.render(, document.body) The combination `const [store] = useState(() => observable({ /* something */}))` is -quite common. To make this pattern simpler the [`useLocalObservable`](https://github.com/mobxjs/mobx-react#uselocalobservable-hook) hook is exposed from `mobx-react-lite` package, making it possible to simplify the earlier example to: +quite common. To make this pattern simpler the [`useLocalObservable`](https://github.com/mobxjs/mobx/tree/main/packages/mobx-react-lite#uselocalobservabletinitializer--t-annotations-annotationsmapt-t) hook is exposed from the `mobx-react-lite` package, making it possible to simplify the earlier example to: ```javascript import { observer, useLocalObservable } from "mobx-react-lite" @@ -291,7 +291,7 @@ const TodoView = observer(({ todo }: { todo: Todo }) => Imagine the same example, where `GridRow` takes an `onRender` callback instead. Since `onRender` is part of the rendering cycle of `GridRow`, rather than `TodoView`'s render (even though that is where it syntactically appears), we have to make sure that the callback component uses an `observer` component. -Or, we can create an in-line anonymous observer using [``](https://github.com/mobxjs/mobx-react#observer): +Or, we can create an in-line anonymous observer using [``](https://github.com/mobxjs/mobx/tree/main/packages/mobx-react-lite#observerrenderfn): ```javascript const TodoView = observer(({ todo }: { todo: Todo }) => { @@ -310,20 +310,6 @@ const TodoView = observer(({ todo }: { todo: Todo }) => { If `observer` is used in server side rendering context; make sure to call `enableStaticRendering(true)`, so that `observer` won't subscribe to any observables used, and no GC problems are introduced.
-
**Note:** mobx-react vs. mobx-react-lite -In this documentation we used `mobx-react-lite` as default. -[mobx-react](https://github.com/mobxjs/mobx-react/) is its big brother, which uses `mobx-react-lite` under the hood. -It offers a few more features which are typically not needed anymore in greenfield projects. The additional things offered by mobx-react: - -1. Support for React class components. -1. `Provider` and `inject`. MobX's own React.createContext predecessor which is not needed anymore. -1. Observable specific `propTypes`. - -Note that `mobx-react` fully repackages and re-exports `mobx-react-lite`, including functional component support. -If you use `mobx-react`, there is no need to add `mobx-react-lite` as a dependency or import from it anywhere. - -
-
**Note:** `observer` or `React.memo`? `observer` automatically applies `memo`, so `observer` components never need to be wrapped in `memo`. `memo` can be applied safely to observer components because mutations (deeply) inside the props will be picked up by `observer` anyway if relevant. @@ -331,12 +317,12 @@ If you use `mobx-react`, there is no need to add `mobx-react-lite` as a dependen
**Tip:** `observer` for class based React components -As stated above, class based components are only supported through `mobx-react`, and not `mobx-react-lite`. Briefly, you can wrap class-based components in `observer` just like you can wrap function components: ```javascript import React from "react" +import { observer } from "mobx-react" const TimerView = observer( class TimerView extends React.Component { @@ -368,7 +354,7 @@ then no display name will be visible in the DevTools. The following approaches can be used to fix this: -- use `function` with a name instead of an arrow function. `mobx-react` infers component name from the function name: +- use `function` with a name instead of an arrow function. `observer` infers component name from the function name: ```javascript export const MyComponent = observer(function MyComponent(props) { @@ -390,15 +376,13 @@ The following approaches can be used to fix this: export default observer(MyComponent) ``` -- [**Broken**] Set `displayName` explicitly: +- Set `displayName` explicitly: ```javascript export const MyComponent = observer(props =>
hi
) MyComponent.displayName = "MyComponent" ``` - This is broken in React 16 at the time of writing; mobx-react `observer` uses a React.memo and runs into this bug: https://github.com/facebook/react/issues/18026, but it will be fixed in React 17. - Now you can see component names: ![devtools-withname](assets/devtools-withDisplayName.png) @@ -494,7 +478,7 @@ With MobX that isn't really needed, since MobX has already a way to automaticall Combining `autorun` and coupling it to the life-cycle of the component using `useEffect` is luckily straightforward: ```javascript -import { observer, useLocalObservable, useAsObservableSource } from "mobx-react-lite" +import { observer, useLocalObservable } from "mobx-react-lite" import { useState } from "react" const TimerView = observer(() => { @@ -553,4 +537,4 @@ Help! My component isn't re-rendering... 1. Make sure you grok how tracking works in general. Check out the [Understanding reactivity](understanding-reactivity.md) section. 1. Read the common pitfalls as described above. 1. [Configure](configuration.md#linting-options) MobX to warn you of unsound usage of mechanisms and check the console logs. -1. Use [trace](analyzing-reactivity.md) to verify that you are subscribing to the right things or check what MobX is doing in general using [spy](analyzing-reactivity.md#spy) / the [mobx-log](https://github.com/kubk/mobx-log) package. +1. Use [spy](analyzing-reactivity.md#spy), [`getDependencyTree`](api.md#getdependencytree), or the [mobx-log](https://github.com/kubk/mobx-log) package to inspect what MobX is doing. diff --git a/docs/reactions.md b/docs/reactions.md index 994ec57c5c..c5e2f53a8f 100644 --- a/docs/reactions.md +++ b/docs/reactions.md @@ -358,19 +358,23 @@ class OrderLine { constructor() { makeAutoObservable(this) - this.disposableStack.use(autorun(() => { - doSomethingWith(this.price * this.amount) - })) + this.disposableStack.use( + autorun(() => { + doSomethingWith(this.price * this.amount) + }) + ) - this.disposableStack.use(autorun(() => { - doSomethingWith(this.price * this.amount * vat.value) - })) + this.disposableStack.use( + autorun(() => { + doSomethingWith(this.price * this.amount * vat.value) + }) + ) this.someDisposableResource = this.disposableStack.use(createSomeDisposableResource()) } [Symbol.dispose]() { - this.disposableStack[Symbol.dispose](); + this.disposableStack[Symbol.dispose]() } } ``` @@ -427,6 +431,6 @@ Set a custom scheduler to determine how re-running the autorun function should b ### `equals`: (reaction) -Set to `comparer.default` by default. If specified, this comparer function is used to compare the previous and next values produced by the _data_ function. The _effect_ function is only invoked if this function returns false. +Set to `compareDefault` by default. If specified, this comparison function is used to compare the previous and next values produced by the _data_ function. The _effect_ function is only invoked if this function returns false. Check out the [Built-in comparers](computeds.md#built-in-comparers) section. diff --git a/docs/the-gist-of-mobx.md b/docs/the-gist-of-mobx.md index aba00ddc0c..ba908c93c4 100644 --- a/docs/the-gist-of-mobx.md +++ b/docs/the-gist-of-mobx.md @@ -136,7 +136,7 @@ as making a network request when submitting a form, should be triggered explicit #### 3.3. Reactive React components -If you are using React, you can make your components reactive by wrapping them with the [`observer`](react-integration.md) function from the bindings package you've [chosen during installation](installation.md#installation). In this example, we're going to use the more lightweight `mobx-react-lite` package. +If you are using React, you can make your function components reactive by wrapping them with the [`observer`](react-integration.md) function from the `mobx-react-lite` package. ```javascript import * as React from "react" @@ -197,7 +197,6 @@ To learn more about how MobX determines which observables need to be reacted to, MobX uses a uni-directional data flow where _actions_ change the _state_, which in turn updates all affected _views_. - ![Action, State, View](assets/action-state-view.png) 1. All _derivations_ are updated **automatically** and **atomically** when the _state_ changes. As a result, it is never possible to observe intermediate values. diff --git a/docs/understanding-reactivity.md b/docs/understanding-reactivity.md index 4bdb0ed036..2a2d3b5dc9 100644 --- a/docs/understanding-reactivity.md +++ b/docs/understanding-reactivity.md @@ -12,7 +12,7 @@ MobX usually reacts to exactly the things you expect it to, which means that in However, at some point you will encounter a case where it does not do what you expected. At that point it is invaluable to understand how MobX determines what to react to. -> MobX reacts to any _existing_ **observable** _property_ that is read during the execution of a tracked function. +> MobX reacts to any **observable** property that is read during the execution of a tracked function. - _"reading"_ is dereferencing an object's property, which can be done through "dotting into" it (eg. `user.name`) or using the bracket notation (eg. `user['name']`, `todos[3]`) or destructuring (eg. `const {name} = user`). - _"tracked functions"_ are the expression of `computed`, the _rendering_ of an `observer` React function component, the `render()` method of an `observer` based React class component, and the functions that are passed as the first param to `autorun`, `reaction` and `when`. @@ -68,32 +68,17 @@ message.updateTitle("Bar") This will react as expected. The `.title` property was dereferenced by the autorun, and changed afterwards, so this change is detected. -You can verify what MobX will track by calling [`trace()`](analyzing-reactivity.md) inside the tracked function. In the case of the above function it outputs the following: +You can inspect what MobX tracks by calling [`getDependencyTree`](api.md#getdependencytree) with the disposer returned by `autorun`: ```javascript -import { trace } from "mobx" +import { getDependencyTree } from "mobx" const disposer = autorun(() => { console.log(message.title) - trace() }) -// Outputs: -// [mobx.trace] 'Autorun@2' tracing enabled -message.updateTitle("Hello") // Outputs: -// [mobx.trace] 'Autorun@2' is invalidated due to a change in: 'Message@1.title' -Hello -``` - -It is also possible to get the internal dependency (or observer) tree by using `getDependencyTree`: - -```javascript -import { getDependencyTree } from "mobx" - -// Prints the dependency tree of the reaction coupled to the disposer. console.log(getDependencyTree(disposer)) -// Outputs: // { name: 'Autorun@2', dependencies: [ { name: 'Message@1.title' } ] } ``` @@ -275,8 +260,7 @@ runInAction(() => { This **will** react. Observable maps support observing entries that may not exist. Note that this will initially print `undefined`. You can check for the existence of an entry first by using `twitterUrls.has("Sara")`. -So in an environment without Proxy support for dynamically keyed collections always use observable maps. If you do have Proxy support you can use observable maps as well, -but you also have the option to use plain objects. +Observable maps are a good fit for dynamically keyed collections, although plain observable objects can track added properties as well. #### MobX does not track asynchronously accessed data @@ -324,64 +308,9 @@ runInAction(() => { }) ``` -This **will** react if you run React in an environment that supports Proxy. +This **will** react for objects created with `observable` or `observable.object`. Note that this is only done for objects created with `observable` or `observable.object`. New properties on class instances will not be made observable automatically. -_Environments without Proxy support_ - -This will **not** react. MobX can only track observable properties, and 'age' has not been defined as observable property above. - -However, it is possible to use the `get` and `set` methods as exposed by MobX to work around this: - -```javascript -import { get, set } from "mobx" - -autorun(() => { - console.log(get(message.author, "age")) -}) -set(message.author, "age", 10) -``` - -#### [Without Proxy support] Incorrect: using not yet existing observable object properties - -```javascript -autorun(() => { - console.log(message.author.age) -}) -extendObservable(message.author, { - age: 10 -}) -``` - -This will **not** react. MobX will not react to observable properties that did not exist when tracking started. -If the two statements are swapped, or if any other observable causes the `autorun` to re-run, the `autorun` will start tracking the `age` as well. - -#### [Without Proxy support] Correct: using MobX utilities to read / write to objects - -If you are in an environment without proxy support and still want to use observable -objects as a dynamic collection, you can handle them using the MobX `get` and `set` -API. - -The following will react as well: - -```javascript -import { get, set, observable } from "mobx" - -const twitterUrls = observable.object({ - Joe: "twitter.com/joey" -}) - -autorun(() => { - console.log(get(twitterUrls, "Sara")) // `get` can track not yet existing properties. -}) - -runInAction(() => { - set(twitterUrls, { Sara: "twitter.com/horsejs" }) -}) -``` - -Check out the [Collection utilities API](api.md#collection-utilities-) for more details. - #### TL;DR -> MobX reacts to any _existing_ **observable** _property_ that is read during the execution of a tracked function. +> MobX reacts to any **observable** property that is read during the execution of a tracked function. diff --git a/package-lock.json b/package-lock.json index 812d355475..4b8038e585 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,21 +13,32 @@ "packages/mobx-undecorate" ], "devDependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.8.3", + "@babel/preset-env": "^7.16.4", "@changesets/changelog-github": "^0.2.7", "@changesets/cli": "^2.11.0", + "@rollup/plugin-babel": "^5.3.0", + "@rollup/plugin-commonjs": "^21.0.1", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "13.0.6", + "@rollup/plugin-replace": "^2.4.2", + "@rollup/plugin-terser": "^1.0.0", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^16.1.0", "@types/jest": "^30.0.0", "@types/node": "18", - "@types/prop-types": "^15.5.2", "@types/react": "^18.0.0", "@types/react-dom": "^18.0.0", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", + "babel-plugin-annotate-pure-calls": "^0.4.0", + "babel-plugin-dev-expression": "^0.2.3", "coveralls": "^3.1.0", "eslint": "^6.8.0", "execa": "^4.1.0", + "expose-gc": "^1.0.0", "fs-extra": "9.0.1", "husky": "^4.2.5", "import-size": "^1.0.2", @@ -37,18 +48,18 @@ "jest-mock-console": "^1.0.1", "lint-staged": "^10.1.7", "lodash": "^4.17.4", - "minimist": "^1.2.5", "mkdirp": "1.0.4", "prettier": "^2.8.4", "pretty-quick": "3.1.0", - "prop-types": "15.6.2", "react": "19.0.0", "react-dom": "19.0.0", "react-test-renderer": "19.0.0", + "rollup": "^2.60.2", + "rollup-plugin-sourcemaps": "^0.6.3", + "rollup-plugin-typescript2": "^0.27.3", "serializr": "^2.0.3", "tape": "^5.0.1", "ts-jest": "^29.4.6", - "tsdx": "^0.14.1", "typescript": "^5.9.2" } }, @@ -108,7 +119,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -488,7 +498,6 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.24.7", @@ -504,7 +513,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^1.9.0" @@ -517,7 +525,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", @@ -532,7 +539,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "1.1.3" @@ -542,14 +548,12 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, "license": "MIT" }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.8.0" @@ -559,7 +563,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -569,7 +572,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^3.0.0" @@ -1876,7 +1878,6 @@ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz", "integrity": "sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==", "license": "MIT", - "peer": true, "dependencies": { "@babel/compat-data": "^7.24.7", "@babel/helper-compilation-targets": "^7.24.7", @@ -2939,7 +2940,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -2963,7 +2963,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" } @@ -3081,7 +3080,6 @@ "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, "license": "MIT", "dependencies": { "ajv": "^6.12.4", @@ -3102,7 +3100,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" @@ -3112,7 +3109,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, "license": "Apache-2.0", "engines": { "node": ">=4" @@ -3122,7 +3118,6 @@ "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "acorn": "^7.4.0", @@ -3137,7 +3132,6 @@ "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, "license": "MIT", "dependencies": { "type-fest": "^0.20.2" @@ -3153,7 +3147,6 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 4" @@ -3163,7 +3156,6 @@ "version": "3.14.2", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", - "dev": true, "license": "MIT", "dependencies": { "argparse": "^1.0.7", @@ -3177,7 +3169,6 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" @@ -3285,7 +3276,6 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "deprecated": "Use @eslint/config-array instead", - "dev": true, "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^1.2.0", @@ -3315,7 +3305,6 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "deprecated": "Use @eslint/object-schema instead", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/@humanwhocodes/retry": { @@ -3936,7 +3925,6 @@ "integrity": "sha512-TLKY33fSLVd/lKB2YI1pH69ijyUblO/BQvCj566YvnwuzoTNr648iE0j22vRvVNk2HsPwByPxATg3MleS3gf5A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.27.4", "@jest/types": "30.3.0", @@ -4005,6 +3993,17 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", @@ -4329,6 +4328,99 @@ "rollup": "^1.20.0 || ^2.0.0" } }, + "node_modules/@rollup/plugin-terser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-1.0.0.tgz", + "integrity": "sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "serialize-javascript": "^7.0.3", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-terser/node_modules/acorn": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", + "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@rollup/plugin-terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-terser/node_modules/serialize-javascript": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.7.tgz", + "integrity": "sha512-YAy8Od6KV+uuwUuU50np8fGB/Aues6Y0nAhA9y/hId74PlKUcme4pXcBD46NWKr1Q4osN/iseZ17YqO1XfmI8g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@rollup/plugin-terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@rollup/plugin-terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/@rollup/plugin-terser/node_modules/terser": { + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.49.0.tgz", + "integrity": "sha512-SNiDnXyHSrxVcIOtVbULzcTmniUiwcV7Nwdyj1twVubeTmbjoa8p69KKDpfkdoOavuM4/GRm1+ykI8qqnavHoA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@rollup/pluginutils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", @@ -4387,7 +4479,6 @@ "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -4499,7 +4590,6 @@ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -4539,13 +4629,6 @@ "@babel/types": "^7.20.7" } }, - "node_modules/@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", @@ -4656,13 +4739,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -4676,7 +4752,6 @@ "integrity": "sha512-eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~5.26.4" } @@ -4701,7 +4776,6 @@ "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -4713,7 +4787,6 @@ "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/react": "*" } @@ -4824,103 +4897,12 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", - "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - } - }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/parser": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -5590,9 +5572,7 @@ "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5604,7 +5584,6 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -5638,9 +5617,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -5683,7 +5660,6 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -5709,7 +5685,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -5719,7 +5694,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -5823,27 +5797,6 @@ "node": ">=8" } }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -5883,19 +5836,20 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", + "es-abstract": "^1.23.5", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" @@ -5904,135 +5858,24 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.toreversed": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", - "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" + "safer-buffer": "~2.1.0" } }, "node_modules/asn1.js": { @@ -6114,13 +5957,6 @@ "node": ">=4" } }, - "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true, - "license": "MIT" - }, "node_modules/ast-types/node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", @@ -6132,7 +5968,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -6159,13 +5994,6 @@ "dev": true, "license": "MIT" }, - "node_modules/asyncro": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/asyncro/-/asyncro-3.0.0.tgz", - "integrity": "sha512-nEnWYfrBmA3taTiuiOoZYmgJ/CNrSoQLeLs29SeLcPu60yaw/mHDBHV0iOZ051fTvsTHxpCY+gXibqT9wbQYfg==", - "dev": true, - "license": "MIT" - }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -6251,26 +6079,6 @@ "dev": true, "license": "MIT" }, - "node_modules/axe-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", - "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", - "dev": true, - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/axobject-query": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "dequal": "^2.0.3" - } - }, "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -6432,38 +6240,6 @@ "node": ">=0.10.0" } }, - "node_modules/babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "eslint": ">= 4.12.1" - } - }, - "node_modules/babel-eslint/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, "node_modules/babel-generator": { "version": "6.26.1", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", @@ -6570,7 +6346,6 @@ "integrity": "sha512-gRpauEU2KRrCox5Z296aeVHR4jQ98BCnu0IO332D/xpHNOsIH/bgSRk9k6GbKIbBw8vFeN6ctuu6tV8WOyVfYQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/transform": "30.3.0", "@types/babel__core": "^7.20.5", @@ -6860,13 +6635,6 @@ "dev": true, "license": "MIT" }, - "node_modules/babel-plugin-transform-rename-import": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-rename-import/-/babel-plugin-transform-rename-import-2.3.0.tgz", - "integrity": "sha512-dPgJoT57XC0PqSnLgl2FwNvxFrWlspatX2dkk7yjKQj5HHGw071vAcOf+hqW8ClqcBDMvEbm6mevn5yHAD8mlQ==", - "dev": true, - "license": "MIT" - }, "node_modules/babel-plugin-transform-simplify-comparison-operators": { "version": "6.9.4", "resolved": "https://registry.npmjs.org/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz", @@ -7399,7 +7167,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -7593,7 +7360,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -7675,7 +7441,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -7894,19 +7659,6 @@ "node": ">=8" } }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-truncate": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", @@ -8041,7 +7793,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -8054,7 +7805,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, "license": "MIT" }, "node_modules/color-string": { @@ -8186,13 +7936,6 @@ "dev": true, "license": "MIT" }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true, - "license": "MIT" - }, "node_modules/console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", @@ -8600,13 +8343,6 @@ "dev": true, "license": "MIT" }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true, - "license": "BSD-2-Clause" - }, "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -8803,7 +8539,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, "license": "MIT" }, "node_modules/deepmerge": { @@ -8816,19 +8551,6 @@ "node": ">=0.10.0" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -8938,16 +8660,6 @@ "node": ">=8" } }, - "node_modules/diff-sequences": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", - "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8.3" - } - }, "node_modules/diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -8984,7 +8696,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" @@ -9126,7 +8837,6 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, "license": "MIT" }, "node_modules/emojis-list": { @@ -9181,7 +8891,6 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dev": true, "license": "MIT", "dependencies": { "ansi-colors": "^4.1.1", @@ -9344,32 +9053,6 @@ "dev": true, "license": "MIT" }, - "node_modules/es-iterator-helpers": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", - "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", @@ -9399,16 +9082,6 @@ "node": ">= 0.4" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - } - }, "node_modules/es-to-primitive": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", @@ -9440,7 +9113,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -9456,7 +9128,6 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", "ajv": "^6.10.0", @@ -10348,395 +10019,86 @@ "node": ">= 8" } }, - "node_modules/eslint-config-prettier": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz", - "integrity": "sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==", - "dev": true, - "license": "MIT", + "node_modules/eslint-plugin-mobx": { + "resolved": "packages/eslint-plugin-mobx", + "link": true + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", "dependencies": { - "get-stdin": "^6.0.0" - }, - "bin": { - "eslint-config-prettier-check": "bin/cli.js" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, - "peerDependencies": { - "eslint": ">=3.14.1" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "node_modules/eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" + "license": "Apache-2.0", + "engines": { + "node": ">=4" } }, - "node_modules/eslint-module-utils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, + "license": "Apache-2.0", "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/eslint/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, "license": "MIT", - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": ">=6" } }, - "node_modules/eslint-plugin-flowtype": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz", - "integrity": "sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw==", + "node_modules/eslint/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "BSD-3-Clause", - "peer": true, + "license": "MIT", "dependencies": { - "lodash": "^4.17.15" + "color-convert": "^1.9.0" }, "engines": { "node": ">=4" - }, - "peerDependencies": { - "eslint": ">=5.0.0" } }, - "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", - "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.23.2", - "aria-query": "^5.3.0", - "array-includes": "^3.1.7", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "=4.7.0", - "axobject-query": "^3.2.1", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.15", - "hasown": "^2.0.0", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-plugin-mobx": { - "resolved": "packages/eslint-plugin-mobx", - "link": true - }, - "node_modules/eslint-plugin-prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", - "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "eslint": ">=5.0.0", - "prettier": ">=1.13.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.34.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.2.tgz", - "integrity": "sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", - "array.prototype.tosorted": "^1.1.3", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.19", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.8", - "object.fromentries": "^2.0.8", - "object.hasown": "^1.1.4", - "object.values": "^1.2.0", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-2.5.1.tgz", - "integrity": "sha512-Y2c4b55R+6ZzwtTppKwSmK/Kar8AdLiC2f9NADCuxbcTgPPg41Gyqa6b9GppgXSvCtkRw43ZE86CT5sejKC6/g==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=7" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/eslint-plugin-react/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/eslint/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", "dependencies": { @@ -10936,7 +10298,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" @@ -10949,7 +10310,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -10959,7 +10319,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" @@ -10972,7 +10331,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -10982,7 +10340,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -11303,16 +10660,8 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, "license": "MIT" }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", @@ -11334,14 +10683,12 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, "license": "MIT" }, "node_modules/fastparse": { @@ -11424,7 +10771,6 @@ "integrity": "sha512-N+uhF3mswIFeziHQjGScJ/yHXYt3DiLBeC+9vWW+WjUBiClMSOlV1YrXQi+7KM2aA3Rn4Bybgv+uXFQbfkzpvg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "loader-utils": "^1.0.2" } @@ -11829,7 +11175,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true, "license": "MIT" }, "node_modules/functions-have-names": { @@ -11917,16 +11262,6 @@ "node": ">= 0.4" } }, - "node_modules/get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -12005,7 +11340,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -12040,13 +11374,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globalyzer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", - "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", - "dev": true, - "license": "MIT" - }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -12068,13 +11395,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true, - "license": "MIT" - }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -12225,7 +11545,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -12501,13 +11820,6 @@ "node": ">=8.12.0" } }, - "node_modules/humanize-duration": { - "version": "3.32.1", - "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.32.1.tgz", - "integrity": "sha512-inh5wue5XdfObhu/IGEMiA1nUXigSGcaKNemcbLRKa7jXYGDZXr3LoT9pTIzq2hPEbld7w/qv9h+ikWGz8fL1g==", - "dev": true, - "license": "Unlicense" - }, "node_modules/husky": { "version": "4.3.8", "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz", @@ -12817,7 +12129,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -12834,7 +12145,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -12977,16 +12287,6 @@ "node": ">= 0.4" } }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -13143,19 +12443,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, "node_modules/is-core-module": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", @@ -13244,7 +12531,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -13283,7 +12569,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -13319,7 +12604,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -13328,16 +12612,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", @@ -13690,7 +12964,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, "license": "ISC" }, "node_modules/isobject": { @@ -13800,20 +13073,6 @@ "dev": true, "license": "MIT" }, - "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" - } - }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", @@ -13836,7 +13095,6 @@ "integrity": "sha512-AkXIIFcaazymvey2i/+F94XRnM6TsVLZDhBMLsd1Sf/W0wzsvvpjeyUrCZD6HGG4SDYPgDJDBKeiJTBb10WzMg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/core": "30.3.0", "@jest/types": "30.3.0", @@ -14392,16 +13650,6 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8.3" - } - }, "node_modules/jest-haste-map": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.3.0.tgz", @@ -15027,264 +14275,6 @@ "dev": true, "license": "MIT" }, - "node_modules/jest-watch-typeahead": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.5.0.tgz", - "integrity": "sha512-4r36w9vU8+rdg48hj0Z7TvcSqVP6Ao8dk04grlHQNgduyCB0SqrI0xWIl85ZhXrzYvxQ0N5H+rRLAejkQzEHeQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "jest-regex-util": "^25.2.1", - "jest-watcher": "^25.2.4", - "slash": "^3.0.0", - "string-length": "^3.1.0", - "strip-ansi": "^6.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/console": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", - "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "jest-message-util": "^25.5.0", - "jest-util": "^25.5.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", - "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^25.5.0", - "@jest/types": "^25.5.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { - "version": "15.0.19", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", - "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-watch-typeahead/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/jest-watch-typeahead/node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/jest-watch-typeahead/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", - "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz", - "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.5.0.tgz", - "integrity": "sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^25.5.0", - "@jest/types": "^25.5.0", - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "jest-util": "^25.5.0", - "string-length": "^3.1.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-watch-typeahead/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/stack-utils": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", - "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/string-length": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", - "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "astral-regex": "^1.0.0", - "strip-ansi": "^5.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/jest-watcher": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.3.0.tgz", @@ -15338,13 +14328,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jpjs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/jpjs/-/jpjs-1.2.1.tgz", - "integrity": "sha512-GxJWybWU4NV0RNKi6EIqk6IRPOTqd/h+U7sbtyuD7yUISUzV78LdHnq2xkevJsTlz/EImux4sWj+wfMiwKLkiw==", - "dev": true, - "license": "MIT" - }, "node_modules/js-base64": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", @@ -15593,7 +14576,6 @@ "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", @@ -15644,7 +14626,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, "license": "MIT" }, "node_modules/json-parse-better-errors": { @@ -15672,14 +14653,12 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, "license": "MIT" }, "node_modules/json-stringify-safe": { @@ -15740,27 +14719,10 @@ "node": ">=0.6.0" } }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, "license": "MIT", "dependencies": { "json-buffer": "3.0.1" @@ -15778,26 +14740,6 @@ "node": ">=0.10.0" } }, - "node_modules/language-subtag-registry": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", - "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", - "dev": true, - "license": "MIT", - "dependencies": { - "language-subtag-registry": "^0.3.20" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/lcov-parse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", @@ -16020,7 +14962,6 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, "license": "MIT" }, "node_modules/lodash.some": { @@ -16041,7 +14982,6 @@ "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true, "license": "MIT" }, "node_modules/lodash.uniq": { @@ -16143,23 +15083,6 @@ "loose-envify": "cli.js" } }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lower-case/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -16730,7 +15653,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, "license": "MIT" }, "node_modules/natural-compare-lite": { @@ -16753,28 +15675,10 @@ "dev": true, "license": "MIT" }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/no-case/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/node-dir": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", - "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", + "node_modules/node-dir": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", + "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", "license": "MIT", "dependencies": { "minimatch": "^3.0.2" @@ -17073,73 +15977,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.hasown": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", - "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -17152,24 +15989,6 @@ "node": ">=0.10.0" } }, - "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -17223,134 +16042,6 @@ "node": ">= 0.8.0" } }, - "node_modules/ora": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz", - "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.2.0", - "is-interactive": "^1.0.0", - "log-symbols": "^3.0.0", - "mute-stream": "0.0.8", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/ora/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ora/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/log-symbols/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/log-symbols/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/log-symbols/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -17547,7 +16238,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "license": "MIT", "dependencies": { "callsites": "^3.0.0" @@ -17627,24 +16317,6 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/pascal-case/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", @@ -18805,7 +17477,6 @@ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin-prettier.js" }, @@ -18816,19 +17487,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/pretty-format": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", @@ -18926,285 +17584,36 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.4.0" } }, - "node_modules/progress-estimator": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/progress-estimator/-/progress-estimator-0.2.2.tgz", - "integrity": "sha512-GF76Ac02MTJD6o2nMNtmtOFjwWCnHcvXyn5HOWPQnEMO8OTLw7LAvNmrwe8LmdsB+eZhwUu9fX/c9iQnBxWaFA==", + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.1", - "cli-spinners": "^1.3.1", - "humanize-duration": "^3.15.3", - "log-update": "^2.3.0" - } + "license": "ISC" }, - "node_modules/progress-estimator/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/progress-estimator/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/progress-estimator/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/progress-estimator/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/progress-estimator/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/progress-estimator/node_modules/cli-spinners": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", - "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/progress-estimator/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/progress-estimator/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/progress-estimator/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/progress-estimator/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/progress-estimator/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/progress-estimator/node_modules/log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/progress-estimator/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/progress-estimator/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/progress-estimator/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/progress-estimator/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/progress-estimator/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/progress-estimator/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/progress-estimator/node_modules/wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true, - "license": "MIT" - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true, - "license": "MIT" - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, "license": "MIT", "dependencies": { @@ -19261,7 +17670,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -19393,7 +17801,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -19404,7 +17811,6 @@ "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.25.0" }, @@ -19563,18 +17969,6 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -19881,7 +18275,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -20005,7 +18398,6 @@ "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, "license": "MIT", - "peer": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -20039,61 +18431,6 @@ } } }, - "node_modules/rollup-plugin-terser": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz", - "integrity": "sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w==", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.5.5", - "jest-worker": "^24.9.0", - "rollup-pluginutils": "^2.8.2", - "serialize-javascript": "^4.0.0", - "terser": "^4.6.2" - }, - "peerDependencies": { - "rollup": ">=0.66.0 <3" - } - }, - "node_modules/rollup-plugin-terser/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/rollup-plugin-terser/node_modules/jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "dev": true, - "license": "MIT", - "dependencies": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/rollup-plugin-terser/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/rollup-plugin-typescript2": { "version": "0.27.3", "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.3.tgz", @@ -20167,23 +18504,6 @@ "node": ">= 4.0.0" } }, - "node_modules/rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "estree-walker": "^0.6.1" - } - }, - "node_modules/rollup-pluginutils/node_modules/estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true, - "license": "MIT" - }, "node_modules/rrweb-cssom": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", @@ -20248,19 +18568,6 @@ "npm": ">=2.0.0" } }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/safe-array-concat": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", @@ -20570,24 +18877,6 @@ "node": ">=0.10.0" } }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/side-channel": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", @@ -20695,7 +18984,17 @@ "node": ">=8" } }, - "node_modules/snapdragon": { + "node_modules/smob": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.6.2.tgz", + "integrity": "sha512-RQsvleCbF8cVHEv+xuDGaA4pOizFqJ0GgjtMSRo6oP8pnN7WsigHgVGey6aILRBKv4W2YOMHLqbKdnB6hpB9fw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", @@ -21001,7 +19300,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/sshpk": { @@ -21181,7 +19479,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -21208,33 +19505,6 @@ "node": ">=8" } }, - "node_modules/string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", - "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/string.prototype.trim": { "version": "1.2.10", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", @@ -21313,7 +19583,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -21373,7 +19642,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -21386,7 +19654,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -21971,7 +20238,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, "license": "MIT" }, "node_modules/through": { @@ -22005,17 +20271,6 @@ "node": ">=0.6.0" } }, - "node_modules/tiny-glob": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", - "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "globalyzer": "0.1.0", - "globrex": "^0.1.2" - } - }, "node_modules/tiny-invariant": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", @@ -22147,767 +20402,154 @@ "node_modules/to-regex/node_modules/extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/to-regex/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tough-cookie": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", - "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tldts": "^6.1.32" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/tr46": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", - "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ts-jest": { - "version": "29.4.6", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.6.tgz", - "integrity": "sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bs-logger": "^0.2.6", - "fast-json-stable-stringify": "^2.1.0", - "handlebars": "^4.7.8", - "json5": "^2.2.3", - "lodash.memoize": "^4.1.2", - "make-error": "^1.3.6", - "semver": "^7.7.3", - "type-fest": "^4.41.0", - "yargs-parser": "^21.1.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/transform": "^29.0.0 || ^30.0.0", - "@jest/types": "^29.0.0 || ^30.0.0", - "babel-jest": "^29.0.0 || ^30.0.0", - "jest": "^29.0.0 || ^30.0.0", - "jest-util": "^29.0.0 || ^30.0.0", - "typescript": ">=4.3 <6" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/transform": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "jest-util": { - "optional": true - } - } - }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-jest/node_modules/type-fest": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", - "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/tsdx": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/tsdx/-/tsdx-0.14.1.tgz", - "integrity": "sha512-keHmFdCL2kx5nYFlBdbE3639HQ2v9iGedAFAajobrUTH2wfX0nLPdDhbHv+GHLQZqf0c5ur1XteE8ek/+Eyj5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.4.4", - "@babel/helper-module-imports": "^7.0.0", - "@babel/parser": "^7.11.5", - "@babel/plugin-proposal-class-properties": "^7.4.4", - "@babel/preset-env": "^7.11.0", - "@babel/traverse": "^7.11.5", - "@rollup/plugin-babel": "^5.1.0", - "@rollup/plugin-commonjs": "^11.0.0", - "@rollup/plugin-json": "^4.0.0", - "@rollup/plugin-node-resolve": "^9.0.0", - "@rollup/plugin-replace": "^2.2.1", - "@types/jest": "^25.2.1", - "@typescript-eslint/eslint-plugin": "^2.12.0", - "@typescript-eslint/parser": "^2.12.0", - "ansi-escapes": "^4.2.1", - "asyncro": "^3.0.0", - "babel-eslint": "^10.0.3", - "babel-plugin-annotate-pure-calls": "^0.4.0", - "babel-plugin-dev-expression": "^0.2.1", - "babel-plugin-macros": "^2.6.1", - "babel-plugin-polyfill-regenerator": "^0.0.4", - "babel-plugin-transform-rename-import": "^2.3.0", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "enquirer": "^2.3.4", - "eslint": "^6.1.0", - "eslint-config-prettier": "^6.0.0", - "eslint-config-react-app": "^5.2.1", - "eslint-plugin-flowtype": "^3.13.0", - "eslint-plugin-import": "^2.18.2", - "eslint-plugin-jsx-a11y": "^6.2.3", - "eslint-plugin-prettier": "^3.1.0", - "eslint-plugin-react": "^7.14.3", - "eslint-plugin-react-hooks": "^2.2.0", - "execa": "^4.0.3", - "fs-extra": "^9.0.0", - "jest": "^25.3.0", - "jest-watch-typeahead": "^0.5.0", - "jpjs": "^1.2.1", - "lodash.merge": "^4.6.2", - "ora": "^4.0.3", - "pascal-case": "^3.1.1", - "prettier": "^1.19.1", - "progress-estimator": "^0.2.2", - "regenerator-runtime": "^0.13.7", - "rollup": "^1.32.1", - "rollup-plugin-sourcemaps": "^0.6.2", - "rollup-plugin-terser": "^5.1.2", - "rollup-plugin-typescript2": "^0.27.3", - "sade": "^1.4.2", - "semver": "^7.1.1", - "shelljs": "^0.8.3", - "tiny-glob": "^0.2.6", - "ts-jest": "^25.3.1", - "tslib": "^1.9.3", - "typescript": "^3.7.3" - }, - "bin": { - "tsdx": "dist/index.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tsdx/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.0.3.tgz", - "integrity": "sha512-dULDd/APiP4JowYDAMosecKOi/1v+UId99qhBGiO3myM29KtAVKS/R3x3OJJNBR0FeYB1BcYb2dCwkhqvxWXXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/traverse": "^7.11.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/tsdx/node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/tsdx/node_modules/@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/tsdx/node_modules/@jest/types/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tsdx/node_modules/@rollup/plugin-commonjs": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz", - "integrity": "sha512-Ycr12N3ZPN96Fw2STurD21jMqzKwL9QuFhms3SD7KKRK7oaXUsBU9Zt0jL/rOPHiPYisI21/rXGO3jr9BnLHUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^3.0.8", - "commondir": "^1.0.1", - "estree-walker": "^1.0.1", - "glob": "^7.1.2", - "is-reference": "^1.1.2", - "magic-string": "^0.25.2", - "resolve": "^1.11.0" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/tsdx/node_modules/@rollup/plugin-node-resolve": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz", - "integrity": "sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.17.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/tsdx/node_modules/@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/tsdx/node_modules/@types/jest": { - "version": "25.2.3", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-25.2.3.tgz", - "integrity": "sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-diff": "^25.2.1", - "pretty-format": "^25.2.1" - } - }, - "node_modules/tsdx/node_modules/@types/yargs": { - "version": "15.0.19", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", - "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/tsdx/node_modules/@typescript-eslint/eslint-plugin": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz", - "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@typescript-eslint/experimental-utils": "2.34.0", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "tsutils": "^3.17.1" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^2.0.0", - "eslint": "^5.0.0 || ^6.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/tsdx/node_modules/@typescript-eslint/parser": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz", - "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.34.0", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/tsdx/node_modules/@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/tsdx/node_modules/babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } - }, - "node_modules/tsdx/node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.0.4.tgz", - "integrity": "sha512-+/uCzO9JTYVZVGCpZpVAQkgPGt2zkR0VYiZvJ4aVoCe4ccgpKvNQqcjzAgQzSsjK64Jhc5hvrCR3l0087BevkA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.0.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/tsdx/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tsdx/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tsdx/node_modules/eslint-config-react-app": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz", - "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "confusing-browser-globals": "^1.0.9" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "2.x", - "@typescript-eslint/parser": "2.x", - "babel-eslint": "10.x", - "eslint": "6.x", - "eslint-plugin-flowtype": "3.x || 4.x", - "eslint-plugin-import": "2.x", - "eslint-plugin-jsx-a11y": "6.x", - "eslint-plugin-react": "7.x", - "eslint-plugin-react-hooks": "1.x || 2.x" - } - }, - "node_modules/tsdx/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/tsdx/node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tsdx/node_modules/jest-diff": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", - "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/tsdx/node_modules/jest-diff/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tsdx/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "license": "MIT", "dependencies": { - "minimist": "^1.2.6" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/tsdx/node_modules/prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "dev": true, + "node_modules/to-regex/node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/tsdx/node_modules/pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "license": "MIT", "dependencies": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" + "is-plain-object": "^2.0.4" }, "engines": { - "node": ">= 8.3" + "node": ">=0.10.0" } }, - "node_modules/tsdx/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/tsdx/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tsdx/node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "node_modules/tough-cookie": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", + "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^6.1.32" }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "engines": { + "node": ">=16" } }, - "node_modules/tsdx/node_modules/rollup": { - "version": "1.32.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz", - "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==", + "node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@types/estree": "*", - "@types/node": "*", - "acorn": "^7.1.0" + "punycode": "^2.3.1" }, - "bin": { - "rollup": "dist/bin/rollup" + "engines": { + "node": ">=18" } }, - "node_modules/tsdx/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/tsdx/node_modules/ts-jest": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-25.5.1.tgz", - "integrity": "sha512-kHEUlZMK8fn8vkxDjwbHlxXRB9dHYpyzqKIGDNxbzs+Rz+ssNDSDNusEK8Fk/sDd4xE6iKoQLfFkFVaskmTJyw==", + "node_modules/ts-jest": { + "version": "29.4.6", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.6.tgz", + "integrity": "sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==", "dev": true, "license": "MIT", "dependencies": { - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "micromatch": "4.x", - "mkdirp": "0.x", - "semver": "6.x", - "yargs-parser": "18.x" + "bs-logger": "^0.2.6", + "fast-json-stable-stringify": "^2.1.0", + "handlebars": "^4.7.8", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.7.3", + "type-fest": "^4.41.0", + "yargs-parser": "^21.1.1" }, "bin": { "ts-jest": "cli.js" }, "engines": { - "node": ">= 8" + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" }, "peerDependencies": { - "jest": ">=25 <26", - "typescript": ">=3.4 <4.0" + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jest-util": { + "optional": true + } } }, - "node_modules/tsdx/node_modules/ts-jest/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/ts-jest/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" - } - }, - "node_modules/tsdx/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/tsdx/node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "node_modules/ts-jest/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", "dev": true, - "license": "MIT", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=6" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/tslib": { @@ -23087,7 +20729,6 @@ "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -23377,7 +21018,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" @@ -23447,15 +21087,6 @@ "node": ">=0.10.0" } }, - "node_modules/use-sync-external-store": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", - "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, "node_modules/util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -23495,7 +21126,6 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", - "dev": true, "license": "MIT" }, "node_modules/v8-to-istanbul": { @@ -23911,16 +21541,6 @@ "node": ">=0.10.0" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -24394,7 +22014,6 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -24641,17 +22260,8 @@ "version": "0.0.14", "license": "MIT", "devDependencies": { - "@babel/core": "^7.16.0", - "@babel/preset-env": "^7.16.4", - "@rollup/plugin-babel": "^5.3.0", - "@rollup/plugin-commonjs": "^21.0.1", - "@rollup/plugin-node-resolve": "13.0.6", - "@typescript-eslint/eslint-plugin": "^5.0.0", - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^7.0.0", "eslint-7": "npm:eslint@^7.0.0", - "eslint-9": "npm:eslint@^9.0.0", - "rollup": "^2.60.2" + "eslint-9": "npm:eslint@^9.0.0" }, "funding": { "type": "opencollective", @@ -24665,8 +22275,8 @@ "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/highlight": "^7.10.4" } @@ -24675,8 +22285,8 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "sprintf-js": "~1.0.2" } @@ -24685,8 +22295,8 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -24701,8 +22311,8 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.3", @@ -24759,8 +22369,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -24775,8 +22385,8 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=4" } @@ -24785,8 +22395,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=10" } @@ -24795,8 +22405,8 @@ "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", @@ -24810,8 +22420,8 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=4" } @@ -24820,8 +22430,8 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "flat-cache": "^3.0.4" }, @@ -24833,8 +22443,8 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -24848,15 +22458,15 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "packages/eslint-plugin-mobx/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -24871,8 +22481,8 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 4" } @@ -24881,8 +22491,8 @@ "version": "3.14.2", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -24895,15 +22505,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "packages/eslint-plugin-mobx/node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -24916,8 +22526,8 @@ "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -24934,8 +22544,8 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -24944,8 +22554,8 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8.0" } @@ -24954,8 +22564,8 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" }, @@ -24968,8 +22578,8 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, "license": "ISC", + "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -24984,8 +22594,8 @@ "version": "7.7.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -24997,8 +22607,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -25010,8 +22620,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -25020,8 +22630,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -25038,8 +22648,8 @@ "version": "6.8.2", "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", - "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -25055,8 +22665,8 @@ "version": "8.16.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", @@ -25072,8 +22682,8 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "prelude-ls": "^1.2.1" }, @@ -25085,8 +22695,8 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "license": "(MIT OR CC0-1.0)", + "peer": true, "engines": { "node": ">=10" }, @@ -25098,8 +22708,8 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "license": "ISC", + "peer": true, "dependencies": { "isexe": "^2.0.0" }, @@ -25111,16 +22721,9 @@ } }, "packages/mobx": { - "version": "6.16.0", + "version": "6.16.1", "license": "MIT", "devDependencies": { - "@babel/core": "^7.9.0", - "@babel/plugin-proposal-class-properties": "^7.8.3", - "@babel/plugin-proposal-decorators": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.9.0", - "@babel/preset-env": "^7.9.5", - "@babel/preset-typescript": "^7.9.0", - "@babel/runtime": "^7.9.2", "conditional-type-checks": "^1.0.5" }, "funding": { @@ -25132,10 +22735,9 @@ "version": "9.2.2", "license": "MIT", "dependencies": { - "mobx-react-lite": "^4.1.1" + "mobx-react-lite": "^5.0.0" }, "devDependencies": { - "expose-gc": "^1.0.0", "mobx": "^6.15.0", "mobx-react-lite": "^4.1.1" }, @@ -25144,26 +22746,14 @@ "url": "https://opencollective.com/mobx" }, "peerDependencies": { - "mobx": "^6.9.0", - "react": "^16.8.0 || ^17 || ^18 || ^19" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } + "mobx": "^7.0.0", + "react": "^18 || ^19" } }, "packages/mobx-react-lite": { "version": "4.1.1", "license": "MIT", - "dependencies": { - "use-sync-external-store": "^1.4.0" - }, "devDependencies": { - "expose-gc": "^1.0.0", "mobx": "^6.15.0" }, "funding": { @@ -25171,16 +22761,8 @@ "url": "https://opencollective.com/mobx" }, "peerDependencies": { - "mobx": "^6.9.0", - "react": "^16.8.0 || ^17 || ^18 || ^19" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } + "mobx": "^7.0.0", + "react": "^18 || ^19" } }, "packages/mobx-undecorate": { diff --git a/package.json b/package.json index 7cc8f493d9..86e7dfa978 100644 --- a/package.json +++ b/package.json @@ -21,15 +21,15 @@ "build": "npm run build --workspaces --if-present", "build:check": "npm run build:check --workspaces --if-present", "build:test": "npm run build:test --workspaces --if-present", + "check-size": "node scripts/size/index.js", "test": "jest", "coverage": "jest --coverage", "lint": "eslint packages/*/src/**/* --ext .js,.ts,.tsx", "prettier": "prettier --write **/*.{js,ts,md}", "release": "npm run prepublishOnly --workspaces --if-present && changeset publish", - "test:size": "npm run test:size --workspaces --if-present", "mobx": "npm -w mobx run", - "mobx-react": "npm -w mobx-react run", "mobx-react-lite": "npm -w mobx-react-lite run", + "mobx-react": "npm -w mobx-react run", "mobx-undecorate": "npm -w mobx-undecorate run", "eslint-plugin-mobx": "npm -w eslint-plugin-mobx run", "docs:build": "npm --prefix website run build", @@ -39,21 +39,32 @@ "dedup": "npm dedupe" }, "devDependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.8.3", + "@babel/preset-env": "^7.16.4", "@changesets/changelog-github": "^0.2.7", "@changesets/cli": "^2.11.0", + "@rollup/plugin-babel": "^5.3.0", + "@rollup/plugin-commonjs": "^21.0.1", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "13.0.6", + "@rollup/plugin-replace": "^2.4.2", + "@rollup/plugin-terser": "^1.0.0", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^16.1.0", "@types/jest": "^30.0.0", "@types/node": "18", - "@types/prop-types": "^15.5.2", "@types/react": "^18.0.0", "@types/react-dom": "^18.0.0", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", + "babel-plugin-annotate-pure-calls": "^0.4.0", + "babel-plugin-dev-expression": "^0.2.3", "coveralls": "^3.1.0", "eslint": "^6.8.0", "execa": "^4.1.0", + "expose-gc": "^1.0.0", "fs-extra": "9.0.1", "husky": "^4.2.5", "import-size": "^1.0.2", @@ -63,18 +74,18 @@ "jest-mock-console": "^1.0.1", "lint-staged": "^10.1.7", "lodash": "^4.17.4", - "minimist": "^1.2.5", "mkdirp": "1.0.4", "prettier": "^2.8.4", "pretty-quick": "3.1.0", - "prop-types": "15.6.2", "react": "19.0.0", "react-dom": "19.0.0", "react-test-renderer": "19.0.0", + "rollup": "^2.60.2", + "rollup-plugin-sourcemaps": "^0.6.3", + "rollup-plugin-typescript2": "^0.27.3", "serializr": "^2.0.3", "tape": "^5.0.1", "ts-jest": "^29.4.6", - "tsdx": "^0.14.1", "typescript": "^5.9.2" }, "husky": { diff --git a/packages/eslint-plugin-mobx/package.json b/packages/eslint-plugin-mobx/package.json index c1c662eebc..8c075ce50c 100644 --- a/packages/eslint-plugin-mobx/package.json +++ b/packages/eslint-plugin-mobx/package.json @@ -28,17 +28,8 @@ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0" }, "devDependencies": { - "@babel/core": "^7.16.0", - "@babel/preset-env": "^7.16.4", - "@rollup/plugin-babel": "^5.3.0", - "@rollup/plugin-commonjs": "^21.0.1", - "@rollup/plugin-node-resolve": "13.0.6", - "@typescript-eslint/eslint-plugin": "^5.0.0", - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^7.0.0", "eslint-7": "npm:eslint@^7.0.0", - "eslint-9": "npm:eslint@^9.0.0", - "rollup": "^2.60.2" + "eslint-9": "npm:eslint@^9.0.0" }, "keywords": [ "eslint", diff --git a/packages/mobx-react-lite/README.md b/packages/mobx-react-lite/README.md index 30ad4b190f..209516a8b5 100644 --- a/packages/mobx-react-lite/README.md +++ b/packages/mobx-react-lite/README.md @@ -6,18 +6,18 @@ [![Discuss on Github](https://img.shields.io/badge/discuss%20on-GitHub-orange)](https://github.com/mobxjs/mobx/discussions) [![View changelog](https://img.shields.io/badge/changelogs.xyz-Explore%20Changelog-brightgreen)](https://changelogs.xyz/mobx-react-lite) -This is a lighter version of [mobx-react](https://github.com/mobxjs/mobx-react) which supports React **functional components only** and as such makes the library slightly faster and smaller (_only 1.5kB gzipped_). Note however that it is possible to use `` inside the render of class components. -Unlike `mobx-react`, it doesn't `Provider`/`inject`, as `useContext` can be used instead. +This package supports React **function components only**. Use [mobx-react](https://github.com/mobxjs/mobx/tree/main/packages/mobx-react) if you also need class component support. It is still possible to use `` inside the render of class components. ## Compatibility table (major versions) | mobx | mobx-react-lite | Browser | | ---- | --------------- | ---------------------------------------------- | +| 7 | 5 | Modern browsers with native Proxy support | | 6 | 3 | Modern browsers (IE 11+ in compatibility mode) | | 5 | 2 | Modern browsers | | 4 | 2 | IE 11+, RN w/o Proxy support | -`mobx-react-lite` requires React 16.8 or higher. +`mobx-react-lite` version 5 requires React 18 or higher. ## User Guide 👉 https://mobx.js.org/react-integration.html @@ -38,7 +38,7 @@ Is a React component, which applies observer to an anonymous region in your comp Creates an observable object with the given properties, methods and computed values. -Note that computed values cannot directly depend on non-observable values, but only on observable values, so it might be needed to sync properties into the observable using `useEffect` (see the example below at `useAsObservableSource`). +Note that computed values cannot directly depend on non-observable values, but only on observable values, so it might be needed to sync properties into the observable using `useEffect`. `useLocalObservable` is a short-hand for: @@ -50,108 +50,9 @@ Call `enableStaticRendering(true)` when running in an SSR environment, in which --- -## Deprecated APIs +## Removed APIs in version 5 -### **`useObserver(fn: () => T, baseComponentName = "observed", options?: IUseObserverOptions): T`** (deprecated) - -_This API is deprecated in 3.\*. It is often used wrong (e.g. to select data rather than for rendering, and `` better decouples the rendering from the component updates_ - -```ts -interface IUseObserverOptions { - // optional custom hook that should make a component re-render (or not) upon changes - // Supported in 2.x only - useForceUpdate: () => () => void -} -``` - -It allows you to use an observer like behaviour, but still allowing you to optimize the component in any way you want (e.g. using memo with a custom areEqual, using forwardRef, etc.) and to declare exactly the part that is observed (the render phase). - -### **`useLocalStore(initializer: () => T, source?: S): T`** (deprecated) - -_This API is deprecated in 3.\*. Use `useLocalObservable` instead. They do roughly the same, but `useLocalObservable` accepts an set of annotations as second argument, rather than a `source` object. Using `source` is not recommended, see the deprecation message at `useAsObservableSource` for details_ - -Local observable state can be introduced by using the useLocalStore hook, that runs its initializer function once to create an observable store and keeps it around for a lifetime of a component. - -The annotations are similar to the annotations that are passed in to MobX's [`observable`](https://mobx.js.org/observable.html#available-annotations) API, and can be used to override the automatic member inference of specific fields. - -### **`useAsObservableSource(source: T): T`** (deprecated) - -The useAsObservableSource hook can be used to turn any set of values into an observable object that has a stable reference (the same object is returned every time from the hook). - -_This API is deprecated in 3.\* as it relies on observables to be updated during rendering which is an anti-pattern. Instead, use `useEffect` to synchronize non-observable values with values. Example:_ - -```javascript -// Before: -function Measurement({ unit }) { - const observableProps = useAsObservableSource({ unit }) - const state = useLocalStore(() => ({ - length: 0, - get lengthWithUnit() { - // lengthWithUnit can only depend on observables, hence the above conversion with `useAsObservableSource` - return observableProps.unit === "inch" - ? `${this.length / 2.54} inch` - : `${this.length} cm` - } - })) - - return

{state.lengthWithUnit}

-} - -// After: -function Measurement({ unit }) { - const state = useLocalObservable(() => ({ - unit, // the initial unit - length: 0, - get lengthWithUnit() { - // lengthWithUnit can only depend on observables, hence the above conversion with `useAsObservableSource` - return this.unit === "inch" ? `${this.length / 2.54} inch` : `${this.length} cm` - } - })) - - useEffect(() => { - // sync the unit from 'props' into the observable 'state' - state.unit = unit - }, [unit]) - - return

{state.lengthWithUnit}

-} -``` - -Note that, at your own risk, it is also possible to not use `useEffect`, but do `state.unit = unit` instead in the rendering. -This is closer to the old behavior, but React will warn correctly about this if this would affect the rendering of other components. - -## Observer batching (deprecated) - -_Note: configuring observer batching is only needed when using `mobx-react-lite` 2.0.* or 2.1.*. From 2.2 onward it will be configured automatically based on the availability of react-dom / react-native packages_ - -[Check out the elaborate explanation](https://github.com/mobxjs/mobx-react/pull/787#issuecomment-573599793). - -In short without observer batching the React doesn't guarantee the order component rendering in some cases. We highly recommend that you configure batching to avoid these random surprises. - -Import one of these before any React rendering is happening, typically `index.js/ts`. For Jest tests you can utilize [setupFilesAfterEnv](https://jestjs.io/docs/en/configuration#setupfilesafterenv-array). - -**React DOM:** - -> import 'mobx-react-lite/batchingForReactDom' - -**React Native:** - -> import 'mobx-react-lite/batchingForReactNative' - -### Opt-out - -To opt-out from batching in some specific cases, simply import the following to silence the warning. - -> import 'mobx-react-lite/batchingOptOut' - -### Custom batched updates - -Above imports are for a convenience to utilize standard versions of batching. If you for some reason have customized version of batched updates, you can do the following instead. - -```js -import { observerBatching } from "mobx-react-lite" -observerBatching(customBatchedUpdates) -``` +`useObserver`, `useLocalStore`, `useAsObservableSource`, `useStaticRendering`, batching imports, `observerBatching`, and `isObserverBatched` have been removed. Use `observer`, ``, `useLocalObservable`, and `enableStaticRendering`; React 18 renderers handle batching. ## Testing diff --git a/packages/mobx-react-lite/__tests__/ObserverComponent.test.tsx b/packages/mobx-react-lite/__tests__/ObserverComponent.test.tsx index b533ed756e..8f5a0446dc 100644 --- a/packages/mobx-react-lite/__tests__/ObserverComponent.test.tsx +++ b/packages/mobx-react-lite/__tests__/ObserverComponent.test.tsx @@ -1,12 +1,10 @@ import mockConsole from "jest-mock-console" import * as mobx from "mobx" import * as React from "react" -import { act, cleanup, render } from "@testing-library/react" +import { act, render } from "@testing-library/react" import { Observer } from "../src" -afterEach(cleanup) - describe("regions should rerender component", () => { const execute = () => { const data = mobx.observable.box("hi") @@ -43,13 +41,13 @@ it("renders null if no children/render prop is supplied a function", () => { restoreConsole() }) -it.skip("prop types checks for children/render usage", () => { +it("prop types checks for children/render usage", () => { const Comp = () => ( + // @ts-expect-error render and children are mutually exclusive children}>{() => children} ) const restoreConsole = mockConsole("error") render() - // tslint:disable-next-line:no-console expect(console.error).toHaveBeenCalledWith( expect.stringContaining("Do not use children and render in the same time") ) diff --git a/packages/mobx-react-lite/__tests__/__snapshots__/observer.test.tsx.snap b/packages/mobx-react-lite/__tests__/__snapshots__/observer.test.tsx.snap index aa7385fc12..802eb2588b 100644 --- a/packages/mobx-react-lite/__tests__/__snapshots__/observer.test.tsx.snap +++ b/packages/mobx-react-lite/__tests__/__snapshots__/observer.test.tsx.snap @@ -64,52 +64,4 @@ exports[`issue 12 run transaction 2`] = `
`; -exports[`issue 309 isObserverBatched is still defined and yields true by default 1`] = ` -[MockFunction] { - "calls": [ - [ - "[MobX] Deprecated", - ], - ], - "results": [ - { - "type": "return", - "value": undefined, - }, - ], -} -`; - -exports[`issue 309 isObserverBatched is still defined and yields true by default 2`] = ` -[MockFunction] { - "calls": [ - [ - "[MobX] Deprecated", - ], - ], - "results": [ - { - "type": "return", - "value": undefined, - }, - ], -} -`; - -exports[`observer(cmp, { forwardRef: true }) + useImperativeHandle 1`] = ` -[MockFunction] { - "calls": [ - [ - "[mobx-react-lite] \`observer(fn, { forwardRef: true })\` is deprecated, use \`observer(React.forwardRef(fn))\`", - ], - ], - "results": [ - { - "type": "return", - "value": undefined, - }, - ], -} -`; - exports[`useImperativeHandle and forwardRef should work with useObserver 1`] = `[MockFunction]`; diff --git a/packages/mobx-react-lite/__tests__/__snapshots__/printDebugValue.test.ts.snap b/packages/mobx-react-lite/__tests__/__snapshots__/printDebugValue.test.ts.snap deleted file mode 100644 index 5cd288b65e..0000000000 --- a/packages/mobx-react-lite/__tests__/__snapshots__/printDebugValue.test.ts.snap +++ /dev/null @@ -1,26 +0,0 @@ -// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing - -exports[`printDebugValue 1`] = ` -{ - "dependencies": [ - { - "name": "ObservableObject@1.euro", - }, - { - "dependencies": [ - { - "name": "ObservableObject@1.euro", - }, - ], - "name": "ObservableObject@1.pound", - }, - ], - "name": "Autorun@2", -} -`; - -exports[`printDebugValue 2`] = ` -{ - "name": "Autorun@2", -} -`; diff --git a/packages/mobx-react-lite/__tests__/__snapshots__/useAsObservableSource.deprecated.test.tsx.snap b/packages/mobx-react-lite/__tests__/__snapshots__/useAsObservableSource.deprecated.test.tsx.snap deleted file mode 100644 index 88ba3f79b2..0000000000 --- a/packages/mobx-react-lite/__tests__/__snapshots__/useAsObservableSource.deprecated.test.tsx.snap +++ /dev/null @@ -1,24 +0,0 @@ -// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing - -exports[`base useAsObservableSource should work with 1`] = ` -[MockFunction] { - "calls": [ - [ - "[mobx-react-lite] 'useAsObservableSource' is deprecated, please store the values directly in an observable, for example by using 'useLocalObservable', and sync future updates using 'useEffect' when needed. See the README for examples.", - ], - [ - "[mobx-react-lite] 'useLocalStore' is deprecated, use 'useLocalObservable' instead.", - ], - ], - "results": [ - { - "type": "return", - "value": undefined, - }, - { - "type": "return", - "value": undefined, - }, - ], -} -`; diff --git a/packages/mobx-react-lite/__tests__/__snapshots__/useLocalStore.deprecated.test.tsx.snap b/packages/mobx-react-lite/__tests__/__snapshots__/useLocalStore.deprecated.test.tsx.snap deleted file mode 100644 index 5e9338971b..0000000000 --- a/packages/mobx-react-lite/__tests__/__snapshots__/useLocalStore.deprecated.test.tsx.snap +++ /dev/null @@ -1,33 +0,0 @@ -// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing - -exports[`base useLocalStore should work 1`] = ` -[MockFunction] { - "calls": [ - [ - "[mobx-react-lite] 'useLocalStore' is deprecated, use 'useLocalObservable' instead.", - ], - ], - "results": [ - { - "type": "return", - "value": undefined, - }, - ], -} -`; - -exports[`is used to keep observable within component body with props and useObserver 1`] = ` -[MockFunction] { - "calls": [ - [ - "[mobx-react-lite] 'useAsObservableSource' is deprecated, please store the values directly in an observable, for example by using 'useLocalObservable', and sync future updates using 'useEffect' when needed. See the README for examples.", - ], - ], - "results": [ - { - "type": "return", - "value": undefined, - }, - ], -} -`; diff --git a/packages/mobx-react-lite/__tests__/api.test.ts b/packages/mobx-react-lite/__tests__/api.test.tsx similarity index 71% rename from packages/mobx-react-lite/__tests__/api.test.ts rename to packages/mobx-react-lite/__tests__/api.test.tsx index a2f7cf57e6..d14bd4138e 100644 --- a/packages/mobx-react-lite/__tests__/api.test.ts +++ b/packages/mobx-react-lite/__tests__/api.test.tsx @@ -12,13 +12,7 @@ test("correct api should be exposed", function () { "observer", "Observer", "useLocalObservable", - "useLocalStore", - "useAsObservableSource", "clearTimers", - "useObserver", - "isObserverBatched", - "observerBatching", - "useStaticRendering", "_observerFinalizationRegistry" ].sort() ) diff --git a/packages/mobx-react-lite/__tests__/assertEnvironment.test.ts b/packages/mobx-react-lite/__tests__/assertEnvironment.test.ts deleted file mode 100644 index 33c414e844..0000000000 --- a/packages/mobx-react-lite/__tests__/assertEnvironment.test.ts +++ /dev/null @@ -1,21 +0,0 @@ -afterEach(() => { - jest.resetModules() - jest.resetAllMocks() -}) - -it("throws if react is not installed", () => { - jest.mock("react", () => ({})) - expect(() => require("../src/utils/assertEnvironment.ts")).toThrowErrorMatchingInlineSnapshot( - `"mobx-react-lite requires React with Hooks support"` - ) -}) - -it("throws if mobx is not installed", () => { - jest.mock("react", () => ({ useState: true })) - jest.mock("mobx", () => ({})) - expect(() => require("../src/utils/assertEnvironment.ts")).toThrowErrorMatchingInlineSnapshot( - `"mobx-react-lite@3 requires mobx at least version 6 to be available"` - ) -}) - -export default "Cannot use import statement outside a module" diff --git a/packages/mobx-react-lite/__tests__/assertEnvironment.test.tsx b/packages/mobx-react-lite/__tests__/assertEnvironment.test.tsx new file mode 100644 index 0000000000..64ebec3afa --- /dev/null +++ b/packages/mobx-react-lite/__tests__/assertEnvironment.test.tsx @@ -0,0 +1,31 @@ +afterEach(() => { + jest.resetModules() + jest.resetAllMocks() +}) + +it("throws if react is not installed", () => { + jest.mock("react", () => ({})) + expect(() => require("../src/utils/assertEnvironment.ts")).toThrowErrorMatchingInlineSnapshot( + `"mobx-react-lite requires React 18 or later"` + ) +}) + +it("throws if mobx is not installed", () => { + jest.mock("react", () => ({ useState: true, useSyncExternalStore: true })) + jest.mock("mobx", () => ({})) + expect(() => require("../src/utils/assertEnvironment.ts")).toThrowErrorMatchingInlineSnapshot( + `"mobx-react-lite requires mobx at least version 7 to be available"` + ) +}) + +it("throws if mobx is older than version 7", () => { + jest.mock("react", () => ({ useState: true, useSyncExternalStore: true })) + jest.mock("mobx", () => ({ + _getGlobalState: () => ({ version: 6 }) + })) + expect(() => require("../src/utils/assertEnvironment.ts")).toThrowErrorMatchingInlineSnapshot( + `"mobx-react-lite requires mobx at least version 7 to be available"` + ) +}) + +export default "Cannot use import statement outside a module" diff --git a/packages/mobx-react-lite/__tests__/enforceActions.test.tsx b/packages/mobx-react-lite/__tests__/enforceActions.test.tsx index c26c51b1f0..1758129dc3 100644 --- a/packages/mobx-react-lite/__tests__/enforceActions.test.tsx +++ b/packages/mobx-react-lite/__tests__/enforceActions.test.tsx @@ -1,18 +1,10 @@ import * as mobx from "mobx" -import { _resetGlobalState } from "mobx" import * as React from "react" import { useEffect } from "react" -import { observer, useLocalObservable } from "mobx-react" +import { observer, useLocalObservable } from "../src" import { render } from "@testing-library/react" let consoleWarnMock: jest.SpyInstance | undefined -afterEach(() => { - consoleWarnMock?.mockRestore() -}) - -afterEach(() => { - _resetGlobalState() -}) describe("enforcing actions", () => { it("'never' should work", () => { diff --git a/packages/mobx-react-lite/__tests__/observer.test.tsx b/packages/mobx-react-lite/__tests__/observer.test.tsx index 1083c94a04..f522c2e73a 100644 --- a/packages/mobx-react-lite/__tests__/observer.test.tsx +++ b/packages/mobx-react-lite/__tests__/observer.test.tsx @@ -1,18 +1,14 @@ -import { act, cleanup, fireEvent, render } from "@testing-library/react" +import { act, fireEvent, render } from "@testing-library/react" import mockConsole from "jest-mock-console" import * as mobx from "mobx" import React from "react" -import { observer, useObserver, isObserverBatched, enableStaticRendering } from "../src" +import { observer, enableStaticRendering } from "../src" +import { useObserver } from "../src/useObserver" const getDNode = (obj: any, prop?: string) => mobx.getObserverTree(obj, prop) -afterEach(cleanup) - let consoleWarnMock: jest.SpyInstance | undefined -afterEach(() => { - consoleWarnMock?.mockRestore() -}) function runTestSuite(mode: "observer" | "useObserver") { function obsComponent

( @@ -274,14 +270,6 @@ function runTestSuite(mode: "observer" | "useObserver") { }) }) - describe("issue 309", () => { - test("isObserverBatched is still defined and yields true by default", () => { - consoleWarnMock = jest.spyOn(console, "warn").mockImplementation(() => {}) - expect(isObserverBatched()).toBe(true) - expect(consoleWarnMock).toMatchSnapshot() - }) - }) - test("changing state in render should fail", () => { // This test is most likely obsolete ... exception is not thrown const data = mobx.observable.box(2) @@ -303,7 +291,6 @@ function runTestSuite(mode: "observer" | "useObserver") { data.set(3) }) expect(container).toMatchSnapshot() - mobx._resetGlobalState() }) describe("should render component even if setState called with exactly the same props", () => { @@ -489,43 +476,6 @@ function runTestSuite(mode: "observer" | "useObserver") { runTestSuite("observer") runTestSuite("useObserver") -test("observer(cmp, { forwardRef: true }) + useImperativeHandle", () => { - consoleWarnMock = jest.spyOn(console, "warn").mockImplementation(() => {}) - - interface IMethods { - focus(): void - } - - interface IProps { - value: string - ref: React.Ref - } - - const FancyInput = observer( - (props: IProps, ref: React.Ref) => { - const inputRef = React.useRef(null) - React.useImperativeHandle( - ref, - () => ({ - focus: () => { - inputRef.current!.focus() - } - }), - [] - ) - return - }, - { forwardRef: true } - ) - - const cr = React.createRef() - render() - expect(cr).toBeTruthy() - expect(cr.current).toBeTruthy() - expect(typeof cr.current!.focus).toBe("function") - expect(consoleWarnMock).toMatchSnapshot() -}) - test("observer(forwardRef(cmp)) + useImperativeHandle", () => { interface IMethods { focus(): void @@ -734,23 +684,7 @@ it("should have overload for props with children", () => { // this test has no `expect` calls as it verifies whether such component compiles or not }) -it("should have overload for empty options", () => { - // empty options are not really making sense now, but we shouldn't rely on `forwardRef` - // being specified in case other options are added in the future - - interface IProps { - value: string - } - const TestComponent = observer(({ value }) => { - return null - }, {}) - - render() - - // this test has no `expect` calls as it verifies whether such component compiles or not -}) - -it("should have overload for props with children when forwardRef", () => { +it("should have overload for props with children when using forwardRef", () => { interface IMethods { focus(): void } @@ -758,11 +692,10 @@ it("should have overload for props with children when forwardRef", () => { interface IProps { value: string } - const TestComponent = observer( - ({ value }, ref) => { + const TestComponent = observer( + React.forwardRef(({ value }, ref) => { return null - }, - { forwardRef: true } + }) ) render() @@ -799,38 +732,26 @@ it("should preserve generic parameters", () => { // this test has no `expect` calls as it verifies whether such component compiles or not }) -it("should preserve generic parameters when forwardRef", () => { +it("should preserve concrete props when using forwardRef", () => { interface IMethods { focus(): void } - interface IColor { - name: string - css: string - } - - interface ITestComponentProps { - value: T - callback: (value: T) => void + interface ITestComponentProps { + value: string + callback: (value: string) => void } const TestComponent = observer( - (props: ITestComponentProps, ref: React.Ref) => { + React.forwardRef((props, ref) => { return null - }, - { forwardRef: true } + }) ) function callbackString(value: string) { return } - function callbackColor(value: IColor) { - return - } render() - render( - - ) // this test has no `expect` calls as it verifies whether such component compiles or not }) @@ -1056,21 +977,6 @@ it.skip("Legacy context support", () => { render() }) -it("Throw when trying to set contextType on observer", () => { - const NamedObserver = observer(function TestCmp() { - return null - }) - const AnonymousObserver = observer(() => null) - expect(() => { - ;(NamedObserver as any).contextTypes = {} - }).toThrow(/\[mobx-react-lite\] `TestCmp.contextTypes` must be set before applying `observer`./) - expect(() => { - ;(AnonymousObserver as any).contextTypes = {} - }).toThrow( - /\[mobx-react-lite\] `Component.contextTypes` must be set before applying `observer`./ - ) -}) - test("Anonymous component displayName #3192", () => { // React prints errors even if we catch em const consoleErrorSpy = jest.spyOn(console, "error").mockImplementation(() => {}) @@ -1152,6 +1058,4 @@ test("`isolateGlobalState` shouldn't break reactivity #3734", async () => { ) expect(container).toHaveTextContent("1") unmount() - - mobx._resetGlobalState() }) diff --git a/packages/mobx-react-lite/__tests__/printDebugValue.test.ts b/packages/mobx-react-lite/__tests__/printDebugValue.test.ts deleted file mode 100644 index b383d7327b..0000000000 --- a/packages/mobx-react-lite/__tests__/printDebugValue.test.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { $mobx, autorun, observable } from "mobx" -import { printDebugValue } from "../src/utils/printDebugValue" - -test("printDebugValue", () => { - const money = observable({ - euro: 10, - get pound() { - return this.euro / 1.15 - } - }) - - const disposer = autorun(() => { - const { euro, pound } = money - if (euro === pound) { - // tslint:disable-next-line: no-console - console.log("Weird..") - } - }) - - const value = (disposer as any)[$mobx] - - expect(printDebugValue(value)).toMatchSnapshot() - - disposer() - - expect(printDebugValue(value)).toMatchSnapshot() -}) diff --git a/packages/mobx-react-lite/__tests__/strictAndConcurrentMode.test.tsx b/packages/mobx-react-lite/__tests__/strictAndConcurrentMode.test.tsx index 519fd1193f..ff51212235 100644 --- a/packages/mobx-react-lite/__tests__/strictAndConcurrentMode.test.tsx +++ b/packages/mobx-react-lite/__tests__/strictAndConcurrentMode.test.tsx @@ -1,12 +1,10 @@ -import { act, cleanup, render } from "@testing-library/react" +import { act, render } from "@testing-library/react" import mockConsole from "jest-mock-console" import * as mobx from "mobx" import * as React from "react" import { useObserver } from "../src/useObserver" -afterEach(cleanup) - test("uncommitted observing components should not attempt state changes", () => { const store = mobx.observable({ count: 0 }) @@ -34,7 +32,6 @@ test("uncommitted observing components should not attempt state changes", () => }) // Check to see if any console errors were reported. - // tslint:disable-next-line: no-console expect(console.error).not.toHaveBeenCalled() } finally { restoreConsole() diff --git a/packages/mobx-react-lite/__tests__/strictAndConcurrentModeUsingFinalizationRegistry.test.tsx b/packages/mobx-react-lite/__tests__/strictAndConcurrentModeUsingFinalizationRegistry.test.tsx index 7bfac4c0ce..4e4698ed30 100644 --- a/packages/mobx-react-lite/__tests__/strictAndConcurrentModeUsingFinalizationRegistry.test.tsx +++ b/packages/mobx-react-lite/__tests__/strictAndConcurrentModeUsingFinalizationRegistry.test.tsx @@ -1,4 +1,4 @@ -import { cleanup, render, waitFor } from "@testing-library/react" +import { render, waitFor } from "@testing-library/react" import * as mobx from "mobx" import * as React from "react" import { useObserver } from "../src/useObserver" @@ -11,8 +11,6 @@ if (typeof globalThis.FinalizationRegistry !== "function") { expect(observerFinalizationRegistry).toBeInstanceOf(globalThis.FinalizationRegistry) -afterEach(cleanup) - function nextFrame() { return new Promise(accept => setTimeout(accept, 1)) } diff --git a/packages/mobx-react-lite/__tests__/strictAndConcurrentModeUsingTimers.test.tsx b/packages/mobx-react-lite/__tests__/strictAndConcurrentModeUsingTimers.test.tsx index d7250ccb4b..7fc37b26db 100644 --- a/packages/mobx-react-lite/__tests__/strictAndConcurrentModeUsingTimers.test.tsx +++ b/packages/mobx-react-lite/__tests__/strictAndConcurrentModeUsingTimers.test.tsx @@ -1,5 +1,5 @@ import "./utils/killFinalizationRegistry" -import { act, cleanup, render } from "@testing-library/react" +import { act, render } from "@testing-library/react" import * as mobx from "mobx" import * as React from "react" import { useObserver } from "../src/useObserver" @@ -14,8 +14,6 @@ expect(observerFinalizationRegistry).toBeInstanceOf(TimerBasedFinalizationRegist const registry = observerFinalizationRegistry as TimerBasedFinalizationRegistry -afterEach(cleanup) - test("uncommitted components should not leak observations", async () => { registry.finalizeAllImmediately() diff --git a/packages/mobx-react-lite/__tests__/useAsObservableSource.deprecated.test.tsx b/packages/mobx-react-lite/__tests__/useAsObservableSource.deprecated.test.tsx deleted file mode 100644 index 4f6f62a75d..0000000000 --- a/packages/mobx-react-lite/__tests__/useAsObservableSource.deprecated.test.tsx +++ /dev/null @@ -1,348 +0,0 @@ -import { act, cleanup, render, renderHook } from "@testing-library/react" -import { autorun, configure, observable } from "mobx" -import * as React from "react" -import { useEffect, useState } from "react" - -import { Observer, observer, useAsObservableSource, useLocalStore } from "../src" -import { resetMobx } from "./utils" - -afterEach(cleanup) -afterEach(resetMobx) - -let consoleWarnMock: jest.SpyInstance | undefined -afterEach(() => { - consoleWarnMock?.mockRestore() -}) - -describe("base useAsObservableSource should work", () => { - it("with ", () => { - consoleWarnMock = jest.spyOn(console, "warn").mockImplementation(() => {}) - let counterRender = 0 - let observerRender = 0 - - function Counter({ multiplier }: { multiplier: number }) { - counterRender++ - const observableProps = useAsObservableSource({ multiplier }) - - const store = useLocalStore(() => ({ - count: 10, - get multiplied() { - return observableProps.multiplier * this.count - }, - inc() { - this.count += 1 - } - })) - - return ( - - {() => { - observerRender++ - return ( -

- Multiplied count: {store.multiplied} - -
- ) - }} -
- ) - } - - function Parent() { - const [multiplier, setMultiplier] = useState(1) - - return ( -
- -
- ) - } - - const { container } = render() - - expect(container.querySelector("span")!.innerHTML).toBe("10") - expect(counterRender).toBe(1) - expect(observerRender).toBe(1) - - act(() => { - ;(container.querySelector("#inc")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("11") - expect(counterRender).toBe(1) - expect(observerRender).toBe(2) - - act(() => { - ;(container.querySelector("#incmultiplier")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("22") - expect(counterRender).toBe(2) - expect(observerRender).toBe(4) - expect(consoleWarnMock).toMatchSnapshot() - }) - - it("with observer()", () => { - let counterRender = 0 - - const Counter = observer(({ multiplier }: { multiplier: number }) => { - counterRender++ - - const observableProps = useAsObservableSource({ multiplier }) - const store = useLocalStore(() => ({ - count: 10, - get multiplied() { - return observableProps.multiplier * this.count - }, - inc() { - this.count += 1 - } - })) - - return ( -
- Multiplied count: {store.multiplied} - -
- ) - }) - - function Parent() { - const [multiplier, setMultiplier] = useState(1) - - return ( -
- -
- ) - } - - const { container } = render() - - expect(container.querySelector("span")!.innerHTML).toBe("10") - expect(counterRender).toBe(1) - - act(() => { - ;(container.querySelector("#inc")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("11") - expect(counterRender).toBe(2) - - act(() => { - ;(container.querySelector("#incmultiplier")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("22") - expect(counterRender).toBe(4) // One from props, second from updating local observable (setState during render) - }) -}) - -test("useAsObservableSource with effects should work", () => { - const multiplierSeenByEffect: number[] = [] - const valuesSeenByEffect: number[] = [] - const thingsSeenByEffect: Array<[number, number, number]> = [] - - function Counter({ multiplier }: { multiplier: number }) { - const observableProps = useAsObservableSource({ multiplier }) - const store = useLocalStore(() => ({ - count: 10, - get multiplied() { - return observableProps.multiplier * this.count - }, - inc() { - this.count += 1 - } - })) - - useEffect( - () => - autorun(() => { - multiplierSeenByEffect.push(observableProps.multiplier) - }), - [] - ) - useEffect( - () => - autorun(() => { - valuesSeenByEffect.push(store.count) - }), - [] - ) - useEffect( - () => - autorun(() => { - thingsSeenByEffect.push([ - observableProps.multiplier, - store.multiplied, - multiplier - ]) // multiplier is trapped! - }), - [] - ) - - return ( - - ) - } - - function Parent() { - const [multiplier, setMultiplier] = useState(1) - - return ( -
- -
- ) - } - - const { container } = render() - - act(() => { - ;(container.querySelector("#inc")! as any).click() - }) - - act(() => { - ;(container.querySelector("#incmultiplier")! as any).click() - }) - - expect(valuesSeenByEffect).toEqual([10, 11]) - expect(multiplierSeenByEffect).toEqual([1, 2]) - expect(thingsSeenByEffect).toEqual([ - [1, 10, 1], - [1, 11, 1], - [2, 22, 1] - ]) -}) - -describe("combining observer with props and stores", () => { - it("keeps track of observable values", () => { - const TestComponent = observer((props: any) => { - const localStore = useLocalStore(() => ({ - get value() { - return props.store.x + 5 * props.store.y - } - })) - - return
{localStore.value}
- }) - const store = observable({ x: 5, y: 1 }) - const { container } = render() - const div = container.querySelector("div")! - expect(div.textContent).toBe("10") - act(() => { - store.y = 2 - }) - expect(div.textContent).toBe("15") - act(() => { - store.x = 10 - }) - expect(div.textContent).toBe("20") - }) - - it("allows non-observables to be used if specified as as source", () => { - const renderedValues: number[] = [] - - const TestComponent = observer((props: any) => { - const obsProps = useAsObservableSource({ y: props.y }) - const localStore = useLocalStore(() => ({ - get value() { - return props.store.x + 5 * obsProps.y - } - })) - - renderedValues.push(localStore.value) - return
{localStore.value}
- }) - const store = observable({ x: 5 }) - const { container, rerender } = render() - const div = container.querySelector("div")! - expect(div.textContent).toBe("10") - rerender() - expect(div.textContent).toBe("15") - act(() => { - store.x = 10 - }) - - expect(renderedValues).toEqual([ - 10, - 15, // props change - 15, // local observable change (setState during render) - 20 - ]) - - // TODO: re-enable this line. When debugging, the correct value is returned from render, - // which is also visible with renderedValues, however, querying the dom doesn't show the correct result - // possible a bug with @testing-library/react? - // expect(container.querySelector("div")!.textContent).toBe("20") // TODO: somehow this change is not visible in the tester! - }) -}) - -describe("enforcing actions", () => { - it("'never' should work", () => { - configure({ enforceActions: "never" }) - const onError = jest.fn() - renderHook( - () => { - const [thing, setThing] = React.useState("world") - useAsObservableSource({ hello: thing }) - useEffect(() => setThing("react"), []) - }, - { - wrapper: class extends React.Component { - componentDidCatch = onError - render() { - return this.props.children - } - } - } - ) - expect(onError).not.toHaveBeenCalled() - }) - it("only when 'observed' should work", () => { - configure({ enforceActions: "observed" }) - const onError = jest.fn() - renderHook( - () => { - const [thing, setThing] = React.useState("world") - useAsObservableSource({ hello: thing }) - useEffect(() => setThing("react"), []) - }, - { - wrapper: class extends React.Component { - componentDidCatch = onError - render() { - return this.props.children - } - } - } - ) - expect(onError).not.toHaveBeenCalled() - }) - it("'always' should work", () => { - configure({ enforceActions: "always" }) - const onError = jest.fn() - renderHook( - () => { - const [thing, setThing] = React.useState("world") - useAsObservableSource({ hello: thing }) - useEffect(() => setThing("react"), []) - }, - { - wrapper: class extends React.Component { - componentDidCatch = onError - render() { - return this.props.children - } - } - } - ) - expect(onError).not.toHaveBeenCalled() - }) -}) diff --git a/packages/mobx-react-lite/__tests__/useAsObservableSource.test.tsx b/packages/mobx-react-lite/__tests__/useAsObservableSource.test.tsx deleted file mode 100644 index 353ed55b08..0000000000 --- a/packages/mobx-react-lite/__tests__/useAsObservableSource.test.tsx +++ /dev/null @@ -1,437 +0,0 @@ -import { act, cleanup, render, renderHook } from "@testing-library/react" -import mockConsole from "jest-mock-console" -import { autorun, configure, observable } from "mobx" -import * as React from "react" -import { useEffect, useState } from "react" - -import { Observer, observer, useLocalObservable } from "../src" -import { resetMobx } from "./utils" -import { useObserver } from "../src/useObserver" - -afterEach(cleanup) -afterEach(resetMobx) - -describe("base useAsObservableSource should work", () => { - it("with useObserver", () => { - let counterRender = 0 - let observerRender = 0 - - function Counter({ multiplier }: { multiplier: number }) { - counterRender++ - const observableProps = useLocalObservable(() => ({ multiplier })) - Object.assign(observableProps, { multiplier }) - const store = useLocalObservable(() => ({ - count: 10, - get multiplied() { - return observableProps.multiplier * this.count - }, - inc() { - this.count += 1 - } - })) - - return useObserver( - () => ( - observerRender++, - ( -
- Multiplied count: {store.multiplied} - -
- ) - ) - ) - } - - function Parent() { - const [multiplier, setMultiplier] = useState(1) - - return ( -
- -
- ) - } - - const { container } = render() - - expect(container.querySelector("span")!.innerHTML).toBe("10") - expect(counterRender).toBe(1) - expect(observerRender).toBe(1) - - act(() => { - ;(container.querySelector("#inc")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("11") - expect(counterRender).toBe(2) // 1 would be better! - expect(observerRender).toBe(2) - - act(() => { - ;(container.querySelector("#incmultiplier")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("22") - expect(counterRender).toBe(4) // TODO: avoid double rendering here! - expect(observerRender).toBe(4) // TODO: avoid double rendering here! - }) - - it("with ", () => { - let counterRender = 0 - let observerRender = 0 - - function Counter({ multiplier }: { multiplier: number }) { - counterRender++ - const store = useLocalObservable(() => ({ - multiplier, - count: 10, - get multiplied() { - return this.multiplier * this.count - }, - inc() { - this.count += 1 - } - })) - - useEffect(() => { - store.multiplier = multiplier - }, [multiplier]) - return ( - - {() => { - observerRender++ - return ( -
- Multiplied count: {store.multiplied} - -
- ) - }} -
- ) - } - - function Parent() { - const [multiplier, setMultiplier] = useState(1) - - return ( -
- -
- ) - } - - const { container } = render() - - expect(container.querySelector("span")!.innerHTML).toBe("10") - expect(counterRender).toBe(1) - expect(observerRender).toBe(1) - - act(() => { - ;(container.querySelector("#inc")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("11") - expect(counterRender).toBe(1) - expect(observerRender).toBe(2) - - act(() => { - ;(container.querySelector("#incmultiplier")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("22") - expect(counterRender).toBe(2) - expect(observerRender).toBe(4) - }) - - it("with observer()", () => { - let counterRender = 0 - - const Counter = observer(({ multiplier }: { multiplier: number }) => { - counterRender++ - - const store = useLocalObservable(() => ({ - multiplier, - count: 10, - get multiplied() { - return this.multiplier * this.count - }, - inc() { - this.count += 1 - } - })) - - useEffect(() => { - store.multiplier = multiplier - }, [multiplier]) - - return ( -
- Multiplied count: {store.multiplied} - -
- ) - }) - - function Parent() { - const [multiplier, setMultiplier] = useState(1) - - return ( -
- -
- ) - } - - const { container } = render() - - expect(container.querySelector("span")!.innerHTML).toBe("10") - expect(counterRender).toBe(1) - - act(() => { - ;(container.querySelector("#inc")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("11") - expect(counterRender).toBe(2) - - act(() => { - ;(container.querySelector("#incmultiplier")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("22") - expect(counterRender).toBe(4) // One from props, second from updating local observable with effect - }) -}) - -test("useAsObservableSource with effects should work", () => { - const multiplierSeenByEffect: number[] = [] - const valuesSeenByEffect: number[] = [] - const thingsSeenByEffect: Array<[number, number, number]> = [] - - function Counter({ multiplier }: { multiplier: number }) { - const store = useLocalObservable(() => ({ - multiplier, - count: 10, - get multiplied() { - return this.multiplier * this.count - }, - inc() { - this.count += 1 - } - })) - - useEffect(() => { - store.multiplier = multiplier - }, [multiplier]) - - useEffect( - () => - autorun(() => { - multiplierSeenByEffect.push(store.multiplier) - }), - [] - ) - useEffect( - () => - autorun(() => { - valuesSeenByEffect.push(store.count) - }), - [] - ) - useEffect( - () => - autorun(() => { - thingsSeenByEffect.push([store.multiplier, store.multiplied, multiplier]) // multiplier is trapped! - }), - [] - ) - - return ( - - ) - } - - function Parent() { - const [multiplier, setMultiplier] = useState(1) - - return ( -
- -
- ) - } - - const { container } = render() - - act(() => { - ;(container.querySelector("#inc")! as any).click() - }) - - act(() => { - ;(container.querySelector("#incmultiplier")! as any).click() - }) - - expect(valuesSeenByEffect).toEqual([10, 11]) - expect(multiplierSeenByEffect).toEqual([1, 2]) - expect(thingsSeenByEffect).toEqual([ - [1, 10, 1], - [1, 11, 1], - [2, 22, 1] - ]) -}) - -describe("combining observer with props and stores", () => { - it("keeps track of observable values", () => { - const TestComponent = observer((props: any) => { - const localStore = useLocalObservable(() => ({ - get value() { - return props.store.x + 5 * props.store.y - } - })) - - return
{localStore.value}
- }) - const store = observable({ x: 5, y: 1 }) - const { container } = render() - const div = container.querySelector("div")! - expect(div.textContent).toBe("10") - act(() => { - store.y = 2 - }) - expect(div.textContent).toBe("15") - act(() => { - store.x = 10 - }) - expect(div.textContent).toBe("20") - }) - - it("allows non-observables to be used if specified as as source", () => { - const renderedValues: number[] = [] - - const TestComponent = observer((props: any) => { - const localStore = useLocalObservable(() => ({ - y: props.y, - get value() { - return props.store.x + 5 * this.y - } - })) - localStore.y = props.y - renderedValues.push(localStore.value) - return
{localStore.value}
- }) - const store = observable({ x: 5 }) - const { container, rerender } = render() - const div = container.querySelector("div")! - expect(div.textContent).toBe("10") - rerender() - expect(div.textContent).toBe("15") - act(() => { - store.x = 10 - }) - - expect(renderedValues).toEqual([ - 10, - 15, // props change - 15, // local observable change during render (localStore.y = props.y) - 20 - ]) - - expect(container.querySelector("div")!.textContent).toBe("20") - }) -}) - -describe("enforcing actions", () => { - it("'never' should work", () => { - configure({ enforceActions: "never" }) - const onError = jest.fn() - renderHook( - () => { - const [thing, setThing] = React.useState("world") - useLocalObservable(() => ({ hello: thing })) - useEffect(() => setThing("react"), []) - }, - { - wrapper: class extends React.Component { - componentDidCatch = onError - render() { - return this.props.children - } - } - } - ) - expect(onError).not.toHaveBeenCalled() - }) - it("only when 'observed' should work", () => { - configure({ enforceActions: "observed" }) - const onError = jest.fn() - renderHook( - () => { - const [thing, setThing] = React.useState("world") - useLocalObservable(() => ({ hello: thing })) - useEffect(() => setThing("react"), []) - }, - { - wrapper: class extends React.Component { - componentDidCatch = onError - render() { - return this.props.children - } - } - } - ) - expect(onError).not.toHaveBeenCalled() - }) - it("'always' should work", () => { - configure({ enforceActions: "always" }) - const onError = jest.fn() - renderHook( - () => { - const [thing, setThing] = React.useState("world") - useLocalObservable(() => ({ hello: thing })) - useEffect(() => setThing("react"), []) - }, - { - wrapper: class extends React.Component { - componentDidCatch = onError - render() { - return this.props.children - } - } - } - ) - expect(onError).not.toHaveBeenCalled() - }) -}) - -it("doesn't update a component while rendering a different component - #274", () => { - // https://github.com/facebook/react/pull/17099 - - const Parent = observer((props: any) => { - const observableProps = useLocalObservable(() => props) - useEffect(() => { - Object.assign(observableProps, props) - }, [props]) - - return - }) - - const Child = observer(({ observableProps }: any) => { - return observableProps.foo - }) - - const { container, rerender } = render() - expect(container.textContent).toBe("1") - - const restoreConsole = mockConsole() - rerender() - expect(console.error).not.toHaveBeenCalled() - restoreConsole() - expect(container.textContent).toBe("2") -}) diff --git a/packages/mobx-react-lite/__tests__/useLocalObservable.test.tsx b/packages/mobx-react-lite/__tests__/useLocalObservable.test.tsx index 2f8af44dba..0f11b499bf 100644 --- a/packages/mobx-react-lite/__tests__/useLocalObservable.test.tsx +++ b/packages/mobx-react-lite/__tests__/useLocalObservable.test.tsx @@ -1,20 +1,15 @@ import * as mobx from "mobx" import * as React from "react" -import { act, cleanup, fireEvent, render, renderHook } from "@testing-library/react" +import { act, fireEvent, render, renderHook } from "@testing-library/react" import { Observer, observer, useLocalObservable } from "../src" import { useEffect, useState } from "react" import { autorun } from "mobx" import { useObserver } from "../src/useObserver" -afterEach(cleanup) - let consoleWarnMock: jest.SpyInstance | undefined -afterEach(() => { - consoleWarnMock?.mockRestore() -}) -test("base useLocalStore should work", () => { +test("base useLocalObservable should work", () => { let counterRender = 0 let observerRender = 0 let outerStoreRef: any diff --git a/packages/mobx-react-lite/__tests__/useLocalStore.deprecated.test.tsx b/packages/mobx-react-lite/__tests__/useLocalStore.deprecated.test.tsx deleted file mode 100644 index 0971047848..0000000000 --- a/packages/mobx-react-lite/__tests__/useLocalStore.deprecated.test.tsx +++ /dev/null @@ -1,441 +0,0 @@ -import * as React from "react" -import { act, cleanup, fireEvent, render } from "@testing-library/react" - -import { Observer, observer, useLocalStore } from "../src" -import { useEffect, useState } from "react" -import { autorun } from "mobx" - -afterEach(cleanup) - -let consoleWarnMock: jest.SpyInstance | undefined -afterEach(() => { - consoleWarnMock?.mockRestore() -}) - -test("base useLocalStore should work", () => { - consoleWarnMock = jest.spyOn(console, "warn").mockImplementation(() => {}) - let counterRender = 0 - let observerRender = 0 - let outerStoreRef: any - - function Counter() { - counterRender++ - const store = (outerStoreRef = useLocalStore(() => ({ - count: 0, - count2: 0, // not used in render - inc() { - this.count += 1 - } - }))) - - return ( - - {() => { - observerRender++ - return ( -
- Count: {store.count} - -
- ) - }} -
- ) - } - - const { container } = render() - - expect(container.querySelector("span")!.innerHTML).toBe("0") - expect(counterRender).toBe(1) - expect(observerRender).toBe(1) - - act(() => { - container.querySelector("button")!.click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("1") - expect(counterRender).toBe(1) - expect(observerRender).toBe(2) - - act(() => { - outerStoreRef.count++ - }) - expect(container.querySelector("span")!.innerHTML).toBe("2") - expect(counterRender).toBe(1) - expect(observerRender).toBe(3) - - act(() => { - outerStoreRef.count2++ - }) - // No re-render! - expect(container.querySelector("span")!.innerHTML).toBe("2") - expect(counterRender).toBe(1) - expect(observerRender).toBe(3) - expect(consoleWarnMock).toMatchSnapshot() -}) - -describe("is used to keep observable within component body", () => { - it("value can be changed over renders", () => { - const TestComponent = () => { - const obs = useLocalStore(() => ({ - x: 1, - y: 2 - })) - return ( -
(obs.x += 1)}> - {obs.x}-{obs.y} -
- ) - } - const { container, rerender } = render() - const div = container.querySelector("div")! - expect(div.textContent).toBe("1-2") - fireEvent.click(div) - // observer not used, need to render from outside - rerender() - expect(div.textContent).toBe("2-2") - }) - - it("works with observer as well", () => { - let renderCount = 0 - - const TestComponent = observer(() => { - renderCount++ - - const obs = useLocalStore(() => ({ - x: 1, - y: 2 - })) - return ( -
(obs.x += 1)}> - {obs.x}-{obs.y} -
- ) - }) - const { container } = render() - const div = container.querySelector("div")! - expect(div.textContent).toBe("1-2") - fireEvent.click(div) - expect(div.textContent).toBe("2-2") - fireEvent.click(div) - expect(div.textContent).toBe("3-2") - - expect(renderCount).toBe(3) - }) - - it("actions can be used", () => { - const TestComponent = observer(() => { - const obs = useLocalStore(() => ({ - x: 1, - y: 2, - inc() { - obs.x += 1 - } - })) - return ( -
- {obs.x}-{obs.y} -
- ) - }) - const { container } = render() - const div = container.querySelector("div")! - expect(div.textContent).toBe("1-2") - fireEvent.click(div) - expect(div.textContent).toBe("2-2") - }) - - it("computed properties works as well", () => { - const TestComponent = observer(() => { - const obs = useLocalStore(() => ({ - x: 1, - y: 2, - get z() { - return obs.x + obs.y - } - })) - return
(obs.x += 1)}>{obs.z}
- }) - const { container } = render() - const div = container.querySelector("div")! - expect(div.textContent).toBe("3") - fireEvent.click(div) - expect(div.textContent).toBe("4") - }) - - it("computed properties can use local functions", () => { - const TestComponent = observer(() => { - const obs = useLocalStore(() => ({ - x: 1, - y: 2, - getMeThatX() { - return this.x - }, - get z() { - return this.getMeThatX() + obs.y - } - })) - return
(obs.x += 1)}>{obs.z}
- }) - const { container } = render() - const div = container.querySelector("div")! - expect(div.textContent).toBe("3") - fireEvent.click(div) - expect(div.textContent).toBe("4") - }) - - it("transactions are respected", () => { - const seen: number[] = [] - - const TestComponent = observer(() => { - const obs = useLocalStore(() => ({ - x: 1, - inc(delta: number) { - this.x += delta - this.x += delta - } - })) - - useEffect( - () => - autorun(() => { - seen.push(obs.x) - }), - [] - ) - - return ( -
{ - obs.inc(2) - }} - > - Test -
- ) - }) - const { container } = render() - const div = container.querySelector("div")! - fireEvent.click(div) - expect(seen).toEqual([1, 5]) // No 3! - }) - - it("Map can used instead of object", () => { - const TestComponent = observer(() => { - const map = useLocalStore(() => new Map([["initial", 10]])) - return ( -
map.set("later", 20)}> - {Array.from(map).map(([key, value]) => ( -
- {key} - {value} -
- ))} -
- ) - }) - const { container } = render() - const div = container.querySelector("div")! - expect(div.textContent).toBe("initial - 10") - fireEvent.click(div) - expect(div.textContent).toBe("initial - 10later - 20") - }) - - describe("with props", () => { - it("and useObserver", () => { - consoleWarnMock = jest.spyOn(console, "warn").mockImplementation(() => {}) - let counterRender = 0 - let observerRender = 0 - - function Counter({ multiplier }: { multiplier: number }) { - counterRender++ - - const store = useLocalStore( - props => ({ - count: 10, - get multiplied() { - return props.multiplier * this.count - }, - inc() { - this.count += 1 - } - }), - { multiplier } - ) - - return ( - - {() => ( - observerRender++, - ( -
- Multiplied count: {store.multiplied} - -
- ) - )} -
- ) - } - - function Parent() { - const [multiplier, setMultiplier] = useState(1) - - return ( -
- -
- ) - } - - const { container } = render() - - expect(container.querySelector("span")!.innerHTML).toBe("10") - expect(counterRender).toBe(1) - expect(observerRender).toBe(1) - - act(() => { - ;(container.querySelector("#inc")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("11") - expect(counterRender).toBe(1) // or 2 - expect(observerRender).toBe(2) - - act(() => { - ;(container.querySelector("#incmultiplier")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("22") - expect(counterRender).toBe(2) - expect(observerRender).toBe(4) - expect(consoleWarnMock).toMatchSnapshot() - }) - - it("with ", () => { - let counterRender = 0 - let observerRender = 0 - - function Counter({ multiplier }: { multiplier: number }) { - counterRender++ - - const store = useLocalStore( - props => ({ - count: 10, - get multiplied() { - return props.multiplier * this.count - }, - inc() { - this.count += 1 - } - }), - { multiplier } - ) - - return ( - - {() => { - observerRender++ - return ( -
- Multiplied count: {store.multiplied} - -
- ) - }} -
- ) - } - - function Parent() { - const [multiplier, setMultiplier] = useState(1) - - return ( -
- -
- ) - } - - const { container } = render() - - expect(container.querySelector("span")!.innerHTML).toBe("10") - expect(counterRender).toBe(1) - expect(observerRender).toBe(1) - - act(() => { - ;(container.querySelector("#inc")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("11") - expect(counterRender).toBe(1) - expect(observerRender).toBe(2) - - act(() => { - ;(container.querySelector("#incmultiplier")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("22") - expect(counterRender).toBe(2) - expect(observerRender).toBe(4) - }) - - it("with observer()", () => { - let counterRender = 0 - - const Counter = observer(({ multiplier }: { multiplier: number }) => { - counterRender++ - - const store = useLocalStore( - props => ({ - count: 10, - get multiplied() { - return props.multiplier * this.count - }, - inc() { - this.count += 1 - } - }), - { multiplier } - ) - - return ( -
- Multiplied count: {store.multiplied} - -
- ) - }) - - function Parent() { - const [multiplier, setMultiplier] = useState(1) - - return ( -
- -
- ) - } - - const { container } = render() - - expect(container.querySelector("span")!.innerHTML).toBe("10") - expect(counterRender).toBe(1) - - act(() => { - ;(container.querySelector("#inc")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("11") - expect(counterRender).toBe(2) - - act(() => { - ;(container.querySelector("#incmultiplier")! as any).click() - }) - expect(container.querySelector("span")!.innerHTML).toBe("22") - expect(counterRender).toBe(4) // One from props, second from updating source (setState during render) - }) - }) -}) diff --git a/packages/mobx-react-lite/__tests__/utils.ts b/packages/mobx-react-lite/__tests__/utils.ts deleted file mode 100644 index d15906b4ba..0000000000 --- a/packages/mobx-react-lite/__tests__/utils.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { configure } from "mobx" - -export function resetMobx(): void { - configure({ enforceActions: "never" }) -} - -export function enableDevEnvironment() { - process.env.NODE_ENV === "development" - return function () { - process.env.NODE_ENV === "production" - } -} - -export function sleep(time: number) { - return new Promise(res => { - setTimeout(res, time) - }) -} diff --git a/packages/mobx-react-lite/batchingForReactDom.js b/packages/mobx-react-lite/batchingForReactDom.js deleted file mode 100644 index c5193da50b..0000000000 --- a/packages/mobx-react-lite/batchingForReactDom.js +++ /dev/null @@ -1,3 +0,0 @@ -if ("production" !== process.env.NODE_ENV) { - console.warn("[mobx-react-lite] importing batchingForReactDom is no longer needed") -} diff --git a/packages/mobx-react-lite/batchingForReactNative.js b/packages/mobx-react-lite/batchingForReactNative.js deleted file mode 100644 index fbfe34dad5..0000000000 --- a/packages/mobx-react-lite/batchingForReactNative.js +++ /dev/null @@ -1,3 +0,0 @@ -if ("production" !== process.env.NODE_ENV) { - console.warn("[mobx-react-lite] importing batchingForReactNative is no longer needed") -} diff --git a/packages/mobx-react-lite/batchingOptOut.js b/packages/mobx-react-lite/batchingOptOut.js deleted file mode 100644 index 8b6e963c56..0000000000 --- a/packages/mobx-react-lite/batchingOptOut.js +++ /dev/null @@ -1,3 +0,0 @@ -if ("production" !== process.env.NODE_ENV) { - console.warn("[mobx-react-lite] importing batchingOptOut is no longer needed") -} diff --git a/packages/mobx-react-lite/jest.setup.ts b/packages/mobx-react-lite/jest.setup.ts index c02f52ea96..4a2d3994c5 100644 --- a/packages/mobx-react-lite/jest.setup.ts +++ b/packages/mobx-react-lite/jest.setup.ts @@ -1,9 +1,31 @@ import "@testing-library/jest-dom/extend-expect" -import { configure } from "mobx" +import { cleanup } from "@testing-library/react" +import { configure, _getGlobalState, _resetGlobalState } from "mobx" global.setImmediate = global.setImmediate || ((fn, ...args) => global.setTimeout(fn, 0, ...args)) -configure({ enforceActions: "never" }) +function resetMobxReactTestState() { + _resetGlobalState() + _getGlobalState().spyListeners = [] + configure({ + enforceActions: "never", + computedRequiresReaction: false, + reactionRequiresObservable: false, + observableRequiresReaction: false, + disableErrorBoundaries: false, + safeDescriptors: true + }) +} -// @ts-ignore -global.__DEV__ = true +beforeEach(() => { + // @ts-ignore + global.__DEV__ = true + resetMobxReactTestState() +}) + +afterEach(() => { + cleanup() + jest.useRealTimers() + jest.restoreAllMocks() + resetMobxReactTestState() +}) diff --git a/packages/mobx-react-lite/package.json b/packages/mobx-react-lite/package.json index 359e17829c..8df75e7d44 100644 --- a/packages/mobx-react-lite/package.json +++ b/packages/mobx-react-lite/package.json @@ -1,26 +1,43 @@ { "name": "mobx-react-lite", "version": "4.1.1", - "description": "Lightweight React bindings for MobX based on React 16.8+ and Hooks", + "description": "Lightweight React bindings for MobX based on function components and Hooks", "source": "src/index.ts", + "type": "commonjs", "main": "dist/index.js", - "umd:main": "dist/mobxreact.umd.production.min.js", + "umd:main": "dist/mobxreactlite.umd.production.min.js", "unpkg": "dist/mobxreactlite.umd.production.min.js", "jsdelivr": "dist/mobxreactlite.umd.production.min.js", "jsnext:main": "dist/mobxreactlite.esm.production.min.js", - "module": "es/index.js", - "react-native": "es/index.js", + "module": "dist/mobxreactlite.esm.js", + "react-native": "dist/mobxreactlite.esm.js", "types": "dist/index.d.ts", "typings": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "react-native": { + "types": "./dist/index.d.ts", + "default": "./dist/mobxreactlite.esm.js" + }, + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/mobxreactlite.mjs" + }, + "default": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "./dist/*": "./dist/*", + "./src/*": "./src/*" + }, "files": [ "src", - "dist/", - "lib/", - "es/", + "dist", "LICENSE", "CHANGELOG.md", - "README.md", - "batching*" + "README.md" ], "repository": { "type": "git", @@ -36,24 +53,12 @@ "url": "https://github.com/mobxjs/mobx/issues" }, "homepage": "https://mobx.js.org", - "dependencies": { - "use-sync-external-store": "^1.4.0" - }, "peerDependencies": { - "mobx": "^6.9.0", - "react": "^16.8.0 || ^17 || ^18 || ^19" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } + "mobx": "^7.0.0", + "react": "^18 || ^19" }, "devDependencies": { - "mobx": "^6.15.0", - "expose-gc": "^1.0.0" + "mobx": "^6.15.0" }, "keywords": [ "mobx", @@ -68,14 +73,12 @@ ], "scripts": { "lint": "eslint src/**/* --ext .js,.ts,.tsx", - "build": "node ../../scripts/build.js mobxReactLite", - "build:test": "npm run build -- --target test", - "build:cjs": "tsc --project tsconfig.build.cjs.json", - "build:es": "tsc --project tsconfig.build.es.json", + "build": "rollup --config rollup.config.mjs", + "build:test": "npm run build -- --environment TARGET:test", "test": "jest", "test:size": "import-size --report . observer useLocalObservable", "test:types": "tsc --noEmit", "test:check": "npm run test:types", - "prepublishOnly": "cd ../mobx && npm run build -- --target publish && cd ../mobx-react-lite && npm run build -- --target publish && npm run build:cjs && npm run build:es" + "prepublishOnly": "npm run build -- --environment TARGET:publish" } } diff --git a/packages/mobx-react-lite/rollup.config.mjs b/packages/mobx-react-lite/rollup.config.mjs new file mode 100644 index 0000000000..91446e47e1 --- /dev/null +++ b/packages/mobx-react-lite/rollup.config.mjs @@ -0,0 +1,11 @@ +import createRollupConfig from "../../scripts/create-rollup-config.mjs" + +export default createRollupConfig({ + packageName: "mobxReactLite", + packageBase: "mobxreactlite", + input: "src/index.ts", + globals: { + react: "React", + mobx: "mobx" + } +}) diff --git a/packages/mobx-react-lite/src/ObserverComponent.ts b/packages/mobx-react-lite/src/ObserverComponent.ts index 59b9ff7105..09778c8f2e 100644 --- a/packages/mobx-react-lite/src/ObserverComponent.ts +++ b/packages/mobx-react-lite/src/ObserverComponent.ts @@ -1,11 +1,10 @@ import { useObserver } from "./useObserver" +import type { ReactNode } from "react" -// TODO: this type could be improved in the next major release: -// type IObserverProps = { children: () => React.ReactNode, render?: never } | { children?: never, render: () => React.ReactNode } -interface IObserverProps { - children?(): React.ReactElement | null - render?(): React.ReactElement | null -} +type IObserverProps = + | { children: () => ReactNode; render?: never } + | { children?: never; render: () => ReactNode } + | { children?: never; render?: never } function ObserverComponent({ children, render }: IObserverProps) { if (children && render) { @@ -19,43 +18,6 @@ function ObserverComponent({ children, render }: IObserverProps) { } return useObserver(component) } -if ("production" !== process.env.NODE_ENV) { - ObserverComponent.propTypes = { - children: ObserverPropsCheck, - render: ObserverPropsCheck - } -} ObserverComponent.displayName = "Observer" export { ObserverComponent as Observer } - -function ObserverPropsCheck( - props: { [k: string]: any }, - key: string, - componentName: string, - location: any, - propFullName: string -) { - const extraKey = key === "children" ? "render" : "children" - const hasProp = typeof props[key] === "function" - const hasExtraProp = typeof props[extraKey] === "function" - if (hasProp && hasExtraProp) { - return new Error( - "MobX Observer: Do not use children and render in the same time in`" + componentName - ) - } - - if (hasProp || hasExtraProp) { - return null - } - return new Error( - "Invalid prop `" + - propFullName + - "` of type `" + - typeof props[key] + - "` supplied to" + - " `" + - componentName + - "`, expected `function`." - ) -} diff --git a/packages/mobx-react-lite/src/index.ts b/packages/mobx-react-lite/src/index.ts index f80826ac87..0ffe271ed6 100644 --- a/packages/mobx-react-lite/src/index.ts +++ b/packages/mobx-react-lite/src/index.ts @@ -1,40 +1,11 @@ import "./utils/assertEnvironment" -import { unstable_batchedUpdates as batch } from "./utils/reactBatchedUpdates" -import { observerBatching } from "./utils/observerBatching" -import { useDeprecated } from "./utils/utils" -import { useObserver as useObserverOriginal } from "./useObserver" -import { enableStaticRendering } from "./staticRendering" import { observerFinalizationRegistry } from "./utils/observerFinalizationRegistry" -observerBatching(batch) - export { isUsingStaticRendering, enableStaticRendering } from "./staticRendering" -export { observer, IObserverOptions } from "./observer" +export { observer } from "./observer" export { Observer } from "./ObserverComponent" export { useLocalObservable } from "./useLocalObservable" -export { useLocalStore } from "./useLocalStore" -export { useAsObservableSource } from "./useAsObservableSource" export { observerFinalizationRegistry as _observerFinalizationRegistry } export const clearTimers = observerFinalizationRegistry["finalizeAllImmediately"] ?? (() => {}) - -export function useObserver(fn: () => T, baseComponentName: string = "observed"): T { - if ("production" !== process.env.NODE_ENV) { - useDeprecated( - "[mobx-react-lite] 'useObserver(fn)' is deprecated. Use `{fn}` instead, or wrap the entire component in `observer`." - ) - } - return useObserverOriginal(fn, baseComponentName) -} - -export { isObserverBatched, observerBatching } from "./utils/observerBatching" - -export function useStaticRendering(enable: boolean) { - if ("production" !== process.env.NODE_ENV) { - console.warn( - "[mobx-react-lite] 'useStaticRendering' is deprecated, use 'enableStaticRendering' instead" - ) - } - enableStaticRendering(enable) -} diff --git a/packages/mobx-react-lite/src/observer.ts b/packages/mobx-react-lite/src/observer.ts index 6d9948d637..c43931d6c9 100644 --- a/packages/mobx-react-lite/src/observer.ts +++ b/packages/mobx-react-lite/src/observer.ts @@ -3,9 +3,6 @@ import { forwardRef, memo } from "react" import { isUsingStaticRendering } from "./staticRendering" import { useObserver } from "./useObserver" -let warnObserverOptionsDeprecated = true -let warnLegacyContextTypes = true - const hasSymbol = typeof Symbol === "function" && Symbol.for const isFunctionNameConfigurable = Object.getOwnPropertyDescriptor(() => {}, "name")?.configurable ?? false @@ -19,35 +16,13 @@ const ReactMemoSymbol = hasSymbol ? Symbol.for("react.memo") : typeof memo === "function" && memo((props: any) => null)["$$typeof"] -/** - * @deprecated Observer options will be removed in the next major version of mobx-react-lite. - * Look at the individual properties for alternatives. - */ -export interface IObserverOptions { - /** - * @deprecated Pass a `React.forwardRef` component to observer instead of using the options object - * e.g. `observer(React.forwardRef(fn))` - */ - readonly forwardRef?: boolean -} - -export function observer

( - baseComponent: React.ForwardRefRenderFunction, - options: IObserverOptions & { - /** - * @deprecated Pass a `React.forwardRef` component to observer instead of using the options object - * e.g. `observer(React.forwardRef(fn))` - */ - forwardRef: true - } -): React.MemoExoticComponent< - React.ForwardRefExoticComponent & React.RefAttributes> -> +export function observer>( + baseComponent: C +): C & React.MemoExoticComponent export function observer

( - baseComponent: React.FunctionComponent

, - options?: IObserverOptions -): React.FunctionComponent

+ baseComponent: React.FunctionComponent

+): React.FunctionComponent

& React.MemoExoticComponent> export function observer

( baseComponent: React.ForwardRefExoticComponent< @@ -56,39 +31,14 @@ export function observer

( ): React.MemoExoticComponent< React.ForwardRefExoticComponent & React.RefAttributes> > -export function observer< - C extends React.FunctionComponent | React.ForwardRefRenderFunction, - Options extends IObserverOptions ->( - baseComponent: C, - options?: Options -): Options extends { forwardRef: true } - ? C extends React.ForwardRefRenderFunction - ? C & - React.MemoExoticComponent< - React.ForwardRefExoticComponent< - React.PropsWithoutRef

& React.RefAttributes - > - > - : never /* forwardRef set for a non forwarding component */ - : C & { displayName: string } // n.b. base case is not used for actual typings or exported in the typing files export function observer

( baseComponent: | React.ForwardRefRenderFunction | React.FunctionComponent

- | React.ForwardRefExoticComponent & React.RefAttributes>, - // TODO remove in next major - options?: IObserverOptions + | React.ForwardRefExoticComponent & React.RefAttributes> ) { - if (process.env.NODE_ENV !== "production" && warnObserverOptionsDeprecated && options) { - warnObserverOptionsDeprecated = false - console.warn( - `[mobx-react-lite] \`observer(fn, { forwardRef: true })\` is deprecated, use \`observer(React.forwardRef(fn))\`` - ) - } - if (ReactMemoSymbol && baseComponent["$$typeof"] === ReactMemoSymbol) { throw new Error( `[mobx-react-lite] You are trying to use \`observer\` on a function component wrapped in either another \`observer\` or \`React.memo\`. The observer already applies 'React.memo' for you.` @@ -100,7 +50,7 @@ export function observer

( return baseComponent } - let useForwardRef = options?.forwardRef ?? false + let useForwardRef = false let render = baseComponent const baseComponentName = baseComponent.displayName || baseComponent.name @@ -132,20 +82,6 @@ export function observer

( }) } - // Support legacy context: `contextTypes` must be applied before `memo` - if ((baseComponent as any).contextTypes) { - ;(observerComponent as React.FunctionComponent).contextTypes = ( - baseComponent as any - ).contextTypes - - if (process.env.NODE_ENV !== "production" && warnLegacyContextTypes) { - warnLegacyContextTypes = false - console.warn( - `[mobx-react-lite] Support for Legacy Context in function components will be removed in the next major release.` - ) - } - } - if (useForwardRef) { // `forwardRef` must be applied prior `memo` // `forwardRef(observer(cmp))` throws: @@ -160,18 +96,6 @@ export function observer

( copyStaticProperties(baseComponent, observerComponent) - if ("production" !== process.env.NODE_ENV) { - Object.defineProperty(observerComponent, "contextTypes", { - set() { - throw new Error( - `[mobx-react-lite] \`${ - this.displayName || this.type?.displayName || this.type?.name || "Component" - }.contextTypes\` must be set before applying \`observer\`.` - ) - } - }) - } - return observerComponent } diff --git a/packages/mobx-react-lite/src/useAsObservableSource.ts b/packages/mobx-react-lite/src/useAsObservableSource.ts deleted file mode 100644 index ffda077f68..0000000000 --- a/packages/mobx-react-lite/src/useAsObservableSource.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { useDeprecated } from "./utils/utils" -import { observable, runInAction } from "mobx" -import { useState } from "react" - -export function useAsObservableSource(current: TSource): TSource { - if ("production" !== process.env.NODE_ENV) - useDeprecated( - "[mobx-react-lite] 'useAsObservableSource' is deprecated, please store the values directly in an observable, for example by using 'useLocalObservable', and sync future updates using 'useEffect' when needed. See the README for examples." - ) - // We're deliberately not using idiomatic destructuring for the hook here. - // Accessing the state value as an array element prevents TypeScript from generating unnecessary helpers in the resulting code. - // For further details, please refer to mobxjs/mobx#3842. - const res = useState(() => observable(current, {}, { deep: false }))[0] - runInAction(() => { - Object.assign(res, current) - }) - return res -} diff --git a/packages/mobx-react-lite/src/useLocalObservable.ts b/packages/mobx-react-lite/src/useLocalObservable.ts index fde49eac61..665d3d2b25 100644 --- a/packages/mobx-react-lite/src/useLocalObservable.ts +++ b/packages/mobx-react-lite/src/useLocalObservable.ts @@ -1,7 +1,7 @@ import { observable, AnnotationsMap } from "mobx" import { useState } from "react" -export function useLocalObservable>( +export function useLocalObservable( initializer: () => TStore, annotations?: AnnotationsMap ): TStore { diff --git a/packages/mobx-react-lite/src/useLocalStore.ts b/packages/mobx-react-lite/src/useLocalStore.ts deleted file mode 100644 index 9060ee1110..0000000000 --- a/packages/mobx-react-lite/src/useLocalStore.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { observable } from "mobx" -import { useState } from "react" - -import { useDeprecated } from "./utils/utils" -import { useAsObservableSource } from "./useAsObservableSource" - -export function useLocalStore>(initializer: () => TStore): TStore -export function useLocalStore, TSource extends object>( - initializer: (source: TSource) => TStore, - current: TSource -): TStore -export function useLocalStore, TSource extends object>( - initializer: (source?: TSource) => TStore, - current?: TSource -): TStore { - if ("production" !== process.env.NODE_ENV) { - useDeprecated( - "[mobx-react-lite] 'useLocalStore' is deprecated, use 'useLocalObservable' instead." - ) - } - const source = current && useAsObservableSource(current) - return useState(() => observable(initializer(source), undefined, { autoBind: true }))[0] -} diff --git a/packages/mobx-react-lite/src/useObserver.ts b/packages/mobx-react-lite/src/useObserver.ts index 886073467f..08da5b53fe 100644 --- a/packages/mobx-react-lite/src/useObserver.ts +++ b/packages/mobx-react-lite/src/useObserver.ts @@ -1,9 +1,7 @@ -import { Reaction } from "mobx" +import { getDependencyTree, Reaction } from "mobx" import React from "react" -import { printDebugValue } from "./utils/printDebugValue" import { isUsingStaticRendering } from "./staticRendering" import { observerFinalizationRegistry } from "./utils/observerFinalizationRegistry" -import { useSyncExternalStore } from "use-sync-external-store/shim" // Do not store `admRef` (even as part of a closure!) on this object, // otherwise it will prevent GC and therefore reaction disposal via FinalizationRegistry. @@ -89,9 +87,9 @@ export function useObserver(render: () => T, baseComponentName: string = "obs observerFinalizationRegistry.register(admRef, adm, adm) } - React.useDebugValue(adm.reaction!, printDebugValue) + React.useDebugValue(adm.reaction!, getDependencyTree) - useSyncExternalStore( + React.useSyncExternalStore( // Both of these must be stable, otherwise it would keep resubscribing every render. adm.subscribe, adm.getSnapshot, diff --git a/packages/mobx-react-lite/src/utils/assertEnvironment.ts b/packages/mobx-react-lite/src/utils/assertEnvironment.ts index 339dfb29d2..4fa7aad31d 100644 --- a/packages/mobx-react-lite/src/utils/assertEnvironment.ts +++ b/packages/mobx-react-lite/src/utils/assertEnvironment.ts @@ -1,9 +1,9 @@ -import { makeObservable } from "mobx" -import { useState } from "react" +import { _getGlobalState } from "mobx" +import { useState, useSyncExternalStore } from "react" -if (!useState) { - throw new Error("mobx-react-lite requires React with Hooks support") +if (!useState || !useSyncExternalStore) { + throw new Error("mobx-react-lite requires React 18 or later") } -if (!makeObservable) { - throw new Error("mobx-react-lite@3 requires mobx at least version 6 to be available") +if (!(_getGlobalState?.()?.version >= 7)) { + throw new Error("mobx-react-lite requires mobx at least version 7 to be available") } diff --git a/packages/mobx-react-lite/src/utils/observerBatching.ts b/packages/mobx-react-lite/src/utils/observerBatching.ts deleted file mode 100644 index 42ce876251..0000000000 --- a/packages/mobx-react-lite/src/utils/observerBatching.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { configure } from "mobx" - -export function defaultNoopBatch(callback: () => void) { - callback() -} - -export function observerBatching(reactionScheduler: any) { - if (!reactionScheduler) { - reactionScheduler = defaultNoopBatch - if ("production" !== process.env.NODE_ENV) { - console.warn( - "[MobX] Failed to get unstable_batched updates from react-dom / react-native" - ) - } - } - configure({ reactionScheduler }) -} - -export const isObserverBatched = () => { - if ("production" !== process.env.NODE_ENV) { - console.warn("[MobX] Deprecated") - } - - return true -} diff --git a/packages/mobx-react-lite/src/utils/printDebugValue.ts b/packages/mobx-react-lite/src/utils/printDebugValue.ts deleted file mode 100644 index 8ef487fd64..0000000000 --- a/packages/mobx-react-lite/src/utils/printDebugValue.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { getDependencyTree, Reaction } from "mobx" - -export function printDebugValue(v: Reaction) { - return getDependencyTree(v) -} diff --git a/packages/mobx-react-lite/src/utils/reactBatchedUpdates.native.ts b/packages/mobx-react-lite/src/utils/reactBatchedUpdates.native.ts deleted file mode 100644 index a8e25fbcf7..0000000000 --- a/packages/mobx-react-lite/src/utils/reactBatchedUpdates.native.ts +++ /dev/null @@ -1,2 +0,0 @@ -// @ts-ignore -export { unstable_batchedUpdates } from "react-native" diff --git a/packages/mobx-react-lite/src/utils/reactBatchedUpdates.ts b/packages/mobx-react-lite/src/utils/reactBatchedUpdates.ts deleted file mode 100644 index 8c64462b07..0000000000 --- a/packages/mobx-react-lite/src/utils/reactBatchedUpdates.ts +++ /dev/null @@ -1 +0,0 @@ -export { unstable_batchedUpdates } from "react-dom" diff --git a/packages/mobx-react-lite/tsconfig.build.cjs.json b/packages/mobx-react-lite/tsconfig.build.cjs.json deleted file mode 100644 index 1bceb718ed..0000000000 --- a/packages/mobx-react-lite/tsconfig.build.cjs.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "./tsconfig.build.json", - "compilerOptions": { - "outDir": "lib", - "module": "CommonJS" - } -} diff --git a/packages/mobx-react-lite/tsconfig.build.es.json b/packages/mobx-react-lite/tsconfig.build.es.json deleted file mode 100644 index 1561876960..0000000000 --- a/packages/mobx-react-lite/tsconfig.build.es.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "./tsconfig.build.json", - "compilerOptions": { - "outDir": "es", - "module": "ESNext" - } -} diff --git a/packages/mobx-react-lite/tsconfig.build.json b/packages/mobx-react-lite/tsconfig.build.json deleted file mode 100644 index 5687524039..0000000000 --- a/packages/mobx-react-lite/tsconfig.build.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "esModuleInterop": true, - "target": "ES5", - "noEmit": false, - "declaration": false - } -} diff --git a/packages/mobx-react-lite/tsdx.config.js b/packages/mobx-react-lite/tsdx.config.js deleted file mode 100644 index f2cf8dd75a..0000000000 --- a/packages/mobx-react-lite/tsdx.config.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = { - rollup(config) { - return { - ...config, - output: { - ...config.output, - globals: { - react: "React", - mobx: "mobx", - "react-dom": "ReactDOM" - } - } - } - } -} diff --git a/packages/mobx-react/README.md b/packages/mobx-react/README.md index 4bdf704af9..387fbe90ff 100644 --- a/packages/mobx-react/README.md +++ b/packages/mobx-react/README.md @@ -17,21 +17,20 @@ Only the latest version is actively maintained. If you're missing a fix or a fea | NPM Version | Support MobX version | Supported React versions | Added support for: | | ----------- | -------------------- | ------------------------ | -------------------------------------------------------------------------------- | +| v10 | 7.\* | >=18 | MobX 7, Hooks, React 18 strict mode | | v9 | 6.\* | >16.8 | Hooks, React 18.2 in strict mode | | v7 | 6.\* | >16.8 < 18.2 | Hooks | | v6 | 4.\* / 5.\* | >16.8 <17 | Hooks | | v5 | 4.\* / 5.\* | >0.13 <17 | No, but it is possible to use `` sections inside hook based components | -mobx-react 6 / 7 is a repackage of the smaller [mobx-react-lite](https://github.com/mobxjs/mobx/tree/main/packages/mobx-react-lite) package + following features from the `mobx-react@5` package added: +`mobx-react` is a wrapper around `mobx-react-lite` for applications that also need class component support: +- Support for function components through `mobx-react-lite` - Support for class based components for `observer` and `@observer` -- `Provider / inject` to pass stores around (but consider to use `React.createContext` instead) -- `PropTypes` to describe observable based property checkers (but consider to use TypeScript instead) -- The `disposeOnUnmount` utility / decorator to easily clean up resources such as reactions created in your class based components. ## Installation -`npm install mobx-react --save` +`npm install mobx-react` Or CDN: https://unpkg.com/mobx-react (UMD namespace: `mobxReact`) @@ -42,7 +41,7 @@ import { observer } from "mobx-react" This package provides the bindings for MobX and React. See the [official documentation](https://mobx.js.org/react-integration.html) for how to get started. -For greenfield projects you might want to consider to use [mobx-react-lite](https://github.com/mobxjs/mobx/tree/main/packages/mobx-react-lite), if you intend to only use function based components. `React.createContext` can be used to pass stores around. +Use `React.createContext` to pass stores around. ## API documentation @@ -226,7 +225,7 @@ person.name = "Mike" // will cause the Observer region to re-render Local observable state can be introduced by using the `useLocalObservable` hook, that runs once to create an observable store. A quick example would be: ```javascript -import { useLocalObservable, Observer } from "mobx-react-lite" +import { useLocalObservable, Observer } from "mobx-react" const Todo = () => { const todo = useLocalObservable(() => ({ @@ -241,7 +240,7 @@ const Todo = () => { {() => (

- {todo.title} {todo.done ? "[DONE]" : "[TODO]"} + {todo.title} {todo.done ? "[DONE]" : "[OPEN]"}

)}
@@ -253,7 +252,7 @@ When using `useLocalObservable`, all properties of the returned object will be m It is important to realize that the store is created only once! It is not possible to specify dependencies to force re-creation, _nor should you directly be referring to props for the initializer function_, as changes in those won't propagate. -Instead, if your store needs to refer to props (or `useState` based local state), the `useLocalObservable` should be combined with the `useAsObservableSource` hook, see below. +Instead, if your store needs to refer to props (or `useState` based local state), sync those values into the store with `useEffect`. Note that in many cases it is possible to extract the initializer function to a function outside the component definition. Which makes it possible to test the store itself in a more straight-forward manner, and avoids creating the initializer closure on each re-render. @@ -287,261 +286,6 @@ Decorators are currently a stage-2 ESNext feature. How to enable them is documen See this [thread](https://www.reddit.com/r/reactjs/comments/4vnxg5/free_eggheadio_course_learn_mobx_react_in_30/d61oh0l). TL;DR: the conceptual distinction makes a lot of sense when using MobX as well, but use `observer` on all components. -### `PropTypes` - -MobX-react provides the following additional `PropTypes` which can be used to validate against MobX structures: - -- `observableArray` -- `observableArrayOf(React.PropTypes.number)` -- `observableMap` -- `observableObject` -- `arrayOrObservableArray` -- `arrayOrObservableArrayOf(React.PropTypes.number)` -- `objectOrObservableObject` - -Use `import { PropTypes } from "mobx-react"` to import them, then use for example `PropTypes.observableArray` - -### `Provider` and `inject` - -_Note: usually there is no need anymore to use `Provider` / `inject` in new code bases; most of its features are now covered by `React.createContext`._ - -`Provider` is a component that can pass stores (or other stuff) using React's context mechanism to child components. -This is useful if you have things that you don't want to pass through multiple layers of components explicitly. - -`inject` can be used to pick up those stores. It is a higher order component that takes a list of strings and makes those stores available to the wrapped component. - -Example (based on the official [context docs](https://facebook.github.io/react/docs/context.html#passing-info-automatically-through-a-tree)): - -```javascript -@inject("color") -@observer -class Button extends React.Component { - render() { - return - } -} - -class Message extends React.Component { - render() { - return ( -
- {this.props.text} -
- ) - } -} - -class MessageList extends React.Component { - render() { - const children = this.props.messages.map(message => ) - return ( - -
{children}
-
- ) - } -} -``` - -Notes: - -- It is possible to read the stores provided by `Provider` using `React.useContext`, by using the `MobXProviderContext` context that can be imported from `mobx-react`. -- If a component asks for a store and receives a store via a property with the same name, the property takes precedence. Use this to your advantage when testing! -- When using both `@inject` and `@observer`, make sure to apply them in the correct order: `observer` should be the inner decorator, `inject` the outer. There might be additional decorators in between. -- The original component wrapped by `inject` is available as the `wrappedComponent` property of the created higher order component. - -#### "The set of provided stores has changed" error - -Values provided through `Provider` should be final. Make sure that if you put things in `context` that might change over time, that they are `@observable` or provide some other means to listen to changes, like callbacks. However, if your stores will change over time, like an observable value of another store, MobX will throw an error. -This restriction exists mainly for legacy reasons. If you have a scenario where you need to modify the set of stores, please leave a comment about it in this issue https://github.com/mobxjs/mobx-react/issues/745. Or a preferred way is to [use React Context](https://reactjs.org/docs/context.html) directly which does not have this restriction. - -#### Inject as function - -The above example in ES5 would start like: - -```javascript -var Button = inject("color")( - observer( - class Button extends Component { - /* ... etc ... */ - } - ) -) -``` - -A functional stateless component would look like: - -```javascript -var Button = inject("color")( - observer(({ color }) => { - /* ... etc ... */ - }) -) -``` - -#### Customizing inject - -Instead of passing a list of store names, it is also possible to create a custom mapper function and pass it to inject. -The mapper function receives all stores as argument, the properties with which the components are invoked and the context, and should produce a new set of properties, -that are mapped into the original: - -`mapperFunction: (allStores, props, context) => additionalProps` - -Since version 4.0 the `mapperFunction` itself is tracked as well, so it is possible to do things like: - -```javascript -const NameDisplayer = ({ name }) =>

{name}

- -const UserNameDisplayer = inject(stores => ({ - name: stores.userStore.name -}))(NameDisplayer) - -const user = mobx.observable({ - name: "Noa" -}) - -const App = () => ( - - - -) - -ReactDOM.render(, document.body) -``` - -_N.B. note that in this *specific* case neither `NameDisplayer` nor `UserNameDisplayer` needs to be decorated with `observer`, since the observable dereferencing is done in the mapper function_ - -#### Using `PropTypes` and `defaultProps` and other static properties in combination with `inject` - -Inject wraps a new component around the component you pass into it. -This means that assigning a static property to the resulting component, will be applied to the HoC, and not to the original component. -So if you take the following example: - -```javascript -const UserName = inject("userStore")(({ userStore, bold }) => someRendering()) - -UserName.propTypes = { - bold: PropTypes.boolean.isRequired, - userStore: PropTypes.object.isRequired // will always fail -} -``` - -The above propTypes are incorrect, `bold` needs to be provided by the caller of the `UserName` component and is checked by React. -However, `userStore` does not need to be required! Although it is required for the original stateless function component, it is not -required for the resulting inject component. After all, the whole point of that component is to provide that `userStore` itself. - -So if you want to make assertions on the data that is being injected (either stores or data resulting from a mapper function), the propTypes -should be defined on the _wrapped_ component. Which is available through the static property `wrappedComponent` on the inject component: - -```javascript -const UserName = inject("userStore")(({ userStore, bold }) => someRendering()) - -UserName.propTypes = { - bold: PropTypes.boolean.isRequired // could be defined either here ... -} - -UserName.wrappedComponent.propTypes = { - // ... or here - userStore: PropTypes.object.isRequired // correct -} -``` - -The same principle applies to `defaultProps` and other static React properties. -Note that it is not allowed to redefine `contextTypes` on `inject` components (but is possible to define it on `wrappedComponent`) - -Finally, mobx-react will automatically move non React related static properties from wrappedComponent to the inject component so that all static fields are -actually available to the outside world without needing `.wrappedComponent`. - -#### Strongly typing inject - -##### With TypeScript - -`inject` also accepts a function (`(allStores, nextProps, nextContext) => additionalProps`) that can be used to pick all the desired stores from the available stores like this. -The `additionalProps` will be merged into the original `nextProps` before being provided to the next component. - -```typescript -import { IUserStore } from "myStore" - -@inject(allStores => ({ - userStore: allStores.userStore as IUserStore -})) -class MyComponent extends React.Component<{ userStore?: IUserStore; otherProp: number }, {}> { - /* etc */ -} -``` - -Make sure to mark `userStore` as an optional property. It should not (necessarily) be passed in by parent components at all! - -Note: If you have strict null checking enabled, you could muffle the nullable type by using the `!` operator: - -``` -public render() { - const {a, b} = this.store! - // ... -} -``` - -#### Testing store injection - -It is allowed to pass any declared store in directly as a property as well. This makes it easy to set up individual component tests without a provider. - -So if you have in your app something like: - -```javascript - - - -``` - -In your test you can easily test the `Person` component by passing the necessary store as prop directly: - -``` -const profile = new Profile() -const mountedComponent = mount( - -) -``` - -Bear in mind that using shallow rendering won't provide any useful results when testing injected components; only the injector will be rendered. -To test with shallow rendering, instantiate the `wrappedComponent` instead: `shallow()` - -### disposeOnUnmount(componentInstance, propertyKey | function | function[]) - -Function (and decorator) that makes sure a function (usually a disposer such as the ones returned by `reaction`, `autorun`, etc.) is automatically executed as part of the componentWillUnmount lifecycle event. - -```javascript -import { disposeOnUnmount } from "mobx-react" - -class SomeComponent extends React.Component { - // decorator version - @disposeOnUnmount - someReactionDisposer = reaction(...) - - // decorator version with arrays - @disposeOnUnmount - someReactionDisposers = [ - reaction(...), - reaction(...) - ] - - - // function version over properties - someReactionDisposer = disposeOnUnmount(this, reaction(...)) - - // function version inside methods - componentDidMount() { - // single function - disposeOnUnmount(this, reaction(...)) - - // or function array - disposeOnUnmount(this, [ - reaction(...), - reaction(...) - ]) - } -} -``` - ## DevTools `mobx-react@6` and higher are no longer compatible with the mobx-react-devtools. diff --git a/packages/mobx-react/__tests__/ObserverComponent.test.tsx b/packages/mobx-react/__tests__/ObserverComponent.test.tsx new file mode 100644 index 0000000000..0f80fe8321 --- /dev/null +++ b/packages/mobx-react/__tests__/ObserverComponent.test.tsx @@ -0,0 +1,42 @@ +import mockConsole from "jest-mock-console" +import * as mobx from "mobx" +import * as React from "react" +import { act, render } from "@testing-library/react" + +import { Observer } from "../src" + +describe("regions should rerender component", () => { + const execute = () => { + const data = mobx.observable.box("hi") + const Comp = () => ( +
+ {() => {data.get()}} +
  • {data.get()}
  • +
    + ) + return { ...render(), data } + } + + test("init state is correct", () => { + const { container } = execute() + expect(container.querySelector("span")!.innerHTML).toBe("hi") + expect(container.querySelector("li")!.innerHTML).toBe("hi") + }) + + test("set the data to hello", async () => { + const { container, data } = execute() + act(() => { + data.set("hello") + }) + expect(container.querySelector("span")!.innerHTML).toBe("hello") + expect(container.querySelector("li")!.innerHTML).toBe("hi") + }) +}) + +it("renders null if no children/render prop is supplied a function", () => { + const restoreConsole = mockConsole() + const Comp = () => + const { container } = render() + expect(container).toMatchInlineSnapshot(`
    `) + restoreConsole() +}) diff --git a/packages/mobx-react/__tests__/Provider.test.tsx b/packages/mobx-react/__tests__/Provider.test.tsx deleted file mode 100644 index effea7a52f..0000000000 --- a/packages/mobx-react/__tests__/Provider.test.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import React from "react" -import { Provider } from "../src" -import { render } from "@testing-library/react" -import { MobXProviderContext } from "../src/Provider" -import { withConsole } from "./utils/withConsole" - -describe("Provider", () => { - it("should work in a simple case", () => { - function A() { - return ( - - {({ foo }) => foo} - - ) - } - - const { container } = render() - expect(container).toHaveTextContent("bar") - }) - - it("should not provide the children prop", () => { - function A() { - return ( - - - {stores => - Reflect.has(stores, "children") - ? "children was provided" - : "children was not provided" - } - - - ) - } - - const { container } = render() - expect(container).toHaveTextContent("children was not provided") - }) - - it("supports overriding stores", () => { - function B() { - return ( - - {({ overridable, nonOverridable }) => `${overridable} ${nonOverridable}`} - - ) - } - - function A() { - return ( - - - - - - - ) - } - const { container } = render() - expect(container).toMatchInlineSnapshot(` -
    - original original - overridden original -
    -`) - }) - - it("should throw an error when changing stores", () => { - function A({ foo }) { - return ( - - {({ foo }) => foo} - - ) - } - - const { rerender } = render(
    ) - - withConsole(() => { - expect(() => { - rerender() - }).toThrow("The set of provided stores has changed.") - }) - }) -}) diff --git a/packages/mobx-react/__tests__/__snapshots__/hooks.test.tsx.snap b/packages/mobx-react/__tests__/__snapshots__/hooks.test.tsx.snap deleted file mode 100644 index 9b95cca6aa..0000000000 --- a/packages/mobx-react/__tests__/__snapshots__/hooks.test.tsx.snap +++ /dev/null @@ -1,24 +0,0 @@ -// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing - -exports[`computed properties react to props when using hooks 1`] = ` -[MockFunction] { - "calls": [ - [ - "[mobx-react-lite] 'useAsObservableSource' is deprecated, please store the values directly in an observable, for example by using 'useLocalObservable', and sync future updates using 'useEffect' when needed. See the README for examples.", - ], - [ - "[mobx-react-lite] 'useLocalStore' is deprecated, use 'useLocalObservable' instead.", - ], - ], - "results": [ - { - "type": "return", - "value": undefined, - }, - { - "type": "return", - "value": undefined, - }, - ], -} -`; diff --git a/packages/mobx-react/__tests__/api.test.tsx b/packages/mobx-react/__tests__/api.test.tsx new file mode 100644 index 0000000000..d14bd4138e --- /dev/null +++ b/packages/mobx-react/__tests__/api.test.tsx @@ -0,0 +1,19 @@ +const api = require("../src/index.ts") + +test("correct api should be exposed", function () { + expect( + Object.keys(api) + .filter(key => api[key] !== undefined) + .sort() + ).toEqual( + [ + "isUsingStaticRendering", + "enableStaticRendering", + "observer", + "Observer", + "useLocalObservable", + "clearTimers", + "_observerFinalizationRegistry" + ].sort() + ) +}) diff --git a/packages/mobx-react/__tests__/context.test.tsx b/packages/mobx-react/__tests__/context.test.tsx deleted file mode 100644 index e88dbda85d..0000000000 --- a/packages/mobx-react/__tests__/context.test.tsx +++ /dev/null @@ -1,134 +0,0 @@ -import React from "react" -import { observable } from "mobx" -import { Provider, observer, inject } from "../src" -import { withConsole } from "./utils/withConsole" -import { render, act } from "@testing-library/react" -import { any } from "prop-types" - -test("no warnings in modern react", () => { - const box = observable.box(3) - const Child = inject("store")( - observer( - class Child extends React.Component { - render() { - return ( -
    - {this.props.store} + {box.get()} -
    - ) - } - } - ) - ) - - class App extends React.Component { - render() { - return ( -
    - - - - - -
    - ) - } - } - - const { container } = render() - expect(container).toHaveTextContent("42 + 3") - - withConsole(["info", "warn", "error"], () => { - act(() => { - box.set(4) - }) - expect(container).toHaveTextContent("42 + 4") - - expect(console.info).not.toHaveBeenCalled() - expect(console.warn).not.toHaveBeenCalled() - expect(console.error).not.toHaveBeenCalled() - }) -}) - -test("getDerivedStateFromProps works #447", () => { - class Main extends React.Component { - static getDerivedStateFromProps(nextProps, prevState) { - return { - count: prevState.count + 1 - } - } - - state = { - count: 0 - } - - render() { - return ( -
    -

    {`${this.state.count ? "One " : "No "}${this.props.thing}`}

    -
    - ) - } - } - - const MainInjected = inject(({ store }: { store: { thing: number } }) => ({ thing: store.thing }))(Main) - - const store = { thing: 3 } - - const App = () => ( - - - - ) - - const { container } = render() - expect(container).toHaveTextContent("One 3") -}) - -test("no double runs for getDerivedStateFromProps", () => { - let derived = 0 - @observer - class Main extends React.Component { - state = { - activePropertyElementMap: {} - } - - constructor(props) { - // console.log("CONSTRUCTOR") - super(props) - } - - static getDerivedStateFromProps() { - derived++ - // console.log("PREVSTATE", nextProps) - return null - } - - render() { - return
    Test-content
    - } - } - // This results in - //PREVSTATE - //CONSTRUCTOR - //PREVSTATE - let MainInjected = inject(() => ({ - componentProp: "def" - }))(Main) - // Uncomment the following line to see default behaviour (without inject) - //CONSTRUCTOR - //PREVSTATE - //MainInjected = Main; - - const store = {} - - const App = () => ( - - - - ) - - const { container } = render() - expect(container).toHaveTextContent("Test-content") - expect(derived).toBe(1) -}) diff --git a/packages/mobx-react/__tests__/disposeOnUnmount.test.tsx b/packages/mobx-react/__tests__/disposeOnUnmount.test.tsx deleted file mode 100644 index e28e20f01a..0000000000 --- a/packages/mobx-react/__tests__/disposeOnUnmount.test.tsx +++ /dev/null @@ -1,489 +0,0 @@ -import React from "react" -import { disposeOnUnmount, observer } from "../src" -import { render } from "@testing-library/react" -import { MockedComponentClass } from "react-dom/test-utils" - -interface ClassC extends MockedComponentClass { - methodA?: any - methodB?: any - methodC?: any - methodD?: any -} - -function testComponent(C: ClassC, afterMount?: Function, afterUnmount?: Function) { - const ref = React.createRef() - const { unmount } = render() - - let cref = ref.current - expect(cref?.methodA).not.toHaveBeenCalled() - expect(cref?.methodB).not.toHaveBeenCalled() - if (afterMount) { - afterMount(cref) - } - - unmount() - - expect(cref?.methodA).toHaveBeenCalledTimes(1) - expect(cref?.methodB).toHaveBeenCalledTimes(1) - if (afterUnmount) { - afterUnmount(cref) - } -} - -describe("without observer", () => { - test("class without componentWillUnmount", async () => { - class C extends React.Component { - @disposeOnUnmount - methodA = jest.fn() - @disposeOnUnmount - methodB = jest.fn() - @disposeOnUnmount - methodC = null - @disposeOnUnmount - methodD = undefined - - render() { - return null - } - } - - testComponent(C) - }) - - test("class with componentWillUnmount in the prototype", () => { - let called = 0 - - class C extends React.Component { - @disposeOnUnmount - methodA = jest.fn() - @disposeOnUnmount - methodB = jest.fn() - @disposeOnUnmount - methodC = null - @disposeOnUnmount - methodD = undefined - - render() { - return null - } - - componentWillUnmount() { - called++ - } - } - - testComponent( - C, - () => { - expect(called).toBe(0) - }, - () => { - expect(called).toBe(1) - } - ) - }) - - test.skip("class with componentWillUnmount as an arrow function", () => { - let called = 0 - - class C extends React.Component { - @disposeOnUnmount - methodA = jest.fn() - @disposeOnUnmount - methodB = jest.fn() - @disposeOnUnmount - methodC = null - @disposeOnUnmount - methodD = undefined - - render() { - return null - } - - componentWillUnmount = () => { - called++ - } - } - - testComponent( - C, - () => { - expect(called).toBe(0) - }, - () => { - expect(called).toBe(1) - } - ) - }) - - test("class without componentWillUnmount using non decorator version", () => { - let methodC = jest.fn() - let methodD = jest.fn() - class C extends React.Component { - render() { - return null - } - - methodA = disposeOnUnmount(this, jest.fn()) - methodB = disposeOnUnmount(this, jest.fn()) - - constructor(props) { - super(props) - disposeOnUnmount(this, [methodC, methodD]) - } - } - - testComponent( - C, - () => { - expect(methodC).not.toHaveBeenCalled() - expect(methodD).not.toHaveBeenCalled() - }, - () => { - expect(methodC).toHaveBeenCalledTimes(1) - expect(methodD).toHaveBeenCalledTimes(1) - } - ) - }) -}) - -describe("with observer", () => { - test("class without componentWillUnmount", () => { - @observer - class C extends React.Component { - @disposeOnUnmount - methodA = jest.fn() - @disposeOnUnmount - methodB = jest.fn() - @disposeOnUnmount - methodC = null - @disposeOnUnmount - methodD = undefined - - render() { - return null - } - } - - testComponent(C) - }) - - test("class with componentWillUnmount in the prototype", () => { - let called = 0 - - @observer - class C extends React.Component { - @disposeOnUnmount - methodA = jest.fn() - @disposeOnUnmount - methodB = jest.fn() - @disposeOnUnmount - methodC = null - @disposeOnUnmount - methodD = undefined - - render() { - return null - } - - componentWillUnmount() { - called++ - } - } - - testComponent( - C, - () => { - expect(called).toBe(0) - }, - () => { - expect(called).toBe(1) - } - ) - }) - - test.skip("class with componentWillUnmount as an arrow function", () => { - let called = 0 - - @observer - class C extends React.Component { - @disposeOnUnmount - methodA = jest.fn() - @disposeOnUnmount - methodB = jest.fn() - @disposeOnUnmount - methodC = null - @disposeOnUnmount - methodD = undefined - - render() { - return null - } - - componentWillUnmount = () => { - called++ - } - } - - testComponent( - C, - () => { - expect(called).toBe(0) - }, - () => { - expect(called).toBe(1) - } - ) - }) - - test("class without componentWillUnmount using non decorator version", () => { - let methodC = jest.fn() - let methodD = jest.fn() - - @observer - class C extends React.Component { - render() { - return null - } - - methodA = disposeOnUnmount(this, jest.fn()) - methodB = disposeOnUnmount(this, jest.fn()) - - constructor(props) { - super(props) - disposeOnUnmount(this, [methodC, methodD]) - } - } - - testComponent( - C, - () => { - expect(methodC).not.toHaveBeenCalled() - expect(methodD).not.toHaveBeenCalled() - }, - () => { - expect(methodC).toHaveBeenCalledTimes(1) - expect(methodD).toHaveBeenCalledTimes(1) - } - ) - }) -}) - -it("componentDidMount should be different between components", () => { - function doTest(withObserver) { - const events: Array = [] - - class A extends React.Component { - didMount - willUnmount - - componentDidMount() { - this.didMount = "A" - events.push("mountA") - } - - componentWillUnmount() { - this.willUnmount = "A" - events.push("unmountA") - } - - render() { - return null - } - } - - class B extends React.Component { - didMount - willUnmount - - componentDidMount() { - this.didMount = "B" - events.push("mountB") - } - - componentWillUnmount() { - this.willUnmount = "B" - events.push("unmountB") - } - - render() { - return null - } - } - - if (withObserver) { - // @ts-ignore - // eslint-disable-next-line no-class-assign - A = observer(A) - // @ts-ignore - // eslint-disable-next-line no-class-assign - B = observer(B) - } - - const aRef = React.createRef
    () - const { rerender, unmount } = render() - const caRef = aRef.current - - expect(caRef?.didMount).toBe("A") - expect(caRef?.willUnmount).toBeUndefined() - expect(events).toEqual(["mountA"]) - - const bRef = React.createRef() - rerender() - const cbRef = bRef.current - - expect(caRef?.didMount).toBe("A") - expect(caRef?.willUnmount).toBe("A") - - expect(cbRef?.didMount).toBe("B") - expect(cbRef?.willUnmount).toBeUndefined() - expect(events).toEqual(["mountA", "unmountA", "mountB"]) - - unmount() - - expect(caRef?.didMount).toBe("A") - expect(caRef?.willUnmount).toBe("A") - - expect(cbRef?.didMount).toBe("B") - expect(cbRef?.willUnmount).toBe("B") - expect(events).toEqual(["mountA", "unmountA", "mountB", "unmountB"]) - } - - doTest(true) - doTest(false) -}) - -test("base cWU should not be called if overridden", () => { - let baseCalled = 0 - let dCalled = 0 - let oCalled = 0 - - class C extends React.Component { - componentWillUnmount() { - baseCalled++ - } - - constructor(props) { - super(props) - this.componentWillUnmount = () => { - oCalled++ - } - } - - render() { - return null - } - - @disposeOnUnmount - fn() { - dCalled++ - } - } - const { unmount } = render() - unmount() - expect(dCalled).toBe(1) - expect(oCalled).toBe(1) - expect(baseCalled).toBe(0) -}) - -test("should error on inheritance", () => { - class C extends React.Component { - render() { - return null - } - } - - expect(() => { - // eslint-disable-next-line no-unused-vars - class B extends C { - @disposeOnUnmount - fn() {} - } - }).toThrow("disposeOnUnmount only supports direct subclasses") -}) - -test("should error on inheritance - 2", () => { - class C extends React.Component { - render() { - return null - } - } - - class B extends C { - fn - constructor(props) { - super(props) - expect(() => { - this.fn = disposeOnUnmount(this, function () {}) - }).toThrow("disposeOnUnmount only supports direct subclasses") - } - } - - render() -}) - -describe("should work with arrays", () => { - test("as a function", () => { - class C extends React.Component { - methodA = jest.fn() - methodB = jest.fn() - - componentDidMount() { - disposeOnUnmount(this, [this.methodA, this.methodB]) - } - - render() { - return null - } - } - - testComponent(C) - }) - - test("as a decorator", () => { - class C extends React.Component { - methodA = jest.fn() - methodB = jest.fn() - - @disposeOnUnmount - disposers = [this.methodA, this.methodB] - - render() { - return null - } - } - - testComponent(C) - }) -}) - -it("runDisposersOnUnmount only runs disposers from the declaring instance", () => { - class A extends React.Component { - @disposeOnUnmount - a = jest.fn() - - b = jest.fn() - - constructor(props) { - super(props) - disposeOnUnmount(this, this.b) - } - - render() { - return null - } - } - - const ref1 = React.createRef() - const ref2 = React.createRef() - const { unmount } = render() - render() - const inst1 = ref1.current - const inst2 = ref2.current - unmount() - - expect(inst1?.a).toHaveBeenCalledTimes(1) - expect(inst1?.b).toHaveBeenCalledTimes(1) - expect(inst2?.a).toHaveBeenCalledTimes(0) - expect(inst2?.b).toHaveBeenCalledTimes(0) -}) diff --git a/packages/mobx-react/__tests__/enforceActions.test.tsx b/packages/mobx-react/__tests__/enforceActions.test.tsx new file mode 100644 index 0000000000..1758129dc3 --- /dev/null +++ b/packages/mobx-react/__tests__/enforceActions.test.tsx @@ -0,0 +1,66 @@ +import * as mobx from "mobx" +import * as React from "react" +import { useEffect } from "react" +import { observer, useLocalObservable } from "../src" +import { render } from "@testing-library/react" + +let consoleWarnMock: jest.SpyInstance | undefined + +describe("enforcing actions", () => { + it("'never' should work", () => { + consoleWarnMock = jest.spyOn(console, "warn").mockImplementation(() => {}) + mobx.configure({ enforceActions: "never" }) + + const Parent = observer(() => { + const obs = useLocalObservable(() => ({ + x: 1 + })) + useEffect(() => { + obs.x++ + }, []) + + return
    {obs.x}
    + }) + + render() + expect(consoleWarnMock).not.toHaveBeenCalled() + }) + + it("'observed' should work", () => { + consoleWarnMock = jest.spyOn(console, "warn").mockImplementation(() => {}) + mobx.configure({ enforceActions: "observed" }) + + const Parent = observer(() => { + const obs = useLocalObservable(() => ({ + x: 1 + })) + useEffect(() => { + obs.x++ + }, []) + + return
    {obs.x}
    + }) + + render() + expect(consoleWarnMock).toHaveBeenCalledTimes(1) + }) + + it("'always' should work", () => { + consoleWarnMock = jest.spyOn(console, "warn").mockImplementation(() => {}) + mobx.configure({ enforceActions: "always" }) + + const Parent = observer(() => { + const obs = useLocalObservable(() => ({ + x: 1 + })) + useEffect(() => { + obs.x++ + }, []) + + return
    {obs.x}
    + }) + + render() + expect(consoleWarnMock).toHaveBeenCalledTimes(1) + }) +}) diff --git a/packages/mobx-react/__tests__/hooks.test.tsx b/packages/mobx-react/__tests__/hooks.test.tsx deleted file mode 100644 index a56ec15d53..0000000000 --- a/packages/mobx-react/__tests__/hooks.test.tsx +++ /dev/null @@ -1,101 +0,0 @@ -import React from "react" -import { observer, Observer, useLocalStore, useAsObservableSource } from "../src" -import { render, act } from "@testing-library/react" - -afterEach(() => { - jest.useRealTimers() -}) - -let consoleWarnMock: jest.SpyInstance | undefined -afterEach(() => { - consoleWarnMock?.mockRestore() -}) - -test("computed properties react to props when using hooks", async () => { - jest.useFakeTimers() - consoleWarnMock = jest.spyOn(console, "warn").mockImplementation(() => {}) - - const seen: Array = [] - - const Child = ({ x }) => { - const props = useAsObservableSource({ x }) - const store = useLocalStore(() => ({ - get getPropX() { - return props.x - } - })) - - return ( - {() => (seen.push(store.getPropX), (
    {store.getPropX}
    ))}
    - ) - } - - const Parent = () => { - const [state, setState] = React.useState({ x: 0 }) - seen.push("parent") - React.useEffect(() => { - setTimeout(() => { - act(() => { - setState({ x: 2 }) - }) - }) - }, []) - return - } - - const { container } = render() - expect(container).toHaveTextContent("0") - - act(() => { - jest.runAllTimers() - }) - expect(seen).toEqual(["parent", 0, "parent", 2, 2]) - expect(container).toHaveTextContent("2") - expect(consoleWarnMock).toMatchSnapshot() -}) - -test("computed properties result in double render when using observer instead of Observer", async () => { - jest.useFakeTimers() - - const seen: Array = [] - - const Child = observer(({ x }) => { - const props = useAsObservableSource({ x }) - const store = useLocalStore(() => ({ - get getPropX() { - return props.x - } - })) - - seen.push(store.getPropX) - return
    {store.getPropX}
    - }) - - const Parent = () => { - const [state, setState] = React.useState({ x: 0 }) - seen.push("parent") - React.useEffect(() => { - setTimeout(() => { - act(() => { - setState({ x: 2 }) - }) - }, 100) - }, []) - return - } - - const { container } = render() - expect(container).toHaveTextContent("0") - - act(() => { - jest.runAllTimers() - }) - expect(seen).toEqual([ - "parent", - 0, - "parent", - 2, // props changed - 2 // observable source changed (setState during render) - ]) - expect(container).toHaveTextContent("2") -}) diff --git a/packages/mobx-react/__tests__/inject.test.tsx b/packages/mobx-react/__tests__/inject.test.tsx deleted file mode 100644 index 6f97ac25e2..0000000000 --- a/packages/mobx-react/__tests__/inject.test.tsx +++ /dev/null @@ -1,553 +0,0 @@ -import React from "react" -import PropTypes from "prop-types" -import { action, observable, makeObservable } from "mobx" -import { observer, inject, Provider } from "../src" -import { IValueMap } from "../src/types/IValueMap" -import { render, act } from "@testing-library/react" -import { withConsole } from "./utils/withConsole" -import { IReactComponent } from "../src/types/IReactComponent" - -describe("inject based context", () => { - test("basic context", () => { - const C = inject("foo")( - observer( - class X extends React.Component { - render() { - return ( -
    - context: - {this.props.foo} -
    - ) - } - } - ) - ) - const B = () => - const A = () => ( - - - - ) - const { container } = render(
    ) - expect(container).toHaveTextContent("context:bar") - }) - - test("props override context", () => { - const C = inject("foo")( - class T extends React.Component { - render() { - return ( -
    - context: - {this.props.foo} -
    - ) - } - } - ) - const B = () => - const A = class T extends React.Component { - render() { - return ( - - - - ) - } - } - const { container } = render(
    ) - expect(container).toHaveTextContent("context:42") - }) - - test("wraps displayName of original component", () => { - const A: React.ComponentClass = inject("foo")( - class ComponentA extends React.Component { - render() { - return ( -
    - context: - {this.props.foo} -
    - ) - } - } - ) - const B: React.ComponentClass = inject()( - class ComponentB extends React.Component { - render() { - return ( -
    - context: - {this.props.foo} -
    - ) - } - } - ) - const C: React.ComponentClass = inject(() => ({}))( - class ComponentC extends React.Component { - render() { - return ( -
    - context: - {this.props.foo} -
    - ) - } - } - ) - expect(A.displayName).toBe("inject-with-foo(ComponentA)") - expect(B.displayName).toBe("inject(ComponentB)") - expect(C.displayName).toBe("inject(ComponentC)") - }) - - test("shouldn't change original displayName of component that uses forwardRef", () => { - const FancyComp = React.forwardRef((_: any, ref: React.Ref) => { - return
    - }) - FancyComp.displayName = "FancyComp" - - inject("bla")(FancyComp) - - expect(FancyComp.displayName).toBe("FancyComp") - }) - - // FIXME: see other comments related to error catching in React - // test does work as expected when running manually - test("store should be available", () => { - const C = inject("foo")( - observer( - class C extends React.Component { - render() { - return ( -
    - context: - {this.props.foo} -
    - ) - } - } - ) - ) - const B = () => - const A = class A extends React.Component { - render() { - return ( - - - - ) - } - } - - withConsole(() => { - expect(() => render(
    )).toThrow( - /Store 'foo' is not available! Make sure it is provided by some Provider/ - ) - }) - }) - - test("store is not required if prop is available", () => { - const C = inject("foo")( - observer( - class C extends React.Component { - render() { - return ( -
    - context: - {this.props.foo} -
    - ) - } - } - ) - ) - const B = () => - const { container } = render() - expect(container).toHaveTextContent("context:bar") - }) - - test("inject merges (and overrides) props", () => { - const C = inject(() => ({ a: 1 }))( - observer( - class C extends React.Component { - render() { - expect(this.props).toEqual({ a: 1, b: 2 }) - return null - } - } - ) - ) - const B = () => - render() - }) - - test("custom storesToProps", () => { - const C = inject((stores: IValueMap, props: any) => { - expect(stores).toEqual({ foo: "bar" }) - expect(props).toEqual({ baz: 42 }) - return { - zoom: stores.foo, - baz: props.baz * 2 - } - })( - observer( - class C extends React.Component { - render() { - return ( -
    - context: - {this.props.zoom} - {this.props.baz} -
    - ) - } - } - ) - ) - const B = class B extends React.Component { - render() { - return - } - } - const A = () => ( - - - - ) - const { container } = render(
    ) - expect(container).toHaveTextContent("context:bar84") - }) - - test("inject forwards ref", () => { - class FancyComp extends React.Component { - didRender - render() { - this.didRender = true - return null - } - - doSomething() {} - } - - const ref = React.createRef() - render() - expect(typeof ref.current?.doSomething).toBe("function") - expect(ref.current?.didRender).toBe(true) - - const InjectedFancyComp = inject("bla")(FancyComp) - const ref2 = React.createRef() - - render( - - - - ) - - expect(typeof ref2.current?.doSomething).toBe("function") - expect(ref2.current?.didRender).toBe(true) - }) - - test("inject should work with components that use forwardRef", () => { - const FancyComp = React.forwardRef((_: any, ref: React.Ref) => { - return
    - }) - - const InjectedFancyComp = inject("bla")(FancyComp) - const ref = React.createRef() - - render( - - - - ) - - expect(ref.current).not.toBeNull() - expect(ref.current).toBeInstanceOf(HTMLDivElement) - }) - - test("support static hoisting, wrappedComponent and ref forwarding", () => { - class B extends React.Component { - static foo - static bar - testField - - render() { - this.testField = 1 - return null - } - } - ;(B as React.ComponentClass).propTypes = { - x: PropTypes.object - } - B.foo = 17 - B.bar = {} - const C = inject("booh")(B) - expect(C.wrappedComponent).toBe(B) - expect(B.foo).toBe(17) - expect(C.foo).toBe(17) - expect(C.bar === B.bar).toBeTruthy() - expect(Object.keys(C.wrappedComponent.propTypes!)).toEqual(["x"]) - - const ref = React.createRef() - - render() - expect(ref.current?.testField).toBe(1) - }) - - // skipping because `propTypes` and `defaultProps` are dropped in React 19 - test.skip("propTypes and defaultProps are forwarded", () => { - const msg: Array = [] - const baseError = console.error - console.error = m => msg.push(m) - - const C: React.ComponentClass = inject("foo")( - class C extends React.Component { - render() { - expect(this.props.y).toEqual(3) - - expect(this.props.x).toBeUndefined() - return null - } - } - ) - C.propTypes = { - x: PropTypes.func.isRequired, - z: PropTypes.string.isRequired - } - // @ts-ignore - C.wrappedComponent.propTypes = { - a: PropTypes.func.isRequired - } - C.defaultProps = { - y: 3 - } - const B = () => - const A = () => ( - - - - ) - render() - expect(msg.length).toBe(2) - // ! Somehow this got broken with upgraded deps and wasn't worth fixing it :) - // expect(msg[0].split("\n")[0]).toBe( - // "Warning: Failed prop type: The prop `x` is marked as required in `inject-with-foo(C)`, but its value is `undefined`." - // ) - // expect(msg[1].split("\n")[0]).toBe( - // "Warning: Failed prop type: The prop `a` is marked as required in `C`, but its value is `undefined`." - // ) - console.error = baseError - }) - - test("warning is not printed when attaching propTypes to injected component", () => { - let msg = [] - const baseWarn = console.warn - console.warn = m => (msg = m) - - const C: React.ComponentClass = inject("foo")( - class C extends React.Component { - render() { - return ( -
    - context: - {this.props.foo} -
    - ) - } - } - ) - C.propTypes = {} - - expect(msg.length).toBe(0) - console.warn = baseWarn - }) - - test("warning is not printed when attaching propTypes to wrappedComponent", () => { - let msg = [] - const baseWarn = console.warn - console.warn = m => (msg = m) - const C = inject("foo")( - class C extends React.Component { - render() { - return ( -
    - context: - {this.props.foo} -
    - ) - } - } - ) - C.wrappedComponent.propTypes = {} - expect(msg.length).toBe(0) - console.warn = baseWarn - }) - - test("using a custom injector is reactive", () => { - const user = observable({ name: "Noa" }) - const mapper = stores => ({ name: stores.user.name }) - const DisplayName = props =>

    {props.name}

    - const User = inject(mapper)(DisplayName) - const App = () => ( - - - - ) - const { container } = render() - expect(container).toHaveTextContent("Noa") - - act(() => { - user.name = "Veria" - }) - expect(container).toHaveTextContent("Veria") - }) - - test("using a custom injector is not too reactive", () => { - let listRender = 0 - let itemRender = 0 - let injectRender = 0 - - function connect() { - const args = arguments - return (component: IReactComponent) => - // @ts-ignore - inject.apply(this, args)(observer(component)) - } - - class State { - @observable - highlighted = null - isHighlighted(item) { - return this.highlighted == item - } - - @action - highlight = item => { - this.highlighted = item - } - - constructor() { - makeObservable(this) - } - } - - const items = observable([ - { title: "ItemA" }, - { title: "ItemB" }, - { title: "ItemC" }, - { title: "ItemD" }, - { title: "ItemE" }, - { title: "ItemF" } - ]) - - const state = new State() - - class ListComponent extends React.PureComponent { - render() { - listRender++ - const { items } = this.props - - return ( -
      - {items.map(item => ( - - ))} -
    - ) - } - } - - // @ts-ignore - @connect(({ state }, { item }) => { - injectRender++ - if (injectRender > 6) { - // debugger; - } - return { - // Using - // highlighted: expr(() => state.isHighlighted(item)) // seems to fix the problem - highlighted: state.isHighlighted(item), - highlight: state.highlight - } - }) - class ItemComponent extends React.PureComponent { - highlight = () => { - const { item, highlight } = this.props - highlight(item) - } - - render() { - itemRender++ - const { highlighted, item } = this.props - return ( -
  • - {item.title} {highlighted ? "(highlighted)" : ""}{" "} -
  • - ) - } - } - - const { container } = render( - - - - ) - - expect(listRender).toBe(1) - expect(injectRender).toBe(6) - expect(itemRender).toBe(6) - - act(() => { - container - .querySelectorAll(".hl_ItemB") - .forEach((e: Element) => (e as HTMLElement).click()) - }) - - expect(listRender).toBe(1) - expect(injectRender).toBe(12) // ideally, 7 - expect(itemRender).toBe(7) - act(() => { - container - .querySelectorAll(".hl_ItemF") - .forEach((e: Element) => (e as HTMLElement).click()) - }) - - expect(listRender).toBe(1) - expect(injectRender).toBe(18) // ideally, 9 - expect(itemRender).toBe(9) - }) -}) - -test("#612 - mixed context types", () => { - const SomeContext = React.createContext(true) - - class MainCompClass extends React.Component { - static contextType = SomeContext - render() { - let active = this.context - return active ? this.props.value : "Inactive" - } - } - - const MainComp = inject((stores: any) => ({ - value: stores.appState.value - }))(MainCompClass) - - const appState = observable({ - value: "Something" - }) - - function App() { - return ( - - - - - - ) - } - - render() -}) diff --git a/packages/mobx-react/__tests__/issue21.test.tsx b/packages/mobx-react/__tests__/issue21.test.tsx index 99c8c3d792..13086a5f5f 100644 --- a/packages/mobx-react/__tests__/issue21.test.tsx +++ b/packages/mobx-react/__tests__/issue21.test.tsx @@ -3,6 +3,7 @@ import { computed, isObservable, observable, + observableRef, reaction, transaction, IReactionDisposer, @@ -50,7 +51,7 @@ const wizardModel = observable( } } as any, { - activateNextStep: observable.ref + activateNextStep: observableRef } ) @@ -123,27 +124,23 @@ test("verify issue 21", () => { test("verify prop changes are picked up", () => { function createItem(subid, label) { - const res = observable( - { - subid, - id: 1, - label: label, - get text() { - events.push(["compute", this.subid]) - return ( - this.id + - "." + - this.subid + - "." + - this.label + - "." + - data.items.indexOf(this as any) - ) - } - }, - {}, - { proxy: false } - ) + const res = observable({ + subid, + id: 1, + label: label, + get text() { + events.push(["compute", this.subid]) + return ( + this.id + + "." + + this.subid + + "." + + this.label + + "." + + data.items.indexOf(this as any) + ) + } + }) res.subid = subid // non reactive return res } diff --git a/packages/mobx-react/__tests__/observer.test.tsx b/packages/mobx-react/__tests__/observer.test.tsx index d4c03d7de2..1a3dc4f256 100644 --- a/packages/mobx-react/__tests__/observer.test.tsx +++ b/packages/mobx-react/__tests__/observer.test.tsx @@ -1,10 +1,9 @@ import React, { StrictMode, Suspense } from "react" -import { inject, observer, Observer, enableStaticRendering } from "../src" +import { observer, Observer, enableStaticRendering } from "../src" import { render, act, waitFor } from "@testing-library/react" import { getObserverTree, _getGlobalState, - _resetGlobalState, action, computed, observable, @@ -21,14 +20,7 @@ import { shallowEqual } from "../src/utils/utils" * some test suite is too tedious */ -afterEach(() => { - jest.useRealTimers() -}) - let consoleWarnMock: jest.SpyInstance | undefined -afterEach(() => { - consoleWarnMock?.mockRestore() -}) /* use TestUtils.renderIntoDocument will re-mounted the component with different props @@ -313,37 +305,6 @@ test("changing state in render should fail", () => { render() act(() => data.set(3)) - _resetGlobalState() -}) - -test("observer component can be injected", () => { - const msg: Array = [] - const baseWarn = console.warn - console.warn = m => msg.push(m) - - inject("foo")( - observer( - class T extends React.Component { - render() { - return null - } - } - ) - ) - - // N.B, the injected component will be observer since mobx-react 4.0! - inject(() => ({}))( - observer( - class T extends React.Component { - render() { - return null - } - } - ) - ) - - expect(msg.length).toBe(0) - console.warn = baseWarn }) test("correctly wraps display name of child component", () => { @@ -363,51 +324,37 @@ test("correctly wraps display name of child component", () => { expect((B as any).type.displayName).toEqual(undefined) }) -describe("124 - react to changes in this.props via computed", () => { - class T extends React.Component { - @computed - get computedProp() { - return this.props.x - } - render() { - return ( - - x: - {this.computedProp} - - ) - } - } - - const Comp = observer(T) - - class Parent extends React.Component { - state = { v: 1 } - render() { - return ( -
    this.setState({ v: 2 })}> - -
    - ) - } - } +test("MobX computed getters cannot read class props", () => { + const consoleErrorSpy = jest.spyOn(console, "error").mockImplementation(() => {}) - test("init state is correct", () => { - const { container } = render() + const Comp = observer( + class TestCmp extends React.Component<{ x: number }> { + constructor(props) { + super(props) + makeObservable(this, { + computedProp: computed + }) + } - expect(container).toHaveTextContent("x:1") - }) + get computedProp() { + return this.props.x + } - test("change after click", () => { - const { container } = render() + render() { + return {this.computedProp} + } + } + ) - act(() => container.querySelector("div")!.click()) - expect(container).toHaveTextContent("x:2") - }) + try { + expect(() => render()).toThrow( + /^\[mobx-react\] Cannot read "TestCmp.props" in a reactive context/ + ) + } finally { + consoleErrorSpy.mockRestore() + } }) -// Test on skip: since all reactions are now run in batched updates, the original issues can no longer be reproduced -//this test case should be deprecated? test("should stop updating if error was thrown in render (#134)", () => { const data = observable.box(0) let renderingsCount = 0 @@ -517,21 +464,16 @@ describe("should render component even if setState called with exactly the same }) }) -test("it rerenders correctly if some props are non-observables - 1", () => { +test("class observer rerenders from observable prop and rereads plain prop", () => { let odata = observable({ x: 1 }) let data = { y: 1 } @observer class Comp extends React.Component { - @computed - get computed() { - // n.b: data.y would not rerender! shallowly new equal props are not stored - return this.props.odata.x - } render() { return ( - {this.props.odata.x}-{this.props.data.y}-{this.computed} + {this.props.odata.x}-{this.props.data.y}-{this.props.odata.x} ) } @@ -540,7 +482,6 @@ test("it rerenders correctly if some props are non-observables - 1", () => { const Parent = observer( class Parent extends React.Component { render() { - // this.props.odata.x; return } } @@ -562,50 +503,6 @@ test("it rerenders correctly if some props are non-observables - 1", () => { expect(container).toHaveTextContent("3-3-3") }) -test("it rerenders correctly if some props are non-observables - 2", () => { - let renderCount = 0 - let odata = observable({ x: 1 }) - - @observer - class Component extends React.PureComponent { - @computed - get computed() { - return this.props.data.y // should recompute, since props.data is changed - } - - render() { - renderCount++ - return ( - - {this.props.data.y}-{this.computed} - - ) - } - } - - const Parent = observer(props => { - let data = { y: props.odata.x } - return - }) - - function stuff() { - odata.x++ - } - - const { container } = render() - - expect(renderCount).toBe(1) - expect(container).toHaveTextContent("1-1") - - act(() => stuff()) - expect(renderCount).toBe(2) - expect(container).toHaveTextContent("2-2") - - act(() => stuff()) - expect(renderCount).toBe(3) - expect(container).toHaveTextContent("3-3") -}) - describe("Observer regions should react", () => { let data const Comp = () => ( @@ -671,28 +568,34 @@ test("parent / childs render in the right order", () => { let events: Array = [] class User { - @observable name = "User's name" + + constructor() { + makeObservable(this, { + name: observable + }) + } } class Store { - @observable user: User | null = new User() - @action + logout() { this.user = null } + constructor() { - makeObservable(this) + makeObservable(this, { + user: observable, + logout: action + }) } } function tryLogout() { try { - // ReactDOM.unstable_batchedUpdates(() => { store.logout() expect(true).toBeTruthy() - // }); } catch (e) { // t.fail(e) } @@ -722,8 +625,8 @@ test("parent / childs render in the right order", () => { expect(events).toEqual(["parent", "child", "parent"]) }) -describe("use Observer inject and render sugar should work ", () => { - test("use render without inject should be correct", () => { +describe("Observer render sugar should work", () => { + test("use render should be correct", () => { const Comp = () => (
    {123}} /> @@ -733,7 +636,7 @@ describe("use Observer inject and render sugar should work ", () => { expect(container).toHaveTextContent("123") }) - test("use children without inject should be correct", () => { + test("use children should be correct", () => { const Comp = () => (
    {() => {123}} @@ -750,6 +653,7 @@ describe("use Observer inject and render sugar should work ", () => { const Comp = () => (
    + {/* @ts-expect-error render and children are mutually exclusive */} {123}}>{() => {123}}
    ) @@ -789,46 +693,6 @@ test("static on function components are hoisted", () => { expect(Comp2.foo).toBe(3) }) -test("computed properties react to props", () => { - jest.useFakeTimers() - - const seen: Array = [] - @observer - class Child extends React.Component { - @computed - get getPropX() { - return this.props.x - } - - render() { - seen.push(this.getPropX) - return
    {this.getPropX}
    - } - } - - class Parent extends React.Component { - state = { x: 0 } - render() { - seen.push("parent") - return - } - - componentDidMount() { - setTimeout(() => this.setState({ x: 2 }), 100) - } - } - - const { container } = render() - expect(container).toHaveTextContent("0") - - act(() => { - jest.runAllTimers() - }) - expect(container).toHaveTextContent("2") - - expect(seen).toEqual(["parent", 0, "parent", 2]) -}) - test("#692 - componentDidUpdate is triggered", () => { jest.useFakeTimers() @@ -836,15 +700,16 @@ test("#692 - componentDidUpdate is triggered", () => { @observer class Test extends React.Component { - @observable counter = 0 - @action inc = () => this.counter++ constructor(props) { super(props) - makeObservable(this) + makeObservable(this, { + counter: observable, + inc: action + }) setTimeout(() => this.inc(), 300) } @@ -1115,6 +980,35 @@ test(`Observable changes in componenWillUnmount don't cause any warnings or erro consoleWarnSpy.mockRestore() }) +test("Class observer cleans up when componentWillUnmount is assigned on the instance", () => { + const o = observable.box(0) + let unmounts = 0 + + const TestCmp = observer( + class TestCmp extends React.Component { + constructor(props) { + super(props) + ;(this as any).componentWillUnmount = () => { + unmounts++ + } + } + + render() { + return o.get() + } + } + ) + + const { container, unmount } = render() + expect(container).toHaveTextContent("0") + expect(getObserverTree(o).observers!.length).toBe(1) + + unmount() + + expect(unmounts).toBe(1) + expect(getObserverTree(o).observers).toBe(undefined) +}) + test(`Observable prop workaround`, () => { configure({ enforceActions: "observed" diff --git a/packages/mobx-react/__tests__/propTypes.test.ts b/packages/mobx-react/__tests__/propTypes.test.ts deleted file mode 100644 index 6f5a7aa10d..0000000000 --- a/packages/mobx-react/__tests__/propTypes.test.ts +++ /dev/null @@ -1,216 +0,0 @@ -import PropTypes from "prop-types" -import { PropTypes as MRPropTypes } from "../src" -import { observable } from "mobx" - -// Cause `checkPropTypes` caches errors and doesn't print them twice.... -// https://github.com/facebook/prop-types/issues/91 -let testComponentId = 0 - -function typeCheckFail(declaration, value, message) { - const baseError = console.error - let error = "" - console.error = msg => { - error = msg - } - - const props = { testProp: value } - const propTypes = { testProp: declaration } - - const compId = "testComponent" + ++testComponentId - PropTypes.checkPropTypes(propTypes, props, "prop", compId) - - error = error.replace(compId, "testComponent") - expect(error).toBe("Warning: Failed prop type: " + message) - console.error = baseError -} - -function typeCheckFailRequiredValues(declaration) { - const baseError = console.error - let error = "" - console.error = msg => { - error = msg - } - - const propTypes = { testProp: declaration } - const specifiedButIsNullMsg = /but its value is `null`\./ - const unspecifiedMsg = /but its value is `undefined`\./ - - const props1 = { testProp: null } - PropTypes.checkPropTypes(propTypes, props1, "testProp", "testComponent" + ++testComponentId) - expect(specifiedButIsNullMsg.test(error)).toBeTruthy() - - error = "" - const props2 = { testProp: undefined } - PropTypes.checkPropTypes(propTypes, props2, "testProp", "testComponent" + ++testComponentId) - expect(unspecifiedMsg.test(error)).toBeTruthy() - - error = "" - const props3 = {} - PropTypes.checkPropTypes(propTypes, props3, "testProp", "testComponent" + ++testComponentId) - expect(unspecifiedMsg.test(error)).toBeTruthy() - - console.error = baseError -} - -function typeCheckPass(declaration: any, value?: any) { - const props = { testProp: value } - const error = PropTypes.checkPropTypes( - { testProp: declaration }, - props, - "testProp", - "testComponent" + ++testComponentId - ) - expect(error).toBeUndefined() -} - -test("Valid values", () => { - typeCheckPass(MRPropTypes.observableArray, observable([])) - typeCheckPass(MRPropTypes.observableArrayOf(PropTypes.string), observable([""])) - typeCheckPass(MRPropTypes.arrayOrObservableArray, observable([])) - typeCheckPass(MRPropTypes.arrayOrObservableArray, []) - typeCheckPass(MRPropTypes.arrayOrObservableArrayOf(PropTypes.string), observable([""])) - typeCheckPass(MRPropTypes.arrayOrObservableArrayOf(PropTypes.string), [""]) - typeCheckPass(MRPropTypes.observableObject, observable({})) - typeCheckPass(MRPropTypes.objectOrObservableObject, {}) - typeCheckPass(MRPropTypes.objectOrObservableObject, observable({})) - typeCheckPass(MRPropTypes.observableMap, observable(observable.map({}, { deep: false }))) -}) - -test("should be implicitly optional and not warn", () => { - typeCheckPass(MRPropTypes.observableArray) - typeCheckPass(MRPropTypes.observableArrayOf(PropTypes.string)) - typeCheckPass(MRPropTypes.arrayOrObservableArray) - typeCheckPass(MRPropTypes.arrayOrObservableArrayOf(PropTypes.string)) - typeCheckPass(MRPropTypes.observableObject) - typeCheckPass(MRPropTypes.objectOrObservableObject) - typeCheckPass(MRPropTypes.observableMap) -}) - -test("should warn for missing required values, function (test)", () => { - typeCheckFailRequiredValues(MRPropTypes.observableArray.isRequired) - typeCheckFailRequiredValues(MRPropTypes.observableArrayOf(PropTypes.string).isRequired) - typeCheckFailRequiredValues(MRPropTypes.arrayOrObservableArray.isRequired) - typeCheckFailRequiredValues(MRPropTypes.arrayOrObservableArrayOf(PropTypes.string).isRequired) - typeCheckFailRequiredValues(MRPropTypes.observableObject.isRequired) - typeCheckFailRequiredValues(MRPropTypes.objectOrObservableObject.isRequired) - typeCheckFailRequiredValues(MRPropTypes.observableMap.isRequired) -}) - -test("should fail date and regexp correctly", () => { - typeCheckFail( - MRPropTypes.observableObject, - new Date(), - "Invalid prop `testProp` of type `date` supplied to " + - "`testComponent`, expected `mobx.ObservableObject`." - ) - typeCheckFail( - MRPropTypes.observableArray, - /please/, - "Invalid prop `testProp` of type `regexp` supplied to " + - "`testComponent`, expected `mobx.ObservableArray`." - ) -}) - -test("observableArray", () => { - typeCheckFail( - MRPropTypes.observableArray, - [], - "Invalid prop `testProp` of type `array` supplied to " + - "`testComponent`, expected `mobx.ObservableArray`." - ) - typeCheckFail( - MRPropTypes.observableArray, - "", - "Invalid prop `testProp` of type `string` supplied to " + - "`testComponent`, expected `mobx.ObservableArray`." - ) -}) - -test("arrayOrObservableArray", () => { - typeCheckFail( - MRPropTypes.arrayOrObservableArray, - "", - "Invalid prop `testProp` of type `string` supplied to " + - "`testComponent`, expected `mobx.ObservableArray` or javascript `array`." - ) -}) - -test("observableObject", () => { - typeCheckFail( - MRPropTypes.observableObject, - {}, - "Invalid prop `testProp` of type `object` supplied to " + - "`testComponent`, expected `mobx.ObservableObject`." - ) - typeCheckFail( - MRPropTypes.observableObject, - "", - "Invalid prop `testProp` of type `string` supplied to " + - "`testComponent`, expected `mobx.ObservableObject`." - ) -}) - -test("objectOrObservableObject", () => { - typeCheckFail( - MRPropTypes.objectOrObservableObject, - "", - "Invalid prop `testProp` of type `string` supplied to " + - "`testComponent`, expected `mobx.ObservableObject` or javascript `object`." - ) -}) - -test("observableMap", () => { - typeCheckFail( - MRPropTypes.observableMap, - {}, - "Invalid prop `testProp` of type `object` supplied to " + - "`testComponent`, expected `mobx.ObservableMap`." - ) -}) - -test("observableArrayOf", () => { - typeCheckFail( - MRPropTypes.observableArrayOf(PropTypes.string), - 2, - "Invalid prop `testProp` of type `number` supplied to " + - "`testComponent`, expected `mobx.ObservableArray`." - ) - typeCheckFail( - MRPropTypes.observableArrayOf(PropTypes.string), - observable([2]), - "Invalid prop `testProp[0]` of type `number` supplied to " + - "`testComponent`, expected `string`." - ) - typeCheckFail( - MRPropTypes.observableArrayOf({ foo: (MRPropTypes as any).string } as any), - { foo: "bar" }, - "Property `testProp` of component `testComponent` has invalid PropType notation." - ) -}) - -test("arrayOrObservableArrayOf", () => { - typeCheckFail( - MRPropTypes.arrayOrObservableArrayOf(PropTypes.string), - 2, - "Invalid prop `testProp` of type `number` supplied to " + - "`testComponent`, expected `mobx.ObservableArray` or javascript `array`." - ) - typeCheckFail( - MRPropTypes.arrayOrObservableArrayOf(PropTypes.string), - observable([2]), - "Invalid prop `testProp[0]` of type `number` supplied to " + - "`testComponent`, expected `string`." - ) - typeCheckFail( - MRPropTypes.arrayOrObservableArrayOf(PropTypes.string), - [2], - "Invalid prop `testProp[0]` of type `number` supplied to " + - "`testComponent`, expected `string`." - ) - // TODO: - typeCheckFail( - MRPropTypes.arrayOrObservableArrayOf({ foo: (MRPropTypes as any).string } as any), - { foo: "bar" }, - "Property `testProp` of component `testComponent` has invalid PropType notation." - ) -}) diff --git a/packages/mobx-react/__tests__/reactBatching.test.tsx b/packages/mobx-react/__tests__/reactBatching.test.tsx new file mode 100644 index 0000000000..82c4724777 --- /dev/null +++ b/packages/mobx-react/__tests__/reactBatching.test.tsx @@ -0,0 +1,53 @@ +import React from "react" +import { createRoot } from "react-dom/client" +import { flushSync } from "react-dom" +import { action, observable } from "mobx" +import { observer } from "../src" + +test("React batches independent observer updates without a custom reaction scheduler", async () => { + const store = observable({ a: 0, b: 0 }) + const renders: string[] = [] + let commits = 0 + + const A = observer(() => { + renders.push(`A:${store.a}`) + return {store.a} + }) + const B = observer(() => { + renders.push(`B:${store.b}`) + return {store.b} + }) + const App = () => ( + commits++}> +
    + + + ) + + const rootNode = document.createElement("div") + document.body.appendChild(rootNode) + const root = createRoot(rootNode) + + flushSync(() => { + root.render() + }) + + const commitsBeforeUpdate = commits + const rendersBeforeUpdate = renders.length + + setTimeout( + action(() => { + store.a++ + store.b++ + }), + 0 + ) + + await new Promise(resolve => setTimeout(resolve, 0)) + + expect(commits - commitsBeforeUpdate).toBe(1) + expect(renders.slice(rendersBeforeUpdate)).toEqual(["A:1", "B:1"]) + + root.unmount() + rootNode.remove() +}) diff --git a/packages/mobx-react/__tests__/reactContext.test.tsx b/packages/mobx-react/__tests__/reactContext.test.tsx new file mode 100644 index 0000000000..b1fe23a4f6 --- /dev/null +++ b/packages/mobx-react/__tests__/reactContext.test.tsx @@ -0,0 +1,71 @@ +import React from "react" +import { act, render } from "@testing-library/react" +import { observable, runInAction } from "mobx" + +import { observer } from "../src" + +test("observer function component reacts to observable values from React context", () => { + const store = observable({ count: 0 }) + const StoreContext = React.createContext(store) + let renderCount = 0 + + const Counter = observer(function Counter() { + renderCount++ + const contextStore = React.useContext(StoreContext) + return {contextStore.count} + }) + + const { container } = render( + + + + ) + + expect(container.textContent).toBe("0") + expect(renderCount).toBe(1) + + act(() => { + runInAction(() => { + store.count++ + }) + }) + + expect(container.textContent).toBe("1") + expect(renderCount).toBe(2) +}) + +test("observer class component reacts to observable values from contextType", () => { + const store = observable({ count: 0 }) + const StoreContext = React.createContext(store) + let renderCount = 0 + + class Counter extends React.Component { + static contextType = StoreContext + + render() { + renderCount++ + const contextStore = this.context as { count: number } + return {contextStore.count} + } + } + + const ObservedCounter = observer(Counter) + + const { container } = render( + + + + ) + + expect(container.textContent).toBe("0") + expect(renderCount).toBe(1) + + act(() => { + runInAction(() => { + store.count++ + }) + }) + + expect(container.textContent).toBe("1") + expect(renderCount).toBe(2) +}) diff --git a/packages/mobx-react/__tests__/stateless.test.tsx b/packages/mobx-react/__tests__/stateless.test.tsx index febffeece3..91e3156cef 100644 --- a/packages/mobx-react/__tests__/stateless.test.tsx +++ b/packages/mobx-react/__tests__/stateless.test.tsx @@ -1,44 +1,8 @@ import React from "react" -import PropTypes from "prop-types" -import { observer, PropTypes as MRPropTypes } from "../src" +import { observer } from "../src" import { render, act } from "@testing-library/react" import { observable } from "mobx" -const StatelessComp = ({ testProp }) =>
    result: {testProp}
    - -StatelessComp.propTypes = { - testProp: PropTypes.string -} -StatelessComp.defaultProps = { - testProp: "default value for prop testProp" -} - -// skipping because `propTypes` and `defaultProps` are dropped in React 19 -describe.skip("stateless component with propTypes", () => { - const StatelessCompObserver: React.FunctionComponent = observer(StatelessComp) - - test("default property value should be propagated", () => { - expect(StatelessComp.defaultProps.testProp).toBe("default value for prop testProp") - expect(StatelessCompObserver.defaultProps!.testProp).toBe("default value for prop testProp") - }) - - const originalConsoleError = console.error - let beenWarned = false - console.error = () => (beenWarned = true) - // eslint-disable-next-line no-unused-vars - const wrapper = - console.error = originalConsoleError - - test("an error should be logged with a property type warning", () => { - expect(beenWarned).toBeTruthy() - }) - - test("render test correct", async () => { - const { container } = render() - expect(container.textContent).toBe("result: hello world") - }) -}) - test("stateless component with context support", () => { const C = React.createContext({}) @@ -58,29 +22,6 @@ test("stateless component with context support", () => { expect(container.textContent).toBe("context: hello world") }) -// propTypes validation seems to have been removed from class components in React 19: https://react.dev/reference/react/Component -test.skip("component with observable propTypes", () => { - class Comp extends React.Component { - render() { - return null - } - static propTypes = { - a1: MRPropTypes.observableArray, - a2: MRPropTypes.arrayOrObservableArray - } - } - const originalConsoleError = console.error - const warnings: Array = [] - console.error = msg => warnings.push(msg) - // eslint-disable-next-line no-unused-vars - const firstWrapper = - expect(warnings.length).toBe(1) - // eslint-disable-next-line no-unused-vars - const secondWrapper = - expect(warnings.length).toBe(1) - console.error = originalConsoleError -}) - describe("stateless component with forwardRef", () => { const a = observable({ x: 1 diff --git a/packages/mobx-react/__tests__/utils/compile-ts.tsx b/packages/mobx-react/__tests__/utils/compile-ts.tsx index 022f599172..b51ac914ce 100644 --- a/packages/mobx-react/__tests__/utils/compile-ts.tsx +++ b/packages/mobx-react/__tests__/utils/compile-ts.tsx @@ -1,15 +1,5 @@ import React from "react" -import ReactDOM from "react-dom" -import PropTypes from "prop-types" -import { - observer, - Provider, - inject, - Observer, - disposeOnUnmount, - PropTypes as MRPropTypes, - useLocalStore -} from "../src" +import { observer, Observer, useLocalObservable } from "../src" @observer class T1 extends React.Component<{ pizza: number }, {}> { @@ -28,9 +18,6 @@ const T2 = observer(
    ) } - static propTypes = { - zoem: MRPropTypes.arrayOrObservableArray - } } ) @@ -71,130 +58,6 @@ class T7 extends React.Component<{ pizza: number }, {}> { } React.createElement(observer(T7), { pizza: 4 }) -ReactDOM.render(, document.body) - -class ProviderTest extends React.Component { - render() { - return ( - -
    hi
    -
    - ) - } -} - -@inject(() => ({ x: 3 })) -class T11 extends React.Component<{ pizza: number; x?: number }, {}> { - render() { - return ( -
    - {this.props.pizza} - {this.props.x} -
    - ) - } -} - -class T15 extends React.Component<{ pizza: number; x?: number }, {}> { - render() { - return ( -
    - {this.props.pizza} - {this.props.x} -
    - ) - } -} -const T16 = inject(() => ({ x: 3 }))(T15) - -class T17 extends React.Component<{}, {}> { - render() { - return ( -
    - - - - - - -
    - ) - } -} - -@inject("a", "b") -class T12 extends React.Component<{ pizza: number }, {}> { - render() { - return
    {this.props.pizza}
    - } -} - -@inject("a", "b") -@observer -class T13 extends React.Component<{ pizza: number }, {}> { - render() { - return
    {this.props.pizza}
    - } -} - -const LoginContainer = inject((allStores, props) => ({ - store: { y: true, z: 2 }, - z: 7 -}))( - observer( - class _LoginContainer extends React.Component< - { - x: string - store?: { y: boolean; z: number } - }, - {} - > { - static contextTypes: React.ValidationMap = { - router: PropTypes.func.isRequired - } - - render() { - return ( -
    - Hello! - {this.props.x} - {this.props.store!.y} -
    - ) - } - } - ) -) -ReactDOM.render(, document.body) - -@inject(allStores => ({ - store: { y: true, z: 2 } -})) -@observer -class LoginContainer2 extends React.Component< - { - x: string - store?: { y: boolean } - }, - {} -> { - static contextTypes: React.ValidationMap = { - router: PropTypes.func.isRequired - } - - render() { - return ( -
    - Hello! - {this.props.x} - {this.props.store!.y} -
    - ) - } -} - -ReactDOM.render(, document.body) - class ObserverTest extends React.Component { render() { return {() =>
    test
    }
    @@ -225,57 +88,11 @@ const AppInner = observer((props: { a: number }) => { ) }) -const App = inject("store")(AppInner) - -App.wrappedComponent - -@inject("store") -@observer -class App2 extends React.Component<{ a: number }, {}> {} - -class InjectSomeStores extends React.Component<{ x: any }, {}> { - render() { - return
    Hello World
    - } -} - -inject(({ x }) => ({ x }))(InjectSomeStores) - -{ - class T extends React.Component<{ x: number }> { - render() { - return
    - } - } - - const Injected = inject("test")(T) - ; -} - -{ - // just to make sure it compiles - class DisposeOnUnmountComponent extends React.Component<{}> { - @disposeOnUnmount - methodA = () => {} - - methodB = disposeOnUnmount(this, () => {}) - manyMethods = disposeOnUnmount(this, [() => {}, () => {}]) - } - - // manual tests: this should not compile when the decorator is not applied over a react component class - /* - class DisposeOnUnmountNotAComponent { - @disposeOnUnmount - methodA = () => {} - - methodB = disposeOnUnmount(this, () => {}) - } - */ -} +; { const TestComponent = () => { - const observable = useLocalStore(() => ({ + const observable = useLocalObservable(() => ({ test: 3 })) diff --git a/packages/mobx-react/batchingForReactDom.js b/packages/mobx-react/batchingForReactDom.js deleted file mode 100644 index 3c73786c62..0000000000 --- a/packages/mobx-react/batchingForReactDom.js +++ /dev/null @@ -1 +0,0 @@ -require("mobx-react-lite/batchingForReactDom") diff --git a/packages/mobx-react/batchingForReactNative.js b/packages/mobx-react/batchingForReactNative.js deleted file mode 100644 index f6f328548a..0000000000 --- a/packages/mobx-react/batchingForReactNative.js +++ /dev/null @@ -1 +0,0 @@ -require("mobx-react-lite/batchingForReactNative") diff --git a/packages/mobx-react/batchingOptOut.js b/packages/mobx-react/batchingOptOut.js deleted file mode 100644 index f9533d9921..0000000000 --- a/packages/mobx-react/batchingOptOut.js +++ /dev/null @@ -1 +0,0 @@ -require("mobx-react-lite/batchingOptOut") diff --git a/packages/mobx-react/jest.config.js b/packages/mobx-react/jest.config.js index 9a49a001f2..c9f23e2c44 100644 --- a/packages/mobx-react/jest.config.js +++ b/packages/mobx-react/jest.config.js @@ -2,6 +2,9 @@ const buildConfig = require("../../jest.base.config") module.exports = buildConfig(__dirname, { testRegex: "__tests__/.*\\.tsx$", + moduleNameMapper: { + "^mobx-react-lite$": "/../mobx-react-lite/src/index.ts" + }, setupFilesAfterEnv: [`/jest.setup.ts`], testPathIgnorePatterns: ["node_modules", "/__tests__/utils"] }) diff --git a/packages/mobx-react/jest.setup.ts b/packages/mobx-react/jest.setup.ts index c02f52ea96..4a2d3994c5 100644 --- a/packages/mobx-react/jest.setup.ts +++ b/packages/mobx-react/jest.setup.ts @@ -1,9 +1,31 @@ import "@testing-library/jest-dom/extend-expect" -import { configure } from "mobx" +import { cleanup } from "@testing-library/react" +import { configure, _getGlobalState, _resetGlobalState } from "mobx" global.setImmediate = global.setImmediate || ((fn, ...args) => global.setTimeout(fn, 0, ...args)) -configure({ enforceActions: "never" }) +function resetMobxReactTestState() { + _resetGlobalState() + _getGlobalState().spyListeners = [] + configure({ + enforceActions: "never", + computedRequiresReaction: false, + reactionRequiresObservable: false, + observableRequiresReaction: false, + disableErrorBoundaries: false, + safeDescriptors: true + }) +} -// @ts-ignore -global.__DEV__ = true +beforeEach(() => { + // @ts-ignore + global.__DEV__ = true + resetMobxReactTestState() +}) + +afterEach(() => { + cleanup() + jest.useRealTimers() + jest.restoreAllMocks() + resetMobxReactTestState() +}) diff --git a/packages/mobx-react/package.json b/packages/mobx-react/package.json index 43ad918a4f..46a2274ef5 100644 --- a/packages/mobx-react/package.json +++ b/packages/mobx-react/package.json @@ -3,6 +3,7 @@ "version": "9.2.2", "description": "React bindings for MobX. Create fully reactive components.", "source": "src/index.ts", + "type": "commonjs", "main": "dist/index.js", "umd:main": "dist/mobxreact.umd.production.min.js", "unpkg": "dist/mobxreact.umd.production.min.js", @@ -12,13 +13,31 @@ "react-native": "dist/mobxreact.esm.js", "types": "dist/index.d.ts", "typings": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "react-native": { + "types": "./dist/index.d.ts", + "default": "./dist/mobxreact.esm.js" + }, + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/mobxreact.mjs" + }, + "default": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "./dist/*": "./dist/*", + "./src/*": "./src/*" + }, "files": [ "src", "dist", "LICENSE", "CHANGELOG.md", - "README.md", - "batching*" + "README.md" ], "sideEffects": false, "repository": { @@ -36,24 +55,15 @@ }, "homepage": "https://mobx.js.org", "dependencies": { - "mobx-react-lite": "^4.1.1" + "mobx-react-lite": "^5.0.0" }, "peerDependencies": { - "mobx": "^6.9.0", - "react": "^16.8.0 || ^17 || ^18 || ^19" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } + "mobx": "^7.0.0", + "react": "^18 || ^19" }, "devDependencies": { "mobx": "^6.15.0", - "mobx-react-lite": "^4.1.1", - "expose-gc": "^1.0.0" + "mobx-react-lite": "^4.1.1" }, "keywords": [ "mobx", @@ -65,12 +75,12 @@ ], "scripts": { "lint": "eslint src/**/* --ext .js,.ts,.tsx", - "build": "node ../../scripts/build.js mobxReact", - "build:test": "npm run build -- --target test", + "build": "rollup --config rollup.config.mjs", + "build:test": "npm run build -- --environment TARGET:test", "test": "jest", "test:size": "import-size --report . observer", "test:types": "tsc --noEmit", "test:check": "npm run test:types", - "prepublishOnly": "npm run build -- --target publish" + "prepublishOnly": "npm run build -- --environment TARGET:publish" } } diff --git a/packages/mobx-react/rollup.config.mjs b/packages/mobx-react/rollup.config.mjs new file mode 100644 index 0000000000..adf1efd5e5 --- /dev/null +++ b/packages/mobx-react/rollup.config.mjs @@ -0,0 +1,12 @@ +import createRollupConfig from "../../scripts/create-rollup-config.mjs" + +export default createRollupConfig({ + packageName: "mobxReact", + packageBase: "mobxreact", + input: "src/index.ts", + globals: { + react: "React", + mobx: "mobx", + "mobx-react-lite": "mobxReactLite" + } +}) diff --git a/packages/mobx-react/src/Provider.tsx b/packages/mobx-react/src/Provider.tsx deleted file mode 100644 index b40f1da728..0000000000 --- a/packages/mobx-react/src/Provider.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import React from "react" -import { shallowEqual } from "./utils/utils" -import { IValueMap } from "./types/IValueMap" - -export const MobXProviderContext = React.createContext({}) - -export interface ProviderProps extends IValueMap { - children: React.ReactNode -} - -export function Provider(props: ProviderProps) { - const { children, ...stores } = props - const parentValue = React.useContext(MobXProviderContext) - const mutableProviderRef = React.useRef({ ...parentValue, ...stores }) - const value = mutableProviderRef.current - - if (__DEV__) { - const newValue = { ...value, ...stores } // spread in previous state for the context based stores - if (!shallowEqual(value, newValue)) { - throw new Error( - "MobX Provider: The set of provided stores has changed. See: https://github.com/mobxjs/mobx-react#the-set-of-provided-stores-has-changed-error." - ) - } - } - - return {children} -} - -Provider.displayName = "MobXProvider" diff --git a/packages/mobx-react/src/disposeOnUnmount.ts b/packages/mobx-react/src/disposeOnUnmount.ts deleted file mode 100644 index 6a1b640433..0000000000 --- a/packages/mobx-react/src/disposeOnUnmount.ts +++ /dev/null @@ -1,111 +0,0 @@ -import React from "react" -import { patch } from "./utils/utils" - -const reactMajorVersion = Number.parseInt(React.version, 10) -let warnedAboutDisposeOnUnmountDeprecated = false - -type Disposer = () => void - -const protoStoreKey = Symbol("disposeOnUnmountProto") -const instStoreKey = Symbol("disposeOnUnmountInst") - -function runDisposersOnWillUnmount() { - ;[...(this[protoStoreKey] || []), ...(this[instStoreKey] || [])].forEach(propKeyOrFunction => { - const prop = - typeof propKeyOrFunction === "string" ? this[propKeyOrFunction] : propKeyOrFunction - if (prop !== undefined && prop !== null) { - if (Array.isArray(prop)) prop.map(f => f()) - else prop() - } - }) -} - -/** - * @deprecated `disposeOnUnmount` is not compatible with React 18 and higher. - */ -export function disposeOnUnmount(target: React.Component, propertyKey: PropertyKey): void - -/** - * @deprecated `disposeOnUnmount` is not compatible with React 18 and higher. - */ -export function disposeOnUnmount>( - target: React.Component, - fn: TF -): TF - -/** - * @deprecated `disposeOnUnmount` is not compatible with React 18 and higher. - */ -export function disposeOnUnmount( - target: React.Component, - propertyKeyOrFunction: PropertyKey | Disposer | Array -): PropertyKey | Disposer | Array | void { - if (Array.isArray(propertyKeyOrFunction)) { - return propertyKeyOrFunction.map(fn => disposeOnUnmount(target, fn)) - } - - if (!warnedAboutDisposeOnUnmountDeprecated) { - if (reactMajorVersion >= 18) { - console.error( - "[mobx-react] disposeOnUnmount is not compatible with React 18 and higher. Don't use it." - ) - } else { - console.warn( - "[mobx-react] disposeOnUnmount is deprecated. It won't work correctly with React 18 and higher." - ) - } - warnedAboutDisposeOnUnmountDeprecated = true - } - - const c = Object.getPrototypeOf(target).constructor - const c2 = Object.getPrototypeOf(target.constructor) - // Special case for react-hot-loader - const c3 = Object.getPrototypeOf(Object.getPrototypeOf(target)) - if ( - !( - c === React.Component || - c === React.PureComponent || - c2 === React.Component || - c2 === React.PureComponent || - c3 === React.Component || - c3 === React.PureComponent - ) - ) { - throw new Error( - "[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent." - ) - } - - if ( - typeof propertyKeyOrFunction !== "string" && - typeof propertyKeyOrFunction !== "function" && - !Array.isArray(propertyKeyOrFunction) - ) { - throw new Error( - "[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function." - ) - } - - // decorator's target is the prototype, so it doesn't have any instance properties like props - const isDecorator = typeof propertyKeyOrFunction === "string" - - // add property key / function we want run (disposed) to the store - const componentWasAlreadyModified = !!target[protoStoreKey] || !!target[instStoreKey] - const store = isDecorator - ? // decorators are added to the prototype store - target[protoStoreKey] || (target[protoStoreKey] = []) - : // functions are added to the instance store - target[instStoreKey] || (target[instStoreKey] = []) - - store.push(propertyKeyOrFunction) - - // tweak the component class componentWillUnmount if not done already - if (!componentWasAlreadyModified) { - patch(target, "componentWillUnmount", runDisposersOnWillUnmount) - } - - // return the disposer as is if invoked as a non decorator - if (typeof propertyKeyOrFunction !== "string") { - return propertyKeyOrFunction - } -} diff --git a/packages/mobx-react/src/index.ts b/packages/mobx-react/src/index.ts index 65abc7ed72..70ec6007a0 100644 --- a/packages/mobx-react/src/index.ts +++ b/packages/mobx-react/src/index.ts @@ -11,20 +11,11 @@ if (!observable) { export { Observer, - useObserver, - useAsObservableSource, - useLocalStore, isUsingStaticRendering, - useStaticRendering, enableStaticRendering, - observerBatching, - useLocalObservable + useLocalObservable, + _observerFinalizationRegistry, + clearTimers } from "mobx-react-lite" export { observer } from "./observer" - -export { MobXProviderContext, Provider, ProviderProps } from "./Provider" -export { inject } from "./inject" -export { disposeOnUnmount } from "./disposeOnUnmount" -export { PropTypes } from "./propTypes" -export { IWrappedComponent } from "./types/IWrappedComponent" diff --git a/packages/mobx-react/src/inject.ts b/packages/mobx-react/src/inject.ts deleted file mode 100644 index 88e0f3341b..0000000000 --- a/packages/mobx-react/src/inject.ts +++ /dev/null @@ -1,107 +0,0 @@ -import React from "react" -import { observer } from "./observer" -import { copyStaticProperties } from "./utils/utils" -import { MobXProviderContext } from "./Provider" -import { IReactComponent } from "./types/IReactComponent" -import { IValueMap } from "./types/IValueMap" -import { IWrappedComponent } from "./types/IWrappedComponent" -import { IStoresToProps } from "./types/IStoresToProps" - -/** - * Store Injection - */ -function createStoreInjector( - grabStoresFn: IStoresToProps, - component: IReactComponent, - injectNames: string, - makeReactive: boolean -): IReactComponent { - // Support forward refs - let Injector: IReactComponent = React.forwardRef((props, ref) => { - const newProps = { ...props } - const context = React.useContext(MobXProviderContext) - Object.assign(newProps, grabStoresFn(context || {}, newProps) || {}) - - if (ref) { - newProps.ref = ref - } - - return React.createElement(component, newProps) - }) - - if (makeReactive) Injector = observer(Injector) - Injector["isMobxInjector"] = true // assigned late to suppress observer warning - - // Static fields from component should be visible on the generated Injector - copyStaticProperties(component, Injector) - Injector["wrappedComponent"] = component - Injector.displayName = getInjectName(component, injectNames) - return Injector -} - -function getInjectName(component: IReactComponent, injectNames: string): string { - let displayName - const componentName = - component.displayName || - component.name || - (component.constructor && component.constructor.name) || - "Component" - if (injectNames) displayName = "inject-with-" + injectNames + "(" + componentName + ")" - else displayName = "inject(" + componentName + ")" - return displayName -} - -function grabStoresByName( - storeNames: Array -): ( - baseStores: IValueMap, - nextProps: React.ClassAttributes -) => React.PropsWithRef | undefined { - return function (baseStores, nextProps) { - storeNames.forEach(function (storeName) { - if ( - storeName in nextProps // prefer props over stores - ) - return - if (!(storeName in baseStores)) - throw new Error( - "MobX injector: Store '" + - storeName + - "' is not available! Make sure it is provided by some Provider" - ) - nextProps[storeName] = baseStores[storeName] - }) - return nextProps - } -} - -export function inject( - ...stores: Array -): >( - target: T -) => T & (T extends IReactComponent ? IWrappedComponent

    : never) -export function inject( - fn: IStoresToProps -): (target: T) => T & IWrappedComponent

    - -/** - * higher order component that injects stores to a child. - * takes either a varargs list of strings, which are stores read from the context, - * or a function that manually maps the available stores from the context to props: - * storesToProps(mobxStores, props, context) => newProps - */ -export function inject(/* fn(stores, nextProps) or ...storeNames */ ...storeNames: Array) { - if (typeof arguments[0] === "function") { - let grabStoresFn = arguments[0] - return (componentClass: React.ComponentClass) => - createStoreInjector(grabStoresFn, componentClass, grabStoresFn.name, true) - } else { - return (componentClass: React.ComponentClass) => - createStoreInjector( - grabStoresByName(storeNames), - componentClass, - storeNames.join("-"), - false - ) - } -} diff --git a/packages/mobx-react/src/observer.tsx b/packages/mobx-react/src/observer.tsx index a16bb13887..fc62f43411 100644 --- a/packages/mobx-react/src/observer.tsx +++ b/packages/mobx-react/src/observer.tsx @@ -7,17 +7,18 @@ import { IReactComponent } from "./types/IReactComponent" /** * Observer function / decorator */ -export function observer(component: T, context: ClassDecoratorContext): void +export function observer( + component: T, + context: ClassDecoratorContext +): void export function observer(component: T): T -export function observer(component: T, context?: ClassDecoratorContext): T { +export function observer( + component: T, + context?: ClassDecoratorContext +): T { if (context && context.kind !== "class") { throw new Error("The @observer decorator can be used on classes only") } - if (component["isMobxInjector"] === true) { - console.warn( - "Mobx observer: You are trying to use `observer` on a component that already has `inject`. Please apply `observer` before applying `inject`" - ) - } if ( Object.prototype.isPrototypeOf.call(React.Component, component) || @@ -27,6 +28,6 @@ export function observer(component: T, context?: Clas return makeClassComponentObserver(component as React.ComponentClass) as T } else { // Function component - return observerLite(component as React.FunctionComponent) as T + return observerLite(component as React.FunctionComponent) as unknown as T } } diff --git a/packages/mobx-react/src/propTypes.ts b/packages/mobx-react/src/propTypes.ts deleted file mode 100644 index 0e6e164bce..0000000000 --- a/packages/mobx-react/src/propTypes.ts +++ /dev/null @@ -1,210 +0,0 @@ -import { isObservableArray, isObservableObject, isObservableMap, untracked } from "mobx" - -// Copied from React.PropTypes -function createChainableTypeChecker(validator: React.Validator): React.Requireable { - function checkType( - isRequired: boolean, - props: any, - propName: string, - componentName: string, - location: string, - propFullName: string, - ...rest: any[] - ) { - return untracked(() => { - componentName = componentName || "<>" - propFullName = propFullName || propName - if (props[propName] == null) { - if (isRequired) { - const actual = props[propName] === null ? "null" : "undefined" - return new Error( - "The " + - location + - " `" + - propFullName + - "` is marked as required " + - "in `" + - componentName + - "`, but its value is `" + - actual + - "`." - ) - } - return null - } else { - // @ts-ignore rest arg is necessary for some React internals - fails tests otherwise - return validator(props, propName, componentName, location, propFullName, ...rest) - } - }) - } - - const chainedCheckType: any = checkType.bind(null, false) - // Add isRequired to satisfy Requirable - chainedCheckType.isRequired = checkType.bind(null, true) - return chainedCheckType -} - -// Copied from React.PropTypes -function isSymbol(propType: any, propValue: any): boolean { - // Native Symbol. - if (propType === "symbol") { - return true - } - - // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - if (propValue["@@toStringTag"] === "Symbol") { - return true - } - - // Fallback for non-spec compliant Symbols which are polyfilled. - if (typeof Symbol === "function" && propValue instanceof Symbol) { - return true - } - - return false -} - -// Copied from React.PropTypes -function getPropType(propValue: any): string { - const propType = typeof propValue - if (Array.isArray(propValue)) { - return "array" - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return "object" - } - if (isSymbol(propType, propValue)) { - return "symbol" - } - return propType -} - -// This handles more types than `getPropType`. Only used for error messages. -// Copied from React.PropTypes -function getPreciseType(propValue: any): string { - const propType = getPropType(propValue) - if (propType === "object") { - if (propValue instanceof Date) { - return "date" - } else if (propValue instanceof RegExp) { - return "regexp" - } - } - return propType -} - -function createObservableTypeCheckerCreator( - allowNativeType: any, - mobxType: any -): React.Requireable { - return createChainableTypeChecker((props, propName, componentName, location, propFullName) => { - return untracked(() => { - if (allowNativeType) { - if (getPropType(props[propName]) === mobxType.toLowerCase()) return null - } - let mobxChecker - switch (mobxType) { - case "Array": - mobxChecker = isObservableArray - break - case "Object": - mobxChecker = isObservableObject - break - case "Map": - mobxChecker = isObservableMap - break - default: - throw new Error(`Unexpected mobxType: ${mobxType}`) - } - const propValue = props[propName] - if (!mobxChecker(propValue)) { - const preciseType = getPreciseType(propValue) - const nativeTypeExpectationMessage = allowNativeType - ? " or javascript `" + mobxType.toLowerCase() + "`" - : "" - return new Error( - "Invalid prop `" + - propFullName + - "` of type `" + - preciseType + - "` supplied to" + - " `" + - componentName + - "`, expected `mobx.Observable" + - mobxType + - "`" + - nativeTypeExpectationMessage + - "." - ) - } - return null - }) - }) -} - -function createObservableArrayOfTypeChecker( - allowNativeType: boolean, - typeChecker: React.Validator -) { - return createChainableTypeChecker( - (props, propName, componentName, location, propFullName, ...rest) => { - return untracked(() => { - if (typeof typeChecker !== "function") { - return new Error( - "Property `" + - propFullName + - "` of component `" + - componentName + - "` has " + - "invalid PropType notation." - ) - } else { - let error = createObservableTypeCheckerCreator(allowNativeType, "Array")( - props, - propName, - componentName, - location, - propFullName - ) - - if (error instanceof Error) return error - const propValue = props[propName] - for (let i = 0; i < propValue.length; i++) { - error = (typeChecker as React.Validator)( - propValue, - i as any, - componentName, - location, - propFullName + "[" + i + "]", - ...rest - ) - if (error instanceof Error) return error - } - - return null - } - }) - } - ) -} - -const observableArray = createObservableTypeCheckerCreator(false, "Array") -const observableArrayOf = createObservableArrayOfTypeChecker.bind(null, false) -const observableMap = createObservableTypeCheckerCreator(false, "Map") -const observableObject = createObservableTypeCheckerCreator(false, "Object") -const arrayOrObservableArray = createObservableTypeCheckerCreator(true, "Array") -const arrayOrObservableArrayOf = createObservableArrayOfTypeChecker.bind(null, true) -const objectOrObservableObject = createObservableTypeCheckerCreator(true, "Object") - -export const PropTypes = { - observableArray, - observableArrayOf, - observableMap, - observableObject, - arrayOrObservableArray, - arrayOrObservableArrayOf, - objectOrObservableObject -} diff --git a/packages/mobx-react/src/types/IStoresToProps.ts b/packages/mobx-react/src/types/IStoresToProps.ts deleted file mode 100644 index 44a23a48a0..0000000000 --- a/packages/mobx-react/src/types/IStoresToProps.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { IValueMap } from "./IValueMap" -export type IStoresToProps< - S extends IValueMap = {}, - P extends IValueMap = {}, - I extends IValueMap = {}, - C extends IValueMap = {} -> = (stores: S, nextProps: P, context?: C) => I diff --git a/packages/mobx-react/src/types/IValueMap.ts b/packages/mobx-react/src/types/IValueMap.ts deleted file mode 100644 index f7f1ad6cb9..0000000000 --- a/packages/mobx-react/src/types/IValueMap.ts +++ /dev/null @@ -1 +0,0 @@ -export type IValueMap = Record diff --git a/packages/mobx-react/src/types/IWrappedComponent.ts b/packages/mobx-react/src/types/IWrappedComponent.ts deleted file mode 100644 index 72abbae0b7..0000000000 --- a/packages/mobx-react/src/types/IWrappedComponent.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { IReactComponent } from "./IReactComponent" -export type IWrappedComponent

    = { - wrappedComponent: IReactComponent

    -} diff --git a/packages/mobx-react/src/utils/utils.ts b/packages/mobx-react/src/utils/utils.ts index 9571d3b6f0..4be63a9af3 100644 --- a/packages/mobx-react/src/utils/utils.ts +++ b/packages/mobx-react/src/utils/utils.ts @@ -28,52 +28,6 @@ function is(x: any, y: any): boolean { } } -// based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js -const hoistBlackList = { - $$typeof: 1, - render: 1, - compare: 1, - type: 1, - childContextTypes: 1, - contextType: 1, - contextTypes: 1, - defaultProps: 1, - getDefaultProps: 1, - getDerivedStateFromError: 1, - getDerivedStateFromProps: 1, - mixins: 1, - displayName: 1, - propTypes: 1 -} - -export function copyStaticProperties(base: object, target: object): void { - const protoProps = Object.getOwnPropertyNames(Object.getPrototypeOf(base)) - Object.getOwnPropertyNames(base).forEach(key => { - if (!hoistBlackList[key] && protoProps.indexOf(key) === -1) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key)!) - } - }) -} - -/** - * Helper to set `prop` to `this` as non-enumerable (hidden prop) - * @param target - * @param prop - * @param value - */ -export function setHiddenProp(target: object, prop: any, value: any): void { - if (!Object.hasOwnProperty.call(target, prop)) { - Object.defineProperty(target, prop, { - enumerable: false, - configurable: true, - writable: true, - value - }) - } else { - target[prop] = value - } -} - /** * Utilities for patching componentWillUnmount, to make sure @disposeOnUnmount works correctly icm with user defined hooks * and the handler provided by mobx-react diff --git a/packages/mobx-react/tsdx.config.js b/packages/mobx-react/tsdx.config.js deleted file mode 100644 index 07d57bd69f..0000000000 --- a/packages/mobx-react/tsdx.config.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - rollup(config) { - return { - ...config, - output: { - ...config.output, - globals: { - react: "React", - mobx: "mobx", - "react-dom": "ReactDOM", - "mobx-react-lite": "mobxReactLite" - } - } - } - } -} diff --git a/packages/mobx/__tests__/base/__snapshots__/proxies.js.snap b/packages/mobx/__tests__/base/__snapshots__/proxies.js.snap index d6a79f19f5..9d7ecb58b6 100644 --- a/packages/mobx/__tests__/base/__snapshots__/proxies.js.snap +++ b/packages/mobx/__tests__/base/__snapshots__/proxies.js.snap @@ -69,38 +69,3 @@ exports[`extend proxies 1`] = ` }, } `; - -exports[`non-proxied object 1`] = ` -{ - "b": { - "configurable": true, - "enumerable": true, - "value": 4, - "writable": true, - }, - "double": { - "configurable": true, - "enumerable": false, - "value": [Function], - "writable": false, - }, - "x": { - "configurable": true, - "enumerable": true, - "get": [Function], - "set": [Function], - }, - "y": { - "configurable": true, - "enumerable": false, - "get": [Function], - "set": [Function], - }, - Symbol(mobx administration): { - "configurable": true, - "enumerable": false, - "value": "(omitted)", - "writable": true, - }, -} -`; diff --git a/packages/mobx/__tests__/base/action.js b/packages/mobx/__tests__/base/action.js index 782faa77eb..78352213a8 100644 --- a/packages/mobx/__tests__/base/action.js +++ b/packages/mobx/__tests__/base/action.js @@ -418,7 +418,7 @@ test("extendObservable respects action decorators", () => { }, { a1: mobx.action, - a2: mobx.action.bound, + a2: mobx.actionBound, a3: false } ) @@ -460,7 +460,7 @@ test("bound actions bind", () => { } }, { - z: mobx.action.bound + z: mobx.actionBound } ) diff --git a/packages/mobx/__tests__/base/api.js b/packages/mobx/__tests__/base/api.js index 4f705e0806..4c64fdd142 100644 --- a/packages/mobx/__tests__/base/api.js +++ b/packages/mobx/__tests__/base/api.js @@ -9,19 +9,26 @@ test("correct api should be exposed", function () { [ "$mobx", // adminstration symbol "action", + "actionBound", "_allowStateChanges", "_allowStateChangesInsideComputed", "_allowStateReadsEnd", "_allowStateReadsStart", "_autoAction", + "_autoActionBound", "autorun", - "comparer", + "compareDefault", + "compareIdentity", + "compareShallow", + "compareStructural", "computed", + "computedStruct", "configure", "createAtom", "defineProperty", "extendObservable", "flow", + "flowBound", "isFlow", "flowResult", "FlowCancellationError", @@ -53,6 +60,10 @@ test("correct api should be exposed", function () { "ObservableMap", "ObservableSet", "observable", + "observableDeep", + "observableRef", + "observableShallow", + "observableStruct", "observe", "onReactionError", "onBecomeObserved", @@ -66,7 +77,6 @@ test("correct api should be exposed", function () { "set", "spy", "toJS", - "trace", "transaction", "untracked", "values", diff --git a/packages/mobx/__tests__/base/babel-decorators.js b/packages/mobx/__tests__/base/babel-decorators.js deleted file mode 100644 index c90214e9be..0000000000 --- a/packages/mobx/__tests__/base/babel-decorators.js +++ /dev/null @@ -1,1100 +0,0 @@ -import { - observable, - computed, - transaction, - autorun, - extendObservable, - action, - isObservableObject, - observe, - isObservable, - isObservableProp, - isComputedProp, - spy, - isAction, - configure, - makeObservable -} from "../../src/mobx" -import * as mobx from "../../src/mobx" - -test("babel", function () { - class Box { - @observable uninitialized - @observable height = 20 - @observable sizes = [2] - @observable - someFunc = function () { - return 2 - } - - constructor() { - makeObservable(this) - } - - @computed - get width() { - return this.height * this.sizes.length * this.someFunc() * (this.uninitialized ? 2 : 1) - } - @action - addSize() { - this.sizes.push(3) - this.sizes.push(4) - } - } - - const box = new Box() - const ar = [] - autorun(() => { - ar.push(box.width) - }) - - let s = ar.slice() - expect(s).toEqual([40]) - box.height = 10 - s = ar.slice() - expect(s).toEqual([40, 20]) - box.sizes.push(3, 4) - s = ar.slice() - expect(s).toEqual([40, 20, 60]) - box.someFunc = () => 7 - s = ar.slice() - expect(s).toEqual([40, 20, 60, 210]) - box.uninitialized = true - s = ar.slice() - expect(s).toEqual([40, 20, 60, 210, 420]) - box.addSize() - s = ar.slice() - expect(s).toEqual([40, 20, 60, 210, 420, 700]) -}) - -test("should not be possible to use @action with getters", () => { - class A { - constructor() { - makeObservable(this) - } - - @action - get Test() {} - } - expect(() => { - new A() - }).toThrow(/can only be used on properties with a function value/) - - mobx._resetGlobalState() -}) - -test("babel: parameterized computed decorator", () => { - class TestClass { - @observable x = 3 - @observable y = 3 - - constructor() { - makeObservable(this) - } - - @computed.struct - get boxedSum() { - return { sum: Math.round(this.x) + Math.round(this.y) } - } - } - - const t1 = new TestClass() - const changes = [] - const d = autorun(() => changes.push(t1.boxedSum)) - - t1.y = 4 // change - expect(changes.length).toBe(2) - t1.y = 4.2 // no change - expect(changes.length).toBe(2) - transaction(() => { - t1.y = 3 - t1.x = 4 - }) // no change - expect(changes.length).toBe(2) - t1.x = 6 // change - expect(changes.length).toBe(3) - d() - - expect(changes).toEqual([{ sum: 6 }, { sum: 7 }, { sum: 9 }]) -}) - -test("computed value should be the same around changing which was considered equivalent", () => { - class TestClass { - @observable c = null - defaultCollection = [] - - constructor() { - makeObservable(this) - } - - @computed.struct - get collection() { - return this.c || this.defaultCollection - } - } - - const t1 = new TestClass() - - const d = autorun(() => t1.collection) - - const oldCollection = t1.collection - t1.c = [] - const newCollection = t1.collection - - expect(oldCollection).toBe(newCollection) - - d() -}) - -class Order { - @observable price = 3 - @observable amount = 2 - @observable orders = [] - @observable aFunction = function () {} - - constructor() { - makeObservable(this) - } - - @computed - get total() { - return this.amount * this.price * (1 + this.orders.length) - } -} - -test("issue 191 - shared initializers (babel)", function () { - class Test { - @observable obj = { a: 1 } - @observable array = [2] - - constructor() { - makeObservable(this) - } - } - - const t1 = new Test() - t1.obj.a = 2 - t1.array.push(3) - - const t2 = new Test() - t2.obj.a = 3 - t2.array.push(4) - - expect(t1.obj).not.toBe(t2.obj) - expect(t1.array).not.toBe(t2.array) - expect(t1.obj.a).toBe(2) - expect(t2.obj.a).toBe(3) - - expect(t1.array.slice()).toEqual([2, 3]) - expect(t2.array.slice()).toEqual([2, 4]) -}) - -test("705 - setter undoing caching (babel)", () => { - let recomputes = 0 - let autoruns = 0 - - class Person { - @observable name - @observable title - - constructor() { - makeObservable(this) - } - - set fullName(val) { - // Noop - } - @computed - get fullName() { - recomputes++ - return this.title + " " + this.name - } - } - - let p1 = new Person() - p1.name = "Tom Tank" - p1.title = "Mr." - - expect(recomputes).toBe(0) - expect(autoruns).toBe(0) - - const d1 = autorun(() => { - autoruns++ - p1.fullName - }) - - const d2 = autorun(() => { - autoruns++ - p1.fullName - }) - - expect(recomputes).toBe(1) - expect(autoruns).toBe(2) - - p1.title = "Master" - expect(recomputes).toBe(2) - expect(autoruns).toBe(4) - - d1() - d2() -}) - -function normalizeSpyEvents(events) { - events.forEach(ev => { - delete ev.fn - delete ev.time - }) - return events -} - -test("action decorator (babel)", function () { - class Store { - constructor(multiplier) { - makeObservable(this) - this.multiplier = multiplier - } - - @action - add(a, b) { - return (a + b) * this.multiplier - } - } - - const store1 = new Store(2) - const store2 = new Store(3) - const events = [] - const d = spy(events.push.bind(events)) - expect(store1.add(3, 4)).toBe(14) - expect(store2.add(3, 4)).toBe(21) - expect(store1.add(1, 1)).toBe(4) - - expect(normalizeSpyEvents(events)).toEqual([ - { arguments: [3, 4], name: "add", spyReportStart: true, object: store1, type: "action" }, - { type: "report-end", spyReportEnd: true }, - { arguments: [3, 4], name: "add", spyReportStart: true, object: store2, type: "action" }, - { type: "report-end", spyReportEnd: true }, - { arguments: [1, 1], name: "add", spyReportStart: true, object: store1, type: "action" }, - { type: "report-end", spyReportEnd: true } - ]) - - d() -}) - -test("custom action decorator (babel)", function () { - class Store { - constructor(multiplier) { - makeObservable(this) - this.multiplier = multiplier - } - - @action("zoem zoem") - add(a, b) { - return (a + b) * this.multiplier - } - } - - const store1 = new Store(2) - const store2 = new Store(3) - const events = [] - const d = spy(events.push.bind(events)) - expect(store1.add(3, 4)).toBe(14) - expect(store2.add(3, 4)).toBe(21) - expect(store1.add(1, 1)).toBe(4) - - expect(normalizeSpyEvents(events)).toEqual([ - { - arguments: [3, 4], - name: "zoem zoem", - spyReportStart: true, - object: store1, - type: "action" - }, - { type: "report-end", spyReportEnd: true }, - { - arguments: [3, 4], - name: "zoem zoem", - spyReportStart: true, - object: store2, - type: "action" - }, - { type: "report-end", spyReportEnd: true }, - { - arguments: [1, 1], - name: "zoem zoem", - spyReportStart: true, - object: store1, - type: "action" - }, - { type: "report-end", spyReportEnd: true } - ]) - - d() -}) - -test("action decorator on field (babel)", function () { - class Store { - constructor(multiplier) { - makeObservable(this) - this.multiplier = multiplier - } - - @action - add = (a, b) => { - return (a + b) * this.multiplier - } - } - - const store1 = new Store(2) - const store2 = new Store(7) - - const events = [] - const d = spy(events.push.bind(events)) - expect(store1.add(3, 4)).toBe(14) - expect(store2.add(5, 4)).toBe(63) - expect(store1.add(2, 2)).toBe(8) - - expect(normalizeSpyEvents(events)).toEqual([ - { arguments: [3, 4], name: "add", spyReportStart: true, object: store1, type: "action" }, - { type: "report-end", spyReportEnd: true }, - { arguments: [5, 4], name: "add", spyReportStart: true, object: store2, type: "action" }, - { type: "report-end", spyReportEnd: true }, - { arguments: [2, 2], name: "add", spyReportStart: true, object: store1, type: "action" }, - { type: "report-end", spyReportEnd: true } - ]) - - d() -}) - -test("custom action decorator on field (babel)", function () { - class Store { - constructor(multiplier) { - makeObservable(this) - this.multiplier = multiplier - } - - @action("zoem zoem") - add = (a, b) => { - return (a + b) * this.multiplier - } - } - - const store1 = new Store(2) - const store2 = new Store(7) - - const events = [] - const d = spy(events.push.bind(events)) - expect(store1.add(3, 4)).toBe(14) - expect(store2.add(5, 4)).toBe(63) - expect(store1.add(2, 2)).toBe(8) - - expect(normalizeSpyEvents(events)).toEqual([ - { - arguments: [3, 4], - name: "zoem zoem", - spyReportStart: true, - object: store1, - type: "action" - }, - { type: "report-end", spyReportEnd: true }, - { - arguments: [5, 4], - name: "zoem zoem", - spyReportStart: true, - object: store2, - type: "action" - }, - { type: "report-end", spyReportEnd: true }, - { - arguments: [2, 2], - name: "zoem zoem", - spyReportStart: true, - object: store1, - type: "action" - }, - { type: "report-end", spyReportEnd: true } - ]) - - d() -}) - -test("267 (babel) should be possible to declare properties observable outside strict mode", () => { - configure({ enforceActions: "observed" }) - - class Store { - @observable timer - - constructor() { - makeObservable(this) - } - } - Store // just to avoid linter warning -}) - -test("288 atom not detected for object property", () => { - class Store { - @mobx.observable foo = "" - - constructor() { - makeObservable(this) - } - } - - const store = new Store() - let changed = false - - mobx.observe( - store, - "foo", - () => { - changed = true - }, - true - ) - expect(changed).toBe(true) -}) - -test.skip("observable performance - babel - decorators", () => { - const AMOUNT = 100000 - - class A { - @observable a = 1 - @observable b = 2 - @observable c = 3 - - constructor() { - makeObservable(this) - } - - @computed - get d() { - return this.a + this.b + this.c - } - } - - const objs = [] - const start = Date.now() - - for (let i = 0; i < AMOUNT; i++) objs.push(new A()) - - console.log("created in ", Date.now() - start) - - for (let j = 0; j < 4; j++) { - for (let i = 0; i < AMOUNT; i++) { - const obj = objs[i] - obj.a += 3 - obj.b *= 4 - obj.c = obj.b - obj.a - obj.d - } - } - - console.log("changed in ", Date.now() - start) -}) - -test("unbound methods", () => { - class A { - constructor() { - makeObservable(this) - } - - // shared across all instances - @action - m1() {} - - // per instance - @action m2 = () => {} - } - - const a1 = new A() - const a2 = new A() - - expect(a1.m1).toBe(a2.m1) - expect(a1.m2).not.toBe(a2.m2) - expect(a1.hasOwnProperty("m1")).toBe(false) - expect(a1.hasOwnProperty("m2")).toBe(true) - expect(a2.hasOwnProperty("m1")).toBe(false) - expect(a2.hasOwnProperty("m2")).toBe(true) -}) - -test("inheritance", () => { - class A { - @observable a = 2 - - constructor() { - makeObservable(this) - } - } - - class B extends A { - @observable b = 3 - - constructor() { - super() - makeObservable(this) - } - - @computed - get c() { - return this.a + this.b - } - } - - const b1 = new B() - const b2 = new B() - const values = [] - mobx.autorun(() => values.push(b1.c + b2.c)) - - b1.a = 3 - b1.b = 4 - b2.b = 5 - b2.a = 6 - - expect(values).toEqual([10, 11, 12, 14, 18]) -}) - -test("reusing initializers", () => { - class A { - @observable a = 3 - @observable b = this.a + 2 - - constructor() { - makeObservable(this) - } - - @computed - get c() { - return this.a + this.b - } - @computed - get d() { - return this.c + 1 - } - } - - const a = new A() - const values = [] - mobx.autorun(() => values.push(a.d)) - - a.a = 4 - expect(values).toEqual([9, 10]) -}) - -test("enumerability", () => { - class A { - @observable a = 1 // enumerable, on proto - @observable a2 = 2 - - constructor() { - makeObservable(this) - } - - @computed - get b() { - return this.a - } // non-enumerable, (and, ideally, on proto) - @action - m() {} // non-enumerable, on proto - @action m2 = () => {} // non-enumerable, on self - } - - const a = new A() - - // not initialized yet - let ownProps = Object.keys(a) - let props = [] - for (const key in a) props.push(key) - - expect(ownProps).toEqual(["a", "a2"]) - - expect(props).toEqual(["a", "a2"]) - - expect("a" in a).toBe(true) - expect(a.hasOwnProperty("a")).toBe(true) - expect(a.hasOwnProperty("b")).toBe(true) - expect(a.hasOwnProperty("m")).toBe(false) - expect(a.hasOwnProperty("m2")).toBe(true) - - expect(mobx.isAction(a.m)).toBe(true) - expect(mobx.isAction(a.m2)).toBe(true) - - // after initialization - a.a - a.b - a.m - a.m2 - - ownProps = Object.keys(a) - props = [] - for (const key in a) props.push(key) - - expect(ownProps).toEqual([ - "a", - "a2" // a2 is now initialized as well, altough never accessed! - ]) - - expect(props).toEqual(["a", "a2"]) - - expect("a" in a).toBe(true) - expect(a.hasOwnProperty("a")).toBe(true) - expect(a.hasOwnProperty("a2")).toBe(true) - expect(a.hasOwnProperty("b")).toBe(true) // true would better.. but, #1777 - expect(a.hasOwnProperty("m")).toBe(false) - expect(a.hasOwnProperty("m2")).toBe(true) -}) - -test("enumerability - workaround", () => { - class A { - @observable a = 1 // enumerable, on proto - @observable a2 = 2 - @computed - get b() { - return this.a - } // non-enumerable, (and, ideally, on proto) - @action - m() {} // non-enumerable, on proto - @action m2 = () => {} // non-enumerable, on self - - constructor() { - makeObservable(this) - this.a = 1 - this.a2 = 2 - } - } - - const a = new A() - - const ownProps = Object.keys(a) - const props = [] - for (const key in a) props.push(key) - - expect(ownProps).toEqual([ - "a", - "a2" // a2 is now initialized as well, altough never accessed! - ]) - - expect(props).toEqual(["a", "a2"]) - - expect("a" in a).toBe(true) - expect(a.hasOwnProperty("a")).toBe(true) - expect(a.hasOwnProperty("a2")).toBe(true) - expect(a.hasOwnProperty("b")).toBe(true) // ideally, false, but #1777 - expect(a.hasOwnProperty("m")).toBe(false) - expect(a.hasOwnProperty("m2")).toBe(true) -}) - -test("issue 285 (babel)", () => { - const { observable, toJS } = mobx - - class Todo { - id = 1 - @observable title - @observable finished = false - @observable childThings = [1, 2, 3] - constructor(title) { - makeObservable(this) - this.title = title - } - } - - const todo = new Todo("Something to do") - - expect(toJS(todo)).toEqual({ - id: 1, - title: "Something to do", - finished: false, - childThings: [1, 2, 3] - }) -}) - -test("verify object assign (babel)", () => { - class Todo { - @observable title = "test" - - constructor() { - makeObservable(this) - } - - @computed - get upperCase() { - return this.title.toUpperCase() - } - } - - const todo = new Todo() - expect(Object.assign({}, todo)).toEqual({ - title: "test" - }) -}) - -test("379, inheritable actions (babel)", () => { - class A { - constructor() { - makeObservable(this) - } - - @action - method() { - return 42 - } - } - - class B extends A { - constructor() { - super() - makeObservable(this) - } - - method() { - return super.method() * 2 - } - } - - class C extends B { - constructor() { - super() - makeObservable(this) - } - - method() { - return super.method() + 3 - } - } - - const b = new B() - expect(b.method()).toBe(84) - expect(isAction(b.method)).toBe(true) - - const a = new A() - expect(a.method()).toBe(42) - expect(isAction(a.method)).toBe(true) - - const c = new C() - expect(c.method()).toBe(87) - expect(isAction(c.method)).toBe(true) -}) - -test("505, don't throw when accessing subclass fields in super constructor (babel)", () => { - const values = {} - class A { - @observable a = 1 - constructor() { - makeObservable(this) - values.b = this.b - values.a = this.a - } - } - - class B extends A { - @observable b = 2 - - constructor() { - super() - makeObservable(this) - } - } - - new B() - expect(values).toEqual({ a: 1, b: undefined }) -}) - -test("computed setter should succeed (babel)", function () { - class Bla { - @observable a = 3 - - constructor() { - makeObservable(this) - } - - @computed - get propX() { - return this.a * 2 - } - set propX(v) { - this.a = v - } - } - - const b = new Bla() - expect(b.propX).toBe(6) - b.propX = 4 - expect(b.propX).toBe(8) -}) - -test("issue #701", () => { - class Model { - @observable a = 5 - - constructor() { - makeObservable(this) - } - } - - const model = new Model() - - expect(mobx.toJS(model)).toEqual({ a: 5 }) - expect(mobx.isObservable(model)).toBe(true) - expect(mobx.isObservableObject(model)).toBe(true) -}) - -test("@observable.ref (Babel)", () => { - class A { - @observable.ref ref = { a: 3 } - - constructor() { - makeObservable(this) - } - } - - const a = new A() - expect(a.ref.a).toBe(3) - expect(mobx.isObservable(a.ref)).toBe(false) - expect(mobx.isObservableProp(a, "ref")).toBe(true) -}) - -test("@observable.shallow (Babel)", () => { - class A { - @observable.shallow arr = [{ todo: 1 }] - - constructor() { - makeObservable(this) - } - } - - const a = new A() - const todo2 = { todo: 2 } - a.arr.push(todo2) - expect(mobx.isObservable(a.arr)).toBe(true) - expect(mobx.isObservableProp(a, "arr")).toBe(true) - expect(mobx.isObservable(a.arr[0])).toBe(false) - expect(mobx.isObservable(a.arr[1])).toBe(false) - expect(a.arr[1] === todo2).toBeTruthy() -}) - -test("@observable.deep (Babel)", () => { - class A { - @observable.deep arr = [{ todo: 1 }] - - constructor() { - makeObservable(this) - } - } - - const a = new A() - const todo2 = { todo: 2 } - a.arr.push(todo2) - - expect(mobx.isObservable(a.arr)).toBe(true) - expect(mobx.isObservableProp(a, "arr")).toBe(true) - expect(mobx.isObservable(a.arr[0])).toBe(true) - expect(mobx.isObservable(a.arr[1])).toBe(true) - expect(a.arr[1] !== todo2).toBeTruthy() - expect(isObservable(todo2)).toBe(false) -}) - -test("action.bound binds (Babel)", () => { - class A { - @observable x = 0 - - constructor() { - makeObservable(this) - } - - @action.bound - inc(value) { - this.x += value - } - } - - const a = new A() - const runner = a.inc - runner(2) - - expect(a.x).toBe(2) -}) - -test("@computed.equals (Babel)", () => { - const sameTime = (from, to) => from.hour === to.hour && from.minute === to.minute - class Time { - constructor(hour, minute) { - makeObservable(this) - this.hour = hour - this.minute = minute - } - - @observable hour - @observable minute - - @computed({ equals: sameTime }) - get time() { - return { hour: this.hour, minute: this.minute } - } - } - const time = new Time(9, 0) - - const changes = [] - const disposeAutorun = autorun(() => changes.push(time.time)) - - expect(changes).toEqual([{ hour: 9, minute: 0 }]) - time.hour = 9 - expect(changes).toEqual([{ hour: 9, minute: 0 }]) - time.minute = 0 - expect(changes).toEqual([{ hour: 9, minute: 0 }]) - time.hour = 10 - expect(changes).toEqual([ - { hour: 9, minute: 0 }, - { hour: 10, minute: 0 } - ]) - time.minute = 30 - expect(changes).toEqual([ - { hour: 9, minute: 0 }, - { hour: 10, minute: 0 }, - { hour: 10, minute: 30 } - ]) - - disposeAutorun() -}) - -// 19.12.2020 @urugator: -// All annotated non-observable fields are not writable. -// All annotated fields of non-plain objects are non-configurable. -// https://github.com/mobxjs/mobx/pull/2641 -test.skip("actions are reassignable", () => { - // See #1398, make actions reassignable to support stubbing - class A { - constructor() { - makeObservable(this) - } - - @action - m1() {} - @action m2 = () => {} - @action.bound - m3() {} - @action.bound m4 = () => {} - } - - const a = new A() - expect(isAction(a.m1)).toBe(true) - expect(isAction(a.m2)).toBe(true) - expect(isAction(a.m3)).toBe(true) - expect(isAction(a.m4)).toBe(true) - a.m1 = () => {} - expect(isAction(a.m1)).toBe(false) - a.m2 = () => {} - expect(isAction(a.m2)).toBe(false) - a.m3 = () => {} - expect(isAction(a.m3)).toBe(false) - a.m4 = () => {} - expect(isAction(a.m4)).toBe(false) -}) - -test("it should support asyncAction (babel)", async () => { - mobx.configure({ enforceActions: "observed" }) - - class X { - @observable a = 1 - - f = mobx.flow(function* f(initial) { - this.a = initial // this runs in action - this.a += yield Promise.resolve(5) - this.a = this.a * 2 - return this.a - }) - - constructor() { - makeObservable(this) - } - } - - const x = new X() - - expect(await x.f(3)).toBe(16) -}) - -test("toJS bug #1413 (babel)", () => { - class X { - @observable - test = { - test1: 1 - } - - constructor() { - makeObservable(this) - } - } - - const x = new X() - const res = mobx.toJS(x.test) - expect(res).toEqual({ test1: 1 }) - expect(res.__mobxDidRunLazyInitializers).toBe(undefined) -}) - -test("computed setter problem", () => { - class Contact { - @observable firstName = "" - @observable lastName = "" - - constructor() { - makeObservable(this) - } - - @computed({ - set(value) { - const [firstName, lastName] = value.split(" ") - - this.firstName = firstName - this.lastName = lastName - } - }) - get fullName() { - return `${this.firstName} ${this.lastName}` - } - - set fullName(value) { - const [firstName, lastName] = value.split(" ") - - this.firstName = firstName - this.lastName = lastName - } - } - - const c = new Contact() - - c.firstName = "Pavan" - c.lastName = "Podila" - - expect(c.fullName).toBe("Pavan Podila") - - c.fullName = "Michel Weststrate" - expect(c.firstName).toBe("Michel") - expect(c.lastName).toBe("Weststrate") -}) - -test("#1740, combining extendObservable & decorators", () => { - class AppState { - constructor(id) { - makeObservable(this) - extendObservable(this, { - id - }) - expect(this.foo).toBe(id) - } - - @computed - get foo() { - return this.id - } - } - - let app = new AppState(1) - expect(app.id).toBe(1) - expect(app.foo).toBe(1) - expect(isObservableProp(app, "id")).toBe(true) - expect(isComputedProp(app, "foo")).toBe(true) - - app = new AppState(2) - expect(app.id).toBe(2) - expect(app.foo).toBe(2) - expect(isObservableProp(app, "id")).toBe(true) - expect(isComputedProp(app, "foo")).toBe(true) -}) diff --git a/packages/mobx/__tests__/base/babel-tests.js b/packages/mobx/__tests__/base/babel-tests.js index 8f7a5d3f99..12185b658c 100644 --- a/packages/mobx/__tests__/base/babel-tests.js +++ b/packages/mobx/__tests__/base/babel-tests.js @@ -1,10 +1,15 @@ import { observable, + observableRef, + observableShallow, + observableDeep, computed, + computedStruct, transaction, autorun, extendObservable, action, + actionBound, isObservableObject, observe, isObservable, @@ -97,7 +102,7 @@ test("babel: parameterized computed decorator", () => { makeObservable(this, { x: observable, y: observable, - boxedSum: computed.struct + boxedSum: computedStruct }) } @@ -134,7 +139,7 @@ test("computed value should be the same around changing which was considered equ constructor() { makeObservable(this, { c: observable, - collection: computed.struct + collection: computedStruct }) } @@ -558,20 +563,14 @@ test.skip("observable performance - babel", () => { console.log("changed in ", Date.now() - start) }) +// Do not remove: slow manual stage-3 decorator benchmark test.skip("observable performance - babel - decorators", () => { const AMOUNT = 100000 class A { - @observable - a = 1 - @observable - b = 2 - @observable - c = 3 - - constructor() { - makeObservable(this) - } + @observable accessor a = 1 + @observable accessor b = 2 + @observable accessor c = 3 @computed get d() { @@ -598,6 +597,7 @@ test.skip("observable performance - babel - decorators", () => { console.log("changed in ", Date.now() - start) }) + test("unbound methods", () => { class A { constructor() { @@ -1029,13 +1029,13 @@ test("issue #701", () => { expect(mobx.isObservableObject(model)).toBe(true) }) -test("@observable.ref (Babel)", () => { +test("@observableRef (Babel)", () => { class A { ref = { a: 3 } constructor() { makeObservable(this, { - ref: observable.ref + ref: observableRef }) } } @@ -1046,13 +1046,13 @@ test("@observable.ref (Babel)", () => { expect(mobx.isObservableProp(a, "ref")).toBe(true) }) -test("@observable.shallow (Babel)", () => { +test("@observableShallow (Babel)", () => { class A { arr = [{ todo: 1 }] constructor() { makeObservable(this, { - arr: observable.shallow + arr: observableShallow }) } } @@ -1067,13 +1067,13 @@ test("@observable.shallow (Babel)", () => { expect(a.arr[1] === todo2).toBeTruthy() }) -test("@observable.deep (Babel)", () => { +test("@observableDeep (Babel)", () => { class A { arr = [{ todo: 1 }] constructor() { makeObservable(this, { - arr: observable.deep + arr: observableDeep }) } } @@ -1097,7 +1097,7 @@ test("action.bound binds (Babel)", () => { constructor() { makeObservable(this, { x: observable, - inc: action.bound + inc: actionBound }) } @@ -1298,8 +1298,8 @@ test.skip("actions are reassignable", () => { makeObservable(this, { m1: action, m2: action, - m3: action.bound, - m4: action.bound + m3: actionBound, + m4: actionBound }) } diff --git a/packages/mobx/__tests__/base/become-observed.ts b/packages/mobx/__tests__/base/become-observed.ts index 8222cdbd06..a8fd6d6741 100644 --- a/packages/mobx/__tests__/base/become-observed.ts +++ b/packages/mobx/__tests__/base/become-observed.ts @@ -2,6 +2,7 @@ import { autorun, onBecomeObserved, observable, + observableRef, computed, action, makeObservable, @@ -26,7 +27,7 @@ test("#2309 don't trigger oBO for computeds that aren't subscribed to", () => { const events: string[] = [] class Asd { - @observable prop = 42 + @observable accessor prop = 42 @computed get computed() { @@ -42,10 +43,6 @@ test("#2309 don't trigger oBO for computeds that aren't subscribed to", () => { actionComputed() { const bar = this.computed } - - constructor() { - makeObservable(this) - } } const asd = new Asd() @@ -308,7 +305,7 @@ describe("nested computes don't trigger hooks #2686", () => { constructor() { makeObservable(this, { upperValue$: computed, - lower$: observable.ref + lower$: observableRef }) } @@ -434,14 +431,11 @@ test("#2686 - 3", () => { test("#2667", () => { const events: any[] = [] class LazyInitializedList { - @observable - public items: string[] | undefined + @observable accessor items: string[] | undefined = undefined - @observable - public listName + @observable accessor listName: string - public constructor(listName: string, lazyItems: string[]) { - makeObservable(this) + constructor(listName: string, lazyItems: string[]) { this.listName = listName onBecomeObserved( this, @@ -463,26 +457,24 @@ test("#2667", () => { } class ItemsStore { - @observable - private list: LazyInitializedList + @observable accessor list: LazyInitializedList - public constructor() { + constructor() { this.list = new LazyInitializedList("initial", ["a, b, c"]) - makeObservable(this) } @action - public changeList = () => { + changeList = () => { this.list = new LazyInitializedList("new", ["b, c, a"]) } @computed - public get items(): string[] | undefined { + get items(): string[] | undefined { return this.list.items } @computed - public get activeListName(): string { + get activeListName(): string { return this.list.listName } } diff --git a/packages/mobx/__tests__/base/decorate.js b/packages/mobx/__tests__/base/decorate.js index 0197f11a03..1a46a3d0ce 100644 --- a/packages/mobx/__tests__/base/decorate.js +++ b/packages/mobx/__tests__/base/decorate.js @@ -3,6 +3,7 @@ import { observable, + observableRef, computed, autorun, action, @@ -58,7 +59,7 @@ test("decorate should work", function () { } constructor() { makeObservable(this, { - uninitialized: observable.ref, + uninitialized: observableRef, height: observable, sizes: observable, someFunc: observable, diff --git a/packages/mobx/__tests__/base/errorhandling.js b/packages/mobx/__tests__/base/errorhandling.js index 0d5a8c377c..68fd14e2b0 100644 --- a/packages/mobx/__tests__/base/errorhandling.js +++ b/packages/mobx/__tests__/base/errorhandling.js @@ -785,69 +785,3 @@ test("error in effect of when is properly cleaned up", () => { checkGlobalState() }) - -describe("es5 compat warnings", () => { - beforeEach(() => { - mobx.configure({ - useProxies: "ifavailable" - }) - }) - - test("adding / deleting property", () => { - const x = observable({ - z: 0 - }) - - expect(() => { - x.y = 2 - }).toThrowErrorMatchingInlineSnapshot( - `"[MobX] MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to add a new observable property through direct assignment. Use 'set' from 'mobx' instead."` - ) - - expect(() => { - delete x.z - }).toThrowErrorMatchingInlineSnapshot( - `"[MobX] MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to delete properties from an observable object. Use 'remove' from 'mobx' instead."` - ) - }) - - test("iterating props", () => { - const x = observable({ - z: 0 - }) - - expect(() => { - "z" in x - }).not.toThrow() - - let e - autorun(() => { - try { - "z" in x - } catch (err) { - e = err - } - }) - expect(e).toMatchInlineSnapshot( - `[Error: [MobX] MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.]` - ) - - e = undefined - - expect(() => { - Object.getOwnPropertyNames(x) - }).not.toThrow() - autorun(() => { - try { - Object.getOwnPropertyNames(x) - } catch (err) { - e = err - } - }) - expect(e).toMatchInlineSnapshot( - `[Error: [MobX] MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.]` - ) - }) -}) - -test("should throw when adding properties in ES5 compat mode", () => {}) diff --git a/packages/mobx/__tests__/base/extras.js b/packages/mobx/__tests__/base/extras.js index ec22d55a20..528c1b87f9 100644 --- a/packages/mobx/__tests__/base/extras.js +++ b/packages/mobx/__tests__/base/extras.js @@ -482,9 +482,9 @@ test("deepEquals should yield correct results for complex objects #1118 - 1", () expect(d2016jan1).toEqual(d2016jan1_2) expect(d2016jan1).not.toEqual(d2017jan1) - expect(mobx.comparer.structural(d2016jan1, d2016jan1)).toBe(true) - expect(mobx.comparer.structural(d2016jan1, d2017jan1)).toBe(false) - expect(mobx.comparer.structural(d2016jan1, d2016jan1_2)).toBe(true) + expect(mobx.compareStructural(d2016jan1, d2016jan1)).toBe(true) + expect(mobx.compareStructural(d2016jan1, d2017jan1)).toBe(false) + expect(mobx.compareStructural(d2016jan1, d2016jan1_2)).toBe(true) }) test("deepEquals should yield correct results for complex objects #1118 - 2", () => { @@ -505,14 +505,14 @@ test("deepEquals should yield correct results for complex objects #1118 - 2", () expect(a1).toEqual(a2) expect(a1).not.toEqual(a3) - expect(mobx.comparer.structural(a1, a1)).toBe(true) - expect(mobx.comparer.structural(a1, a3)).toBe(false) - expect(mobx.comparer.structural(a1, a2)).toBe(true) - expect(mobx.comparer.structural(a1, a4)).toBe(false) + expect(mobx.compareStructural(a1, a1)).toBe(true) + expect(mobx.compareStructural(a1, a3)).toBe(false) + expect(mobx.compareStructural(a1, a2)).toBe(true) + expect(mobx.compareStructural(a1, a4)).toBe(false) }) -test("comparer.shallow should require types to be equal", () => { - const sh = mobx.comparer.shallow +test("compareShallow should require types to be equal", () => { + const sh = mobx.compareShallow const obs = mobx.observable expect(sh({}, {})).toBe(true) @@ -587,8 +587,8 @@ test("comparer.shallow should require types to be equal", () => { expect(sh(obs(new Map()), obs(new Set()))).toBe(false) expect(sh(obs(new Map()), obs(new Map()))).toBe(true) }) -test("comparer.shallow should work", () => { - const sh = mobx.comparer.shallow +test("compareShallow should work", () => { + const sh = mobx.compareShallow const obs = mobx.observable expect(sh(1, 1)).toBe(true) @@ -894,9 +894,6 @@ test("Default debug names - development", () => { /ObservableObject@\d+.x/.test(mobx.getDebugName(mobx.observable({ get x() {} }), "x")) ).toBe(true) expect(/ObservableArray@\d+/.test(mobx.getDebugName(mobx.observable([])))).toBe(true) - expect( - /ObservableArray@\d+/.test(mobx.getDebugName(mobx.observable([], { proxy: false }))) - ).toBe(true) expect(/ObservableMap@\d+/.test(mobx.getDebugName(mobx.observable(new Map())))).toBe(true) expect(/ObservableSet@\d+/.test(mobx.getDebugName(mobx.observable(new Set())))).toBe(true) expect(/ObservableValue@\d+/.test(mobx.getDebugName(mobx.observable("x")))).toBe(true) @@ -924,7 +921,6 @@ test("Default debug names - production", () => { expect(mobx.getDebugName(mobx.observable({ x: "x" }), "x")).toBe("ObservableObject.key") expect(mobx.getDebugName(mobx.observable({ get x() {} }), "x")).toBe("ObservableObject.key") expect(mobx.getDebugName(mobx.observable([]))).toBe("ObservableArray") - expect(mobx.getDebugName(mobx.observable([], { proxy: false }))).toBe("ObservableArray") expect(mobx.getDebugName(mobx.observable(new Map()))).toBe("ObservableMap") expect(mobx.getDebugName(mobx.observable(new Set()))).toBe("ObservableSet") expect(mobx.getDebugName(mobx.observable("x"))).toBe("ObservableValue") @@ -951,7 +947,6 @@ test("User provided debug names are always respected", () => { expect(mobx.getDebugName(mobx.computed(() => {}, { name }))).toBe(name) expect(mobx.getDebugName(mobx.observable({}, {}, { name }))).toBe(name) expect(mobx.getDebugName(mobx.observable([], { name }))).toBe(name) - expect(mobx.getDebugName(mobx.observable([], { name, proxy: false }))).toBe(name) expect(mobx.getDebugName(mobx.observable(new Map(), { name }))).toBe(name) expect(mobx.getDebugName(mobx.observable(new Set(), { name }))).toBe(name) expect(mobx.getDebugName(mobx.observable("x", { name }))).toBe(name) diff --git a/packages/mobx/__tests__/base/make-observable.ts b/packages/mobx/__tests__/base/make-observable.ts index db04237bd2..cd861e832c 100644 --- a/packages/mobx/__tests__/base/make-observable.ts +++ b/packages/mobx/__tests__/base/make-observable.ts @@ -3,8 +3,11 @@ import { deepEnhancer } from "../../src/internal" import { makeObservable, action, + actionBound, computed, observable, + observableRef, + observableShallow, isObservable, isObservableObject, isObservableProp, @@ -17,46 +20,12 @@ import { _getAdministration, configure, flow, + flowBound, override, ObservableSet, ObservableMap } from "../../src/mobx" -test("makeObservable picks up decorators", () => { - class Test { - @observable x = 3 - y = 3 - - @computed - get double() { - return this.x * 2 - } - - @action - unbound() { - return this - } - - @action.bound bound() { - return this - } - - constructor() { - makeObservable(this) - } - } - - const t = new Test() - expect(isObservableObject(t)).toBe(true) - expect(isObservableProp(t, "x")).toBe(true) - expect(isObservableProp(t, "y")).toBe(false) - expect(isComputedProp(t, "double")).toBe(true) - expect(isAction(t.unbound)).toBe(true) - expect(isAction(t.bound)).toBe(true) - expect(t.unbound.call(undefined)).toBe(undefined) - expect(t.bound.call(undefined)).toBe(t) -}) - test("makeObservable picks up annotations", () => { class Test { x = 3 @@ -79,7 +48,7 @@ test("makeObservable picks up annotations", () => { x: observable, double: computed, unbound: action, - bound: action.bound + bound: actionBound }) } } @@ -118,7 +87,7 @@ test("makeObservable supports private fields", () => { x: observable, double: computed, unbound: action, - bound: action.bound + bound: actionBound }) if (3 - 1 === 4) { makeObservable(this, { @@ -169,7 +138,7 @@ test("makeObservable has sane defaults", () => { y: false, double: true, unbound: true, - bound: action.bound + bound: actionBound }) if (3 - 1 === 4) { makeObservable(this, { @@ -353,7 +322,7 @@ test("makeAutoObservable allows overrides", () => { constructor() { makeAutoObservable(this, { unbound: true, - bound: action.bound, + bound: actionBound, y: false }) if (3 - 1 === 4) { @@ -563,21 +532,23 @@ test("makeObservable doesn't trigger in always mode'", () => { test("#2457", () => { class BaseClass { - @observable - value1?: number + value1: number | undefined = undefined constructor() { - makeObservable(this) + makeObservable(this, { + value1: observable + }) } } class SubClass extends BaseClass { constructor() { super() - makeObservable(this) + makeObservable(this, { + value1Computed: computed + }) } - @computed get value1Computed() { return this.value1 } @@ -617,7 +588,7 @@ test("makeObservable respects options.name #2614'", () => { expect(getDebugName(instance)).toBe(name) expect(getDebugName(plain)).toBe(name) }) -// "makeObservable + @action + arrow function + subclass override #2614" +// "makeObservable + action + arrow function + subclass override #2614" test("class - annotations", async () => { class Foo { @@ -628,13 +599,13 @@ test("class - annotations", async () => { constructor() { makeObservable(this, { observable: observable, - "observable.ref": observable.ref, - "observable.shallow": observable.shallow, + "observable.ref": observableRef, + "observable.shallow": observableShallow, computed: computed, action: action, - "action.bound": action.bound, + "action.bound": actionBound, flow: flow, - "flow.bound": flow.bound + "flow.bound": flowBound }) } @@ -695,81 +666,6 @@ test("class - annotations", async () => { expect(await foo["flow.bound"].call(null)).toBe(foo) }) -test("class - decorators", async () => { - class Foo { - @observable - ["observable"] = { nested: {} }; - @observable.ref - ["observable.ref"] = { nested: {} }; - @observable.shallow - ["observable.shallow"] = { nested: {} } - - constructor() { - makeObservable(this) - } - - @computed - get computed() { - return this - } - - @action - ["action"]() { - return this - } - - @action.bound - ["action.bound"]() { - return this - } - - @flow - *["flow"]() { - return this - } - - @flow.bound - *["flow.bound"]() { - return this - } - } - - const foo = new Foo() - expect(isObservableObject(foo)).toBe(true) - - expect(isObservableProp(foo, "observable")).toBe(true) - expect(isObservableObject(foo["observable"])).toBe(true) - - expect(isObservableProp(foo, "observable.ref")).toBe(true) - expect(isObservableObject(foo["observable.ref"])).toBe(false) - expect(isObservableObject(foo["observable.ref"].nested)).toBe(false) - - expect(isObservableProp(foo, "observable.shallow")).toBe(true) - expect(isObservableObject(foo["observable.shallow"])).toBe(true) - expect(isObservableObject(foo["observable.shallow"].nested)).toBe(false) - - expect(isComputedProp(foo, "computed")).toBe(true) - - expect(isAction(foo["action"])).toBe(true) - expect(Object.getPrototypeOf(foo).hasOwnProperty("action")).toBe(true) - expect(foo.hasOwnProperty("action")).toBe(false) - expect(foo["action"].call(null)).toBe(null) - - expect(isAction(foo["action.bound"])).toBe(true) - expect(Object.getPrototypeOf(foo).hasOwnProperty("action.bound")).toBe(true) - expect(foo.hasOwnProperty("action.bound")).toBe(true) - expect(foo["action.bound"].call(null)).toBe(foo) - - expect(isFlow(foo["flow"])).toBe(true) - expect(Object.getPrototypeOf(foo).hasOwnProperty("flow")).toBe(true) - expect(foo.hasOwnProperty("flow")).toBe(false) - - expect(isFlow(foo["flow.bound"])).toBe(true) - expect(Object.getPrototypeOf(foo).hasOwnProperty("flow.bound")).toBe(true) - expect(foo.hasOwnProperty("flow.bound")).toBe(true) - expect(await foo["flow.bound"].call(null)).toBe(foo) -}) - test("subclass - annotation", () => { class Parent { ["observable"] = { nested: {} }; @@ -779,11 +675,11 @@ test("subclass - annotation", () => { constructor() { makeObservable(this, { observable: observable, - "observable.ref": observable.ref, - "observable.shallow": observable.shallow, + "observable.ref": observableRef, + "observable.shallow": observableShallow, computed: computed, action: action, - "action.bound": action.bound, + "action.bound": actionBound, flow: flow }) } @@ -814,11 +710,11 @@ test("subclass - annotation", () => { super() makeObservable(this, { observable2: observable, - "observable.ref2": observable.ref, - "observable.shallow2": observable.shallow, + "observable.ref2": observableRef, + "observable.shallow2": observableShallow, computed2: computed, action2: action, - "action.bound2": action.bound, + "action.bound2": actionBound, flow2: flow }) } @@ -898,141 +794,15 @@ test("subclass - annotation", () => { expect(child.hasOwnProperty("flow2")).toBe(false) }) -test("subclass - decorator", () => { - class Parent { - @observable - ["observable"] = { nested: {} }; - @observable.ref - ["observable.ref"] = { nested: {} }; - @observable.shallow - ["observable.shallow"] = { nested: {} } - - constructor() { - makeObservable(this) - } - - @computed - get computed() { - return this - } - - @action - ["action"]() { - return this - } - - @action.bound - ["action.bound"]() { - return this - } - - @flow - *["flow"]() { - return this - } - } - - class Child extends Parent { - @observable - ["observable2"] = { nested: {} }; - @observable.ref - ["observable.ref2"] = { nested: {} }; - @observable.shallow - ["observable.shallow2"] = { nested: {} } - - constructor() { - super() - makeObservable(this) - } - - @computed - get computed2() { - return this - } - - @action - ["action2"]() { - return this - } - - @action.bound - ["action.bound2"]() { - return this - } - - @flow - *["flow2"]() { - return this - } - } - - const child = new Child() - expect(isObservableObject(child)).toBe(true) - - expect(isObservableProp(child, "observable")).toBe(true) - expect(isObservableObject(child["observable"])).toBe(true) - - expect(isObservableProp(child, "observable.ref")).toBe(true) - expect(isObservableObject(child["observable.ref"])).toBe(false) - expect(isObservableObject(child["observable.ref"].nested)).toBe(false) - - expect(isObservableProp(child, "observable.shallow")).toBe(true) - expect(isObservableObject(child["observable.shallow"])).toBe(true) - expect(isObservableObject(child["observable.shallow"].nested)).toBe(false) - - expect(isComputedProp(child, "computed")).toBe(true) - - expect(isAction(child["action"])).toBe(true) - expect(Object.getPrototypeOf(child).hasOwnProperty("action")).toBe(false) - expect(child.hasOwnProperty("action")).toBe(false) - expect(child["action"].call(null)).toBe(null) - - expect(isAction(child["action.bound"])).toBe(true) - expect(Object.getPrototypeOf(child).hasOwnProperty("action.bound")).toBe(false) - expect(child.hasOwnProperty("action.bound")).toBe(true) - expect(child["action.bound"].call(null)).toBe(child) - - expect(isFlow(child["flow"])).toBe(true) - expect(Object.getPrototypeOf(child).hasOwnProperty("flow")).toBe(false) - expect(child.hasOwnProperty("flow")).toBe(false) - - expect(isObservableProp(child, "observable2")).toBe(true) - expect(isObservableObject(child["observable2"])).toBe(true) - - expect(isObservableProp(child, "observable.ref2")).toBe(true) - expect(isObservableObject(child["observable.ref2"])).toBe(false) - expect(isObservableObject(child["observable.ref2"].nested)).toBe(false) - - expect(isObservableProp(child, "observable.shallow2")).toBe(true) - expect(isObservableObject(child["observable.shallow2"])).toBe(true) - expect(isObservableObject(child["observable.shallow2"].nested)).toBe(false) - - expect(isComputedProp(child, "computed2")).toBe(true) - - expect(isAction(child["action2"])).toBe(true) - expect(Object.getPrototypeOf(child).hasOwnProperty("action2")).toBe(true) - expect(child.hasOwnProperty("action2")).toBe(false) - expect(child["action2"].call(null)).toBe(null) - - expect(isAction(child["action.bound2"])).toBe(true) - expect(Object.getPrototypeOf(child).hasOwnProperty("action.bound2")).toBe(true) - expect(child.hasOwnProperty("action.bound2")).toBe(true) - expect(child["action.bound2"].call(null)).toBe(child) - - expect(isFlow(child["flow2"])).toBe(true) - expect(Object.getPrototypeOf(child).hasOwnProperty("flow2")).toBe(true) - expect(child.hasOwnProperty("flow2")).toBe(false) -}) - test("subclass - annotation - override", async () => { class Parent { constructor() { makeObservable(this, { action: action, - ["action.bound"]: action.bound, + ["action.bound"]: actionBound, computed: computed, flow: flow, - ["flow.bound"]: flow.bound + ["flow.bound"]: flowBound }) } action() { @@ -1122,103 +892,6 @@ test("subclass - annotation - override", async () => { expect(await child["flow.bound"]()).toBe("child of parent") }) -test("subclass - decorator - override", async () => { - class Parent { - constructor() { - makeObservable(this) - } - @action - action() { - return "parent" - } - @action.bound - ["action.bound"]() { - return "parent" - } - @flow - *flow() { - return "parent" - } - @flow.bound - *["flow.bound"]() { - return "parent" - } - @computed - get computed() { - return "parent" - } - } - - class Child extends Parent { - action() { - return "child of " + super.action() - } - ["action.bound"]() { - return "child of " + super["action.bound"]() - } - get computed() { - return "child" - } - *flow(): any { - const parent = yield super.flow() - return "child of " + parent - } - *["flow.bound"](): any { - const parent = yield super["flow.bound"]() - return "child of " + parent - } - } - const child = new Child() - - // Action - expect(isAction(Parent.prototype.action)).toBe(true) - expect(isAction(Child.prototype.action)).toBe(true) - expect(isAction(child.action)).toBe(true) - - expect(child.hasOwnProperty("action")).toBe(false) - - expect(Parent.prototype.action()).toBe("parent") - expect(Child.prototype.action()).toBe("child of parent") - expect(child.action()).toBe("child of parent") - - // Action bound - expect(isAction(Parent.prototype["action.bound"])).toBe(false) - expect(isAction(Child.prototype["action.bound"])).toBe(false) - expect(isAction(child["action.bound"])).toBe(true) - - expect(child.hasOwnProperty("action.bound")).toBe(true) - - expect(Parent.prototype["action.bound"]()).toBe("parent") - expect(Child.prototype["action.bound"]()).toBe("child of parent") - expect(child["action.bound"]()).toBe("child of parent") - - // Computed - expect(isComputedProp(child, "computed")).toBe(true) - expect(child.computed).toBe("child") - - // Flow - expect(isFlow(Parent.prototype.flow)).toBe(true) - expect(isFlow(Child.prototype.flow)).toBe(true) - expect(isFlow(child.flow)).toBe(true) - - expect(child.hasOwnProperty("flow")).toBe(false) - - expect(await Parent.prototype.flow()).toBe("parent") - expect(await Child.prototype.flow()).toBe("child of parent") - expect(await child.flow()).toBe("child of parent") - - // Flow bound - expect(isFlow(Parent.prototype["flow.bound"])).toBe(true) - expect(isFlow(Child.prototype["flow.bound"])).toBe(true) - expect(isFlow(child["flow.bound"])).toBe(true) - - expect(child.hasOwnProperty("flow.bound")).toBe(true) - - expect(await Parent.prototype["flow.bound"]()).toBe("parent") - expect(await Child.prototype["flow.bound"]()).toBe("child of parent") - expect(await child["flow.bound"]()).toBe("child of parent") -}) - test("subclass - cannot re-annotate", () => { class Parent { observable = 1 @@ -1226,9 +899,9 @@ test("subclass - cannot re-annotate", () => { makeObservable(this, { action: action, observable: observable, - actionBound: action.bound, + actionBound: actionBound, flow: flow, - flowBound: flow.bound, + flowBound: flowBound, computed: computed }) } @@ -1255,7 +928,7 @@ test("subclass - cannot re-annotate", () => { constructor() { super() makeObservable(this, { - actionBound: action.bound + actionBound: actionBound }) } actionBound() {} @@ -1275,7 +948,7 @@ test("subclass - cannot re-annotate", () => { constructor() { super() makeObservable(this, { - flowBound: flow.bound + flowBound: flowBound }) } *flowBound() {} @@ -1311,96 +984,6 @@ test("subclass - cannot re-annotate", () => { expect(() => new ChildComputed()).toThrow(/^\[MobX\] Cannot apply/) }) -test("subclass - cannot re-decorate", () => { - class Parent { - @observable - observable = 1 - constructor() { - makeObservable(this) - } - @action - action() {} - @action.bound - actionBound() {} - @flow - *flow() {} - @flow.bound - *flowBound() {} - @computed - get computed() { - return this - } - } - - expect(() => { - class ChildAction extends Parent { - constructor() { - super() - makeObservable(this) - } - @action - action() {} - } - }).toThrow(/^\[MobX\] Cannot apply/) - - expect(() => { - class ChildActionBound extends Parent { - constructor() { - super() - makeObservable(this) - } - @action.bound - actionBound() {} - } - }).toThrow(/^\[MobX\] Cannot apply/) - - expect(() => { - class ChildFlow extends Parent { - constructor() { - super() - makeObservable(this) - } - @flow - *flow() {} - } - }).toThrow(/^\[MobX\] Cannot apply/) - - expect(() => { - class ChildFlowBound extends Parent { - constructor() { - super() - makeObservable(this) - } - @flow.bound - *flowBound() {} - } - }).toThrow(/^\[MobX\] Cannot apply/) - - expect(() => { - class ChildObservable extends Parent { - @observable - observable = 1 - constructor() { - super() - makeObservable(this) - } - } - }).toThrow(/^\[MobX\] Cannot apply/) - - expect(() => { - class ChildComputed extends Parent { - constructor() { - super() - makeObservable(this) - } - @computed - get computed() { - return this - } - } - }).toThrow(/^\[MobX\] Cannot apply/) -}) - test("subclass - cannot redefine property", () => { class Parent { observable = 1 @@ -1435,33 +1018,6 @@ test("subclass - cannot redefine property", () => { expect(() => new ChildComputed()).toThrow(/^Cannot redefine property/) }) -test("@override", () => { - class Parent { - constructor() { - makeObservable(this) - } - - @action - action() { - return "parent" - } - } - - class Child extends Parent { - @override - action() { - return `child of ${super.action()}` - } - } - - const child = new Child() - expect(isAction(Parent.prototype.action)) - expect(Parent.prototype.action()).toBe("parent") - expect(isAction(Child.prototype.action)) - expect(isAction(child.action)).toBe(true) - expect(child.action()).toBe("child of parent") -}) - test("override", () => { class Parent { constructor() { @@ -1519,29 +1075,6 @@ test("override must override", () => { ) }) -test("@override must override", () => { - class Parent { - action() { - return "parent" - } - } - - expect(() => { - class Child extends Parent { - constructor() { - super() - makeObservable(this) - } - @override - action() { - return `child of ${super.action()}` - } - } - }).toThrow( - /^\[MobX\] 'Child\.prototype\.action' is decorated with 'override', but no such decorated member was found on prototype\./ - ) -}) - test("makeAutoObservable + production build #2751", () => { const mobx = require(`../../dist/mobx.cjs.production.min.js`) class Foo { @@ -1613,7 +1146,7 @@ test("makeAutoObservable + override + annotation cache #2832", () => { override = [] constructor() { makeAutoObservable(this, { - override: observable.ref + override: observableRef }) } } @@ -1630,7 +1163,7 @@ test("flow.bound #2941", async () => { class Clazz { constructor() { makeObservable(this, { - flowBound: flow.bound + flowBound: flowBound }) } *flowBound() { @@ -1643,20 +1176,6 @@ test("flow.bound #2941", async () => { expect(await Clazz.prototype.flowBound.call("ctx")).toBe("ctx") }) -test("makeObservable throws when mixing @decorators with annotations", () => { - class Test { - @observable x = 3 - - constructor() { - makeObservable(this, {}) - } - } - - expect(() => new Test()).toThrow( - /makeObservable second arg must be nullish when using decorators/ - ) -}) - test("makeAutoObservable + Object.create #3197", () => { const proto = { action() {}, @@ -1677,7 +1196,7 @@ test("makeAutoObservable + Object.create #3197", () => { test("flow.bound #3271", async () => { class Test { constructor() { - makeObservable(this, { flowBound: flow.bound }) + makeObservable(this, { flowBound: flowBound }) } *flowBound() { return this diff --git a/packages/mobx/__tests__/base/makereactive.js b/packages/mobx/__tests__/base/makereactive.js index 917427f099..e81f9052ea 100644 --- a/packages/mobx/__tests__/base/makereactive.js +++ b/packages/mobx/__tests__/base/makereactive.js @@ -99,7 +99,7 @@ test("observable1", function () { } }, { - a: m.observable.ref + a: m.observableRef } ) @@ -256,7 +256,7 @@ test("flat array", function () { } ] }, - { x: m.observable.shallow } + { x: m.observableShallow } ) let result @@ -324,7 +324,7 @@ test("as structure", function () { x: null }, { - x: m.observable.struct + x: m.observableStruct } ) @@ -429,7 +429,7 @@ test("as structure view", function () { } }, { - c: m.computed({ compareStructural: true }) + c: m.computed({ equals: m.compareStructural }) } ) @@ -543,7 +543,7 @@ test("761 - deeply nested modifiers work", () => { someNestedKey: [] }, { - someNestedKey: mobx.observable.ref + someNestedKey: mobx.observableRef } ) }) @@ -570,7 +570,7 @@ test("compare structurally, ref", () => { x: undefined }, { - x: mobx.observable.struct + x: mobx.observableStruct } ) @@ -608,7 +608,7 @@ test("double declare property", () => { o, { a: 2 }, { - a: mobx.observable.ref + a: mobx.observableRef } ) }).toThrow(/The field is already annotated/) @@ -620,7 +620,7 @@ test("structural collections", () => { x: [1, 2, 3] }, { - x: mobx.observable.struct + x: mobx.observableStruct } ) diff --git a/packages/mobx/__tests__/base/map.js b/packages/mobx/__tests__/base/map.js index be93a55716..dc4c294d2f 100644 --- a/packages/mobx/__tests__/base/map.js +++ b/packages/mobx/__tests__/base/map.js @@ -507,16 +507,16 @@ test("deepEqual map", () => { x2.set("x", 3) x2.set("y", { z: 3 }) - expect(mobx.comparer.structural(x, x2)).toBe(false) + expect(mobx.compareStructural(x, x2)).toBe(false) x2.get("y").z = 2 - expect(mobx.comparer.structural(x, x2)).toBe(true) + expect(mobx.compareStructural(x, x2)).toBe(true) x2.set("z", 1) - expect(mobx.comparer.structural(x, x2)).toBe(false) + expect(mobx.compareStructural(x, x2)).toBe(false) x2.delete("z") - expect(mobx.comparer.structural(x, x2)).toBe(true) + expect(mobx.compareStructural(x, x2)).toBe(true) x2.delete("y") - expect(mobx.comparer.structural(x, x2)).toBe(false) + expect(mobx.compareStructural(x, x2)).toBe(false) }) test("798, cannot return observable map from computed prop", () => { @@ -1360,12 +1360,14 @@ test("2346 - subscribe to not yet existing map keys", async () => { class Compute { values = observable.map() - @computed get get42() { + get get42() { return this.get(42) } constructor() { - makeObservable(this) + makeObservable(this, { + get42: computed + }) } get(k) { diff --git a/packages/mobx/__tests__/base/observables.js b/packages/mobx/__tests__/base/observables.js index efaf71fead..b30ba4f64e 100644 --- a/packages/mobx/__tests__/base/observables.js +++ b/packages/mobx/__tests__/base/observables.js @@ -6,6 +6,7 @@ const { $mobx, observable, computed, + compareStructural, transaction, autorun, extendObservable, @@ -85,7 +86,7 @@ test("computed with asStructure modifier", function () { sum: x1.get() + x2.get() } }, - { compareStructural: true } + { equals: compareStructural } ) const b = buffer() m.observe(y, b, true) @@ -1071,7 +1072,7 @@ test("computed values believe deep NaN === deep NaN when using compareStructural function () { return a.b }, - { compareStructural: true } + { equals: compareStructural } ) const buf = new buffer() @@ -2390,10 +2391,8 @@ test('Observables initialization does not violate `enforceActions: "always"`', ( check(() => mobx.extendObservable({}, { x: 0 })) check(() => mobx.observable(new Set([0]))) check(() => mobx.observable(new Map([[0, 0]]))) - check(() => mobx.observable({ x: 0 }, { proxy: false })) - check(() => mobx.observable({ x: 0 }, { proxy: true })) - check(() => mobx.observable([0], { proxy: false })) - check(() => mobx.observable([0], { proxy: true })) + check(() => mobx.observable({ x: 0 })) + check(() => mobx.observable([0])) check(() => mobx.computed(() => 0)) } finally { consoleWarnSpy.mockRestore() @@ -2459,10 +2458,8 @@ test("state version does not update on observable creation", () => { check(() => mobx.extendObservable({}, { x: 0 })) check(() => mobx.observable(new Set([0]))) check(() => mobx.observable(new Map([[0, 0]]))) - check(() => mobx.observable({ x: 0 }, { proxy: false })) - check(() => mobx.observable({ x: 0 }, { proxy: true })) - check(() => mobx.observable([0], { proxy: false })) - check(() => mobx.observable([0], { proxy: true })) + check(() => mobx.observable({ x: 0 })) + check(() => mobx.observable([0])) check(() => mobx.computed(() => 0)) }) diff --git a/packages/mobx/__tests__/base/proxies.js b/packages/mobx/__tests__/base/proxies.js index c5a8a1e93a..f548e567f5 100644 --- a/packages/mobx/__tests__/base/proxies.js +++ b/packages/mobx/__tests__/base/proxies.js @@ -6,6 +6,7 @@ import { autorun, observable, action, + actionBound, reaction, extendObservable, keys, @@ -212,13 +213,6 @@ test("adding a different key doesn't trigger a pending key", () => { d() }) -test("proxy false reverts to original behavior", () => { - const x = observable({ x: 3 }, {}, { proxy: false }) - x.y = 3 - expect(isObservableProp(x, "x")).toBe(true) - expect(isObservableProp(x, "y")).toBe(false) -}) - test("ownKeys invariant not broken - 1", () => { const a = observable({ x: 3, get y() {} }) expect(() => { @@ -233,33 +227,6 @@ test("ownKeys invariant not broken - 2", () => { }).toThrow("cannot be frozen") }) -test("non-proxied object", () => { - const a = observable({ x: 3 }, {}, { proxy: false }) - a.b = 4 - extendObservable( - a, - { - double() { - this.x = this.x * 2 - }, - get y() { - return this.x * 2 - } - }, - { - double: action - } - ) - - expect(a.y).toBe(6) - a.double() - expect(a.y).toBe(12) - expect(isComputedProp(a, "y")).toBe(true) - expect(isAction(a.double)).toBe(true) - expect(stripAdminFromDescriptors(Object.getOwnPropertyDescriptors(a))).toMatchSnapshot() - expect(Object.keys(a)).toEqual(["x", "b"]) -}) - test("extend proxies", () => { const a = observable({ x: 3 }) a.b = 4 @@ -332,7 +299,7 @@ test("predictable 'this' - 1", () => { }, { a1: action, - a2: action.bound + a2: actionBound } ) @@ -347,7 +314,7 @@ test("predictable 'this' - 2", () => { constructor() { makeObservable(this, { a1: action, - a2: action.bound, + a2: actionBound, computed: computed }) } diff --git a/packages/mobx/__tests__/base/reaction.js b/packages/mobx/__tests__/base/reaction.js index 8d49399572..792609f359 100644 --- a/packages/mobx/__tests__/base/reaction.js +++ b/packages/mobx/__tests__/base/reaction.js @@ -353,7 +353,7 @@ test("#278 do not rerun if expr output doesn't change structurally", () => { }, { fireImmediately: true, - compareStructural: true + equals: mobx.compareStructural } ) @@ -389,7 +389,7 @@ test("do not rerun if prev & next expr output is NaN", () => { newValue => { valuesS.push(String(newValue)) }, - { fireImmediately: true, compareStructural: true } + { fireImmediately: true, equals: mobx.compareStructural } ) v.set(NaN) diff --git a/packages/mobx/__tests__/base/set.js b/packages/mobx/__tests__/base/set.js index 45d893547b..408116f0b8 100644 --- a/packages/mobx/__tests__/base/set.js +++ b/packages/mobx/__tests__/base/set.js @@ -248,9 +248,9 @@ test("deepEqual set", () => { x2.add(1) x2.add({ z: 2 }) - expect(mobx.comparer.structural(x, x2)).toBe(false) + expect(mobx.compareStructural(x, x2)).toBe(false) x2.replace([1, { z: 1 }]) - expect(mobx.comparer.structural(x, x2)).toBe(true) + expect(mobx.compareStructural(x, x2)).toBe(true) }) test("set.clear should not be tracked", () => { diff --git a/packages/mobx/__tests__/base/spy.js b/packages/mobx/__tests__/base/spy.js index 908fd4ed41..d837dc7c96 100644 --- a/packages/mobx/__tests__/base/spy.js +++ b/packages/mobx/__tests__/base/spy.js @@ -114,7 +114,7 @@ test("bound actions report correct object (discussions/3140)", () => { mobx.makeAutoObservable( this, { - actionBound: mobx.action.bound + actionBound: mobx.actionBound }, { autoBind: true } ) diff --git a/packages/mobx/__tests__/decorators_20223/stage3-decorators-inheritance.ts b/packages/mobx/__tests__/base/stage3-decorators-inheritance.ts similarity index 98% rename from packages/mobx/__tests__/decorators_20223/stage3-decorators-inheritance.ts rename to packages/mobx/__tests__/base/stage3-decorators-inheritance.ts index bbe58b32b5..1e426d1d22 100644 --- a/packages/mobx/__tests__/decorators_20223/stage3-decorators-inheritance.ts +++ b/packages/mobx/__tests__/base/stage3-decorators-inheritance.ts @@ -1,17 +1,14 @@ import { - action, autorun, - computed, - flow, flowResult, isAction, isComputedProp, isFlow, isObservableProp, - observable, observe, runInAction } from "../../src/mobx" +import { action, actionBound, computed, flow, observable } from "../../src/mobx" test("inherited observable accessor remains reactive in subclass", () => { class Parent { @@ -193,7 +190,7 @@ test("subclass can add new observable, computed, and action members", () => { this.extra += 1 } - @action.bound + @actionBound incrementCount() { this.count += 1 } @@ -248,14 +245,14 @@ test("action.bound override can be called after extraction", () => { class Parent { @observable accessor count = 0 - @action.bound + @actionBound increment(value: number) { this.count += value } } class Child extends Parent { - @action.bound + @actionBound override increment(value: number) { super.increment(value) this.count += 1 diff --git a/packages/mobx/__tests__/decorators_20223/stage3-decorators.ts b/packages/mobx/__tests__/base/stage3-decorators.ts similarity index 97% rename from packages/mobx/__tests__/decorators_20223/stage3-decorators.ts rename to packages/mobx/__tests__/base/stage3-decorators.ts index f24cb07e12..7cd5b3d10f 100644 --- a/packages/mobx/__tests__/decorators_20223/stage3-decorators.ts +++ b/packages/mobx/__tests__/base/stage3-decorators.ts @@ -2,11 +2,8 @@ import { observe, - computed, - observable, autorun, extendObservable, - action, IObservableArray, IArrayWillChange, IArrayWillSplice, @@ -22,9 +19,19 @@ import { IAtom, createAtom, runInAction, - makeObservable, isComputedProp } from "../../src/mobx" +import { + action, + actionBound, + computed, + computedStruct, + flow, + observable, + observableDeep, + observableRef, + observableShallow +} from "../../src/mobx" import { $mobx, type ObservableArrayAdministration } from "../../src/internal" import * as mobx from "../../src/mobx" @@ -239,7 +246,7 @@ test("typescript: parameterized computed decorator", () => { class TestClass { @observable accessor x = 3 @observable accessor y = 3 - @computed.struct + @computedStruct get boxedSum() { return { sum: Math.round(this.x) + Math.round(this.y) } } @@ -272,9 +279,7 @@ test("issue 165", () => { } class Card { - constructor(public game: Game, public id: number) { - makeObservable(this) - } + constructor(public game: Game, public id: number) {} @computed get isWrong() { @@ -602,10 +607,6 @@ test("inheritance", () => { get c() { return this.a + this.b } - constructor() { - super() - makeObservable(this) - } } const b1 = new B() const b2 = new B() @@ -775,7 +776,6 @@ test("373 - fix isObservable for unused computed", () => { return 3 } constructor() { - makeObservable(this) t.equal(isObservableProp(this, "computedVal"), true) this.computedVal t.equal(isObservableProp(this, "computedVal"), true) @@ -836,9 +836,9 @@ test("705 - setter undoing caching (2022.3)", () => { d2() }) -test("@observable.ref (2022.3)", () => { +test("@observableRef (2022.3)", () => { class A { - @observable.ref accessor ref = { a: 3 } + @observableRef accessor ref = { a: 3 } } const a = new A() @@ -847,9 +847,9 @@ test("@observable.ref (2022.3)", () => { t.equal(mobx.isObservableProp(a, "ref"), true) }) -test("@observable.shallow (2022.3)", () => { +test("@observableShallow (2022.3)", () => { class A { - @observable.shallow accessor arr = [{ todo: 1 }] + @observableShallow accessor arr = [{ todo: 1 }] } const a = new A() @@ -862,9 +862,9 @@ test("@observable.shallow (2022.3)", () => { t.equal(a.arr[1] === todo2, true) }) -test("@observable.shallow - 2 (2022.3)", () => { +test("@observableShallow - 2 (2022.3)", () => { class A { - @observable.shallow accessor arr: Record = { x: { todo: 1 } } + @observableShallow accessor arr: Record = { x: { todo: 1 } } } const a = new A() @@ -877,9 +877,9 @@ test("@observable.shallow - 2 (2022.3)", () => { t.equal(a.arr.y === todo2, true) }) -test("@observable.deep (2022.3)", () => { +test("@observableDeep (2022.3)", () => { class A { - @observable.deep accessor arr = [{ todo: 1 }] + @observableDeep accessor arr = [{ todo: 1 }] } const a = new A() @@ -897,7 +897,7 @@ test("@observable.deep (2022.3)", () => { test("action.bound binds (2022.3)", () => { class A { @observable accessor x = 0 - @action.bound + @actionBound inc(value: number) { this.x += value } @@ -913,7 +913,7 @@ test("action.bound binds (2022.3)", () => { test("action.bound binds property function (2022.3)", () => { class A { @observable accessor x = 0 - @action.bound + @actionBound inc = function (value: number) { this.x += value } @@ -930,7 +930,6 @@ test("@computed.equals (2022.3)", () => { const sameTime = (from: Time, to: Time) => from.hour === to.hour && from.minute === to.minute class Time { constructor(hour: number, minute: number) { - makeObservable(this) this.hour = hour this.minute = minute } @@ -1023,11 +1022,6 @@ test("multiple inheritance should work", () => { class B extends A { @observable accessor y = 1 - - constructor() { - super() - makeObservable(this) - } } const adm = mobx._getAdministration(new B()) as any @@ -1046,7 +1040,7 @@ test.skip("actions are reassignable", () => { class A { @action m1() {} - @action.bound + @actionBound m3() {} } @@ -1080,14 +1074,14 @@ test("it should support asyncAction as decorator (2022.3)", async () => { test("it should support flow as decorator (2022.3)", async () => { class DecoratorInferred { - @mobx.flow + @flow *f() { return true } } class DecoratorExplicit { - @mobx.flow + @flow *f(): Generator { return true } diff --git a/packages/mobx/__tests__/base/tojs.js b/packages/mobx/__tests__/base/tojs.js index c8a01a698b..e4f857433a 100644 --- a/packages/mobx/__tests__/base/tojs.js +++ b/packages/mobx/__tests__/base/tojs.js @@ -384,15 +384,6 @@ describe("recurseEverything set to true", function () { }) }) -test("Does not throw on object with configure({ useProxies: 'ifavailable'}) #2871", () => { - mobx.configure({ useProxies: "ifavailable" }) - expect(() => { - const o = mobx.observable({ key: "value" }) - const dispose = mobx.autorun(() => mobx.toJS(o)) - dispose() - }).not.toThrow() -}) - test("Correctly converts observable objects with computed values", () => { const a = observable({ key: "value" }) const c = observable({ computedValue: mobx.computed(() => a.key) }) diff --git a/packages/mobx/__tests__/base/trace.ts b/packages/mobx/__tests__/base/trace.ts deleted file mode 100644 index bbc8b37c8c..0000000000 --- a/packages/mobx/__tests__/base/trace.ts +++ /dev/null @@ -1,148 +0,0 @@ -"use strict" - -import * as mobx from "../../src/mobx" - -describe("trace", () => { - let consoleLogSpy - beforeEach(() => { - mobx._resetGlobalState() - consoleLogSpy = jest.spyOn(console, "log").mockImplementation() - }) - afterEach(() => { - consoleLogSpy.mockRestore() - }) - - test("simple", () => { - const expectedLogCalls: Array = [] - const x = mobx.observable( - { - firstname: "Michel", - lastname: "Weststrate", - get fullname() { - /* test multi line comment - (run this unit test from VS code, and pass 'true' as third argument to trace below to verify) - */ - const res = this.firstname + " " + this.lastname - mobx.trace(this, "fullname") - return res - } - }, - {}, - { name: "x" } - ) - x.fullname - expectedLogCalls.push(["[mobx.trace] 'x.fullname' tracing enabled"]) - - x.fullname - expectedLogCalls.push([ - "[mobx.trace] Computed value 'x.fullname' is being read outside a reactive context. Doing a full recompute." - ]) - - const dispose = mobx.autorun( - () => { - x.fullname - mobx.trace() - }, - { name: "autorun" } - ) - expectedLogCalls.push(["[mobx.trace] 'autorun' tracing enabled"]) - - mobx.transaction(() => { - x.firstname = "John" - expectedLogCalls.push([ - "[mobx.trace] 'x.fullname' is invalidated due to a change in: 'x.firstname'" - ]) - x.lastname = "Doe" - }) - - expectedLogCalls.push([ - "[mobx.trace] 'autorun' is invalidated due to a change in: 'x.fullname'" - ]) - - dispose() - - expectedLogCalls.push([ - "[mobx.trace] Computed value 'x.fullname' was suspended and it will recompute on the next access." - ]) - - expect(expectedLogCalls).toEqual(consoleLogSpy.mock.calls) - }) - - test("Log only if derivation is actually about to re-run #2859", () => { - const expectedLogCalls: Array = [] - const x = mobx.observable( - { - foo: 0, - get fooIsGreaterThan5() { - return this.foo > 5 - } - }, - {}, - { name: "x" } - ) - mobx.trace(x, "fooIsGreaterThan5") - expectedLogCalls.push(["[mobx.trace] 'x.fooIsGreaterThan5' tracing enabled"]) - - x.fooIsGreaterThan5 - expectedLogCalls.push([ - "[mobx.trace] Computed value 'x.fooIsGreaterThan5' is being read outside a reactive context. Doing a full recompute." - ]) - - const dispose = mobx.autorun( - () => { - mobx.trace(true) - x.fooIsGreaterThan5 - }, - { name: "autorun" } - ) - expectedLogCalls.push(["[mobx.trace] 'autorun' tracing enabled"]) - - mobx.transaction(() => { - x.foo = 1 - expectedLogCalls.push([ - "[mobx.trace] 'x.fooIsGreaterThan5' is invalidated due to a change in: 'x.foo'" - ]) - }) - - mobx.transaction(() => { - x.foo = 6 - expectedLogCalls.push([ - "[mobx.trace] 'x.fooIsGreaterThan5' is invalidated due to a change in: 'x.foo'" - ]) - }) - - expectedLogCalls.push([ - "[mobx.trace] 'autorun' is invalidated due to a change in: 'x.fooIsGreaterThan5'" - ]) - - dispose() - - expectedLogCalls.push([ - "[mobx.trace] Computed value 'x.fooIsGreaterThan5' was suspended and it will recompute on the next access." - ]) - - expect(expectedLogCalls).toEqual(consoleLogSpy.mock.calls) - }) - - test("1850", () => { - const x = mobx.observable({ - firstname: "Michel", - lastname: "Weststrate", - get fullname() { - /* test multi line comment - (run this unit test from VS code, to manually verify serialization) - */ - const res = this.firstname + " " + this.lastname - mobx.trace(this, "fullname", true) - return res - } - }) - - mobx.autorun(() => { - x.fullname - }) - expect(() => { - x.firstname += "!" - }).not.toThrow("Unexpected identifier") - }) -}) diff --git a/packages/mobx/__tests__/base/typescript-decorators.ts b/packages/mobx/__tests__/base/typescript-decorators.ts deleted file mode 100644 index 13b507df1c..0000000000 --- a/packages/mobx/__tests__/base/typescript-decorators.ts +++ /dev/null @@ -1,1273 +0,0 @@ -"use strict" - -import { - observe, - computed, - observable, - autorun, - extendObservable, - action, - IObservableArray, - IArrayWillChange, - IArrayWillSplice, - IObservableValue, - isObservable, - isObservableProp, - isObservableObject, - transaction, - IObjectDidChange, - spy, - configure, - isAction, - IAtom, - createAtom, - runInAction, - makeObservable, - flow, - flowResult -} from "../../src/mobx" -import * as mobx from "../../src/mobx" - -const testFunction = function (a: any) {} - -// lazy wrapper around yest - -const t = { - equal(a: any, b: any) { - expect(a).toBe(b) - }, - deepEqual(a: any, b: any) { - expect(a).toEqual(b) - }, - notEqual(a: any, b: any) { - expect(a).not.toEqual(b) - }, - - throws(a: any, b: any) { - expect(a).toThrow(b) - } -} - -test("decorators", () => { - class Order { - @observable price: number = 3 - @observable amount: number = 2 - @observable orders: string[] = [] - @observable aFunction = testFunction - - @computed - get total() { - return this.amount * this.price * (1 + this.orders.length) - } - - constructor() { - makeObservable(this) - } - - @flow - *testDouble(n: number): Generator { - yield 3 - return n * 2 - } - - async run() { - const x: number = await flowResult(this.testDouble(2)) - } - } - - const o = new Order() - t.equal(isObservableObject(o), true) - t.equal(isObservableProp(o, "amount"), true) - t.equal(isObservableProp(o, "total"), true) - - const events: any[] = [] - const d1 = observe(o, (ev: IObjectDidChange) => events.push(ev.name, (ev as any).oldValue)) - const d2 = observe(o, "price", ev => events.push(ev.newValue, ev.oldValue)) - const d3 = observe(o, "total", ev => events.push(ev.newValue, ev.oldValue)) - - o.price = 4 - - d1() - d2() - d3() - - o.price = 5 - - t.deepEqual(events, [ - 8, // new total - 6, // old total - 4, // new price - 3, // old price - "price", // event name - 3 // event oldValue - ]) -}) - -test("annotations", () => { - const fn0 = () => 0 - class Order { - @observable price: number = 3 - @observable amount: number = 2 - @observable orders: string[] = [] - @observable aFunction = fn0 - - @computed - get total() { - return this.amount * this.price * (1 + this.orders.length) - } - - constructor() { - makeObservable(this) - } - } - - const order1totals: number[] = [] - const order1 = new Order() - const order2 = new Order() - - const disposer = autorun(() => { - order1totals.push(order1.total) - }) - - order2.price = 4 - order1.amount = 1 - - t.equal(order1.price, 3) - t.equal(order1.total, 3) - t.equal(order2.total, 8) - order2.orders.push("bla") - t.equal(order2.total, 16) - - order1.orders.splice(0, 0, "boe", "hoi") - t.deepEqual(order1totals, [6, 3, 9]) - - disposer() - order1.orders.pop() - t.equal(order1.total, 6) - t.deepEqual(order1totals, [6, 3, 9]) - expect(isAction(order1.aFunction)).toBe(true) - expect(order1.aFunction()).toBe(0) - order1.aFunction = () => 1 - expect(isAction(order1.aFunction)).toBe(true) - expect(order1.aFunction()).toBe(1) -}) - -test("box", () => { - class Box { - @observable uninitialized: any - @observable height = 20 - @observable sizes = [2] - @observable - someFunc = function () { - return 2 - } - @computed - get width() { - return this.height * this.sizes.length * this.someFunc() * (this.uninitialized ? 2 : 1) - } - @action("test") - addSize() { - this.sizes.push(3) - this.sizes.push(4) - } - - constructor() { - makeObservable(this) - } - } - - const box = new Box() - - const ar: number[] = [] - - autorun(() => { - ar.push(box.width) - }) - - t.deepEqual(ar.slice(), [40]) - box.height = 10 - t.deepEqual(ar.slice(), [40, 20]) - box.sizes.push(3, 4) - t.deepEqual(ar.slice(), [40, 20, 60]) - box.someFunc = () => 7 - t.deepEqual(ar.slice(), [40, 20, 60, 210]) - box.uninitialized = true - t.deepEqual(ar.slice(), [40, 20, 60, 210, 420]) - box.addSize() - expect(ar.slice()).toEqual([40, 20, 60, 210, 420, 700]) -}) - -test("computed setter should succeed", () => { - class Bla { - @observable a = 3 - @computed - get propX() { - return this.a * 2 - } - set propX(v) { - this.a = v - } - - constructor() { - makeObservable(this) - } - } - - const b = new Bla() - t.equal(b.propX, 6) - b.propX = 4 - t.equal(b.propX, 8) -}) - -test("typescript: parameterized computed decorator", () => { - class TestClass { - @observable x = 3 - @observable y = 3 - @computed.struct - get boxedSum() { - return { sum: Math.round(this.x) + Math.round(this.y) } - } - constructor() { - makeObservable(this) - } - } - - const t1 = new TestClass() - const changes: { sum: number }[] = [] - const d = autorun(() => changes.push(t1.boxedSum)) - - t1.y = 4 // change - t.equal(changes.length, 2) - t1.y = 4.2 // no change - t.equal(changes.length, 2) - transaction(() => { - t1.y = 3 - t1.x = 4 - }) // no change - t.equal(changes.length, 2) - t1.x = 6 // change - t.equal(changes.length, 3) - d() - - t.deepEqual(changes, [{ sum: 6 }, { sum: 7 }, { sum: 9 }]) -}) - -test("issue 165", () => { - function report(msg: string, value: T) { - // console.log(msg, ":", value) - return value - } - - class Card { - constructor(public game: Game, public id: number) { - makeObservable(this) - } - - @computed - get isWrong() { - return report( - "Computing isWrong for card " + this.id, - this.isSelected && this.game.isMatchWrong - ) - } - - @computed - get isSelected() { - return report( - "Computing isSelected for card" + this.id, - this.game.firstCardSelected === this || this.game.secondCardSelected === this - ) - } - } - - class Game { - @observable firstCardSelected: Card | null = null - @observable secondCardSelected: Card | null = null - - @computed - get isMatchWrong() { - return report( - "Computing isMatchWrong", - this.secondCardSelected !== null && - this.firstCardSelected!.id !== this.secondCardSelected.id - ) - } - - constructor() { - makeObservable(this) - } - } - - let game = new Game() - let card1 = new Card(game, 1), - card2 = new Card(game, 2) - - autorun(() => { - card1.isWrong - card2.isWrong - // console.log("card1.isWrong =", card1.isWrong) - // console.log("card2.isWrong =", card2.isWrong) - // console.log("------------------------------") - }) - - // console.log("Selecting first card") - game.firstCardSelected = card1 - // console.log("Selecting second card") - game.secondCardSelected = card2 - - t.equal(card1.isWrong, true) - t.equal(card2.isWrong, true) -}) - -test("issue 191 - shared initializers (ts)", () => { - class Test { - @observable obj = { a: 1 } - @observable array = [2] - constructor() { - makeObservable(this) - } - } - - const t1 = new Test() - t1.obj.a = 2 - t1.array.push(3) - - const t2 = new Test() - t2.obj.a = 3 - t2.array.push(4) - - t.notEqual(t1.obj, t2.obj) - t.notEqual(t1.array, t2.array) - t.equal(t1.obj.a, 2) - t.equal(t2.obj.a, 3) - - t.deepEqual(t1.array.slice(), [2, 3]) - t.deepEqual(t2.array.slice(), [2, 4]) -}) - -function normalizeSpyEvents(events: any[]) { - events.forEach(ev => { - delete ev.fn - delete ev.time - }) - return events -} - -test("action decorator (typescript)", () => { - class Store { - constructor(private multiplier: number) { - makeObservable(this) - } - - @action - add(a: number, b: number): number { - return (a + b) * this.multiplier - } - } - - const store1 = new Store(2) - const store2 = new Store(3) - const events: any[] = [] - const d = spy(events.push.bind(events)) - t.equal(store1.add(3, 4), 14) - t.equal(store2.add(2, 2), 12) - t.equal(store1.add(1, 1), 4) - - t.deepEqual(normalizeSpyEvents(events), [ - { arguments: [3, 4], name: "add", spyReportStart: true, object: store1, type: "action" }, - { type: "report-end", spyReportEnd: true }, - { arguments: [2, 2], name: "add", spyReportStart: true, object: store2, type: "action" }, - { type: "report-end", spyReportEnd: true }, - { arguments: [1, 1], name: "add", spyReportStart: true, object: store1, type: "action" }, - { type: "report-end", spyReportEnd: true } - ]) - - d() -}) - -test("custom action decorator (typescript)", () => { - class Store { - constructor(private multiplier: number) { - makeObservable(this) - } - - @action("zoem zoem") - add(a: number, b: number): number { - return (a + b) * this.multiplier - } - } - - const store1 = new Store(2) - const store2 = new Store(3) - const events: any[] = [] - const d = spy(events.push.bind(events)) - t.equal(store1.add(3, 4), 14) - t.equal(store2.add(2, 2), 12) - t.equal(store1.add(1, 1), 4) - - t.deepEqual(normalizeSpyEvents(events), [ - { - arguments: [3, 4], - name: "zoem zoem", - spyReportStart: true, - object: store1, - type: "action" - }, - { type: "report-end", spyReportEnd: true }, - { - arguments: [2, 2], - name: "zoem zoem", - spyReportStart: true, - object: store2, - type: "action" - }, - { type: "report-end", spyReportEnd: true }, - { - arguments: [1, 1], - name: "zoem zoem", - spyReportStart: true, - object: store1, - type: "action" - }, - { type: "report-end", spyReportEnd: true } - ]) - - d() -}) - -test("action decorator on field (typescript)", () => { - class Store { - constructor(private multiplier: number) { - makeObservable(this) - } - - @action - add = (a: number, b: number) => { - return (a + b) * this.multiplier - } - } - - const store1 = new Store(2) - const store2 = new Store(7) - expect(store1.add).not.toEqual(store2.add) - - const events: any[] = [] - const d = spy(events.push.bind(events)) - t.equal(store1.add(3, 4), 14) - t.equal(store2.add(4, 5), 63) - t.equal(store1.add(2, 2), 8) - - t.deepEqual(normalizeSpyEvents(events), [ - { arguments: [3, 4], name: "add", spyReportStart: true, object: store1, type: "action" }, - { type: "report-end", spyReportEnd: true }, - { arguments: [4, 5], name: "add", spyReportStart: true, object: store2, type: "action" }, - { type: "report-end", spyReportEnd: true }, - { arguments: [2, 2], name: "add", spyReportStart: true, object: store1, type: "action" }, - { type: "report-end", spyReportEnd: true } - ]) - - d() -}) - -test("custom action decorator on field (typescript)", () => { - class Store { - constructor(private multiplier: number) { - makeObservable(this) - } - - @action("zoem zoem") - add = (a: number, b: number) => { - return (a + b) * this.multiplier - } - } - - const store1 = new Store(2) - const store2 = new Store(7) - - const events: any[] = [] - const d = spy(events.push.bind(events)) - t.equal(store1.add(3, 4), 14) - t.equal(store2.add(4, 5), 63) - t.equal(store1.add(2, 2), 8) - - t.deepEqual(normalizeSpyEvents(events), [ - { - arguments: [3, 4], - name: "zoem zoem", - spyReportStart: true, - object: store1, - type: "action" - }, - { type: "report-end", spyReportEnd: true }, - { - arguments: [4, 5], - name: "zoem zoem", - spyReportStart: true, - object: store2, - type: "action" - }, - { type: "report-end", spyReportEnd: true }, - { - arguments: [2, 2], - name: "zoem zoem", - spyReportStart: true, - object: store1, - type: "action" - }, - { type: "report-end", spyReportEnd: true } - ]) - - d() -}) - -test("267 (typescript) should be possible to declare properties observable outside strict mode", () => { - configure({ enforceActions: "observed" }) - - class Store { - @observable timer: number | null = null - - constructor() { - makeObservable(this) - } - } -}) - -test("288 atom not detected for object property", () => { - class Store { - @observable foo = "" - - constructor() { - makeObservable(this) - } - } - - const store = new Store() - - mobx.observe( - store, - "foo", - () => { - // console.log("Change observed") - }, - true - ) -}) - -test.skip("observable performance - ts - decorators", () => { - const AMOUNT = 100000 - - class A { - @observable a = 1 - @observable b = 2 - @observable c = 3 - @computed - get d() { - return this.a + this.b + this.c - } - constructor() { - makeObservable(this) - } - } - - const objs: any[] = [] - const start = Date.now() - - for (let i = 0; i < AMOUNT; i++) objs.push(new A()) - - console.log("created in ", Date.now() - start) - - for (let j = 0; j < 4; j++) { - for (let i = 0; i < AMOUNT; i++) { - const obj = objs[i] - obj.a += 3 - obj.b *= 4 - obj.c = obj.b - obj.a - obj.d - } - } - - console.log("changed in ", Date.now() - start) -}) - -test("unbound methods", () => { - class A { - // shared across all instances - @action - m1() {} - - // per instance - @action m2 = () => {} - constructor() { - makeObservable(this) - } - } - - const a1 = new A() - const a2 = new A() - - t.equal(a1.m1, a2.m1) - t.notEqual(a1.m2, a2.m2) - t.equal(Object.hasOwnProperty.call(a1, "m1"), false) - t.equal(Object.hasOwnProperty.call(a1, "m2"), true) - t.equal(Object.hasOwnProperty.call(a2, "m1"), false) - t.equal(Object.hasOwnProperty.call(a2, "m2"), true) -}) - -test("inheritance", () => { - class A { - @observable a = 2 - constructor() { - makeObservable(this) - } - } - - class B extends A { - @observable b = 3 - @computed - get c() { - return this.a + this.b - } - constructor() { - super() - makeObservable(this) - } - } - const b1 = new B() - const b2 = new B() - const values: any[] = [] - mobx.autorun(() => values.push(b1.c + b2.c)) - - b1.a = 3 - b1.b = 4 - b2.b = 5 - b2.a = 6 - - t.deepEqual(values, [10, 11, 12, 14, 18]) -}) - -test("inheritance overrides observable", () => { - class A { - @observable a = 2 - constructor() { - makeObservable(this) - } - } - - class B { - @observable a = 5 - @observable b = 3 - @computed - get c() { - return this.a + this.b - } - constructor() { - makeObservable(this) - } - } - - const b1 = new B() - const b2 = new B() - const values: any[] = [] - mobx.autorun(() => values.push(b1.c + b2.c)) - - b1.a = 3 - b1.b = 4 - b2.b = 5 - b2.a = 6 - - t.deepEqual(values, [16, 14, 15, 17, 18]) -}) - -test("reusing initializers", () => { - class A { - @observable a = 3 - @observable b = this.a + 2 - @computed - get c() { - return this.a + this.b - } - @computed - get d() { - return this.c + 1 - } - constructor() { - makeObservable(this) - } - } - - const a = new A() - const values: any[] = [] - mobx.autorun(() => values.push(a.d)) - - a.a = 4 - t.deepEqual(values, [9, 10]) -}) - -test("enumerability", () => { - class A { - @observable a = 1 // enumerable, on proto - @computed - get b() { - return this.a - } // non-enumerable, (and, ideally, on proto) - @action - m() {} // non-enumerable, on proto - @action m2 = () => {} // non-enumerable, on self - constructor() { - makeObservable(this) - } - } - - const a = new A() - - // not initialized yet - let ownProps = Object.keys(a) - let props: string[] = [] - for (const key in a) props.push(key) - - t.deepEqual(ownProps, [ - "a" // yeej! - ]) - - t.deepEqual(props, [ - // also 'a' would be ok - "a" - ]) - - t.equal("a" in a, true) - // eslint-disable-next-line - t.equal(a.hasOwnProperty("a"), true) - // eslint-disable-next-line - t.equal(a.hasOwnProperty("b"), true) // false would be slightly better, true also ok-ish, and, see #1777 - // eslint-disable-next-line - t.equal(a.hasOwnProperty("m"), false) - // eslint-disable-next-line - t.equal(a.hasOwnProperty("m2"), true) - - t.equal(mobx.isAction(a.m), true) - t.equal(mobx.isAction(a.m2), true) - - // after initialization - a.a - a.b - a.m - a.m2 - - ownProps = Object.keys(a) - props = [] - for (const key in a) props.push(key) - - t.deepEqual(ownProps, ["a"]) - - t.deepEqual(props, ["a"]) - - t.equal("a" in a, true) - // eslint-disable-next-line - t.equal(a.hasOwnProperty("a"), true) - // eslint-disable-next-line - t.equal(a.hasOwnProperty("b"), true) // false would be slightly better, true also ok-ish, and, see #1777 - // eslint-disable-next-line - t.equal(a.hasOwnProperty("m"), false) - // eslint-disable-next-line - t.equal(a.hasOwnProperty("m2"), true) -}) - -test("issue 285 (typescript)", () => { - const { observable, toJS } = mobx - - class Todo { - id = 1 - @observable title: string - @observable finished = false - @observable childThings = [1, 2, 3] - constructor(title: string) { - makeObservable(this) - this.title = title - } - } - - const todo = new Todo("Something to do") - - t.deepEqual(toJS(todo), { - id: 1, - title: "Something to do", - finished: false, - childThings: [1, 2, 3] - }) -}) - -test("verify object assign (typescript)", () => { - class Todo { - @observable title = "test" - @computed - get upperCase() { - return this.title.toUpperCase() - } - constructor() { - makeObservable(this) - } - } - - t.deepEqual((Object as any).assign({}, new Todo()), { - title: "test" - }) -}) - -test("379, inheritable actions (typescript)", () => { - class A { - @action - method() { - return 42 - } - constructor() { - makeObservable(this) - } - } - - class B extends A { - method() { - return super.method() * 2 - } - constructor() { - super() - makeObservable(this) - } - } - - class C extends B { - method() { - return super.method() + 3 - } - constructor() { - super() - makeObservable(this) - } - } - - const b = new B() - t.equal(b.method(), 84) - t.equal(isAction(b.method), true) - - const a = new A() - t.equal(a.method(), 42) - t.equal(isAction(a.method), true) - - const c = new C() - t.equal(c.method(), 87) - t.equal(isAction(c.method), true) -}) - -test("373 - fix isObservable for unused computed", () => { - class Bla { - @computed - get computedVal() { - return 3 - } - constructor() { - makeObservable(this) - t.equal(isObservableProp(this, "computedVal"), true) - this.computedVal - t.equal(isObservableProp(this, "computedVal"), true) - } - } - - new Bla() -}) - -test("505, don't throw when accessing subclass fields in super constructor (typescript)", () => { - const values: any = {} - class A { - @observable a = 1 - constructor() { - makeObservable(this) - values.b = (this as any)["b"] - values.a = this.a - } - } - - class B extends A { - @observable b = 2 - - constructor() { - super() - makeObservable(this) - } - } - - new B() - t.deepEqual(values, { a: 1, b: undefined }) // undefined, as A constructor runs before B constructor -}) - -test("705 - setter undoing caching (typescript)", () => { - let recomputes = 0 - let autoruns = 0 - - class Person { - @observable name: string = "" - @observable title: string = "" - - // Typescript bug: if fullName is before the getter, the property is defined twice / incorrectly, see #705 - // set fullName(val) { - // // Noop - // } - @computed - get fullName() { - recomputes++ - return this.title + " " + this.name - } - // Should also be possible to define the setter _before_ the fullname - set fullName(val) { - // Noop - } - constructor() { - makeObservable(this) - } - } - - let p1 = new Person() - p1.name = "Tom Tank" - p1.title = "Mr." - - t.equal(recomputes, 0) - t.equal(autoruns, 0) - - const d1 = autorun(() => { - autoruns++ - p1.fullName - }) - - const d2 = autorun(() => { - autoruns++ - p1.fullName - }) - - t.equal(recomputes, 1) - t.equal(autoruns, 2) - - p1.title = "Master" - t.equal(recomputes, 2) - t.equal(autoruns, 4) - - d1() - d2() -}) - -test("@observable.ref (TS)", () => { - class A { - @observable.ref ref = { a: 3 } - constructor() { - makeObservable(this) - } - } - - const a = new A() - t.equal(a.ref.a, 3) - t.equal(mobx.isObservable(a.ref), false) - t.equal(mobx.isObservableProp(a, "ref"), true) -}) - -test("@observable.shallow (TS)", () => { - class A { - @observable.shallow arr = [{ todo: 1 }] - constructor() { - makeObservable(this) - } - } - - const a = new A() - const todo2 = { todo: 2 } - a.arr.push(todo2) - t.equal(mobx.isObservable(a.arr), true) - t.equal(mobx.isObservableProp(a, "arr"), true) - t.equal(mobx.isObservable(a.arr[0]), false) - t.equal(mobx.isObservable(a.arr[1]), false) - t.equal(a.arr[1] === todo2, true) -}) - -test("@observable.shallow - 2 (TS)", () => { - class A { - @observable.shallow arr: Record = { x: { todo: 1 } } - constructor() { - makeObservable(this) - } - } - - const a = new A() - const todo2 = { todo: 2 } - a.arr.y = todo2 - t.equal(mobx.isObservable(a.arr), true) - t.equal(mobx.isObservableProp(a, "arr"), true) - t.equal(mobx.isObservable(a.arr.x), false) - t.equal(mobx.isObservable(a.arr.y), false) - t.equal(a.arr.y === todo2, true) -}) - -test("@observable.deep (TS)", () => { - class A { - @observable.deep arr = [{ todo: 1 }] - constructor() { - makeObservable(this) - } - } - - const a = new A() - const todo2 = { todo: 2 } - a.arr.push(todo2) - - t.equal(mobx.isObservable(a.arr), true) - t.equal(mobx.isObservableProp(a, "arr"), true) - t.equal(mobx.isObservable(a.arr[0]), true) - t.equal(mobx.isObservable(a.arr[1]), true) - t.equal(a.arr[1] !== todo2, true) - t.equal(isObservable(todo2), false) -}) - -test("action.bound binds (TS)", () => { - class A { - @observable x = 0 - @action.bound - inc(value: number) { - this.x += value - } - constructor() { - makeObservable(this) - } - } - - const a = new A() - const runner = a.inc - runner(2) - - t.equal(a.x, 2) -}) - -test("@computed.equals (TS)", () => { - const sameTime = (from: Time, to: Time) => from.hour === to.hour && from.minute === to.minute - class Time { - constructor(hour: number, minute: number) { - makeObservable(this) - this.hour = hour - this.minute = minute - } - - @observable public hour: number - @observable public minute: number - - @computed({ equals: sameTime }) - public get time() { - return { hour: this.hour, minute: this.minute } - } - } - const time = new Time(9, 0) - - const changes: Array<{ hour: number; minute: number }> = [] - const disposeAutorun = autorun(() => changes.push(time.time)) - - t.deepEqual(changes, [{ hour: 9, minute: 0 }]) - time.hour = 9 - t.deepEqual(changes, [{ hour: 9, minute: 0 }]) - time.minute = 0 - t.deepEqual(changes, [{ hour: 9, minute: 0 }]) - time.hour = 10 - t.deepEqual(changes, [ - { hour: 9, minute: 0 }, - { hour: 10, minute: 0 } - ]) - time.minute = 30 - t.deepEqual(changes, [ - { hour: 9, minute: 0 }, - { hour: 10, minute: 0 }, - { hour: 10, minute: 30 } - ]) - - disposeAutorun() -}) - -test("1072 - @observable without initial value and observe before first access", () => { - class User { - @observable loginCount?: number - - constructor() { - makeObservable(this) - } - } - - const user = new User() - observe(user, "loginCount", () => {}) -}) - -test("unobserved computed reads should warn with requiresReaction enabled", () => { - const consoleWarn = console.warn - const warnings: string[] = [] - console.warn = function (...args) { - warnings.push(...args) - } - try { - const expectedWarnings: string[] = [] - - class A { - @observable x = 0 - - @computed({ requiresReaction: true }) - get y() { - return this.x * 2 - } - constructor() { - makeObservable(this, undefined, { name: "a" }) - } - } - - const a = new A() - - a.y - expectedWarnings.push( - `[mobx] Computed value 'a.y' is being read outside a reactive context. Doing a full recompute.` - ) - - const d = mobx.reaction( - () => a.y, - () => {} - ) - - a.y - - d() - - a.y - expectedWarnings.push( - `[mobx] Computed value 'a.y' is being read outside a reactive context. Doing a full recompute.` - ) - - expect(warnings).toEqual(expectedWarnings) - } finally { - console.warn = consoleWarn - } -}) - -test("multiple inheritance should work", () => { - class A { - @observable x = 1 - - constructor() { - makeObservable(this) - } - } - - class B extends A { - @observable y = 1 - - constructor() { - super() - makeObservable(this) - } - } - - expect(mobx.keys(new B())).toEqual(["x", "y"]) -}) - -// 19.12.2020 @urugator: -// All annotated non-observable fields are not writable. -// All annotated fields of non-plain objects are non-configurable. -// https://github.com/mobxjs/mobx/pull/2641 -test.skip("actions are reassignable", () => { - // See #1398 and #1545, make actions reassignable to support stubbing - class A { - @action - m1() {} - @action m2 = () => {} - @action.bound - m3() {} - @action.bound m4 = () => {} - - constructor() { - makeObservable(this) - } - } - - const a = new A() - expect(isAction(a.m1)).toBe(true) - expect(isAction(a.m2)).toBe(true) - expect(isAction(a.m3)).toBe(true) - expect(isAction(a.m4)).toBe(true) - a.m1 = () => {} - expect(isAction(a.m1)).toBe(false) - a.m2 = () => {} - expect(isAction(a.m2)).toBe(false) - a.m3 = () => {} - expect(isAction(a.m3)).toBe(false) - a.m4 = () => {} - expect(isAction(a.m4)).toBe(false) -}) - -test("it should support asyncAction as decorator (ts)", async () => { - mobx.configure({ enforceActions: "observed" }) - - class X { - @observable a = 1 - - f = mobx.flow(function* f(this: X, initial: number) { - this.a = initial // this runs in action - this.a += yield Promise.resolve(5) as any - this.a = this.a * 2 - return this.a - }) - - constructor() { - makeObservable(this) - } - } - - const x = new X() - - expect(await x.f(3)).toBe(16) -}) - -test("toJS bug #1413 (TS)", () => { - class X { - @observable - test = { - test1: 1 - } - - constructor() { - makeObservable(this) - } - } - - const x = new X() - const res = mobx.toJS(x.test) as any - expect(res).toEqual({ test1: 1 }) - expect(res.__mobxDidRunLazyInitializers).toBe(undefined) -}) - -test("#2159 - computed property keys", () => { - const testSymbol = Symbol("test symbol") - const testString = "testString" - - class TestClass { - @observable [testSymbol] = "original symbol value"; - @observable [testString] = "original string value" - - constructor() { - makeObservable(this) - } - } - - const o = new TestClass() - - const events: any[] = [] - observe(o, testSymbol, ev => events.push(ev.newValue, ev.oldValue)) - observe(o, testString, ev => events.push(ev.newValue, ev.oldValue)) - - runInAction(() => { - o[testSymbol] = "new symbol value" - o[testString] = "new string value" - }) - - t.deepEqual(events, [ - "new symbol value", // new symbol - "original symbol value", // original symbol - "new string value", // new string - "original string value" // original string - ]) -}) diff --git a/packages/mobx/__tests__/base/typescript-tests.ts b/packages/mobx/__tests__/base/typescript-tests.ts index e4f55ad3f5..245fb27a92 100644 --- a/packages/mobx/__tests__/base/typescript-tests.ts +++ b/packages/mobx/__tests__/base/typescript-tests.ts @@ -3,10 +3,15 @@ import { observe, computed, + computedStruct, observable, + observableRef, + observableShallow, + observableDeep, autorun, extendObservable, action, + actionBound, IArrayDidChange, IArrayWillChange, IArrayWillSplice, @@ -370,7 +375,7 @@ test("typescript: parameterized computed decorator", () => { makeObservable(this, { x: observable, y: observable, - boxedSum: computed.struct + boxedSum: computedStruct }) } @@ -758,20 +763,14 @@ test.skip("observable performance - ts", () => { console.log("changed in ", Date.now() - start) }) +// Do not remove: slow manual stage-3 decorator benchmark test.skip("observable performance - ts - decorators", () => { const AMOUNT = 100000 class A { - @observable - a = 1 - @observable - b = 2 - @observable - c = 3 - - constructor() { - makeObservable(this) - } + @observable accessor a = 1 + @observable accessor b = 2 + @observable accessor c = 3 @computed get d() { @@ -1244,13 +1243,13 @@ test("705 - setter undoing caching (typescript)", () => { d2() }) -test("@observable.ref (TS)", () => { +test("@observableRef (TS)", () => { class A { ref = { a: 3 } constructor() { makeObservable(this, { - ref: observable.ref + ref: observableRef }) } } @@ -1261,13 +1260,13 @@ test("@observable.ref (TS)", () => { t.equal(mobx.isObservableProp(a, "ref"), true) }) -test("@observable.shallow (TS)", () => { +test("@observableShallow (TS)", () => { class A { arr = [{ todo: 1 }] constructor() { makeObservable(this, { - arr: observable.shallow + arr: observableShallow }) } } @@ -1282,13 +1281,13 @@ test("@observable.shallow (TS)", () => { t.equal(a.arr[1] === todo2, true) }) -test("@observable.deep (TS)", () => { +test("@observableDeep (TS)", () => { class A { arr = [{ todo: 1 }] constructor() { makeObservable(this, { - arr: observable.deep + arr: observableDeep }) } } @@ -1312,7 +1311,7 @@ test("action.bound binds (TS)", () => { constructor() { makeObservable(this, { x: observable, - inc: action.bound + inc: actionBound }) } @@ -1328,7 +1327,7 @@ test("action.bound binds (TS)", () => { t.equal(a.x, 2) }) -test("803 - action.bound and action preserve type info", () => { +test("803 - actionBound and action preserve type info", () => { function thingThatAcceptsCallback(cb: (elem: { x: boolean }) => void) {} thingThatAcceptsCallback(elem => { @@ -1741,8 +1740,8 @@ test.skip("actions are reassignable", () => { makeObservable(this, { m1: action, m2: action, - m3: action.bound, - m4: action.bound + m3: actionBound, + m4: actionBound }) } @@ -2380,20 +2379,21 @@ test("TS - it should support flow as annotation", done => { }, 10) }) -test("TS - it should support flow as decorator", done => { +test("TS - it should support flow as annotation", done => { const values: number[] = [] mobx.configure({ enforceActions: "observed" }) class X { - @observable a = 1 constructor() { - makeObservable(this) + makeObservable(this, { + a: observable, + f: flow + }) } - @flow *f(initial) { this.a = initial // this runs in action try { diff --git a/packages/mobx/__tests__/decorators_20223/tsconfig.json b/packages/mobx/__tests__/decorators_20223/tsconfig.json deleted file mode 100644 index 31758eb645..0000000000 --- a/packages/mobx/__tests__/decorators_20223/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": ["../../tsconfig.json", "../../../../tsconfig.test.json"], - "compilerOptions": { - "target": "ES6", - "experimentalDecorators": false, - "useDefineForClassFields": true, - - "rootDir": "../../" - }, - "exclude": ["__tests__"], - "include": ["./", "../../src"] // ["../../src", "./"] -} diff --git a/packages/mobx/__tests__/perf/index.js b/packages/mobx/__tests__/perf/index.js index 5ce81a7fa1..60e694e254 100644 --- a/packages/mobx/__tests__/perf/index.js +++ b/packages/mobx/__tests__/perf/index.js @@ -1,15 +1,10 @@ const start = Date.now() const mkdirp = require("mkdirp") -const ver = process.argv[2] -if (!ver || !ver.match(/legacy|proxy/)) { - throw new Error("specify version to perf test as (legacy|proxy)") -} - if (process.env.PERSIST) { const fs = require("fs") const path = require("path") - const logFile = path.resolve(`${__dirname}/../../perf_report/${ver}.txt`) + const logFile = path.resolve(`${__dirname}/../../perf_report/perf.txt`) mkdirp.sync(path.dirname(logFile)) // clear previous results if (fs.existsSync(logFile)) fs.unlinkSync(logFile) @@ -25,7 +20,7 @@ if (process.env.PERSIST) { } const perf = require("./perf.js") -perf(ver) +perf() // This test runs last.. require("tape")(t => { diff --git a/packages/mobx/__tests__/perf/lazy-computed-decorator.ts b/packages/mobx/__tests__/perf/lazy-computed-decorator.ts index 4ca6cfb8a6..64dcdd0a39 100644 --- a/packages/mobx/__tests__/perf/lazy-computed-decorator.ts +++ b/packages/mobx/__tests__/perf/lazy-computed-decorator.ts @@ -10,10 +10,9 @@ import * as path from "path" const distPath = path.resolve(__dirname, "..", "..", "..", "dist", "mobx.cjs.development.js") const mobx = require(distPath) as { computed: any - makeObservable: any observable: any } -const { computed, makeObservable, observable } = mobx +const { computed, observable } = mobx const INSTANCES = 50_000 const GETTERS_PER_INSTANCE = 10 @@ -53,10 +52,6 @@ class Wide { @computed get c9() { return this.v + 9 } - - constructor() { - makeObservable(this) - } } const GETTERS = ["c0", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9"] as const diff --git a/packages/mobx/__tests__/perf/perf.js b/packages/mobx/__tests__/perf/perf.js index 419a961f6d..08447ab48a 100644 --- a/packages/mobx/__tests__/perf/perf.js +++ b/packages/mobx/__tests__/perf/perf.js @@ -9,7 +9,7 @@ function voidObserver() { // nothing, nada, noppes. } -module.exports = function runForVersion(version) { +module.exports = function runPerfSuite() { /* results of this test: 300/40000 mseconds on netbook (AMD c60 processor, same test is on Intel i7 3770 ~10 times faster) @@ -19,13 +19,10 @@ results of this test: */ const mobx = require(`../../dist/mobx.cjs.production.min.js`) - if (version === "legacy") { - mobx.configure({ useProxies: false }) - } const observable = mobx.observable const computed = mobx.computed - test(`${version} - one observes ten thousand that observe one`, function (t) { + test("one observes ten thousand that observe one", function (t) { gc() const a = observable.box(2) @@ -71,7 +68,7 @@ results of this test: t.end() }) - test(`${version} - five hundrend properties that observe their sibling`, function (t) { + test("five hundrend properties that observe their sibling", function (t) { gc() const observables = [observable.box(1)] for (let i = 0; i < 500; i++) { @@ -105,7 +102,7 @@ results of this test: t.end() }) - test(`${version} - late dependency change`, function (t) { + test("late dependency change", function (t) { gc() const values = [] for (let i = 0; i < 100; i++) values.push(observable.box(0)) @@ -127,7 +124,7 @@ results of this test: t.end() }) - test(`${version} - lots of unused computables`, function (t) { + test("lots of unused computables", function (t) { gc() const a = observable.box(1) @@ -175,7 +172,7 @@ results of this test: t.end() }) - test(`${version} - many unreferenced observables`, function (t) { + test("many unreferenced observables", function (t) { gc() const a = observable.box(3) const b = observable.box(6) @@ -196,7 +193,7 @@ results of this test: t.end() }) - test(`${version} - array.es2023 findLastIndex methods`, function (t) { + test("array.es2023 findLastIndex methods", function (t) { gc() let aCalc = 0 let bCalc = 0 @@ -229,7 +226,7 @@ results of this test: t.end() }) - test(`${version} - array reduce`, function (t) { + test("array reduce", function (t) { gc() let aCalc = 0 const ar = observable([]) @@ -271,7 +268,7 @@ results of this test: t.end() }) - test(`${version} - array classic loop`, function (t) { + test("array classic loop", function (t) { gc() const ar = observable([]) let aCalc = 0 @@ -403,23 +400,23 @@ results of this test: t.end() } - test(`${version} - order system observed`, function (t) { + test("order system observed", function (t) { order_system_helper(t, false, true) }) - test(`${version} - order system batched observed`, function (t) { + test("order system batched observed", function (t) { order_system_helper(t, true, true) }) - test(`${version} - order system lazy`, function (t) { + test("order system lazy", function (t) { order_system_helper(t, false, false) }) - test(`${version} - order system batched lazy`, function (t) { + test("order system batched lazy", function (t) { order_system_helper(t, true, false) }) - test(`${version} - create array`, function (t) { + test("create array", function (t) { gc() const a = [] for (let i = 0; i < 1000; i++) a.push(i) @@ -429,7 +426,7 @@ results of this test: t.end() }) - test(`${version} - create array (fast)`, function (t) { + test("create array (fast)", function (t) { gc() const a = [] for (let i = 0; i < 1000; i++) a.push(i) @@ -439,7 +436,7 @@ results of this test: t.end() }) - test(`${version} - observe and dispose`, t => { + test("observe and dispose", t => { gc() const start = now() @@ -460,7 +457,7 @@ results of this test: t.end() }) - test(`${version} - sort`, t => { + test("sort", t => { gc() function Item(a, b, c) { @@ -534,7 +531,7 @@ results of this test: t.end() }) - test(`${version} - computed temporary memoization`, t => { + test("computed temporary memoization", t => { "use strict" gc() const computeds = [] @@ -550,7 +547,7 @@ results of this test: t.end() }) - test(`${version} - Set: initializing`, function (t) { + test("Set: initializing", function (t) { gc() const iterationsCount = 100000 let i @@ -564,7 +561,7 @@ results of this test: t.end() }) - test(`${version} - Set: setting and deleting properties`, function (t) { + test("Set: setting and deleting properties", function (t) { gc() const iterationsCount = 1000 const propertiesCount = 10000 @@ -595,7 +592,7 @@ results of this test: t.end() }) - test(`${version} - Set: looking up properties`, function (t) { + test("Set: looking up properties", function (t) { gc() const iterationsCount = 1000 const propertiesCount = 10000 @@ -627,7 +624,7 @@ results of this test: t.end() }) - test(`${version} - Set: iterator helpers`, function (t) { + test("Set: iterator helpers", function (t) { gc() const iterationsCount = 1000 const propertiesCount = 10000 @@ -657,7 +654,7 @@ results of this test: t.end() }) - test(`${version} - Set: conversion to array`, function (t) { + test("Set: conversion to array", function (t) { gc() const iterationsCount = 1000 const propertiesCount = 10000 @@ -690,7 +687,7 @@ results of this test: t.end() }) - test(`${version} - Map: initializing`, function (t) { + test("Map: initializing", function (t) { gc() const iterationsCount = 100000 let i @@ -704,7 +701,7 @@ results of this test: t.end() }) - test(`${version} - Map: looking up properties`, function (t) { + test("Map: looking up properties", function (t) { gc() const iterationsCount = 1000 const propertiesCount = 100 @@ -736,7 +733,7 @@ results of this test: t.end() }) - test(`${version} - Map: setting and deleting properties`, function (t) { + test("Map: setting and deleting properties", function (t) { gc() const iterationsCount = 1000 const propertiesCount = 100 diff --git a/packages/mobx/jest.config-decorators.js b/packages/mobx/jest.config-decorators.js deleted file mode 100644 index 751c550a4f..0000000000 --- a/packages/mobx/jest.config-decorators.js +++ /dev/null @@ -1,11 +0,0 @@ -const path = require("path") -const buildConfig = require("../../jest.base.config") - -module.exports = buildConfig( - __dirname, - { - testRegex: "__tests__/decorators_20223/.*\\.(t|j)sx?$", - setupFilesAfterEnv: [`/jest.setup.ts`] - }, - path.resolve(__dirname, "./__tests__/decorators_20223/tsconfig.json") -) diff --git a/packages/mobx/jest.projects.js b/packages/mobx/jest.projects.js index 6ded2bb72a..72394c69cd 100644 --- a/packages/mobx/jest.projects.js +++ b/packages/mobx/jest.projects.js @@ -2,5 +2,5 @@ module.exports = { collectCoverageFrom: ["/src/**/*.{ts,tsx}", "!**/node_modules/**"], coverageDirectory: "/coverage/", coverageReporters: ["lcov", "text"], - projects: ["/jest.config.js", "/jest.config-decorators.js"] + projects: ["/jest.config.js"] } diff --git a/packages/mobx/jest.setup.ts b/packages/mobx/jest.setup.ts index 38da0a0ab9..2c852eb852 100644 --- a/packages/mobx/jest.setup.ts +++ b/packages/mobx/jest.setup.ts @@ -6,7 +6,6 @@ function resetMobxTestState() { _resetGlobalState() _getGlobalState().spyListeners = [] configure({ - useProxies: "always", enforceActions: "never", computedRequiresReaction: false, reactionRequiresObservable: false, diff --git a/packages/mobx/package.json b/packages/mobx/package.json index e4db9abfce..bd49219ce3 100644 --- a/packages/mobx/package.json +++ b/packages/mobx/package.json @@ -3,6 +3,7 @@ "version": "6.16.1", "description": "Simple, scalable state management.", "source": "src/mobx.ts", + "type": "commonjs", "main": "dist/index.js", "umd:main": "dist/mobx.umd.production.min.js", "unpkg": "dist/mobx.umd.production.min.js", @@ -12,6 +13,25 @@ "react-native": "dist/mobx.esm.js", "types": "dist/mobx.d.ts", "typings": "dist/mobx.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "react-native": { + "types": "./dist/mobx.d.ts", + "default": "./dist/mobx.esm.js" + }, + "import": { + "types": "./dist/mobx.d.ts", + "default": "./dist/mobx.mjs" + }, + "default": { + "types": "./dist/mobx.d.ts", + "default": "./dist/index.js" + } + }, + "./dist/*": "./dist/*", + "./src/*": "./src/*" + }, "files": [ "src", "dist", @@ -36,13 +56,6 @@ "homepage": "https://mobx.js.org/", "dependencies": {}, "devDependencies": { - "@babel/core": "^7.9.0", - "@babel/plugin-proposal-class-properties": "^7.8.3", - "@babel/plugin-proposal-decorators": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.9.0", - "@babel/preset-env": "^7.9.5", - "@babel/preset-typescript": "^7.9.0", - "@babel/runtime": "^7.9.2", "conditional-type-checks": "^1.0.5" }, "keywords": [ @@ -62,18 +75,15 @@ "scripts": { "test": "jest --config jest.projects.js", "lint": "eslint src/**/*", - "build": "node ../../scripts/build.js mobx", - "build:test": "npm run build -- --target test", + "build": "rollup --config rollup.config.mjs", + "build:test": "npm run build -- --environment TARGET:test", "perf": "scripts/perf.sh", - "perf-legacy": "node --expose-gc ./__tests__/perf/index.js legacy", - "perf-proxy": "node --expose-gc ./__tests__/perf/index.js proxy", "perf-decorator": "tsc -p ./__tests__/perf/tsconfig.decorator.json && node --expose-gc ./__tests__/perf/compiled/lazy-computed-decorator.js && node --expose-gc ./__tests__/perf/compiled/lazy-observable-decorator.js", - "test:performance": "npm run perf -- proxy && npm run perf -- legacy && npm run perf-decorator", + "test:performance": "npm run perf && npm run perf-decorator", "test:mixed-versions": "npm test -- --testRegex mixed-versions", "test:types": "tsc --noEmit", "test:coverage": "npm test -- -i --coverage", - "test:size": "import-size --report . observable computed autorun action", "test:check": "npm run test:types", - "prepublishOnly": "node ./scripts/prepublish.js && npm run build -- --target publish" + "prepublishOnly": "node ./scripts/prepublish.js && npm run build -- --environment TARGET:publish" } } diff --git a/packages/mobx/rollup.config.mjs b/packages/mobx/rollup.config.mjs new file mode 100644 index 0000000000..030770c1f6 --- /dev/null +++ b/packages/mobx/rollup.config.mjs @@ -0,0 +1,10 @@ +import createRollupConfig from "../../scripts/create-rollup-config.mjs" + +export default createRollupConfig({ + packageName: "mobx", + input: "src/mobx.ts", + globals: { + react: "React", + "react-native": "ReactNative" + } +}) diff --git a/packages/mobx/scripts/perf.sh b/packages/mobx/scripts/perf.sh index ff9b61484e..df2a4b6065 100755 --- a/packages/mobx/scripts/perf.sh +++ b/packages/mobx/scripts/perf.sh @@ -1,3 +1,3 @@ #!/bin/bash -time node --expose-gc ./__tests__/perf/index.js $1 \ No newline at end of file +time node --expose-gc ./__tests__/perf/index.js diff --git a/packages/mobx/src/api/action.ts b/packages/mobx/src/api/action.ts index 2fc2b519e7..4798757e6b 100644 --- a/packages/mobx/src/api/action.ts +++ b/packages/mobx/src/api/action.ts @@ -2,16 +2,15 @@ import { createAction, executeAction, Annotation, - storeAnnotation, die, isFunction, isStringish, - createDecoratorAnnotation, createActionAnnotation, - is20223Decorator + decorateAction20223_, + assign } from "../internal" - -import type { ClassFieldDecorator, ClassMethodDecorator } from "../types/decorator_fills" +import { createDecoratorAnnotation, type DecoratorAnnotation } from "./decoratorannotation" +import type { ClassMethodAndFieldDecorator } from "../types/decorator_fills" export const ACTION = "action" export const ACTION_BOUND = "action.bound" @@ -32,28 +31,32 @@ const autoActionBoundAnnotation = createActionAnnotation(AUTOACTION_BOUND, { bound: true }) -export interface IActionFactory - extends Annotation, - PropertyDecorator, - ClassMethodDecorator, - ClassFieldDecorator { +function createActionDecoratorAnnotation( + annotation: Annotation +): DecoratorAnnotation { + return createDecoratorAnnotation(annotation, decorateAction20223_) +} + +export interface IActionFactory extends Annotation, ClassMethodAndFieldDecorator { // nameless actions (fn: T): T // named actions (name: string, fn: T): T - // named decorator - (customName: string): PropertyDecorator & - Annotation & - ClassMethodDecorator & - ClassFieldDecorator - - // decorator (name no longer supported) - bound: Annotation & PropertyDecorator & ClassMethodDecorator & ClassFieldDecorator + // named annotation + (customName: string): DecoratorAnnotation } function createActionFactory(autoAction: boolean): IActionFactory { const res: IActionFactory = function action(arg1, arg2?): any { + if (arg2 && typeof arg2.kind === "string") { + return decorateAction20223_( + autoAction ? autoActionAnnotation : actionAnnotation, + arg1, + arg2 + ) + } + // action(fn() {}) if (isFunction(arg1)) { return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction) @@ -62,20 +65,9 @@ function createActionFactory(autoAction: boolean): IActionFactory { if (isFunction(arg2)) { return createAction(arg1, arg2, autoAction) } - // @action (2022.3 Decorators) - if (is20223Decorator(arg2)) { - return (autoAction ? autoActionAnnotation : actionAnnotation).decorate_20223_( - arg1, - arg2 - ) - } - // @action - if (isStringish(arg2)) { - return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation) - } - // action("name") & @action("name") + // action("name") annotation if (isStringish(arg1)) { - return createDecoratorAnnotation( + return createActionDecoratorAnnotation( createActionAnnotation(autoAction ? AUTOACTION : ACTION, { name: arg1, autoAction @@ -91,12 +83,12 @@ function createActionFactory(autoAction: boolean): IActionFactory { } export const action: IActionFactory = createActionFactory(false) -Object.assign(action, actionAnnotation) +assign(action, actionAnnotation) export const autoAction: IActionFactory = createActionFactory(true) -Object.assign(autoAction, autoActionAnnotation) +assign(autoAction, autoActionAnnotation) -action.bound = createDecoratorAnnotation(actionBoundAnnotation) -autoAction.bound = createDecoratorAnnotation(autoActionBoundAnnotation) +export const actionBound = createActionDecoratorAnnotation(actionBoundAnnotation) +export const autoActionBound = createActionDecoratorAnnotation(autoActionBoundAnnotation) export function runInAction(fn: () => T): T { return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined) diff --git a/packages/mobx/src/api/annotation.ts b/packages/mobx/src/api/annotation.ts index 719c727402..87a9ea607f 100644 --- a/packages/mobx/src/api/annotation.ts +++ b/packages/mobx/src/api/annotation.ts @@ -20,7 +20,6 @@ export type Annotation = { descriptor: PropertyDescriptor, proxyTrap: boolean ): boolean | null - decorate_20223_(value: any, context: DecoratorContext) options_?: any } diff --git a/packages/mobx/src/api/autorun.ts b/packages/mobx/src/api/autorun.ts index 63454ab169..5317b52ed2 100644 --- a/packages/mobx/src/api/autorun.ts +++ b/packages/mobx/src/api/autorun.ts @@ -6,7 +6,7 @@ import { Lambda, Reaction, action, - comparer, + compareDefault, getNextId, isAction, isFunction, @@ -140,9 +140,7 @@ export function reaction( let isScheduled = false let value: T - const equals: IEqualsComparer = (opts as any).compareStructural - ? comparer.structural - : opts.equals || comparer.default + const equals: IEqualsComparer = opts.equals || compareDefault const r = new Reaction( name, diff --git a/packages/mobx/src/api/computed.ts b/packages/mobx/src/api/computed.ts index 6ac31e8e04..1f077de236 100644 --- a/packages/mobx/src/api/computed.ts +++ b/packages/mobx/src/api/computed.ts @@ -2,53 +2,48 @@ import { ComputedValue, IComputedValueOptions, Annotation, - storeAnnotation, - createDecoratorAnnotation, - isStringish, isPlainObject, isFunction, die, IComputedValue, createComputedAnnotation, - comparer, - is20223Decorator + compareStructural, + decorateComputed20223_, + assign } from "../internal" - +import { createDecoratorAnnotation, type DecoratorAnnotation } from "./decoratorannotation" import type { ClassGetterDecorator } from "../types/decorator_fills" export const COMPUTED = "computed" export const COMPUTED_STRUCT = "computed.struct" -export interface IComputedFactory extends Annotation, PropertyDecorator, ClassGetterDecorator { - // @computed(opts) - (options: IComputedValueOptions): Annotation & PropertyDecorator & ClassGetterDecorator +function createComputedDecoratorAnnotation( + annotation: Annotation +): DecoratorAnnotation { + return createDecoratorAnnotation(annotation, decorateComputed20223_) +} + +export interface IComputedFactory extends Annotation, ClassGetterDecorator { + // computed annotation with options + (options: IComputedValueOptions): DecoratorAnnotation // computed(fn, opts) (func: () => T, options?: IComputedValueOptions): IComputedValue - - struct: Annotation & PropertyDecorator & ClassGetterDecorator } const computedAnnotation = createComputedAnnotation(COMPUTED) const computedStructAnnotation = createComputedAnnotation(COMPUTED_STRUCT, { - equals: comparer.structural + equals: compareStructural }) +export const computedStruct = createComputedDecoratorAnnotation(computedStructAnnotation) -/** - * Decorator for class properties: @computed get value() { return expr; }. - * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`; - */ export const computed: IComputedFactory = function computed(arg1, arg2) { - if (is20223Decorator(arg2)) { - // @computed (2022.3 Decorators) - return computedAnnotation.decorate_20223_(arg1, arg2) - } - if (isStringish(arg2)) { - // @computed - return storeAnnotation(arg1, arg2, computedAnnotation) + if (arg2 && typeof arg2.kind === "string") { + return decorateComputed20223_(computedAnnotation, arg1, arg2) } + if (isPlainObject(arg1)) { - // @computed({ options }) - return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1)) + // computed annotation with options + return createComputedDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1)) } // computed(expr, options?) @@ -69,6 +64,4 @@ export const computed: IComputedFactory = function computed(arg1, arg2) { return new ComputedValue(opts) } as any -Object.assign(computed, computedAnnotation) - -computed.struct = createDecoratorAnnotation(computedStructAnnotation) +assign(computed, computedAnnotation) diff --git a/packages/mobx/src/api/configure.ts b/packages/mobx/src/api/configure.ts index cfabf9f2d4..f1a6fa32c2 100644 --- a/packages/mobx/src/api/configure.ts +++ b/packages/mobx/src/api/configure.ts @@ -1,9 +1,7 @@ import { globalState, isolateGlobalState, setReactionScheduler } from "../internal" -const NEVER = "never" const ALWAYS = "always" const OBSERVED = "observed" -// const IF_AVAILABLE = "ifavailable" export function configure(options: { enforceActions?: "never" | "always" | "observed" @@ -20,23 +18,11 @@ export function configure(options: { disableErrorBoundaries?: boolean safeDescriptors?: boolean reactionScheduler?: (f: () => void) => void - useProxies?: "always" | "never" | "ifavailable" }): void { if (options.isolateGlobalState === true) { isolateGlobalState() } - const { useProxies, enforceActions } = options - if (useProxies !== undefined) { - globalState.useProxies = - useProxies === ALWAYS - ? true - : useProxies === NEVER - ? false - : typeof Proxy !== "undefined" - } - if (useProxies === "ifavailable") { - globalState.verifyProxies = true - } + const { enforceActions } = options if (enforceActions !== undefined) { const ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED globalState.enforceActions = ea diff --git a/packages/mobx/src/api/decoratorannotation.ts b/packages/mobx/src/api/decoratorannotation.ts new file mode 100644 index 0000000000..504fa6453d --- /dev/null +++ b/packages/mobx/src/api/decoratorannotation.ts @@ -0,0 +1,20 @@ +import { die } from "../errors" +import { assign } from "../utils/utils" +import type { Annotation } from "./annotation" + +export type DecoratorAnnotation any> = Annotation & Decorator + +export function createDecoratorAnnotation any>( + annotation: Annotation, + decorate: (annotation: Annotation, value: any, context: any) => any +): DecoratorAnnotation { + return assign(function decoratorAnnotation(value, context) { + if (context && typeof context.kind === "string") { + return decorate(annotation, value, context) + } + if (__DEV__) { + die(`Invalid arguments for \`${annotation.annotationType_}\``) + } + return undefined + }, annotation) as any +} diff --git a/packages/mobx/src/api/decorators.ts b/packages/mobx/src/api/decorators.ts index 9ecde78c12..76ccb9dbf1 100644 --- a/packages/mobx/src/api/decorators.ts +++ b/packages/mobx/src/api/decorators.ts @@ -1,88 +1,4 @@ -import { Annotation, addHiddenProp, AnnotationsMap, hasProp, die, isOverride } from "../internal" - -import type { Decorator } from "../types/decorator_fills" - -export const storedAnnotationsSymbol = Symbol("mobx-stored-annotations") - -/** - * Creates a function that acts as - * - decorator - * - annotation object - */ -export function createDecoratorAnnotation( - annotation: Annotation -): PropertyDecorator & Annotation & D { - function decorator(target, property) { - if (is20223Decorator(property)) { - return annotation.decorate_20223_(target, property) - } else { - storeAnnotation(target, property, annotation) - } - } - return Object.assign(decorator, annotation) as any -} - -/** - * Stores annotation to prototype, - * so it can be inspected later by `makeObservable` called from constructor - */ -export function storeAnnotation(prototype: any, key: PropertyKey, annotation: Annotation) { - if (!hasProp(prototype, storedAnnotationsSymbol)) { - addHiddenProp(prototype, storedAnnotationsSymbol, { - // Inherit annotations - ...prototype[storedAnnotationsSymbol] - }) - } - // @override must override something - if (__DEV__ && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) { - const fieldName = `${prototype.constructor.name}.prototype.${key.toString()}` - die( - `'${fieldName}' is decorated with 'override', ` + - `but no such decorated member was found on prototype.` - ) - } - // Cannot re-decorate - assertNotDecorated(prototype, annotation, key) - - // Ignore override - if (!isOverride(annotation)) { - prototype[storedAnnotationsSymbol][key] = annotation - } -} - -function assertNotDecorated(prototype: object, annotation: Annotation, key: PropertyKey) { - if (__DEV__ && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) { - const fieldName = `${prototype.constructor.name}.prototype.${key.toString()}` - const currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_ - const requestedAnnotationType = annotation.annotationType_ - die( - `Cannot apply '@${requestedAnnotationType}' to '${fieldName}':` + - `\nThe field is already decorated with '@${currentAnnotationType}'.` + - `\nRe-decorating fields is not allowed.` + - `\nUse '@override' decorator for methods overridden by subclass.` - ) - } -} - -/** - * Collects annotations from prototypes and stores them on target (instance) - */ -export function collectStoredAnnotations(target): AnnotationsMap { - if (!hasProp(target, storedAnnotationsSymbol)) { - // if (__DEV__ && !target[storedAnnotationsSymbol]) { - // die( - // `No annotations were passed to makeObservable, but no decorated members have been found either` - // ) - // } - // We need a copy as we will remove annotation from the list once it's applied. - addHiddenProp(target, storedAnnotationsSymbol, { ...target[storedAnnotationsSymbol] }) - } - return target[storedAnnotationsSymbol] -} - -export function is20223Decorator(context): context is DecoratorContext { - return typeof context == "object" && typeof context["kind"] == "string" -} +import { die } from "../internal" export function assert20223DecoratorType( context: DecoratorContext, diff --git a/packages/mobx/src/api/extras.ts b/packages/mobx/src/api/extras.ts index 5a7bd40fee..0b76c1bfd0 100644 --- a/packages/mobx/src/api/extras.ts +++ b/packages/mobx/src/api/extras.ts @@ -33,7 +33,7 @@ function nodeToObserverTree(node: IDepTreeNode): IObserverTree { name: node.name_ } if (hasObservers(node as any)) { - result.observers = Array.from(getObservers(node as any)).map(nodeToObserverTree) + result.observers = Array.from(getObservers(node as any), nodeToObserverTree) } return result } diff --git a/packages/mobx/src/api/flow.ts b/packages/mobx/src/api/flow.ts index 9a635858db..15694bbd79 100644 --- a/packages/mobx/src/api/flow.ts +++ b/packages/mobx/src/api/flow.ts @@ -4,13 +4,11 @@ import { die, isFunction, Annotation, - isStringish, - storeAnnotation, createFlowAnnotation, - createDecoratorAnnotation, - is20223Decorator + decorateFlow20223_, + assign } from "../internal" - +import { createDecoratorAnnotation, type DecoratorAnnotation } from "./decoratorannotation" import type { ClassMethodDecorator } from "../types/decorator_fills" export const FLOW = "flow" @@ -35,46 +33,44 @@ export function isFlowCancellationError(error: Error) { export type CancellablePromise = Promise & { cancel(): void } -type FlowGenerator = (...args: any[]) => Generator | AsyncGenerator +function createFlowDecoratorAnnotation( + annotation: Annotation +): DecoratorAnnotation { + return createDecoratorAnnotation(annotation, decorateFlow20223_) +} -// PropertyDecorator is only for legacy decorators -interface Flow extends Annotation, PropertyDecorator { - ( - value: Value, - context: ClassMethodDecoratorContext - ): Value | void +interface Flow extends Annotation, ClassMethodDecorator { ( - generator: (...args: Args) => Generator | AsyncGenerator + generator: (...args: Args) => Generator | AsyncGenerator, + context?: never ): (...args: Args) => CancellablePromise - bound: Annotation & PropertyDecorator & ClassMethodDecorator } const flowAnnotation = createFlowAnnotation("flow") const flowBoundAnnotation = createFlowAnnotation("flow.bound", { bound: true }) -export const flow: Flow = Object.assign( +export const flow: Flow = assign( function flow(arg1, arg2?) { - // @flow (2022.3 Decorators) - if (is20223Decorator(arg2)) { - return flowAnnotation.decorate_20223_(arg1, arg2) - } - // @flow - if (isStringish(arg2)) { - return storeAnnotation(arg1, arg2, flowAnnotation) + if (arg2 && typeof arg2.kind === "string") { + return decorateFlow20223_(flowAnnotation, arg1, arg2) } + // flow(fn) if (__DEV__ && arguments.length !== 1) { die(`Flow expects single argument with generator function`) } const generator = arg1 - const name = generator.name || "" + const name = generator.name || (__DEV__ ? "" : "flow") // Implementation based on https://github.com/tj/co/blob/master/index.js const res = function () { const ctx = this const args = arguments - const runId = ++generatorId - const gen = action(`${name} - runid: ${runId} - init`, generator).apply(ctx, args) + const runId = __DEV__ ? ++generatorId : 0 + const gen = action( + __DEV__ ? `${name} - runid: ${runId} - init` : name, + generator + ).apply(ctx, args) let rejector: (error: any) => void let pendingPromise: CancellablePromise | undefined = undefined @@ -87,7 +83,7 @@ export const flow: Flow = Object.assign( let ret try { ret = action( - `${name} - runid: ${runId} - yield ${stepId++}`, + __DEV__ ? `${name} - runid: ${runId} - yield ${stepId++}` : name, gen.next ).call(gen, res) } catch (e) { @@ -102,7 +98,7 @@ export const flow: Flow = Object.assign( let ret try { ret = action( - `${name} - runid: ${runId} - yield ${stepId++}`, + __DEV__ ? `${name} - runid: ${runId} - yield ${stepId++}` : name, gen.throw! ).call(gen, err) } catch (e) { @@ -127,7 +123,8 @@ export const flow: Flow = Object.assign( onFulfilled(undefined) // kick off the process }) as any - promise.cancel = action(`${name} - runid: ${runId} - cancel`, function () { + const cancelActionName = __DEV__ ? `${name} - runid: ${runId} - cancel` : name + promise.cancel = action(cancelActionName, function () { try { if (pendingPromise) { cancelPromise(pendingPromise) @@ -152,7 +149,7 @@ export const flow: Flow = Object.assign( flowAnnotation ) -flow.bound = createDecoratorAnnotation(flowBoundAnnotation) +export const flowBound = createFlowDecoratorAnnotation(flowBoundAnnotation) function cancelPromise(promise) { if (isFunction(promise.cancel)) { diff --git a/packages/mobx/src/api/intercept.ts b/packages/mobx/src/api/intercept.ts index 9ccb544e14..ee25998e9e 100644 --- a/packages/mobx/src/api/intercept.ts +++ b/packages/mobx/src/api/intercept.ts @@ -12,7 +12,8 @@ import { getAdministration, ObservableSet, ISetWillChange, - isFunction + isFunction, + registerInterceptor } from "../internal" export function intercept( @@ -51,9 +52,9 @@ export function intercept(thing, propOrHandler?, handler?): Lambda { } function interceptInterceptable(thing, handler) { - return getAdministration(thing).intercept_(handler) + return registerInterceptor(getAdministration(thing), handler) } function interceptProperty(thing, property, handler) { - return getAdministration(thing, property).intercept_(handler) + return registerInterceptor(getAdministration(thing, property), handler) } diff --git a/packages/mobx/src/api/makeObservable.ts b/packages/mobx/src/api/makeObservable.ts index 156161d241..81a430b2a8 100644 --- a/packages/mobx/src/api/makeObservable.ts +++ b/packages/mobx/src/api/makeObservable.ts @@ -4,15 +4,19 @@ import { AnnotationsMap, CreateObservableOptions, ObservableObjectAdministration, - collectStoredAnnotations, isPlainObject, isObservableObject, die, ownKeys, extendObservable, addHiddenProp, - storedAnnotationsSymbol, - initObservable + initObservable, + Annotation, + assertAnnotable, + getDescriptor, + MakeResult, + objectPrototype, + recordAnnotationApplied } from "../internal" // Hack based on https://github.com/Microsoft/TypeScript/issues/14829#issuecomment-322267089 @@ -22,25 +26,16 @@ import { // Fixes: https://github.com/mobxjs/mobx/issues/2325#issuecomment-691070022 type NoInfer = [T][T extends any ? 0 : never] -type MakeObservableOptions = Omit - export function makeObservable( target: T, - annotations?: AnnotationsMap>, - options?: MakeObservableOptions + annotations: AnnotationsMap>, + options?: CreateObservableOptions ): T { initObservable(() => { const adm: ObservableObjectAdministration = asObservableObject(target, options)[$mobx] - if (__DEV__ && annotations && target[storedAnnotationsSymbol]) { - die( - `makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.` - ) - } - // Default to decorators - annotations ??= collectStoredAnnotations(target) // Annotate - ownKeys(annotations).forEach(key => adm.make_(key, annotations![key])) + ownKeys(annotations).forEach(key => make_(adm, key, annotations[key])) }) return target } @@ -51,7 +46,7 @@ const keysSymbol = Symbol("mobx-keys") export function makeAutoObservable( target: T, overrides?: AnnotationsMap>, - options?: MakeObservableOptions + options?: CreateObservableOptions ): T { if (__DEV__) { if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) { @@ -82,7 +77,8 @@ export function makeAutoObservable - adm.make_( + make_( + adm, key, // must pass "undefined" for { key: undefined } !overrides ? true : key in overrides ? overrides[key] : true @@ -92,3 +88,35 @@ export function makeAutoObservable= obj.length) { diff --git a/packages/mobx/src/api/observable.ts b/packages/mobx/src/api/observable.ts index 738410ea60..eaa68e1bd8 100644 --- a/packages/mobx/src/api/observable.ts +++ b/packages/mobx/src/api/observable.ts @@ -24,20 +24,14 @@ import { shallowEnhancer, refStructEnhancer, AnnotationsMap, - asObservableObject, - storeAnnotation, - createDecoratorAnnotation, - createLegacyArray, - globalState, assign, - isStringish, createObservableAnnotation, createAutoAnnotation, - is20223Decorator, - initObservable + initObservable, + decorateObservable20223_ } from "../internal" - -import type { ClassAccessorDecorator, ClassFieldDecorator } from "../types/decorator_fills" +import { createDecoratorAnnotation, type DecoratorAnnotation } from "./decoratorannotation" +import type { ClassAccessorAndFieldDecorator } from "../types/decorator_fills" export const OBSERVABLE = "observable" export const OBSERVABLE_REF = "observable.ref" @@ -49,7 +43,6 @@ export type CreateObservableOptions = { equals?: IEqualsComparer deep?: boolean defaultDecorator?: Annotation - proxy?: boolean autoBind?: boolean } @@ -58,8 +51,7 @@ export type CreateObservableOptions = { export const defaultCreateObservableOptions: CreateObservableOptions = { deep: true, name: undefined, - defaultDecorator: undefined, - proxy: true + defaultDecorator: undefined } Object.freeze(defaultCreateObservableOptions) @@ -69,16 +61,20 @@ export function asCreateObservableOptions(thing: any): CreateObservableOptions { const observableAnnotation = createObservableAnnotation(OBSERVABLE) const observableRefAnnotation = createObservableAnnotation(OBSERVABLE_REF, { - enhancer: referenceEnhancer + enhancer_: referenceEnhancer }) const observableShallowAnnotation = createObservableAnnotation(OBSERVABLE_SHALLOW, { - enhancer: shallowEnhancer + enhancer_: shallowEnhancer }) const observableStructAnnotation = createObservableAnnotation(OBSERVABLE_STRUCT, { - enhancer: refStructEnhancer + enhancer_: refStructEnhancer }) -const observableDecoratorAnnotation = - createDecoratorAnnotation(observableAnnotation) + +function createObservableDecoratorAnnotation( + annotation: Annotation +): DecoratorAnnotation { + return createDecoratorAnnotation(annotation, decorateObservable20223_) +} export function getEnhancerFromOptions(options: CreateObservableOptions): IEnhancer { return options.deep === true @@ -95,7 +91,7 @@ export function getAnnotationFromOptions( } export function getEnhancerFromAnnotation(annotation?: Annotation): IEnhancer { - return !annotation ? deepEnhancer : annotation.options_?.enhancer ?? deepEnhancer + return !annotation ? deepEnhancer : annotation.options_?.enhancer_ ?? deepEnhancer } /** @@ -103,15 +99,8 @@ export function getEnhancerFromAnnotation(annotation?: Annotation): IEnhancer(value: T, options?: CreateObservableOptions): IObservableValue @@ -172,18 +160,13 @@ export interface IObservableMapFactory { > } -export interface IObservableFactory - extends Annotation, - PropertyDecorator, - ClassAccessorDecorator, - ClassFieldDecorator { - // TODO: remove ClassFieldDecorator, this is only temporarily support for legacy decorators +export interface IObservableFactory extends Annotation, ClassAccessorAndFieldDecorator { (value: T[], options?: CreateObservableOptions): IObservableArray (value: Set, options?: CreateObservableOptions): ObservableSet (value: Map, options?: CreateObservableOptions): ObservableMap ( value: T, - decorators?: AnnotationsMap, + annotations?: AnnotationsMap, options?: CreateObservableOptions ): T @@ -196,20 +179,9 @@ export interface IObservableFactory map: IObservableMapFactory object: ( props: T, - decorators?: AnnotationsMap, + annotations?: AnnotationsMap, options?: CreateObservableOptions ) => T - - /** - * Decorator that creates an observable that only observes the references, but doesn't try to turn the assigned value into an observable.ts. - */ - ref: Annotation & PropertyDecorator & ClassAccessorDecorator & ClassFieldDecorator - /** - * Decorator that creates an observable converts its value (objects, maps or arrays) into a shallow observable structure - */ - shallow: Annotation & PropertyDecorator & ClassAccessorDecorator & ClassFieldDecorator - deep: Annotation & PropertyDecorator & ClassAccessorDecorator & ClassFieldDecorator - struct: Annotation & PropertyDecorator & ClassAccessorDecorator & ClassFieldDecorator } const observableFactories: IObservableFactory = { @@ -219,11 +191,7 @@ const observableFactories: IObservableFactory = { }, array(initialValues?: T[], options?: CreateObservableOptions): IObservableArray { const o = asCreateObservableOptions(options) - return ( - globalState.useProxies === false || o.proxy === false - ? createLegacyArray - : createObservableArray - )(initialValues, getEnhancerFromOptions(o), o.name) + return createObservableArray(initialValues, getEnhancerFromOptions(o), o.name) }, map( initialValues?: IObservableMapInitialValues, @@ -241,24 +209,23 @@ const observableFactories: IObservableFactory = { }, object( props: T, - decorators?: AnnotationsMap, + annotations?: AnnotationsMap, options?: CreateObservableOptions ): T { return initObservable(() => - extendObservable( - globalState.useProxies === false || options?.proxy === false - ? asObservableObject({}, options) - : asDynamicObservableObject({}, options), - props, - decorators - ) + extendObservable(asDynamicObservableObject({}, options), props, annotations) ) - }, - ref: createDecoratorAnnotation(observableRefAnnotation), - shallow: createDecoratorAnnotation(observableShallowAnnotation), - deep: observableDecoratorAnnotation, - struct: createDecoratorAnnotation(observableStructAnnotation) + } } as any +export const observableRef = createObservableDecoratorAnnotation(observableRefAnnotation) +export const observableShallow = createObservableDecoratorAnnotation(observableShallowAnnotation) +export const observableDeep = createObservableDecoratorAnnotation(observableAnnotation) +export const observableStruct = createObservableDecoratorAnnotation(observableStructAnnotation) + // eslint-disable-next-line -export var observable: IObservableFactory = assign(createObservable, observableFactories) +export var observable: IObservableFactory = assign( + createObservable, + observableAnnotation, + observableFactories +) diff --git a/packages/mobx/src/api/observe.ts b/packages/mobx/src/api/observe.ts index f3c4c7c5bb..f602406874 100644 --- a/packages/mobx/src/api/observe.ts +++ b/packages/mobx/src/api/observe.ts @@ -11,7 +11,18 @@ import { getAdministration, ObservableSet, ISetDidChange, - isFunction + isFunction, + isComputedValue, + isObservableArray, + isObservableMap, + isObservableObject, + isObservableSet, + autorun, + registerListener, + untrackedEnd, + untrackedStart, + UPDATE, + die } from "../internal" export function observe( @@ -61,9 +72,77 @@ export function observe(thing, propOrCb?, cbOrFire?, fireImmediately?): Lambda { } function observeObservable(thing, listener, fireImmediately: boolean) { - return getAdministration(thing).observe_(listener, fireImmediately) + const adm = getAdministration(thing) + + if (isObservableArray(thing)) { + if (fireImmediately) { + listener({ + observableKind: "array", + object: adm.proxy_, + debugObjectName: adm.atom_.name_, + type: "splice", + index: 0, + added: adm.values_.slice(), + addedCount: adm.values_.length, + removed: [], + removedCount: 0 + }) + } + } else if (isObservableMap(thing)) { + if (__DEV__ && fireImmediately === true) { + die("`observe` doesn't support fireImmediately=true in combination with maps.") + } + } else if (isObservableSet(thing)) { + if (__DEV__ && fireImmediately === true) { + die("`observe` doesn't support fireImmediately=true in combination with sets.") + } + } else if (isObservableObject(thing)) { + if (__DEV__ && fireImmediately === true) { + die("`observe` doesn't support the fire immediately property for observable objects.") + } + } else { + return observeValue(adm, listener, fireImmediately) + } + + return registerListener(adm, listener) } function observeObservableProperty(thing, property, listener, fireImmediately: boolean) { - return getAdministration(thing, property).observe_(listener, fireImmediately) + return observeValue(getAdministration(thing, property), listener, fireImmediately) +} + +function observeValue(adm, listener, fireImmediately: boolean) { + if (isComputedValue(adm)) { + let firstTime = true + let prevValue: any = undefined + return autorun(() => { + const newValue = adm.get() + if (!firstTime || fireImmediately) { + const prevU = untrackedStart() + listener({ + observableKind: "computed", + debugObjectName: adm.name_, + type: UPDATE, + object: adm, + newValue, + oldValue: prevValue + }) + untrackedEnd(prevU) + } + firstTime = false + prevValue = newValue + }) + } + + if (fireImmediately) { + listener({ + observableKind: "value", + debugObjectName: adm.name_, + object: adm, + type: UPDATE, + newValue: adm.value_, + oldValue: undefined + }) + } + return registerListener(adm, listener) } diff --git a/packages/mobx/src/api/trace.ts b/packages/mobx/src/api/trace.ts deleted file mode 100644 index c304329b3d..0000000000 --- a/packages/mobx/src/api/trace.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { TraceMode, die, getAtom, globalState } from "../internal" - -export function trace(thing?: any, prop?: string, enterBreakPoint?: boolean): void -export function trace(thing?: any, enterBreakPoint?: boolean): void -export function trace(enterBreakPoint?: boolean): void -export function trace(...args: any[]): void { - if (!__DEV__) { - return - } - let enterBreakPoint = false - if (typeof args[args.length - 1] === "boolean") { - enterBreakPoint = args.pop() - } - const derivation = getAtomFromArgs(args) - if (!derivation) { - return die( - `'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly` - ) - } - if (derivation.isTracing_ === TraceMode.NONE) { - console.log(`[mobx.trace] '${derivation.name_}' tracing enabled`) - } - derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG -} - -function getAtomFromArgs(args): any { - switch (args.length) { - case 0: - return globalState.trackingDerivation - case 1: - return getAtom(args[0]) - case 2: - return getAtom(args[0], args[1]) - } -} diff --git a/packages/mobx/src/api/when.ts b/packages/mobx/src/api/when.ts index 66985a1af6..3c0f598aa1 100644 --- a/packages/mobx/src/api/when.ts +++ b/packages/mobx/src/api/when.ts @@ -7,7 +7,8 @@ import { getNextId, die, allowStateChanges, - GenericAbortSignal + GenericAbortSignal, + assign } from "../internal" export interface IWhenOptions { @@ -77,12 +78,12 @@ function whenPromise( return die(`the options 'onError' and 'promise' cannot be combined`) } if (opts?.signal?.aborted) { - return Object.assign(Promise.reject(new Error("WHEN_ABORTED")), { cancel: () => null }) + return assign(Promise.reject(new Error("WHEN_ABORTED")), { cancel: () => null }) } let cancel let abort const res = new Promise((resolve, reject) => { - let disposer = _when(predicate, resolve as Lambda, { ...opts, onError: reject }) + let disposer = _when(predicate, resolve as Lambda, assign({}, opts, { onError: reject })) cancel = () => { disposer() reject(new Error("WHEN_CANCELLED")) diff --git a/packages/mobx/src/core/action.ts b/packages/mobx/src/core/action.ts index ec8ab01e63..50dd708fa4 100644 --- a/packages/mobx/src/core/action.ts +++ b/packages/mobx/src/core/action.ts @@ -96,7 +96,7 @@ export function _startAction( ): IActionRunInfo { const notifySpy_ = __DEV__ && isSpyEnabled() && !!actionName let startTime_: number = 0 - if (__DEV__ && notifySpy_) { + if (notifySpy_) { startTime_ = Date.now() const flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY spyReportStart({ @@ -112,9 +112,14 @@ export function _startAction( let prevAllowStateChanges_ = globalState.allowStateChanges // by default preserve previous allow if (runAsAction) { untrackedStart() - prevAllowStateChanges_ = allowStateChangesStart(true) + if (__DEV__) { + prevAllowStateChanges_ = allowStateChangesStart(true) + } + } + const prevAllowStateReads_ = globalState.allowStateReads + if (__DEV__) { + allowStateReadsStart(true) } - const prevAllowStateReads_ = allowStateReadsStart(true) const runInfo = { runAsAction_: runAsAction, prevDerivation_, @@ -138,8 +143,10 @@ export function _endAction(runInfo: IActionRunInfo) { if (runInfo.error_ !== undefined) { globalState.suppressReactionErrors = true } - allowStateChangesEnd(runInfo.prevAllowStateChanges_) - allowStateReadsEnd(runInfo.prevAllowStateReads_) + if (__DEV__) { + allowStateChangesEnd(runInfo.prevAllowStateChanges_) + allowStateReadsEnd(runInfo.prevAllowStateReads_) + } endBatch() if (runInfo.runAsAction_) { untrackedEnd(runInfo.prevDerivation_) diff --git a/packages/mobx/src/core/atom.ts b/packages/mobx/src/core/atom.ts index 2df57def5c..4000a91248 100644 --- a/packages/mobx/src/core/atom.ts +++ b/packages/mobx/src/core/atom.ts @@ -6,8 +6,6 @@ import { endBatch, getNextId, noop, - onBecomeObserved, - onBecomeUnobserved, propagateChanged, reportObserved, startBatch, @@ -23,10 +21,13 @@ export interface IAtom extends IObservable { reportChanged(): void } +const enum AtomFlags { + isBeingObserved = 0b001, + isPendingUnobservation = 0b010, + diffValue = 0b100 +} + export class Atom implements IAtom { - private static readonly isBeingObservedMask_ = 0b001 - private static readonly isPendingUnobservationMask_ = 0b010 - private static readonly diffValueMask_ = 0b100 private flags_ = 0b000 observers_ = new Set() @@ -41,24 +42,24 @@ export class Atom implements IAtom { // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed get isBeingObserved(): boolean { - return getFlag(this.flags_, Atom.isBeingObservedMask_) + return getFlag(this.flags_, AtomFlags.isBeingObserved) } set isBeingObserved(newValue: boolean) { - this.flags_ = setFlag(this.flags_, Atom.isBeingObservedMask_, newValue) + this.flags_ = setFlag(this.flags_, AtomFlags.isBeingObserved, newValue) } get isPendingUnobservation(): boolean { - return getFlag(this.flags_, Atom.isPendingUnobservationMask_) + return getFlag(this.flags_, AtomFlags.isPendingUnobservation) } set isPendingUnobservation(newValue: boolean) { - this.flags_ = setFlag(this.flags_, Atom.isPendingUnobservationMask_, newValue) + this.flags_ = setFlag(this.flags_, AtomFlags.isPendingUnobservation, newValue) } get diffValue(): 0 | 1 { - return getFlag(this.flags_, Atom.diffValueMask_) ? 1 : 0 + return getFlag(this.flags_, AtomFlags.diffValue) ? 1 : 0 } set diffValue(newValue: 0 | 1) { - this.flags_ = setFlag(this.flags_, Atom.diffValueMask_, newValue === 1 ? true : false) + this.flags_ = setFlag(this.flags_, AtomFlags.diffValue, newValue === 1 ? true : false) } // onBecomeObservedListeners @@ -110,11 +111,11 @@ export function createAtom( const atom = new Atom(name) // default `noop` listener will not initialize the hook Set if (onBecomeObservedHandler !== noop) { - onBecomeObserved(atom, onBecomeObservedHandler) + atom.onBOL = new Set([onBecomeObservedHandler]) } if (onBecomeUnobservedHandler !== noop) { - onBecomeUnobserved(atom, onBecomeUnobservedHandler) + atom.onBUOL = new Set([onBecomeUnobservedHandler]) } return atom } diff --git a/packages/mobx/src/core/computedvalue.ts b/packages/mobx/src/core/computedvalue.ts index cec036d6c1..d570d79556 100644 --- a/packages/mobx/src/core/computedvalue.ts +++ b/packages/mobx/src/core/computedvalue.ts @@ -5,10 +5,8 @@ import { IEqualsComparer, IObservable, Lambda, - TraceMode, - autorun, clearObserving, - comparer, + compareDefault, createAction, createInstanceofPredicate, endBatch, @@ -24,9 +22,6 @@ import { startBatch, toPrimitive, trackDerivedFunction, - untrackedEnd, - untrackedStart, - UPDATE, die, allowStateChangesStart, allowStateChangesEnd @@ -77,6 +72,14 @@ export type IComputedDidChange = { * * If at any point it's outside batch and it isn't observed: reset everything and go to 1. */ +const enum ComputedValueFlags { + isComputing = 0b00001, + isRunningSetter = 0b00010, + isBeingObserved = 0b00100, + isPendingUnobservation = 0b01000, + diffValue = 0b10000 +} + export class ComputedValue implements IObservable, IComputedValue, IDerivation { dependenciesState_ = IDerivationState_.NOT_TRACKING_ observing_: IObservable[] = [] // nodes we are looking at. Our value depends on these nodes @@ -90,16 +93,10 @@ export class ComputedValue implements IObservable, IComputedValue, IDeriva name_: string triggeredBy_?: string - private static readonly isComputingMask_ = 0b00001 - private static readonly isRunningSetterMask_ = 0b00010 - private static readonly isBeingObservedMask_ = 0b00100 - private static readonly isPendingUnobservationMask_ = 0b01000 - private static readonly diffValueMask_ = 0b10000 private flags_ = 0b00000 derivation: () => T // N.B: unminified as it is used by MST setter_?: (value: T) => void - isTracing_: TraceMode = TraceMode.NONE scope_: Object | undefined private equals_: IEqualsComparer private requiresReaction_: boolean | undefined @@ -110,11 +107,9 @@ export class ComputedValue implements IObservable, IComputedValue, IDeriva * * The `name` property is for debug purposes only. * - * The `equals` property specifies the comparer function to use to determine if a newly produced - * value differs from the previous value. Two comparers are provided in the library; `defaultComparer` - * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure. - * Structural comparison can be convenient if you always produce a new aggregated object and - * don't want to notify observers if it is structurally the same. + * The `equals` property specifies the comparer function used to determine if a newly produced + * value differs from the previous value. Structural comparison can be convenient if you always + * produce a new aggregated object and don't want to notify observers if it is structurally the same. * This is useful for working with vectors, mouse coordinates etc. */ constructor(options: IComputedValueOptions) { @@ -129,11 +124,7 @@ export class ComputedValue implements IObservable, IComputedValue, IDeriva options.set ) as any } - this.equals_ = - options.equals || - ((options as any).compareStructural || (options as any).struct - ? comparer.structural - : comparer.default) + this.equals_ = options.equals || compareDefault this.scope_ = options.context this.requiresReaction_ = options.requiresReaction this.keepAlive_ = !!options.keepAlive @@ -160,40 +151,40 @@ export class ComputedValue implements IObservable, IComputedValue, IDeriva // to check for cycles private get isComputing(): boolean { - return getFlag(this.flags_, ComputedValue.isComputingMask_) + return getFlag(this.flags_, ComputedValueFlags.isComputing) } private set isComputing(newValue: boolean) { - this.flags_ = setFlag(this.flags_, ComputedValue.isComputingMask_, newValue) + this.flags_ = setFlag(this.flags_, ComputedValueFlags.isComputing, newValue) } private get isRunningSetter(): boolean { - return getFlag(this.flags_, ComputedValue.isRunningSetterMask_) + return getFlag(this.flags_, ComputedValueFlags.isRunningSetter) } private set isRunningSetter(newValue: boolean) { - this.flags_ = setFlag(this.flags_, ComputedValue.isRunningSetterMask_, newValue) + this.flags_ = setFlag(this.flags_, ComputedValueFlags.isRunningSetter, newValue) } get isBeingObserved(): boolean { - return getFlag(this.flags_, ComputedValue.isBeingObservedMask_) + return getFlag(this.flags_, ComputedValueFlags.isBeingObserved) } set isBeingObserved(newValue: boolean) { - this.flags_ = setFlag(this.flags_, ComputedValue.isBeingObservedMask_, newValue) + this.flags_ = setFlag(this.flags_, ComputedValueFlags.isBeingObserved, newValue) } get isPendingUnobservation(): boolean { - return getFlag(this.flags_, ComputedValue.isPendingUnobservationMask_) + return getFlag(this.flags_, ComputedValueFlags.isPendingUnobservation) } set isPendingUnobservation(newValue: boolean) { - this.flags_ = setFlag(this.flags_, ComputedValue.isPendingUnobservationMask_, newValue) + this.flags_ = setFlag(this.flags_, ComputedValueFlags.isPendingUnobservation, newValue) } get diffValue(): 0 | 1 { - return getFlag(this.flags_, ComputedValue.diffValueMask_) ? 1 : 0 + return getFlag(this.flags_, ComputedValueFlags.diffValue) ? 1 : 0 } set diffValue(newValue: 0 | 1) { this.flags_ = setFlag( this.flags_, - ComputedValue.diffValueMask_, + ComputedValueFlags.diffValue, newValue === 1 ? true : false ) } @@ -289,7 +280,7 @@ export class ComputedValue implements IObservable, IComputedValue, IDeriva computeValue_(track: boolean) { this.isComputing = true // don't allow state changes during computation - const prev = allowStateChangesStart(false) + const prev = __DEV__ ? allowStateChangesStart(false) : false let res: T | CaughtException if (track) { res = trackDerivedFunction(this, this.derivation, this.scope_) @@ -304,7 +295,9 @@ export class ComputedValue implements IObservable, IComputedValue, IDeriva } } } - allowStateChangesEnd(prev) + if (__DEV__) { + allowStateChangesEnd(prev) + } this.isComputing = false return res } @@ -313,46 +306,13 @@ export class ComputedValue implements IObservable, IComputedValue, IDeriva if (!this.keepAlive_) { clearObserving(this) this.value_ = undefined // don't hold on to computed value! - if (__DEV__ && this.isTracing_ !== TraceMode.NONE) { - console.log( - `[mobx.trace] Computed value '${this.name_}' was suspended and it will recompute on the next access.` - ) - } } } - observe_(listener: (change: IComputedDidChange) => void, fireImmediately?: boolean): Lambda { - let firstTime = true - let prevValue: T | undefined = undefined - return autorun(() => { - // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place - let newValue = this.get() - if (!firstTime || fireImmediately) { - const prevU = untrackedStart() - listener({ - observableKind: "computed", - debugObjectName: this.name_, - type: UPDATE, - object: this, - newValue, - oldValue: prevValue - }) - untrackedEnd(prevU) - } - firstTime = false - prevValue = newValue - }) - } - warnAboutUntrackedRead_() { if (!__DEV__) { return } - if (this.isTracing_ !== TraceMode.NONE) { - console.log( - `[mobx.trace] Computed value '${this.name_}' is being read outside a reactive context. Doing a full recompute.` - ) - } if ( typeof this.requiresReaction_ === "boolean" ? this.requiresReaction_ diff --git a/packages/mobx/src/core/derivation.ts b/packages/mobx/src/core/derivation.ts index b1c2d25048..4ba8c6eb47 100644 --- a/packages/mobx/src/core/derivation.ts +++ b/packages/mobx/src/core/derivation.ts @@ -8,7 +8,7 @@ import { removeObserver } from "../internal" -export enum IDerivationState_ { +export const enum IDerivationState_ { // before being run or (outside batch and not being observed) // at this point derivation is not holding any data about dependency tree NOT_TRACKING_ = -1, @@ -28,12 +28,6 @@ export enum IDerivationState_ { STALE_ = 2 } -export enum TraceMode { - NONE, - LOG, - BREAK -} - /** * A derivation is everything that can be derived from the state (all the atoms) in a pure manner. * See https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74 @@ -52,7 +46,6 @@ export interface IDerivation extends IDepTreeNode { */ unboundDepsCount_: number onBecomeStale_(): void - isTracing_: TraceMode /** * warn if the derivation has no dependencies after creation/update @@ -90,7 +83,7 @@ export function shouldCompute(derivation: IDerivation): boolean { return true case IDerivationState_.POSSIBLY_STALE_: { // state propagation can occur outside of action/reactive context #2195 - const prevAllowStateReads = allowStateReadsStart(true) + const prevAllowStateReads = __DEV__ ? allowStateReadsStart(true) : true const prevUntracked = untrackedStart() // no need for those computeds to be reported, they will be picked up in trackDerivedFunction. const obs = derivation.observing_, l = obs.length @@ -105,7 +98,9 @@ export function shouldCompute(derivation: IDerivation): boolean { } catch (e) { // we are not interested in the value *or* exception at this moment, but if there is one, notify all untrackedEnd(prevUntracked) - allowStateReadsEnd(prevAllowStateReads) + if (__DEV__) { + allowStateReadsEnd(prevAllowStateReads) + } return true } } @@ -114,14 +109,18 @@ export function shouldCompute(derivation: IDerivation): boolean { // invariantShouldCompute(derivation) if ((derivation.dependenciesState_ as any) === IDerivationState_.STALE_) { untrackedEnd(prevUntracked) - allowStateReadsEnd(prevAllowStateReads) + if (__DEV__) { + allowStateReadsEnd(prevAllowStateReads) + } return true } } } changeDependenciesStateTo0(derivation) untrackedEnd(prevUntracked) - allowStateReadsEnd(prevAllowStateReads) + if (__DEV__) { + allowStateReadsEnd(prevAllowStateReads) + } return false } } @@ -165,7 +164,7 @@ export function checkIfStateReadsAreAllowed(observable: IObservable) { * as observer of any of the accessed observables. */ export function trackDerivedFunction(derivation: IDerivation, f: () => T, context: any) { - const prevAllowStateReads = allowStateReadsStart(true) + const prevAllowStateReads = __DEV__ ? allowStateReadsStart(true) : true changeDependenciesStateTo0(derivation) // Preallocate array; will be trimmed by bindDependencies. derivation.newObserving_ = new Array( @@ -193,7 +192,9 @@ export function trackDerivedFunction(derivation: IDerivation, f: () => T, con bindDependencies(derivation) warnAboutDerivationWithoutDependencies(derivation) - allowStateReadsEnd(prevAllowStateReads) + if (__DEV__) { + allowStateReadsEnd(prevAllowStateReads) + } return result } diff --git a/packages/mobx/src/core/globalstate.ts b/packages/mobx/src/core/globalstate.ts index 35de9dfea8..a1c4de6475 100644 --- a/packages/mobx/src/core/globalstate.ts +++ b/packages/mobx/src/core/globalstate.ts @@ -1,6 +1,8 @@ -import { IDerivation, IObservable, Reaction, die, getGlobal } from "../internal" +import { IDerivation, IObservable, Reaction, die } from "../internal" import { ComputedValue } from "./computedvalue" +const MOBX_GLOBALS_VERSION = 7 + /** * These values will persist if global state is reset */ @@ -14,8 +16,7 @@ const persistentKeys: (keyof MobXGlobals)[] = [ "allowStateReads", "disableErrorBoundaries", "runId", - "UNCHANGED", - "useProxies" + "UNCHANGED" ] export type IUNCHANGED = {} @@ -29,7 +30,7 @@ export class MobXGlobals { * N.B: this version is unrelated to the package version of MobX, and is only the version of the * internal state storage of MobX, and can be the same across many different package versions */ - version = 6 + version = MOBX_GLOBALS_VERSION /** * globally unique token to signal unchanged @@ -138,12 +139,6 @@ export class MobXGlobals { */ suppressReactionErrors = false - useProxies = true - /* - * print warnings about code that would fail if proxies weren't available - */ - verifyProxies = false - /** * False forces all object's descriptors to * writable: true @@ -156,11 +151,11 @@ let canMergeGlobalState = true let isolateCalled = false export let globalState: MobXGlobals = (function () { - let global = getGlobal() + let global = globalThis as any if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) { canMergeGlobalState = false } - if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) { + if (global.__mobxGlobals && global.__mobxGlobals.version !== MOBX_GLOBALS_VERSION) { canMergeGlobalState = false } @@ -195,7 +190,7 @@ export function isolateGlobalState() { } isolateCalled = true if (canMergeGlobalState) { - let global = getGlobal() + let global = globalThis as any if (--global.__mobxInstanceCount === 0) { global.__mobxGlobals = undefined } diff --git a/packages/mobx/src/core/observable.ts b/packages/mobx/src/core/observable.ts index 5ddbc74c86..b79c639391 100644 --- a/packages/mobx/src/core/observable.ts +++ b/packages/mobx/src/core/observable.ts @@ -1,11 +1,8 @@ import { Lambda, ComputedValue, - IDependencyTree, IDerivation, IDerivationState_, - TraceMode, - getDependencyTree, globalState, runReactions, checkIfStateReadsAreAllowed @@ -192,9 +189,6 @@ export function propagateChanged(observable: IObservable) { // Ideally we use for..of here, but the downcompiled version is really slow... observable.observers_.forEach(d => { if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) { - if (__DEV__ && d.isTracing_ !== TraceMode.NONE) { - logTraceInfo(d, observable) - } d.onBecomeStale_() } d.dependenciesState_ = IDerivationState_.STALE_ @@ -213,9 +207,6 @@ export function propagateChangeConfirmed(observable: IObservable) { observable.observers_.forEach(d => { if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) { d.dependenciesState_ = IDerivationState_.STALE_ - if (__DEV__ && d.isTracing_ !== TraceMode.NONE) { - logTraceInfo(d, observable) - } } else if ( d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date. ) { @@ -241,42 +232,3 @@ export function propagateMaybeChanged(observable: IObservable) { }) // invariantLOS(observable, "maybe end"); } - -function logTraceInfo(derivation: IDerivation, observable: IObservable) { - console.log( - `[mobx.trace] '${derivation.name_}' is invalidated due to a change in: '${observable.name_}'` - ) - if (derivation.isTracing_ === TraceMode.BREAK) { - const lines = [] - printDepTree(getDependencyTree(derivation), lines, 1) - - // prettier-ignore - new Function( -`debugger; -/* -Tracing '${derivation.name_}' - -You are entering this break point because derivation '${derivation.name_}' is being traced and '${observable.name_}' is now forcing it to update. -Just follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update -The stackframe you are looking for is at least ~6-8 stack-frames up. - -${derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\//g, "/") : ""} - -The dependencies for this derivation are: - -${lines.join("\n")} -*/ - `)() - } -} - -function printDepTree(tree: IDependencyTree, lines: string[], depth: number) { - if (lines.length >= 1000) { - lines.push("(and many more)") - return - } - lines.push(`${"\t".repeat(depth - 1)}${tree.name}`) - if (tree.dependencies) { - tree.dependencies.forEach(child => printDepTree(child, lines, depth + 1)) - } -} diff --git a/packages/mobx/src/core/reaction.ts b/packages/mobx/src/core/reaction.ts index d0c85b2d21..21382c85b6 100644 --- a/packages/mobx/src/core/reaction.ts +++ b/packages/mobx/src/core/reaction.ts @@ -4,7 +4,6 @@ import { IDerivationState_, IObservable, Lambda, - TraceMode, clearObserving, createInstanceofPredicate, endBatch, @@ -17,7 +16,6 @@ import { spyReportEnd, spyReportStart, startBatch, - trace, trackDerivedFunction, GenericAbortSignal } from "../internal" @@ -45,7 +43,6 @@ import { getFlag, setFlag } from "../utils/utils" export interface IReactionPublic { dispose(): void - trace(enterBreakPoint?: boolean): void } export interface IReactionDisposer { @@ -53,6 +50,14 @@ export interface IReactionDisposer { [$mobx]: Reaction } +const enum ReactionFlags { + isDisposed = 0b00001, + isScheduled = 0b00010, + isTrackPending = 0b00100, + isRunning = 0b01000, + diffValue = 0b10000 +} + export class Reaction implements IDerivation, IReactionPublic { observing_: IObservable[] = [] // nodes we are looking at. Our value depends on these nodes newObserving_: IObservable[] = [] @@ -60,15 +65,8 @@ export class Reaction implements IDerivation, IReactionPublic { runId_ = 0 unboundDepsCount_ = 0 - private static readonly isDisposedMask_ = 0b00001 - private static readonly isScheduledMask_ = 0b00010 - private static readonly isTrackPendingMask_ = 0b00100 - private static readonly isRunningMask_ = 0b01000 - private static readonly diffValueMask_ = 0b10000 private flags_ = 0b00000 - isTracing_: TraceMode = TraceMode.NONE - constructor( public name_: string = __DEV__ ? "Reaction@" + getNextId() : "Reaction", private onInvalidate_: () => void, @@ -77,38 +75,38 @@ export class Reaction implements IDerivation, IReactionPublic { ) {} get isDisposed() { - return getFlag(this.flags_, Reaction.isDisposedMask_) + return getFlag(this.flags_, ReactionFlags.isDisposed) } set isDisposed(newValue: boolean) { - this.flags_ = setFlag(this.flags_, Reaction.isDisposedMask_, newValue) + this.flags_ = setFlag(this.flags_, ReactionFlags.isDisposed, newValue) } get isScheduled() { - return getFlag(this.flags_, Reaction.isScheduledMask_) + return getFlag(this.flags_, ReactionFlags.isScheduled) } set isScheduled(newValue: boolean) { - this.flags_ = setFlag(this.flags_, Reaction.isScheduledMask_, newValue) + this.flags_ = setFlag(this.flags_, ReactionFlags.isScheduled, newValue) } get isTrackPending() { - return getFlag(this.flags_, Reaction.isTrackPendingMask_) + return getFlag(this.flags_, ReactionFlags.isTrackPending) } set isTrackPending(newValue: boolean) { - this.flags_ = setFlag(this.flags_, Reaction.isTrackPendingMask_, newValue) + this.flags_ = setFlag(this.flags_, ReactionFlags.isTrackPending, newValue) } get isRunning() { - return getFlag(this.flags_, Reaction.isRunningMask_) + return getFlag(this.flags_, ReactionFlags.isRunning) } set isRunning(newValue: boolean) { - this.flags_ = setFlag(this.flags_, Reaction.isRunningMask_, newValue) + this.flags_ = setFlag(this.flags_, ReactionFlags.isRunning, newValue) } get diffValue(): 0 | 1 { - return getFlag(this.flags_, Reaction.diffValueMask_) ? 1 : 0 + return getFlag(this.flags_, ReactionFlags.diffValue) ? 1 : 0 } set diffValue(newValue: 0 | 1) { - this.flags_ = setFlag(this.flags_, Reaction.diffValueMask_, newValue === 1 ? true : false) + this.flags_ = setFlag(this.flags_, ReactionFlags.diffValue, newValue === 1 ? true : false) } onBecomeStale_() { @@ -159,7 +157,7 @@ export class Reaction implements IDerivation, IReactionPublic { // console.warn("Reaction already disposed") // Note: Not a warning / error in mobx 4 either } startBatch() - const notify = isSpyEnabled() + const notify = __DEV__ && isSpyEnabled() let startTime if (__DEV__ && notify) { startTime = Date.now() @@ -250,10 +248,6 @@ export class Reaction implements IDerivation, IReactionPublic { toString() { return `Reaction[${this.name_}]` } - - trace(enterBreakPoint: boolean = false) { - trace(this, enterBreakPoint) - } } export function onReactionError(handler: (error: any, derivation: IDerivation) => void): Lambda { diff --git a/packages/mobx/src/core/spy.ts b/packages/mobx/src/core/spy.ts index 2267c5cf0e..7344ffe010 100644 --- a/packages/mobx/src/core/spy.ts +++ b/packages/mobx/src/core/spy.ts @@ -2,7 +2,7 @@ import { IComputedDidChange } from "./computedvalue" import { IValueDidChange, IBoxDidChange } from "./../types/observablevalue" import { IObjectDidChange } from "./../types/observableobject" import { IArrayDidChange } from "./../types/observablearray" -import { Lambda, globalState, once, ISetDidChange, IMapDidChange } from "../internal" +import { Lambda, globalState, once, ISetDidChange, IMapDidChange, assign } from "../internal" export function isSpyEnabled() { return __DEV__ && !!globalState.spyListeners.length @@ -41,7 +41,7 @@ export function spyReportStart(event: PureSpyEvent) { if (!__DEV__) { return } - const change = { ...event, spyReportStart: true as const } + const change = assign({}, event, { spyReportStart: true as const }) spyReport(change) } @@ -52,7 +52,7 @@ export function spyReportEnd(change?: { time?: number }) { return } if (change) { - spyReport({ ...change, type: "report-end", spyReportEnd: true }) + spyReport(assign({}, change, { type: "report-end" as const, spyReportEnd: true as const })) } else { spyReport(END_EVENT) } diff --git a/packages/mobx/src/errors.ts b/packages/mobx/src/errors.ts index 9ec23a018c..d642d6389e 100644 --- a/packages/mobx/src/errors.ts +++ b/packages/mobx/src/errors.ts @@ -26,10 +26,6 @@ export const niceErrors = { 14: "Intercept handlers should return nothing or a change object", 15: `Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)`, 16: `Modification exception: the internal structure of an observable array was changed.`, - 17(index, length) { - return `[mobx.array] Index out of bounds, ${index} is larger than ${length}` - }, - 18: "mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js", 19(other) { return "Cannot initialize from classes that inherit from Map: " + other.constructor.name }, @@ -39,7 +35,6 @@ export const niceErrors = { 21(dataStructure) { return `Cannot convert to map from '${dataStructure}'` }, - 22: "mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js", 23: "It is not possible to get index atoms from arrays", 24(thing) { return "Cannot obtain administration from " + thing @@ -72,7 +67,25 @@ export const niceErrors = { return `[mobx] \`observableArray.${method}()\` mutates the array in-place, which is not allowed inside a derivation. Use \`array.slice().${method}()\` instead` }, 38: "'ownKeys()' can only be used on observable objects", - 39: "'defineProperty()' can only be used on observable objects" + 39: "'defineProperty()' can only be used on observable objects", + 40(length) { + return "Out of range: " + length + }, + 41(other) { + return "Cannot initialize set from " + other + }, + 42(key) { + return `Invalid index: '${key}'` + }, + 43(annotationType, name, kind) { + return ( + `Cannot apply '${annotationType}' to '${name}' (kind: ${kind}):` + + `\n'${annotationType}' can only be used on properties with a function value.` + ) + }, + 44(annotationType) { + return `'${annotationType}' can only be used with 'makeObservable'` + } } as const const errors: typeof niceErrors = __DEV__ ? niceErrors : ({} as any) @@ -84,10 +97,8 @@ export function die(error: string | keyof typeof errors, ...args: any[]): never throw new Error(`[MobX] ${e}`) } throw new Error( - typeof error === "number" - ? `[MobX] minified error nr: ${error}${ - args.length ? " " + args.map(String).join(",") : "" - }. See http://mobx.js.org/errors` - : `[MobX] ${error}` + `[MobX] minified error nr: ${error}${ + args.length ? " " + args.map(String).join(",") : "" + }. See mobx.js.org/errors` ) } diff --git a/packages/mobx/src/internal.ts b/packages/mobx/src/internal.ts index 48885069a4..0ab576def3 100644 --- a/packages/mobx/src/internal.ts +++ b/packages/mobx/src/internal.ts @@ -5,7 +5,6 @@ it will cause undefined errors (for example because super classes or local varia With this file that will still happen, but at least in this file we can magically reorder the imports with trial and error until the build succeeds again. */ -export * from "./utils/global" export { die } from "./errors" export * from "./utils/utils" export * from "./api/decorators" @@ -43,7 +42,6 @@ export * from "./api/isobservable" export * from "./api/object-api" export * from "./api/observe" export * from "./api/tojs" -export * from "./api/trace" export * from "./api/transaction" export * from "./api/when" export * from "./types/dynamicobject" @@ -54,7 +52,6 @@ export * from "./types/observablearray" export * from "./types/observablemap" export * from "./types/observableset" export * from "./types/observableobject" -export * from "./types/legacyobservablearray" export * from "./types/type-utils" export * from "./utils/eq" export * from "./utils/iterable" diff --git a/packages/mobx/src/mobx.ts b/packages/mobx/src/mobx.ts index cb366b52a9..d3cd161c5f 100644 --- a/packages/mobx/src/mobx.ts +++ b/packages/mobx/src/mobx.ts @@ -16,13 +16,14 @@ * */ import { die } from "./errors" -import { getGlobal } from "./utils/global" -;["Symbol", "Map", "Set"].forEach(m => { - let g = getGlobal() - if (typeof g[m] === "undefined") { - die(`MobX requires global '${m}' to be available or polyfilled`) - } -}) +if (__DEV__) { + const g = globalThis as any + ;["Symbol", "Map", "Set", "Proxy"].forEach(m => { + if (typeof g[m] === "undefined") { + die(`MobX requires global '${m}' to be available or polyfilled`) + } + }) +} import { spy, getDebugName, $mobx } from "./internal" @@ -38,7 +39,10 @@ export { spy, IComputedValue, IEqualsComparer, - comparer, + compareDefault, + compareIdentity, + compareStructural, + compareShallow, IEnhancer, IInterceptable, IInterceptor, @@ -72,9 +76,14 @@ export { IObservableSetInitialValues, transaction, observable, + observableRef, + observableShallow, + observableDeep, + observableStruct, IObservableFactory, CreateObservableOptions, computed, + computedStruct, IComputedFactory, isObservable, isObservableProp, @@ -90,6 +99,7 @@ export { when, IWhenOptions, action, + actionBound, isAction, runInAction, IActionFactory, @@ -106,13 +116,13 @@ export { onBecomeObserved, onBecomeUnobserved, flow, + flowBound, isFlow, flowResult, CancellablePromise, FlowCancellationError, isFlowCancellationError, toJS, - trace, IObserverTree, IDependencyTree, getDependencyTree, @@ -138,6 +148,7 @@ export { makeObservable, makeAutoObservable, autoAction as _autoAction, + autoActionBound as _autoActionBound, AnnotationsMap, AnnotationMapEntry, override @@ -145,7 +156,7 @@ export { // Devtools support declare const __MOBX_DEVTOOLS_GLOBAL_HOOK__: { injectMobx: (any) => void } -if (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === "object") { +if (__DEV__ && typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === "object") { // See: https://github.com/andykog/mobx-devtools/ __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({ spy, diff --git a/packages/mobx/src/types/actionannotation.ts b/packages/mobx/src/types/actionannotation.ts index ab9d354bb3..369cd1e8ed 100644 --- a/packages/mobx/src/types/actionannotation.ts +++ b/packages/mobx/src/types/actionannotation.ts @@ -16,8 +16,7 @@ export function createActionAnnotation(name: string, options?: object): Annotati annotationType_: name, options_: options, make_, - extend_, - decorate_20223_ + extend_ } } @@ -62,12 +61,12 @@ function extend_( return adm.defineProperty_(key, actionDescriptor, proxyTrap) } -function decorate_20223_(this: Annotation, mthd, context: DecoratorContext) { +export function decorateAction20223_(annotation: Annotation, mthd, context: DecoratorContext) { if (__DEV__) { assert20223DecoratorType(context, ["method", "field"]) } const { kind, name, addInitializer } = context - const ann = this + const ann = annotation const _createAction = m => createAction(ann.options_?.name ?? name!.toString(), m, ann.options_?.autoAction ?? false) @@ -91,7 +90,7 @@ function decorate_20223_(this: Annotation, mthd, context: DecoratorContext) { mthd = _createAction(mthd) } - if (this.options_?.bound) { + if (ann.options_?.bound) { addInitializer(function () { const self = this as any const bound = self[name].bind(self) @@ -103,10 +102,7 @@ function decorate_20223_(this: Annotation, mthd, context: DecoratorContext) { return mthd } - die( - `Cannot apply '${ann.annotationType_}' to '${String(name)}' (kind: ${kind}):` + - `\n'${ann.annotationType_}' can only be used on properties with a function value.` - ) + die(43, ann.annotationType_, String(name), kind) } function assertActionDescriptor( diff --git a/packages/mobx/src/types/autoannotation.ts b/packages/mobx/src/types/autoannotation.ts index 902e741213..27cd3df7f4 100644 --- a/packages/mobx/src/types/autoannotation.ts +++ b/packages/mobx/src/types/autoannotation.ts @@ -1,16 +1,18 @@ import { ObservableObjectAdministration, observable, + observableRef, Annotation, defineProperty, createAction, globalState, flow, + flowBound, computed, autoAction, + autoActionBound, isGenerator, MakeResult, - die, isAction } from "../internal" @@ -23,8 +25,7 @@ export function createAutoAnnotation(options?: object): Annotation { annotationType_: AUTO, options_: options, make_, - extend_, - decorate_20223_ + extend_ } } @@ -63,16 +64,16 @@ function make_( // function on proto -> autoAction/flow if (source !== adm.target_ && typeof descriptor.value === "function") { if (isGenerator(descriptor.value)) { - const flowAnnotation = this.options_?.autoBind ? flow.bound : flow + const flowAnnotation = this.options_?.autoBind ? flowBound : flow return flowAnnotation.make_(adm, key, descriptor, source) } - const actionAnnotation = this.options_?.autoBind ? autoAction.bound : autoAction + const actionAnnotation = this.options_?.autoBind ? autoActionBound : autoAction return actionAnnotation.make_(adm, key, descriptor, source) } // other -> observable // Copy props from proto as well, see test: // "decorate should work with Object.create" - let observableAnnotation = this.options_?.deep === false ? observable.ref : observable + let observableAnnotation = this.options_?.deep === false ? observableRef : observable // if function respect autoBind option if (typeof descriptor.value === "function" && this.options_?.autoBind) { descriptor.value = descriptor.value.bind(adm.proxy_ ?? adm.target_) @@ -107,10 +108,6 @@ function extend_( if (typeof descriptor.value === "function" && this.options_?.autoBind) { descriptor.value = descriptor.value.bind(adm.proxy_ ?? adm.target_) } - let observableAnnotation = this.options_?.deep === false ? observable.ref : observable + let observableAnnotation = this.options_?.deep === false ? observableRef : observable return observableAnnotation.extend_(adm, key, descriptor, proxyTrap) } - -function decorate_20223_(this: Annotation, desc, context: ClassGetterDecoratorContext) { - die(`'${this.annotationType_}' cannot be used as a decorator`) -} diff --git a/packages/mobx/src/types/computedannotation.ts b/packages/mobx/src/types/computedannotation.ts index 11dd4e90ab..03fb682dd3 100644 --- a/packages/mobx/src/types/computedannotation.ts +++ b/packages/mobx/src/types/computedannotation.ts @@ -6,7 +6,8 @@ import { assert20223DecoratorType, $mobx, asObservableObject, - ComputedValue + ComputedValue, + assign } from "../internal" export function createComputedAnnotation(name: string, options?: object): Annotation { @@ -14,8 +15,7 @@ export function createComputedAnnotation(name: string, options?: object): Annota annotationType_: name, options_: options, make_, - extend_, - decorate_20223_ + extend_ } } @@ -38,20 +38,23 @@ function extend_( assertComputedDescriptor(adm, this, key, descriptor) return adm.defineComputedProperty_( key, - { - ...this.options_, + assign({}, this.options_, { get: descriptor.get, set: descriptor.set - }, + }), proxyTrap ) } -function decorate_20223_(this: Annotation, get, context: ClassGetterDecoratorContext) { +export function decorateComputed20223_( + annotation: Annotation, + get, + context: ClassGetterDecoratorContext +) { if (__DEV__) { assert20223DecoratorType(context, ["getter"]) } - const ann = this + const ann = annotation const { name: key, addInitializer } = context let computedValues: WeakMap> | undefined @@ -59,11 +62,10 @@ function decorate_20223_(this: Annotation, get, context: ClassGetterDecoratorCon // ComputedValues for getters that are never read on a given instance. // The factory is materialised by ObservableObjectAdministration on demand. function createComputedValue(target: object, adm: ObservableObjectAdministration) { - const options = { - ...ann.options_, + const options = assign({}, ann.options_, { get, context: target - } + }) options.name ||= __DEV__ ? `${adm.name_}.${key.toString()}` : `ObservableObject.${key.toString()}` diff --git a/packages/mobx/src/types/decorator_fills.ts b/packages/mobx/src/types/decorator_fills.ts index 084f023376..ad3aeab617 100644 --- a/packages/mobx/src/types/decorator_fills.ts +++ b/packages/mobx/src/types/decorator_fills.ts @@ -25,6 +25,10 @@ export type ClassFieldDecorator any = context: ClassFieldDecoratorContext ) => Value | void +export type ClassMethodAndFieldDecorator = ClassMethodDecorator & ClassFieldDecorator + +export type ClassAccessorAndFieldDecorator = ClassAccessorDecorator & ClassFieldDecorator + export type Decorator = | ClassAccessorDecorator | ClassGetterDecorator diff --git a/packages/mobx/src/types/dynamicobject.ts b/packages/mobx/src/types/dynamicobject.ts index 71598879b4..afcc8bb903 100644 --- a/packages/mobx/src/types/dynamicobject.ts +++ b/packages/mobx/src/types/dynamicobject.ts @@ -2,11 +2,8 @@ import { $mobx, IIsObservableObject, ObservableObjectAdministration, - warnAboutProxyRequirement, - assertProxies, die, isStringish, - globalState, CreateObservableOptions, asObservableObject } from "../internal" @@ -19,11 +16,6 @@ function getAdm(target): ObservableObjectAdministration { // and skip either the internal values map, or the base object with its property descriptors! const objectProxyTraps: ProxyHandler = { has(target: IIsObservableObject, name: PropertyKey): boolean { - if (__DEV__ && globalState.trackingDerivation) { - warnAboutProxyRequirement( - "detect new properties using the 'in' operator. Use 'has' from 'mobx' instead." - ) - } return getAdm(target).has_(name) }, get(target: IIsObservableObject, name: PropertyKey): any { @@ -33,20 +25,10 @@ const objectProxyTraps: ProxyHandler = { if (!isStringish(name)) { return false } - if (__DEV__ && !getAdm(target).values_.has(name)) { - warnAboutProxyRequirement( - "add a new observable property through direct assignment. Use 'set' from 'mobx' instead." - ) - } // null (intercepted) -> true (success) return getAdm(target).set_(name, value, true) ?? true }, deleteProperty(target: IIsObservableObject, name: PropertyKey): boolean { - if (__DEV__) { - warnAboutProxyRequirement( - "delete properties from an observable object. Use 'remove' from 'mobx' instead." - ) - } if (!isStringish(name)) { return false } @@ -58,20 +40,10 @@ const objectProxyTraps: ProxyHandler = { name: PropertyKey, descriptor: PropertyDescriptor ): boolean { - if (__DEV__) { - warnAboutProxyRequirement( - "define property on an observable object. Use 'defineProperty' from 'mobx' instead." - ) - } // null (intercepted) -> true (success) return getAdm(target).defineProperty_(name, descriptor) ?? true }, ownKeys(target: IIsObservableObject): ArrayLike { - if (__DEV__ && globalState.trackingDerivation) { - warnAboutProxyRequirement( - "iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead." - ) - } return getAdm(target).ownKeys_() }, preventExtensions(target) { @@ -83,7 +55,6 @@ export function asDynamicObservableObject( target: any, options?: CreateObservableOptions ): IIsObservableObject { - assertProxies() target = asObservableObject(target, options) return (target[$mobx].proxy_ ??= new Proxy(target, objectProxyTraps)) } diff --git a/packages/mobx/src/types/flowannotation.ts b/packages/mobx/src/types/flowannotation.ts index 530b95942c..4e272703a3 100644 --- a/packages/mobx/src/types/flowannotation.ts +++ b/packages/mobx/src/types/flowannotation.ts @@ -17,8 +17,7 @@ export function createFlowAnnotation(name: string, options?: object): Annotation annotationType_: name, options_: options, make_, - extend_, - decorate_20223_ + extend_ } } @@ -63,7 +62,11 @@ function extend_( return adm.defineProperty_(key, flowDescriptor, proxyTrap) } -function decorate_20223_(this: Annotation, mthd, context: ClassMethodDecoratorContext) { +export function decorateFlow20223_( + annotation: Annotation, + mthd, + context: ClassMethodDecoratorContext +) { if (__DEV__) { assert20223DecoratorType(context, ["method"]) } @@ -73,7 +76,7 @@ function decorate_20223_(this: Annotation, mthd, context: ClassMethodDecoratorCo mthd = flow(mthd) } - if (this.options_?.bound) { + if (annotation.options_?.bound) { addInitializer(function () { const self = this as any const bound = self[name].bind(self) diff --git a/packages/mobx/src/types/legacyobservablearray.ts b/packages/mobx/src/types/legacyobservablearray.ts deleted file mode 100644 index 5ca88d07a1..0000000000 --- a/packages/mobx/src/types/legacyobservablearray.ts +++ /dev/null @@ -1,155 +0,0 @@ -import { - getNextId, - addHiddenFinalProp, - makeIterable, - addHiddenProp, - ObservableArrayAdministration, - $mobx, - arrayExtensions, - IEnhancer, - isObservableArray, - IObservableArray, - defineProperty, - initObservable -} from "../internal" - -// Bug in safari 9.* (or iOS 9 safari mobile). See #364 -const ENTRY_0 = createArrayEntryDescriptor(0) - -const safariPrototypeSetterInheritanceBug = (() => { - let v = false - const p = {} - Object.defineProperty(p, "0", { - set: () => { - v = true - } - }) - Object.create(p)["0"] = 1 - return v === false -})() - -/** - * This array buffer contains two lists of properties, so that all arrays - * can recycle their property definitions, which significantly improves performance of creating - * properties on the fly. - */ -let OBSERVABLE_ARRAY_BUFFER_SIZE = 0 - -// Typescript workaround to make sure ObservableArray extends Array -class StubArray {} -function inherit(ctor, proto) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(ctor.prototype, proto) - } else if (ctor.prototype.__proto__ !== undefined) { - ctor.prototype.__proto__ = proto - } else { - ctor.prototype = proto - } -} -inherit(StubArray, Array.prototype) - -// Weex proto freeze protection was here, -// but it is unclear why the hack is need as MobX never changed the prototype -// anyway, so removed it in V6 - -export class LegacyObservableArray extends StubArray { - constructor( - initialValues: T[] | undefined, - enhancer: IEnhancer, - name = __DEV__ ? "ObservableArray@" + getNextId() : "ObservableArray", - owned = false - ) { - super() - initObservable(() => { - const adm = new ObservableArrayAdministration(name, enhancer, owned, true) - adm.proxy_ = this as any - addHiddenFinalProp(this, $mobx, adm) - - if (initialValues && initialValues.length) { - // @ts-ignore - this.spliceWithArray(0, 0, initialValues) - } - - if (safariPrototypeSetterInheritanceBug) { - // Seems that Safari won't use numeric prototype setter until any * numeric property is - // defined on the instance. After that it works fine, even if this property is deleted. - Object.defineProperty(this, "0", ENTRY_0) - } - }) - } - - concat(...arrays: T[][]): T[] { - ;(this[$mobx] as ObservableArrayAdministration).atom_.reportObserved() - return Array.prototype.concat.apply( - (this as any).slice(), - //@ts-ignore - arrays.map(a => (isObservableArray(a) ? a.slice() : a)) - ) - } - - get length(): number { - return (this[$mobx] as ObservableArrayAdministration).getArrayLength_() - } - - set length(newLength: number) { - ;(this[$mobx] as ObservableArrayAdministration).setArrayLength_(newLength) - } - - get [Symbol.toStringTag]() { - return "Array" - } - - [Symbol.iterator]() { - const self = this - let nextIndex = 0 - return makeIterable({ - next() { - return nextIndex < self.length - ? { value: self[nextIndex++], done: false } - : { done: true, value: undefined } - } - }) - } -} - -Object.entries(arrayExtensions).forEach(([prop, fn]) => { - if (prop !== "concat") { - addHiddenProp(LegacyObservableArray.prototype, prop, fn) - } -}) - -function createArrayEntryDescriptor(index: number) { - return { - enumerable: false, - configurable: true, - get: function () { - return this[$mobx].get_(index) - }, - set: function (value) { - this[$mobx].set_(index, value) - } - } -} - -function createArrayBufferItem(index: number) { - defineProperty(LegacyObservableArray.prototype, "" + index, createArrayEntryDescriptor(index)) -} - -export function reserveArrayBuffer(max: number) { - if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) { - for (let index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) { - createArrayBufferItem(index) - } - OBSERVABLE_ARRAY_BUFFER_SIZE = max - } -} - -reserveArrayBuffer(1000) - -export function createLegacyArray( - initialValues: T[] | undefined, - enhancer: IEnhancer, - name?: string -): IObservableArray { - return new LegacyObservableArray(initialValues, enhancer, name) as any -} diff --git a/packages/mobx/src/types/observableannotation.ts b/packages/mobx/src/types/observableannotation.ts index b7ec2c1bfb..4c688d5f38 100644 --- a/packages/mobx/src/types/observableannotation.ts +++ b/packages/mobx/src/types/observableannotation.ts @@ -15,8 +15,7 @@ export function createObservableAnnotation(name: string, options?: object): Anno annotationType_: name, options_: options, make_, - extend_, - decorate_20223_ + extend_ } } @@ -40,13 +39,13 @@ function extend_( return adm.defineObservableProperty_( key, descriptor.value, - this.options_?.enhancer ?? deepEnhancer, + this.options_?.enhancer_ ?? deepEnhancer, proxyTrap ) } -function decorate_20223_( - this: Annotation, +export function decorateObservable20223_( + annotation: Annotation, desc, context: ClassAccessorDecoratorContext | ClassFieldDecoratorContext ) { @@ -61,7 +60,7 @@ function decorate_20223_( assert20223DecoratorType(context, ["accessor"]) } - const ann = this + const ann = annotation const { kind, name } = context if (kind !== "accessor") { @@ -78,7 +77,7 @@ function decorate_20223_( () => new ObservableValue( value, - ann.options_?.enhancer ?? deepEnhancer, + ann.options_?.enhancer_ ?? deepEnhancer, __DEV__ ? `${adm.name_}.${name.toString()}` : `ObservableObject.${name.toString()}`, diff --git a/packages/mobx/src/types/observablearray.ts b/packages/mobx/src/types/observablearray.ts index 18f45a1f99..c8ba985b7f 100644 --- a/packages/mobx/src/types/observablearray.ts +++ b/packages/mobx/src/types/observablearray.ts @@ -5,9 +5,7 @@ import { IAtom, IEnhancer, IInterceptable, - IInterceptor, IListenable, - Lambda, addHiddenFinalProp, checkIfStateModificationsAreAllowed, createInstanceofPredicate, @@ -18,12 +16,8 @@ import { isObject, isSpyEnabled, notifyListeners, - registerInterceptor, - registerListener, spyReportEnd, spyReportStart, - assertProxies, - reserveArrayBuffer, hasProp, die, globalState, @@ -130,8 +124,7 @@ export class ObservableArrayAdministration constructor( name = __DEV__ ? "ObservableArray@" + getNextId() : "ObservableArray", enhancer: IEnhancer, - public owned_: boolean, - public legacyMode_: boolean + public owned_: boolean ) { this.atom_ = new Atom(name) this.enhancer_ = (newV, oldV) => @@ -152,30 +145,6 @@ export class ObservableArrayAdministration return values } - intercept_(handler: IInterceptor | IArrayWillSplice>): Lambda { - return registerInterceptor | IArrayWillSplice>(this, handler) - } - - observe_( - listener: (changeData: IArrayDidChange) => void, - fireImmediately = false - ): Lambda { - if (fireImmediately) { - listener(>{ - observableKind: "array", - object: this.proxy_ as any, - debugObjectName: this.atom_.name_, - type: "splice", - index: 0, - added: this.values_.slice(), - addedCount: this.values_.length, - removed: [], - removedCount: 0 - }) - } - return registerListener(this, listener) - } - getArrayLength_(): number { this.atom_.reportObserved() return this.values_.length @@ -183,16 +152,13 @@ export class ObservableArrayAdministration setArrayLength_(newLength: number) { if (typeof newLength !== "number" || isNaN(newLength) || newLength < 0) { - die("Out of range: " + newLength) + die(40, newLength) } let currentLength = this.values_.length if (newLength === currentLength) { return } else if (newLength > currentLength) { - const newItems = new Array(newLength - currentLength) - for (let i = 0; i < newLength - currentLength; i++) { - newItems[i] = undefined - } // No Array.fill everywhere... + const newItems = Array.from({ length: newLength - currentLength }) this.spliceWithArray_(currentLength, 0, newItems) } else { this.spliceWithArray_(newLength, currentLength - newLength) @@ -204,9 +170,6 @@ export class ObservableArrayAdministration die(16) } this.lastKnownLength_ += delta - if (this.legacyMode_ && delta > 0) { - reserveArrayBuffer(oldLength + delta + 1) - } } spliceWithArray_(index: number, deleteCount?: number, newItems?: any[]): any[] { @@ -250,7 +213,7 @@ export class ObservableArrayAdministration newItems = newItems.length === 0 ? newItems : newItems.map(v => this.enhancer_(v, undefined)) - if (this.legacyMode_ || __DEV__) { + if (__DEV__) { const lengthDelta = newItems.length - deleteCount this.updateArrayLength_(length, lengthDelta) // checks if internal array wasn't modified } @@ -283,7 +246,7 @@ export class ObservableArrayAdministration } notifyArrayChildUpdate_(index: number, newValue: any, oldValue: any) { - const notifySpy = !this.owned_ && isSpyEnabled() + const notifySpy = __DEV__ && !this.owned_ && isSpyEnabled() const notify = hasListeners(this) const change: IArrayDidChange | null = notify || notifySpy @@ -313,7 +276,7 @@ export class ObservableArrayAdministration } notifyArraySplice_(index: number, added: any[], removed: any[]) { - const notifySpy = !this.owned_ && isSpyEnabled() + const notifySpy = __DEV__ && !this.owned_ && isSpyEnabled() const notify = hasListeners(this) const change: IArraySplice | null = notify || notifySpy @@ -344,24 +307,12 @@ export class ObservableArrayAdministration } get_(index: number): any | undefined { - if (this.legacyMode_ && index >= this.values_.length) { - console.warn( - __DEV__ - ? `[mobx.array] Attempt to read an array index (${index}) that is out of bounds (${this.values_.length}). Please check length first. Out of bound indices will not be tracked by MobX` - : `[mobx] Out of bounds read: ${index}` - ) - return undefined - } this.atom_.reportObserved() return this.dehanceValue_(this.values_[index]) } set_(index: number, newValue: any) { const values = this.values_ - if (this.legacyMode_ && index > values.length) { - // out of bounds - die(17, index, values.length) - } if (index < values.length) { // update at index in range checkIfStateModificationsAreAllowed(this.atom_) @@ -388,10 +339,7 @@ export class ObservableArrayAdministration // For out of bound index, we don't create an actual sparse array, // but rather fill the holes with undefined (same as setArrayLength_). // This could be considered a bug. - const newItems = new Array(index + 1 - values.length) - for (let i = 0; i < newItems.length - 1; i++) { - newItems[i] = undefined - } // No Array.fill everywhere... + const newItems = Array.from({ length: index + 1 - values.length }) newItems[newItems.length - 1] = newValue this.spliceWithArray_(values.length, 0, newItems) } @@ -404,9 +352,8 @@ export function createObservableArray( name = __DEV__ ? "ObservableArray@" + getNextId() : "ObservableArray", owned = false ): IObservableArray { - assertProxies() return initObservable(() => { - const adm = new ObservableArrayAdministration(name, enhancer, owned, false) + const adm = new ObservableArrayAdministration(name, enhancer, owned) addHiddenFinalProp(adm.values_, $mobx, adm) const proxy = new Proxy(adm.values_, arrayTraps) as any adm.proxy_ = proxy diff --git a/packages/mobx/src/types/observablemap.ts b/packages/mobx/src/types/observablemap.ts index 15061103a1..068ced1003 100644 --- a/packages/mobx/src/types/observablemap.ts +++ b/packages/mobx/src/types/observablemap.ts @@ -2,9 +2,7 @@ import { $mobx, IEnhancer, IInterceptable, - IInterceptor, IListenable, - Lambda, ObservableValue, checkIfStateModificationsAreAllowed, createAtom, @@ -22,17 +20,13 @@ import { isSpyEnabled, notifyListeners, referenceEnhancer, - registerInterceptor, - registerListener, spyReportEnd, spyReportStart, stringifyKey, transaction, untracked, - onBecomeUnobserved, globalState, die, - isFunction, UPDATE, IAtom, PureSpyEvent, @@ -106,9 +100,6 @@ export class ObservableMap public enhancer_: IEnhancer = deepEnhancer, public name_ = __DEV__ ? "ObservableMap@" + getNextId() : "ObservableMap" ) { - if (!isFunction(Map)) { - die(18) - } initObservable(() => { this.keysAtom_ = createAtom(__DEV__ ? `${this.name_}.keys()` : "ObservableMap.keys()") this.data_ = new Map() @@ -137,7 +128,7 @@ export class ObservableMap false )) this.hasMap_.set(key, newEntry) - onBecomeUnobserved(newEntry, () => this.hasMap_.delete(key)) + newEntry.onBUOL = new Set([() => this.hasMap_.delete(key)]) } return entry.get() @@ -178,7 +169,7 @@ export class ObservableMap } } if (this.has_(key)) { - const notifySpy = isSpyEnabled() + const notifySpy = __DEV__ && isSpyEnabled() const notify = hasListeners(this) const change: IMapDidChange | null = notify || notifySpy @@ -217,7 +208,7 @@ export class ObservableMap const observable = this.data_.get(key)! newValue = (observable as any).prepareNewValue_(newValue) as V if (newValue !== globalState.UNCHANGED) { - const notifySpy = isSpyEnabled() + const notifySpy = __DEV__ && isSpyEnabled() const notify = hasListeners(this) const change: IMapDidChange | null = notify || notifySpy @@ -258,7 +249,7 @@ export class ObservableMap this.hasMap_.get(key)?.setNewValue_(true) this.keysAtom_.reportChanged() }) - const notifySpy = isSpyEnabled() + const notifySpy = __DEV__ && isSpyEnabled() const notify = hasListeners(this) const change: IMapDidChange | null = notify || notifySpy @@ -481,22 +472,6 @@ export class ObservableMap get [Symbol.toStringTag]() { return "Map" } - - /** - * Observes this object. Triggers for the events 'add', 'update' and 'delete'. - * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe - * for callback details - */ - observe_(listener: (changes: IMapDidChange) => void, fireImmediately?: boolean): Lambda { - if (__DEV__ && fireImmediately === true) { - die("`observe` doesn't support fireImmediately=true in combination with maps.") - } - return registerListener(this, listener) - } - - intercept_(handler: IInterceptor>): Lambda { - return registerInterceptor(this, handler) - } } // eslint-disable-next-line diff --git a/packages/mobx/src/types/observableobject.ts b/packages/mobx/src/types/observableobject.ts index 6e7e600279..455d360a1a 100644 --- a/packages/mobx/src/types/observableobject.ts +++ b/packages/mobx/src/types/observableobject.ts @@ -12,7 +12,6 @@ import { IEnhancer, IInterceptable, IListenable, - Lambda, ObservableValue, addHiddenProp, createInstanceofPredicate, @@ -26,8 +25,6 @@ import { isSpyEnabled, notifyListeners, referenceEnhancer, - registerInterceptor, - registerListener, spyReportEnd, spyReportStart, startBatch, @@ -38,16 +35,14 @@ import { die, hasProp, getDescriptor, - storedAnnotationsSymbol, ownKeys, isOverride, defineProperty, autoAnnotation, getAdministration, getDebugName, - objectPrototype, - MakeResult, - checkIfStateModificationsAreAllowed + checkIfStateModificationsAreAllowed, + assign } from "../internal" const descriptorCache = Object.create(null) @@ -274,47 +269,6 @@ export class ObservableObjectAdministration return entry.get() } - /** - * @param {PropertyKey} key - * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop - */ - make_(key: PropertyKey, annotation: Annotation | boolean): void { - if (annotation === true) { - annotation = this.defaultAnnotation_ - } - if (annotation === false) { - return - } - assertAnnotable(this, annotation, key) - if (!(key in this.target_)) { - // Throw on missing key, except for decorators: - // Decorator annotations are collected from whole prototype chain. - // When called from super() some props may not exist yet. - // However we don't have to worry about missing prop, - // because the decorator must have been applied to something. - if (this.target_[storedAnnotationsSymbol]?.[key]) { - return // will be annotated by subclass constructor - } else { - die(1, annotation.annotationType_, `${this.name_}.${key.toString()}`) - } - } - let source = this.target_ - while (source && source !== objectPrototype) { - const descriptor = getDescriptor(source, key) - if (descriptor) { - const outcome = annotation.make_(this, key, descriptor, source) - if (outcome === MakeResult.Cancel) { - return - } - if (outcome === MakeResult.Break) { - break - } - } - source = Object.getPrototypeOf(source) - } - recordAnnotationApplied(this, annotation, key) - } - /** * @param {PropertyKey} key * @param {PropertyDescriptor} descriptor @@ -377,10 +331,9 @@ export class ObservableObjectAdministration } const { newValue } = change as any if (descriptor.value !== newValue) { - descriptor = { - ...descriptor, + descriptor = assign({}, descriptor, { value: newValue - } + }) } } @@ -618,22 +571,6 @@ export class ObservableObjectAdministration return true } - /** - * Observes this object. Triggers for the events 'add', 'update' and 'delete'. - * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe - * for callback details - */ - observe_(callback: (changes: IObjectDidChange) => void, fireImmediately?: boolean): Lambda { - if (__DEV__ && fireImmediately === true) { - die("`observe` doesn't support the fire immediately property for observable objects.") - } - return registerListener(this, callback) - } - - intercept_(handler): Lambda { - return registerInterceptor(this, handler) - } - notifyPropertyAddition_(key: PropertyKey, value: any) { const notify = hasListeners(this) const notifySpy = __DEV__ && isSpyEnabled() @@ -765,11 +702,9 @@ export function recordAnnotationApplied( if (__DEV__) { adm.appliedAnnotations_![key] = annotation } - // Remove applied decorator annotation so we don't try to apply it again in subclass constructor - delete adm.target_[storedAnnotationsSymbol]?.[key] } -function assertAnnotable( +export function assertAnnotable( adm: ObservableObjectAdministration, annotation: Annotation, key: PropertyKey diff --git a/packages/mobx/src/types/observableset.ts b/packages/mobx/src/types/observableset.ts index ba9cdc2f43..ca088463b8 100644 --- a/packages/mobx/src/types/observableset.ts +++ b/packages/mobx/src/types/observableset.ts @@ -7,8 +7,6 @@ import { isSpyEnabled, hasListeners, IListenable, - registerListener, - Lambda, spyReportStart, notifyListeners, spyReportEnd, @@ -17,8 +15,6 @@ import { hasInterceptors, interceptChange, IInterceptable, - IInterceptor, - registerInterceptor, checkIfStateModificationsAreAllowed, untracked, transaction, @@ -27,7 +23,6 @@ import { DELETE, ADD, die, - isFunction, initObservable } from "../internal" @@ -55,16 +50,14 @@ export type ISetWillDeleteChange = { type: "delete" object: ObservableSet oldValue: T -}; +} export type ISetWillAddChange = { type: "add" object: ObservableSet newValue: T -}; +} -export type ISetWillChange = - | ISetWillDeleteChange - | ISetWillAddChange +export type ISetWillChange = ISetWillDeleteChange | ISetWillAddChange export class ObservableSet implements Set, IInterceptable, IListenable { [$mobx] = ObservableSetMarker @@ -80,9 +73,6 @@ export class ObservableSet implements Set, IInterceptable = deepEnhancer, public name_ = __DEV__ ? "ObservableSet@" + getNextId() : "ObservableSet" ) { - if (!isFunction(Set)) { - die(22) - } this.enhancer_ = (newV, oldV) => enhancer(newV, oldV, name_) initObservable(() => { this.atom_ = createAtom(this.name_) @@ -133,8 +123,7 @@ export class ObservableSet implements Set, IInterceptable { @@ -304,24 +293,12 @@ export class ObservableSet implements Set, IInterceptable this.add(value)) } else if (other !== null && other !== undefined) { - die("Cannot initialize set from " + other) + die(41, other) } }) return this } - observe_(listener: (changes: ISetDidChange) => void, fireImmediately?: boolean): Lambda { - // ... 'fireImmediately' could also be true? - if (__DEV__ && fireImmediately === true) { - die("`observe` doesn't support fireImmediately=true in combination with sets.") - } - return registerListener(this, listener) - } - - intercept_(handler: IInterceptor>): Lambda { - return registerInterceptor(this, handler) - } - toJSON(): T[] { return Array.from(this) } diff --git a/packages/mobx/src/types/observablevalue.ts b/packages/mobx/src/types/observablevalue.ts index b46f75b66d..edb274c976 100644 --- a/packages/mobx/src/types/observablevalue.ts +++ b/packages/mobx/src/types/observablevalue.ts @@ -3,11 +3,9 @@ import { IEnhancer, IInterceptable, IEqualsComparer, - IInterceptor, IListenable, - Lambda, checkIfStateModificationsAreAllowed, - comparer, + compareDefault, createInstanceofPredicate, getNextId, hasInterceptors, @@ -15,8 +13,6 @@ import { interceptChange, isSpyEnabled, notifyListeners, - registerInterceptor, - registerListener, spyReport, spyReportEnd, spyReportStart, @@ -69,13 +65,13 @@ export class ObservableValue constructor( value: T, - public enhancer: IEnhancer, + public enhancer_: IEnhancer, public name_ = __DEV__ ? "ObservableValue@" + getNextId() : "ObservableValue", notifySpy = true, - private equals: IEqualsComparer = comparer.default + private equals_: IEqualsComparer = compareDefault ) { super(name_) - this.value_ = enhancer(value, undefined, name_) + this.value_ = enhancer_(value, undefined, name_) if (__DEV__ && notifySpy && isSpyEnabled()) { // only notify spy if this is a stand-alone observable spyReport({ @@ -99,7 +95,7 @@ export class ObservableValue const oldValue = this.value_ newValue = this.prepareNewValue_(newValue) as any if (newValue !== globalState.UNCHANGED) { - const notifySpy = isSpyEnabled() + const notifySpy = __DEV__ && isSpyEnabled() if (__DEV__ && notifySpy) { spyReportStart({ type: UPDATE, @@ -131,8 +127,8 @@ export class ObservableValue newValue = change.newValue } // apply modifier - newValue = this.enhancer(newValue, this.value_, this.name_) - return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue + newValue = this.enhancer_(newValue, this.value_, this.name_) + return this.equals_(this.value_, newValue) ? globalState.UNCHANGED : newValue } setNewValue_(newValue: T) { @@ -154,24 +150,6 @@ export class ObservableValue return this.dehanceValue(this.value_) } - intercept_(handler: IInterceptor>): Lambda { - return registerInterceptor(this, handler) - } - - observe_(listener: (change: IValueDidChange) => void, fireImmediately?: boolean): Lambda { - if (fireImmediately) { - listener({ - observableKind: "value", - debugObjectName: this.name_, - object: this, - type: UPDATE, - newValue: this.value_, - oldValue: undefined - }) - } - return registerListener(this, listener) - } - raw() { // used by MST ot get undehanced value return this.value_ diff --git a/packages/mobx/src/types/overrideannotation.ts b/packages/mobx/src/types/overrideannotation.ts index f688c99630..2eeee9d64d 100644 --- a/packages/mobx/src/types/overrideannotation.ts +++ b/packages/mobx/src/types/overrideannotation.ts @@ -1,23 +1,12 @@ -import { - die, - Annotation, - hasProp, - createDecoratorAnnotation, - ObservableObjectAdministration, - MakeResult -} from "../internal" - -import type { ClassMethodDecorator } from "./decorator_fills" +import { die, Annotation, hasProp, ObservableObjectAdministration, MakeResult } from "../internal" const OVERRIDE = "override" -export const override: Annotation & PropertyDecorator & ClassMethodDecorator = - createDecoratorAnnotation({ - annotationType_: OVERRIDE, - make_, - extend_, - decorate_20223_ - }) +export const override: Annotation = { + annotationType_: OVERRIDE, + make_, + extend_ +} export function isOverride(annotation: Annotation): boolean { return annotation.annotationType_ === OVERRIDE @@ -42,9 +31,5 @@ function make_(this: Annotation, adm: ObservableObjectAdministration, key): Make } function extend_(this: Annotation, adm, key, descriptor, proxyTrap): boolean { - die(`'${this.annotationType_}' can only be used with 'makeObservable'`) -} - -function decorate_20223_(this: Annotation, desc, context: DecoratorContext) { - console.warn(`'${this.annotationType_}' cannot be used with decorators - this is a no-op`) + die(44, this.annotationType_) } diff --git a/packages/mobx/src/types/type-utils.ts b/packages/mobx/src/types/type-utils.ts index c48ddf26d1..dc3c29de8c 100644 --- a/packages/mobx/src/types/type-utils.ts +++ b/packages/mobx/src/types/type-utils.ts @@ -111,13 +111,15 @@ export function getDebugName(thing: any, property?: string): string { */ export function initObservable(cb: () => T): T { const derivation = untrackedStart() - const allowStateChanges = allowStateChangesStart(true) + const allowStateChanges = __DEV__ ? allowStateChangesStart(true) : true startBatch() try { return cb() } finally { endBatch() - allowStateChangesEnd(allowStateChanges) + if (__DEV__) { + allowStateChangesEnd(allowStateChanges) + } untrackedEnd(derivation) } } diff --git a/packages/mobx/src/utils/comparer.ts b/packages/mobx/src/utils/comparer.ts index 7f560a650b..5a33a5b63f 100644 --- a/packages/mobx/src/utils/comparer.ts +++ b/packages/mobx/src/utils/comparer.ts @@ -4,29 +4,16 @@ export interface IEqualsComparer { (a: T, b: T): boolean } -function identityComparer(a: any, b: any): boolean { +export function compareIdentity(a: any, b: any): boolean { return a === b } -function structuralComparer(a: any, b: any): boolean { +export function compareStructural(a: any, b: any): boolean { return deepEqual(a, b) } -function shallowComparer(a: any, b: any): boolean { +export function compareShallow(a: any, b: any): boolean { return deepEqual(a, b, 1) } -function defaultComparer(a: any, b: any): boolean { - if (Object.is) { - return Object.is(a, b) - } - - return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b -} - -export const comparer = { - identity: identityComparer, - structural: structuralComparer, - default: defaultComparer, - shallow: shallowComparer -} +export const compareDefault = Object.is diff --git a/packages/mobx/src/utils/global.ts b/packages/mobx/src/utils/global.ts deleted file mode 100644 index 86f57987ca..0000000000 --- a/packages/mobx/src/utils/global.ts +++ /dev/null @@ -1,20 +0,0 @@ -declare const window: any -declare const self: any - -const mockGlobal = {} - -export function getGlobal() { - if (typeof globalThis !== "undefined") { - return globalThis - } - if (typeof window !== "undefined") { - return window - } - if (typeof global !== "undefined") { - return global - } - if (typeof self !== "undefined") { - return self - } - return mockGlobal -} diff --git a/packages/mobx/src/utils/iterable.ts b/packages/mobx/src/utils/iterable.ts index 6e0f678341..42ad8e17fa 100644 --- a/packages/mobx/src/utils/iterable.ts +++ b/packages/mobx/src/utils/iterable.ts @@ -1,14 +1,13 @@ -import { getGlobal } from "../internal" +import { assign } from "./utils" // safely get iterator prototype if available -const global = getGlobal() -const maybeIteratorPrototype = global.Iterator?.prototype || {} +const maybeIteratorPrototype = (globalThis as any).Iterator?.prototype || {} export function makeIterable( iterator: Iterator ): IteratorObject { iterator[Symbol.iterator] = getSelf - return Object.assign(Object.create(maybeIteratorPrototype), iterator) + return assign(Object.create(maybeIteratorPrototype), iterator) } function getSelf() { diff --git a/packages/mobx/src/utils/utils.ts b/packages/mobx/src/utils/utils.ts index a00b927483..413636aefb 100644 --- a/packages/mobx/src/utils/utils.ts +++ b/packages/mobx/src/utils/utils.ts @@ -1,4 +1,4 @@ -import { globalState, die } from "../internal" +import { globalState } from "../internal" // We shorten anything used > 5 times export const assign = Object.assign @@ -17,28 +17,8 @@ export interface Lambda { name?: string } -const hasProxy = typeof Proxy !== "undefined" const plainObjectString = Object.toString() -export function assertProxies() { - if (!hasProxy) { - die( - __DEV__ - ? "`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`" - : "Proxy not available" - ) - } -} - -export function warnAboutProxyRequirement(msg: string) { - if (__DEV__ && globalState.verifyProxies) { - die( - "MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to " + - msg - ) - } -} - export function getNextId() { return ++globalState.mobxGuid } @@ -90,7 +70,7 @@ export function isPlainObject(value: any) { if (proto == null) { return true } - const protoConstructor = Object.hasOwnProperty.call(proto, "constructor") && proto.constructor + const protoConstructor = hasProp(proto, "constructor") && proto.constructor return ( typeof protoConstructor === "function" && protoConstructor.toString() === plainObjectString ) @@ -164,17 +144,11 @@ export function isES6Set(thing: unknown): thing is Set { return thing != null && Object.prototype.toString.call(thing) === "[object Set]" } -const hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== "undefined" - /** * Returns the following: own enumerable keys and symbols. */ export function getPlainObjectKeys(object: any) { const keys = Object.keys(object) - // Not supported in IE, so there are not going to be symbol props anyway... - if (!hasGetOwnPropertySymbols) { - return keys - } const symbols = Object.getOwnPropertySymbols(object) if (!symbols.length) { return keys @@ -184,12 +158,7 @@ export function getPlainObjectKeys(object: any) { // From Immer utils // Returns all own keys, including non-enumerable and symbolic -export const ownKeys: (target: any) => Array = - typeof Reflect !== "undefined" && Reflect.ownKeys - ? Reflect.ownKeys - : hasGetOwnPropertySymbols - ? obj => Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj) as any) - : /* istanbul ignore next */ Object.getOwnPropertyNames +export const ownKeys: (target: any) => Array = Reflect.ownKeys export function stringifyKey(key: any): string { if (typeof key === "string") { @@ -209,18 +178,7 @@ export function hasProp(target: Object, prop: PropertyKey): boolean { return objectPrototype.hasOwnProperty.call(target, prop) } -// From Immer utils -export const getOwnPropertyDescriptors = - Object.getOwnPropertyDescriptors || - function getOwnPropertyDescriptors(target: any) { - // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274 - const res: any = {} - // Note: without polyfill for ownKeys, symbols won't be picked up - ownKeys(target).forEach(key => { - res[key] = getDescriptor(target, key) - }) - return res - } +export const getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors export function getFlag(flags: number, mask: number) { return !!(flags & mask) diff --git a/packages/mobx/tsdx.config.js b/packages/mobx/tsdx.config.js deleted file mode 100644 index 62b1b82aa3..0000000000 --- a/packages/mobx/tsdx.config.js +++ /dev/null @@ -1,35 +0,0 @@ -const { terser } = require("rollup-plugin-terser") - -module.exports = { - // This function will run for each entry/format/env combination - rollup(config, options) { - // MWE: disabled minifying esm builds as source maps aren't too reliable. - // It is a shame because mangle properties saves quite a bit (1 KB gzipped) - // For comparison: - // webpack + terser + unminified mobx: - // 13757 - // webpack + pre-minified mobx: - // 12949 - if (/*options.format === "esm" || */ options.env === "production") { - config.plugins.push( - terser({ - sourcemap: true, - module: true, - compress: { - hoist_funs: true, - passes: 2, - keep_fargs: false, - pure_getters: true, - unsafe: false - }, - mangle: { - properties: { - regex: /_$/ - } - } - }) - ) - } - return config - } -} diff --git a/scripts/build.js b/scripts/build.js deleted file mode 100644 index 8a8fd97b6a..0000000000 --- a/scripts/build.js +++ /dev/null @@ -1,67 +0,0 @@ -const fs = require("fs-extra") -const execa = require("execa") -const minimist = require("minimist") - -const stdio = ["ignore", "inherit", "pipe"] -const opts = { stdio } - -const { - _: [packageName], - target -} = minimist(process.argv.slice(2)) - -// build to publish needs to do more things so it's slower -// for the CI run and local testing this is not necessary -const isPublish = target === "publish" - -// for running tests in CI we need CJS only -const isTest = target === "test" - -const run = async () => { - // TSDX converts passed name argument to lowercase for file name - const pkgPrefix = `${packageName.toLowerCase()}.` - - const tempMove = name => fs.move(`dist/${pkgPrefix}${name}`, `temp/${pkgPrefix}${name}`) - const moveTemp = name => fs.move(`temp/${pkgPrefix}${name}`, `dist/${pkgPrefix}${name}`) - - const build = (format, env) => { - const args = ["build", "--name", packageName, "--format", format] - if (env) { - args.push("--env", env) - } - return execa("tsdx", args, opts) - } - - if (isPublish) { - await fs.emptyDir("temp") - // build dev/prod ESM bundles that can be consumed in browser without NODE_ENV annoyance - // and these builds cannot be run in parallel because tsdx doesn't allow to change target dir - await build("esm", "development") - // tsdx will purge dist folder, so it's necessary to move these - await tempMove(`esm.development.js`) - await tempMove(`esm.development.js.map`) - - // cannot build these concurrently - await build("esm", "production") - await tempMove(`esm.production.min.js`) - await tempMove(`esm.production.min.js.map`) - } - - await build(isTest ? "cjs" : "esm,cjs,umd").catch(err => { - throw new Error(`build failed: ${err.stderr}`) - }) - - if (isPublish) { - // move ESM bundles back to dist folder and remove temp - await moveTemp(`esm.development.js`) - await moveTemp(`esm.development.js.map`) - await moveTemp(`esm.production.min.js`) - await moveTemp(`esm.production.min.js.map`) - await fs.remove("temp") - } -} - -run().catch(err => { - console.error(err) - process.exit(1) -}) diff --git a/scripts/create-rollup-config.mjs b/scripts/create-rollup-config.mjs new file mode 100644 index 0000000000..5e31376413 --- /dev/null +++ b/scripts/create-rollup-config.mjs @@ -0,0 +1,267 @@ +import { DEFAULT_EXTENSIONS } from "@babel/core" +import { babel } from "@rollup/plugin-babel" +import commonjs from "@rollup/plugin-commonjs" +import json from "@rollup/plugin-json" +import { DEFAULTS as nodeResolveDefaults, nodeResolve } from "@rollup/plugin-node-resolve" +import replace from "@rollup/plugin-replace" +import terser from "@rollup/plugin-terser" +import fs from "fs-extra" +import path from "node:path" +import sourcemaps from "rollup-plugin-sourcemaps" +import typescript from "typescript" +import typescript2 from "rollup-plugin-typescript2" + +const dist = "dist" + +const tsconfigDefaults = { + exclude: [ + "**/*.spec.ts", + "**/*.test.ts", + "**/*.spec.tsx", + "**/*.test.tsx", + "node_modules", + "bower_components", + "jspm_packages", + dist + ], + compilerOptions: { + sourceMap: true, + declaration: true, + jsx: "react" + } +} + +const defaultTerserOptions = format => ({ + output: { comments: false }, + compress: { + keep_infinity: true, + pure_getters: true, + passes: 10 + }, + ecma: 5, + toplevel: format === "cjs" +}) + +const privatePropertyTerserOptions = { + module: true, + compress: { + hoist_funs: true, + passes: 2, + keep_fargs: false, + pure_getters: true, + unsafe: false + }, + mangle: { + properties: { + regex: /_$/ + } + } +} + +const writeCjsEntry = packageBase => { + const contents = ` +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./${packageBase}.cjs.production.min.js') +} else { + module.exports = require('./${packageBase}.cjs.development.js') +} +` + fs.outputFileSync(path.join(dist, "index.js"), contents) +} + +const stripShebang = () => ({ + name: "strip-shebang", + transform(code) { + return { + code: code.replace(/^#!(.*)/, ""), + map: null + } + } +}) + +const babelPlugin = () => + babel({ + babelHelpers: "bundled", + exclude: "node_modules/**", + extensions: [...DEFAULT_EXTENSIONS, ".ts", ".tsx"], + babelrc: false, + configFile: false, + passPerPreset: true, + presets: [ + [ + "@babel/preset-env", + { + bugfixes: true, + ignoreBrowserslistConfig: true, + loose: true, + modules: false, + targets: { + esmodules: true + } + } + ] + ], + plugins: [ + "babel-plugin-annotate-pure-calls", + "babel-plugin-dev-expression", + ["@babel/plugin-proposal-class-properties", { loose: true }] + ].filter(Boolean) + }) + +const createConfig = ({ + format, + env, + declarations, + extraOutputs = [], + input, + packageBase, + packageName, + globals +}) => { + const shouldMinify = env === "production" + const outputName = [`${dist}/${packageBase}`, format, env, shouldMinify ? "min" : "", "js"] + .filter(Boolean) + .join(".") + + const output = { + file: outputName, + format, + freeze: false, + esModule: true, + name: packageName, + sourcemap: true, + globals, + exports: "named" + } + + return { + input, + external(id) { + if (id.startsWith("regenerator-runtime")) { + return false + } + return !id.startsWith(".") && !path.isAbsolute(id) + }, + treeshake: { + propertyReadSideEffects: false + }, + output: [output, ...extraOutputs], + plugins: [ + nodeResolve({ + mainFields: ["module", "main", "browser"], + extensions: [...nodeResolveDefaults.extensions, ".jsx"] + }), + commonjs({ + include: format === "umd" ? /\/node_modules\// : /\/regenerator-runtime\// + }), + json(), + stripShebang(), + typescript2({ + typescript, + tsconfig: "tsconfig.json", + tsconfigDefaults, + tsconfigOverride: { + compilerOptions: { + target: "esnext", + ...(declarations ? {} : { declaration: false, declarationMap: false }) + } + }, + check: declarations, + useTsconfigDeclarationDir: false + }), + babelPlugin(), + env !== undefined && + replace({ + preventAssignment: true, + values: { + "process.env.NODE_ENV": JSON.stringify(env) + } + }), + sourcemaps(), + shouldMinify && terser(defaultTerserOptions(format)), + shouldMinify && terser(privatePropertyTerserOptions) + ].filter(Boolean) + } +} + +export default function createRollupConfig({ + packageName, + packageBase = packageName, + input, + globals = {} +}) { + const target = process.env.TARGET + const isTest = target === "test" + const isPublish = target === "publish" + const sharedOptions = { input, packageBase, packageName, globals } + const configs = [] + + configs.push( + createConfig({ ...sharedOptions, format: "cjs", env: "development", declarations: true }) + ) + configs.push( + createConfig({ ...sharedOptions, format: "cjs", env: "production", declarations: false }) + ) + + if (!isTest) { + if (isPublish) { + configs.push( + createConfig({ + ...sharedOptions, + format: "esm", + env: "development", + declarations: false + }) + ) + configs.push( + createConfig({ + ...sharedOptions, + format: "esm", + env: "production", + declarations: false + }) + ) + } + + configs.push( + createConfig({ + ...sharedOptions, + format: "esm", + declarations: false, + extraOutputs: [ + { + file: `${dist}/${packageBase}.mjs`, + format: "esm", + freeze: false, + esModule: true, + sourcemap: true, + exports: "named" + } + ] + }) + ) + configs.push( + createConfig({ + ...sharedOptions, + format: "umd", + env: "development", + declarations: false + }) + ) + configs.push( + createConfig({ + ...sharedOptions, + format: "umd", + env: "production", + declarations: false + }) + ) + } + + fs.emptyDirSync(dist) + writeCjsEntry(packageBase) + + return configs +} diff --git a/scripts/size/index.js b/scripts/size/index.js new file mode 100644 index 0000000000..3bd2701b06 --- /dev/null +++ b/scripts/size/index.js @@ -0,0 +1,174 @@ +"use strict" + +const fs = require("fs") +const path = require("path") +const { spawnSync } = require("child_process") +const zlib = require("zlib") + +const repoRoot = path.join(__dirname, "..", "..") +const shouldBuild = !process.argv.includes("--no-build") + +const publishBuilds = [ + ["mobx", "mobx"], + ["mobx-react-lite", "mobx-react-lite"], + ["mobx-react", "mobx-react"] +] + +const artifacts = [ + { + packageName: "mobx bundle ESM", + file: "packages/mobx/dist/mobx.esm.production.min.js" + }, + { + packageName: "mobx-react-lite", + file: "packages/mobx-react-lite/dist/mobxreactlite.esm.production.min.js" + }, + { + packageName: "mobx-react", + file: "packages/mobx-react/dist/mobxreact.esm.production.min.js" + } +] + +const terserOptions = { + module: true, + compress: { + hoist_funs: true, + passes: 2, + keep_fargs: false, + pure_getters: true, + unsafe: false + }, + mangle: { + properties: { + regex: /_$/ + } + } +} + +const formatBytes = bytes => `${(bytes / 1024).toFixed(2)} KiB` + +const measureSource = source => { + const raw = typeof source === "string" ? Buffer.byteLength(source) : source.length + const gzipped = zlib.gzipSync(source, { level: 9 }) + + return { + raw, + gzip: gzipped.length + } +} + +const measureFile = file => { + const filePath = path.join(repoRoot, file) + const source = fs.readFileSync(filePath) + + return measureSource(source) +} + +const createSizeRow = ({ packageName, raw, gzip }) => ({ + package: packageName, + raw: formatBytes(raw), + "raw bytes": raw, + gzip: formatBytes(gzip), + "gzip bytes": gzip +}) + +const runBuild = ([workspaceName, packageName]) => { + console.log(`\nBuilding ${packageName} publish artifacts...`) + const result = spawnSync( + "npm", + ["-w", workspaceName, "run", "build", "--", "--environment", "TARGET:publish"], + { + cwd: repoRoot, + stdio: "inherit", + shell: process.platform === "win32" + } + ) + + if (result.error) { + throw result.error + } + if (result.status !== 0) { + throw new Error(`${packageName} publish build failed with exit code ${result.status}`) + } +} + +const measureMinimalExample = async () => { + const { rollup } = require("rollup") + const nodeResolve = require("@rollup/plugin-node-resolve") + const replace = require("@rollup/plugin-replace") + const terser = require("@rollup/plugin-terser") + const input = path.join(__dirname, "minimal-example.js") + const resolve = nodeResolve.default || nodeResolve.nodeResolve || nodeResolve + + const bundle = await rollup({ + input, + onwarn(warning, warn) { + if (warning.code === "THIS_IS_UNDEFINED") { + return + } + warn(warning) + }, + plugins: [ + { + name: "size-minimal-example", + load(id) { + if (id === input) { + return fs.readFileSync(input, "utf8") + } + return null + } + }, + replace({ + preventAssignment: true, + values: { + "process.env.NODE_ENV": JSON.stringify("production") + } + }), + resolve({ + mainFields: ["module", "main"] + }) + ] + }) + + try { + const { output } = await bundle.generate({ + format: "esm", + plugins: [terser(terserOptions)] + }) + + return { + packageName: "mobx minimal* ESM", + ...measureSource(output[0].code) + } + } finally { + await bundle.close() + } +} + +const run = async () => { + if (shouldBuild) { + publishBuilds.forEach(runBuild) + } + + const rows = [ + createSizeRow({ + packageName: artifacts[0].packageName, + ...measureFile(artifacts[0].file) + }), + createSizeRow(await measureMinimalExample()), + ...artifacts.slice(1).map(artifact => + createSizeRow({ + packageName: artifact.packageName, + ...measureFile(artifact.file) + }) + ) + ] + + console.log("\nProduction ESM gzip sizes:") + console.table(rows) +} + +run().catch(error => { + console.error(error) + process.exit(1) +}) diff --git a/scripts/size/minimal-example.js b/scripts/size/minimal-example.js new file mode 100644 index 0000000000..2eac7b934c --- /dev/null +++ b/scripts/size/minimal-example.js @@ -0,0 +1,14 @@ +import { action, autorun, computed, observable } from "mobx" + +const state = observable({ count: 1 }) +const doubled = computed(() => state.count * 2) +const increment = action(() => { + state.count += 1 +}) + +const dispose = autorun(() => { + console.log(doubled.get()) +}) + +increment() +dispose() diff --git a/tsconfig.json b/tsconfig.json index cd7ed854ab..dca1d62e9e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,7 +15,6 @@ "noImplicitAny": false, "noImplicitThis": false, "noEmit": true, - "experimentalDecorators": true, "useDefineForClassFields": true, "jsx": "react", "esModuleInterop": true, diff --git a/website/i18n/en.json b/website/i18n/en.json index 85973a3fda..67b75a7e6b 100644 --- a/website/i18n/en.json +++ b/website/i18n/en.json @@ -99,6 +99,10 @@ "title": "Migrating from MobX 4/5", "sidebar_label": "Migrating from MobX 4/5 {🚀}" }, + "migrating-from-6-to-7": { + "title": "Migrating to MobX 7", + "sidebar_label": "Migrating to MobX 7 {🚀}" + }, "mobx-utils": { "title": "MobX-utils", "sidebar_label": "MobX-utils {🚀}" diff --git a/website/sidebars.json b/website/sidebars.json index 2d5d8196e8..c561a7524e 100755 --- a/website/sidebars.json +++ b/website/sidebars.json @@ -33,6 +33,7 @@ "Fine-tuning": [ "configuration", "enabling-decorators", + "migrating-from-6-to-7", "migrating-from-4-or-5" ] } diff --git a/website/static/getting-started.html b/website/static/getting-started.html index 139ea8a016..5eda14025d 100755 --- a/website/static/getting-started.html +++ b/website/static/getting-started.html @@ -163,7 +163,7 @@

    Becoming reactive

    list. By using the observable and computed annotations we can introduce observable properties on an object. In the example below we use makeObservable to show the annotations explicitly, - but we could have used makeAutoObservable(this) instead to simplify this process. + but we could use makeAutoObservable(this) instead to simplify this process.

    That's it! We marked some properties as being observable to signal MobX that these values can change over time. - The computations are decorated with computed to identify that these can be derived from the state and caches as long as no underlying state changed. + The computations are marked with computed to identify that these can be derived from the state and caches as long as no underlying state changed.

    The pendingRequests and assignee attributes are not used so far, @@ -243,7 +243,7 @@

    Becoming reactive

    Making React reactive

    Ok, so far we made a silly report reactive. Time to build a reactive user interface around this very same store. React components are (despite their name) not reactive out of the box. - The observer HoC wrapper from the mobx-react-lite package fixes that by + The observer wrapper from the mobx-react package fixes that by basically wrapping the React component in autorun. This keeps the component in sync with the state. This is conceptually not different from what we did with the report before. @@ -311,9 +311,8 @@

    Making React reactive

    ); }) -ReactDOM.render( - , - document.getElementById('reactjs-app') +renderReactApp( + ); @@ -396,22 +395,22 @@

    Asynchronous actions

    Conclusion

    That's all! No boilerplate. Just some simple, declarative components that form our complete UI. And which are derived completely, - reactively from our state. You are now ready to start using the mobx and mobx-react-lite packages in your own applications. + reactively from our state. You are now ready to start using the mobx and mobx-react packages in your own applications. A short summary of the things you learned so far:

    1. - Use the observable decorator or observable(object or array) functions to make objects trackable for MobX. + Use makeObservable, makeAutoObservable, or observable(object or array) to make objects trackable for MobX.
    2. - The computed decorator can be used to create functions that can automatically derive value from the state and cache them. + The computed annotation can be used to create functions that can automatically derive value from the state and cache them.
    3. Use autorun to automatically run functions that depend on some observable state. This is useful for logging, making network requests, etc.
    4. - Use the observer wrapper from the mobx-react-lite package to make your React components truly reactive. + Use the observer wrapper from the mobx-react package to make your React components truly reactive. They will update automatically and efficiently. Even when used in large complex applications with large amounts of data.
    5. @@ -474,11 +473,12 @@

      Console log - - + + - - + + +