use-memo-map 0.2.0 → 0.2.1-main.202601020525.68964d7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/use-memo-map.js +19 -7
- package/dist/use-memo-map.js.map +1 -1
- package/dist/use-memo-map.mjs +4 -2
- package/dist/use-memo-map.mjs.map +1 -1
- package/package.json +33 -19
package/dist/use-memo-map.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
|
|
20
30
|
// src/index.ts
|
|
@@ -25,33 +35,35 @@ __export(src_exports, {
|
|
|
25
35
|
module.exports = __toCommonJS(src_exports);
|
|
26
36
|
|
|
27
37
|
// src/useMemoMap.ts
|
|
28
|
-
var import_react2 = require("react");
|
|
38
|
+
var import_react2 = __toESM(require("react"));
|
|
29
39
|
var import_use_ref_from = require("use-ref-from");
|
|
30
40
|
|
|
31
41
|
// src/private/usePrevious.ts
|
|
32
|
-
var import_react = require("react");
|
|
42
|
+
var import_react = __toESM(require("react"));
|
|
43
|
+
var { useEffect, useRef } = import_react.default;
|
|
33
44
|
function usePrevious(value, initialValue) {
|
|
34
|
-
const ref =
|
|
35
|
-
|
|
45
|
+
const ref = useRef(initialValue);
|
|
46
|
+
useEffect(() => {
|
|
36
47
|
ref.current = value;
|
|
37
48
|
});
|
|
38
49
|
return ref.current;
|
|
39
50
|
}
|
|
40
51
|
|
|
41
52
|
// src/useMemoMap.ts
|
|
53
|
+
var { useCallback, useEffect: useEffect2, useRef: useRef2 } = import_react2.default;
|
|
42
54
|
function useMemoMap(mapper, { itemEquality = Object.is } = {}) {
|
|
43
55
|
const itemEqualityRef = (0, import_use_ref_from.useRefFrom)(itemEquality);
|
|
44
|
-
const lastCallsRef = (
|
|
56
|
+
const lastCallsRef = useRef2([]);
|
|
45
57
|
const mapperRef = (0, import_use_ref_from.useRefFrom)(mapper);
|
|
46
58
|
const thisCalls = [];
|
|
47
59
|
if (usePrevious(mapper) !== mapper) {
|
|
48
60
|
lastCallsRef.current = [];
|
|
49
61
|
}
|
|
50
|
-
(
|
|
62
|
+
useEffect2(() => {
|
|
51
63
|
lastCallsRef.current = Object.freeze(thisCalls);
|
|
52
64
|
});
|
|
53
65
|
const thisCallsRef = (0, import_use_ref_from.useRefFrom)(thisCalls);
|
|
54
|
-
return
|
|
66
|
+
return useCallback(
|
|
55
67
|
(array) => {
|
|
56
68
|
const { current: itemEquality2 } = itemEqualityRef;
|
|
57
69
|
const { current: mapper2 } = mapperRef;
|
package/dist/use-memo-map.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/useMemoMap.ts","../src/private/usePrevious.ts"],"sourcesContent":["import useMemoMap from './useMemoMap.ts';\n\nexport { useMemoMap };\n","import
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/useMemoMap.ts","../src/private/usePrevious.ts"],"sourcesContent":["import useMemoMap from './useMemoMap.ts';\n\nexport { useMemoMap };\n","import React from 'react';\nimport { useRefFrom } from 'use-ref-from';\nimport usePrevious from './private/usePrevious.ts';\n\nconst { useCallback, useEffect, useRef } = React;\n\ntype UseMemoMapOptions<T> = {\n itemEquality?: (this: readonly T[], x: T, y: T) => boolean;\n};\n\n/**\n * Creates a memoized mapping function.\n *\n * Unlike `React.useMemo`, the mapping function can be called multiple times in a single render loop.\n * All calls to the mapping function will be memoized.\n *\n * The memoized arguments and return values will survive next render.\n *\n * When the mapping function change, all memoized values will be invalidated.\n */\nexport default function useMemoMap<T = unknown, R = unknown>(\n mapper: (this: readonly T[], item: T, index: -1, array: readonly T[]) => R,\n { itemEquality = Object.is }: UseMemoMapOptions<T> = {}\n): (array: readonly T[]) => readonly R[] {\n const itemEqualityRef = useRefFrom(itemEquality);\n const lastCallsRef = useRef<readonly [T, R][]>([]);\n const mapperRef = useRefFrom(mapper);\n const thisCalls: [T, R][] = [];\n\n if (usePrevious(mapper) !== mapper) {\n lastCallsRef.current = [];\n }\n\n useEffect(() => {\n lastCallsRef.current = Object.freeze(thisCalls);\n });\n\n const thisCallsRef = useRefFrom(thisCalls);\n\n return useCallback<(array: readonly T[]) => readonly R[]>(\n (array: readonly T[]) => {\n const { current: itemEquality } = itemEqualityRef;\n const { current: mapper } = mapperRef;\n const { current: thisCalls } = thisCallsRef;\n\n return Object.freeze(\n array.map<R>(item => {\n const thisCall = thisCalls.find(entry => itemEquality.call(array, item, entry[0]));\n\n // If this call has memoized in the current render loop, use the memoized return value.\n if (thisCall) {\n return thisCall[1];\n }\n\n const lastCall = lastCallsRef.current.find(entry => itemEquality.call(array, item, entry[0]));\n const result = lastCall ? lastCall[1] : mapper.call(array, item, -1, array);\n\n thisCalls.push([item, result]);\n\n return result;\n })\n );\n },\n [itemEqualityRef, lastCallsRef, mapperRef, thisCallsRef]\n );\n}\n","import React from 'react';\n\nconst { useEffect, useRef } = React;\n\nexport default function usePrevious<T>(value: T, initialValue?: T): T | undefined {\n const ref = useRef<T | undefined>(initialValue);\n\n useEffect(() => {\n ref.current = value;\n });\n\n return ref.current;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,gBAAkB;AAClB,0BAA2B;;;ACD3B,mBAAkB;AAElB,IAAM,EAAE,WAAW,OAAO,IAAI,aAAAC;AAEf,SAAR,YAAgC,OAAU,cAAiC;AAChF,QAAM,MAAM,OAAsB,YAAY;AAE9C,YAAU,MAAM;AACd,QAAI,UAAU;AAAA,EAChB,CAAC;AAED,SAAO,IAAI;AACb;;;ADRA,IAAM,EAAE,aAAa,WAAAC,YAAW,QAAAC,QAAO,IAAI,cAAAC;AAgB5B,SAAR,WACL,QACA,EAAE,eAAe,OAAO,GAAG,IAA0B,CAAC,GACf;AACvC,QAAM,sBAAkB,gCAAW,YAAY;AAC/C,QAAM,eAAeD,QAA0B,CAAC,CAAC;AACjD,QAAM,gBAAY,gCAAW,MAAM;AACnC,QAAM,YAAsB,CAAC;AAE7B,MAAI,YAAY,MAAM,MAAM,QAAQ;AAClC,iBAAa,UAAU,CAAC;AAAA,EAC1B;AAEA,EAAAD,WAAU,MAAM;AACd,iBAAa,UAAU,OAAO,OAAO,SAAS;AAAA,EAChD,CAAC;AAED,QAAM,mBAAe,gCAAW,SAAS;AAEzC,SAAO;AAAA,IACL,CAAC,UAAwB;AACvB,YAAM,EAAE,SAASG,cAAa,IAAI;AAClC,YAAM,EAAE,SAASC,QAAO,IAAI;AAC5B,YAAM,EAAE,SAASC,WAAU,IAAI;AAE/B,aAAO,OAAO;AAAA,QACZ,MAAM,IAAO,UAAQ;AACnB,gBAAM,WAAWA,WAAU,KAAK,WAASF,cAAa,KAAK,OAAO,MAAM,MAAM,CAAC,CAAC,CAAC;AAGjF,cAAI,UAAU;AACZ,mBAAO,SAAS,CAAC;AAAA,UACnB;AAEA,gBAAM,WAAW,aAAa,QAAQ,KAAK,WAASA,cAAa,KAAK,OAAO,MAAM,MAAM,CAAC,CAAC,CAAC;AAC5F,gBAAM,SAAS,WAAW,SAAS,CAAC,IAAIC,QAAO,KAAK,OAAO,MAAM,IAAI,KAAK;AAE1E,UAAAC,WAAU,KAAK,CAAC,MAAM,MAAM,CAAC;AAE7B,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,iBAAiB,cAAc,WAAW,YAAY;AAAA,EACzD;AACF;","names":["import_react","React","useEffect","useRef","React","itemEquality","mapper","thisCalls"]}
|
package/dist/use-memo-map.mjs
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// src/useMemoMap.ts
|
|
2
|
-
import
|
|
2
|
+
import React2 from "react";
|
|
3
3
|
import { useRefFrom } from "use-ref-from";
|
|
4
4
|
|
|
5
5
|
// src/private/usePrevious.ts
|
|
6
|
-
import
|
|
6
|
+
import React from "react";
|
|
7
|
+
var { useEffect, useRef } = React;
|
|
7
8
|
function usePrevious(value, initialValue) {
|
|
8
9
|
const ref = useRef(initialValue);
|
|
9
10
|
useEffect(() => {
|
|
@@ -13,6 +14,7 @@ function usePrevious(value, initialValue) {
|
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
// src/useMemoMap.ts
|
|
17
|
+
var { useCallback, useEffect: useEffect2, useRef: useRef2 } = React2;
|
|
16
18
|
function useMemoMap(mapper, { itemEquality = Object.is } = {}) {
|
|
17
19
|
const itemEqualityRef = useRefFrom(itemEquality);
|
|
18
20
|
const lastCallsRef = useRef2([]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/useMemoMap.ts","../src/private/usePrevious.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../src/useMemoMap.ts","../src/private/usePrevious.ts"],"sourcesContent":["import React from 'react';\nimport { useRefFrom } from 'use-ref-from';\nimport usePrevious from './private/usePrevious.ts';\n\nconst { useCallback, useEffect, useRef } = React;\n\ntype UseMemoMapOptions<T> = {\n itemEquality?: (this: readonly T[], x: T, y: T) => boolean;\n};\n\n/**\n * Creates a memoized mapping function.\n *\n * Unlike `React.useMemo`, the mapping function can be called multiple times in a single render loop.\n * All calls to the mapping function will be memoized.\n *\n * The memoized arguments and return values will survive next render.\n *\n * When the mapping function change, all memoized values will be invalidated.\n */\nexport default function useMemoMap<T = unknown, R = unknown>(\n mapper: (this: readonly T[], item: T, index: -1, array: readonly T[]) => R,\n { itemEquality = Object.is }: UseMemoMapOptions<T> = {}\n): (array: readonly T[]) => readonly R[] {\n const itemEqualityRef = useRefFrom(itemEquality);\n const lastCallsRef = useRef<readonly [T, R][]>([]);\n const mapperRef = useRefFrom(mapper);\n const thisCalls: [T, R][] = [];\n\n if (usePrevious(mapper) !== mapper) {\n lastCallsRef.current = [];\n }\n\n useEffect(() => {\n lastCallsRef.current = Object.freeze(thisCalls);\n });\n\n const thisCallsRef = useRefFrom(thisCalls);\n\n return useCallback<(array: readonly T[]) => readonly R[]>(\n (array: readonly T[]) => {\n const { current: itemEquality } = itemEqualityRef;\n const { current: mapper } = mapperRef;\n const { current: thisCalls } = thisCallsRef;\n\n return Object.freeze(\n array.map<R>(item => {\n const thisCall = thisCalls.find(entry => itemEquality.call(array, item, entry[0]));\n\n // If this call has memoized in the current render loop, use the memoized return value.\n if (thisCall) {\n return thisCall[1];\n }\n\n const lastCall = lastCallsRef.current.find(entry => itemEquality.call(array, item, entry[0]));\n const result = lastCall ? lastCall[1] : mapper.call(array, item, -1, array);\n\n thisCalls.push([item, result]);\n\n return result;\n })\n );\n },\n [itemEqualityRef, lastCallsRef, mapperRef, thisCallsRef]\n );\n}\n","import React from 'react';\n\nconst { useEffect, useRef } = React;\n\nexport default function usePrevious<T>(value: T, initialValue?: T): T | undefined {\n const ref = useRef<T | undefined>(initialValue);\n\n useEffect(() => {\n ref.current = value;\n });\n\n return ref.current;\n}\n"],"mappings":";AAAA,OAAOA,YAAW;AAClB,SAAS,kBAAkB;;;ACD3B,OAAO,WAAW;AAElB,IAAM,EAAE,WAAW,OAAO,IAAI;AAEf,SAAR,YAAgC,OAAU,cAAiC;AAChF,QAAM,MAAM,OAAsB,YAAY;AAE9C,YAAU,MAAM;AACd,QAAI,UAAU;AAAA,EAChB,CAAC;AAED,SAAO,IAAI;AACb;;;ADRA,IAAM,EAAE,aAAa,WAAAC,YAAW,QAAAC,QAAO,IAAIC;AAgB5B,SAAR,WACL,QACA,EAAE,eAAe,OAAO,GAAG,IAA0B,CAAC,GACf;AACvC,QAAM,kBAAkB,WAAW,YAAY;AAC/C,QAAM,eAAeD,QAA0B,CAAC,CAAC;AACjD,QAAM,YAAY,WAAW,MAAM;AACnC,QAAM,YAAsB,CAAC;AAE7B,MAAI,YAAY,MAAM,MAAM,QAAQ;AAClC,iBAAa,UAAU,CAAC;AAAA,EAC1B;AAEA,EAAAD,WAAU,MAAM;AACd,iBAAa,UAAU,OAAO,OAAO,SAAS;AAAA,EAChD,CAAC;AAED,QAAM,eAAe,WAAW,SAAS;AAEzC,SAAO;AAAA,IACL,CAAC,UAAwB;AACvB,YAAM,EAAE,SAASG,cAAa,IAAI;AAClC,YAAM,EAAE,SAASC,QAAO,IAAI;AAC5B,YAAM,EAAE,SAASC,WAAU,IAAI;AAE/B,aAAO,OAAO;AAAA,QACZ,MAAM,IAAO,UAAQ;AACnB,gBAAM,WAAWA,WAAU,KAAK,WAASF,cAAa,KAAK,OAAO,MAAM,MAAM,CAAC,CAAC,CAAC;AAGjF,cAAI,UAAU;AACZ,mBAAO,SAAS,CAAC;AAAA,UACnB;AAEA,gBAAM,WAAW,aAAa,QAAQ,KAAK,WAASA,cAAa,KAAK,OAAO,MAAM,MAAM,CAAC,CAAC,CAAC;AAC5F,gBAAM,SAAS,WAAW,SAAS,CAAC,IAAIC,QAAO,KAAK,OAAO,MAAM,IAAI,KAAK;AAE1E,UAAAC,WAAU,KAAK,CAAC,MAAM,MAAM,CAAC;AAE7B,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,iBAAiB,cAAc,WAAW,YAAY;AAAA,EACzD;AACF;","names":["React","useEffect","useRef","React","itemEquality","mapper","thisCalls"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "use-memo-map",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1-main.202601020525.68964d7",
|
|
4
4
|
"description": "Memoizes calls to array map function similar to React.useMemo. Memoized results will survive next render.",
|
|
5
5
|
"files": [
|
|
6
6
|
"./*.js",
|
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
"bump": "npm run bump:prod && npm run bump:dev",
|
|
26
26
|
"bump:dev": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localPeerDependencies // {}) as $L | (.devDependencies // {}) | to_entries | map(select(.key as $K | $L | has($K) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install $PACKAGES_TO_BUMP || true",
|
|
27
27
|
"bump:prod": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localPeerDependencies // {}) as $L | (.dependencies // {}) | to_entries | map(select(.key as $K | $L | has($K) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install $PACKAGES_TO_BUMP || true",
|
|
28
|
+
"init": "npm run init:dev --if-present && npm run init:prod --if-present",
|
|
29
|
+
"init:dev": "npm install --save--dev @compulim/test-harness@0.0.0-0 @tsconfig/recommended @tsconfig/strictest @types/node @types/react@18 @types/react-dom@18 escape-string-regexp expect publint react@18 react-dom@18 react-test-renderer@18 tsup typescript",
|
|
28
30
|
"precommit": "npm run precommit:eslint && npm run precommit:publint && npm run precommit:typescript:production && npm run precommit:typescript:test",
|
|
29
31
|
"precommit:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/",
|
|
30
32
|
"precommit:publint": "publint",
|
|
@@ -33,7 +35,9 @@
|
|
|
33
35
|
"prepack": "cp ../../CHANGELOG.md . && cp ../../LICENSE . && cp ../../README.md .",
|
|
34
36
|
"start": "npm run build -- --onSuccess \"touch ../pages/package.json\" --watch",
|
|
35
37
|
"switch": "cat package.json | jq --arg SWITCH_NAME $SWITCH_NAME -r '(.[\"switch:\" + $SWITCH_NAME] // {}) as $TEMPLATE | .devDependencies += ($TEMPLATE.devDependencies // {}) | .dependencies += ($TEMPLATE.dependencies // {})' | tee ./package.json.tmp && mv ./package.json.tmp ./package.json",
|
|
36
|
-
"test": "
|
|
38
|
+
"test": "npm run test:unit && npm run test:types",
|
|
39
|
+
"test:types": "node --experimental-strip-types --import @compulim/test-harness/test-types.import --test **/*.test-types.ts",
|
|
40
|
+
"test:unit": "node --experimental-strip-types --experimental-test-coverage --experimental-test-isolation=none --import @compulim/test-harness/happy-dom.import --import @compulim/test-harness/jsx.import --test --test-force-exit **/*.test.{cjs,cts,js,jsx,mjs,mts,ts,tsx}"
|
|
37
41
|
},
|
|
38
42
|
"repository": {
|
|
39
43
|
"type": "git",
|
|
@@ -58,7 +62,9 @@
|
|
|
58
62
|
"@types/react": "^16",
|
|
59
63
|
"@types/react-dom": "^16",
|
|
60
64
|
"react": "16.8.0",
|
|
61
|
-
"react-dom": "16.8.0"
|
|
65
|
+
"react-dom": "16.8.0",
|
|
66
|
+
"@types/react-test-renderer": "^16",
|
|
67
|
+
"react-test-renderer": "16.8.0"
|
|
62
68
|
}
|
|
63
69
|
},
|
|
64
70
|
"switch:react-17": {
|
|
@@ -68,7 +74,9 @@
|
|
|
68
74
|
"@types/react": "^17",
|
|
69
75
|
"@types/react-dom": "^17",
|
|
70
76
|
"react": "17.0.0",
|
|
71
|
-
"react-dom": "17.0.0"
|
|
77
|
+
"react-dom": "17.0.0",
|
|
78
|
+
"@types/react-test-renderer": "^17",
|
|
79
|
+
"react-test-renderer": "17.0.0"
|
|
72
80
|
}
|
|
73
81
|
},
|
|
74
82
|
"switch:react-18": {
|
|
@@ -76,7 +84,9 @@
|
|
|
76
84
|
"@types/react": "^18",
|
|
77
85
|
"@types/react-dom": "^18",
|
|
78
86
|
"react": "18.0.0",
|
|
79
|
-
"react-dom": "18.0.0"
|
|
87
|
+
"react-dom": "18.0.0",
|
|
88
|
+
"@types/react-test-renderer": "^18",
|
|
89
|
+
"react-test-renderer": "18.0.0"
|
|
80
90
|
}
|
|
81
91
|
},
|
|
82
92
|
"pinDependencies": {
|
|
@@ -91,33 +101,37 @@
|
|
|
91
101
|
],
|
|
92
102
|
"react-dom": [
|
|
93
103
|
"18"
|
|
104
|
+
],
|
|
105
|
+
"@types/react-test-renderer": [
|
|
106
|
+
"18"
|
|
107
|
+
],
|
|
108
|
+
"react-test-renderer": [
|
|
109
|
+
"18"
|
|
94
110
|
]
|
|
95
111
|
},
|
|
112
|
+
"localPeerDependencies": {
|
|
113
|
+
"@compulim/test-harness": "0.0.0-0"
|
|
114
|
+
},
|
|
115
|
+
"peerDependencies": {
|
|
116
|
+
"react": ">=16.8.0"
|
|
117
|
+
},
|
|
96
118
|
"devDependencies": {
|
|
97
|
-
"@
|
|
98
|
-
"@babel/preset-react": "^7.28.5",
|
|
99
|
-
"@babel/preset-typescript": "^7.28.5",
|
|
100
|
-
"@testing-library/dom": "^10.4.1",
|
|
101
|
-
"@testing-library/react": "^16.3.1",
|
|
119
|
+
"@compulim/test-harness": "0.0.0-0",
|
|
102
120
|
"@tsconfig/recommended": "^1.0.13",
|
|
103
121
|
"@tsconfig/strictest": "^2.0.8",
|
|
104
|
-
"@types/jest": "^30.0.0",
|
|
105
122
|
"@types/react": "^18.3.27",
|
|
106
123
|
"@types/react-dom": "^18.3.7",
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"jest-environment-jsdom": "^30.2.0",
|
|
124
|
+
"@types/react-test-renderer": "^18.3.1",
|
|
125
|
+
"expect": "^30.2.0",
|
|
110
126
|
"publint": "^0.3.16",
|
|
111
127
|
"react": "^18.3.1",
|
|
112
128
|
"react-dom": "^18.3.1",
|
|
129
|
+
"react-test-renderer": "^18.3.1",
|
|
113
130
|
"tsup": "^8.5.1",
|
|
114
131
|
"typescript": "^5.9.3"
|
|
115
132
|
},
|
|
116
|
-
"peerDependencies": {
|
|
117
|
-
"react": ">=16.8.0"
|
|
118
|
-
},
|
|
119
133
|
"dependencies": {
|
|
120
|
-
"use-memo-map": "^0.2.
|
|
121
|
-
"use-ref-from": "^0.1
|
|
134
|
+
"use-memo-map": "^0.2.1-main.202601020525.68964d7",
|
|
135
|
+
"use-ref-from": "^0.2.1"
|
|
122
136
|
}
|
|
123
137
|
}
|