@buoy-gg/redux 7.0.30 → 7.0.32
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/lib/commonjs/index.js +25 -0
- package/lib/commonjs/redux/components/ReduxActionButton.js +3 -1
- package/lib/commonjs/redux/components/ReduxActionDetailContent.js +60 -6
- package/lib/commonjs/redux/components/ReduxActionInfoView.js +61 -12
- package/lib/commonjs/redux/components/ReduxActionItem.js +20 -5
- package/lib/commonjs/redux/components/ReduxDetailViewToggle.js +7 -0
- package/lib/commonjs/redux/components/ReduxModal.js +169 -32
- package/lib/commonjs/redux/utils/activeStoreRegistry.js +31 -0
- package/lib/commonjs/redux/utils/autoInstrument.js +23 -40
- package/lib/commonjs/redux/utils/buoyReduxMiddleware.js +36 -9
- package/lib/commonjs/redux/utils/devtoolsHook.js +4 -0
- package/lib/commonjs/redux/utils/testIDs.js +75 -0
- package/lib/module/index.js +5 -0
- package/lib/module/redux/components/ReduxActionButton.js +3 -1
- package/lib/module/redux/components/ReduxActionDetailContent.js +60 -6
- package/lib/module/redux/components/ReduxActionInfoView.js +63 -14
- package/lib/module/redux/components/ReduxActionItem.js +20 -5
- package/lib/module/redux/components/ReduxDetailViewToggle.js +7 -0
- package/lib/module/redux/components/ReduxModal.js +172 -34
- package/lib/module/redux/utils/activeStoreRegistry.js +29 -0
- package/lib/module/redux/utils/autoInstrument.js +8 -40
- package/lib/module/redux/utils/buoyReduxMiddleware.js +32 -10
- package/lib/module/redux/utils/devtoolsHook.js +5 -1
- package/lib/module/redux/utils/testIDs.js +68 -0
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/redux/components/ReduxActionButton.d.ts +2 -1
- package/lib/typescript/redux/components/ReduxActionButton.d.ts.map +1 -1
- package/lib/typescript/redux/components/ReduxActionDetailContent.d.ts.map +1 -1
- package/lib/typescript/redux/components/ReduxActionInfoView.d.ts.map +1 -1
- package/lib/typescript/redux/components/ReduxActionItem.d.ts +15 -0
- package/lib/typescript/redux/components/ReduxActionItem.d.ts.map +1 -1
- package/lib/typescript/redux/components/ReduxDetailViewToggle.d.ts.map +1 -1
- package/lib/typescript/redux/components/ReduxModal.d.ts.map +1 -1
- package/lib/typescript/redux/utils/activeStoreRegistry.d.ts +27 -0
- package/lib/typescript/redux/utils/activeStoreRegistry.d.ts.map +1 -1
- package/lib/typescript/redux/utils/autoInstrument.d.ts +7 -11
- package/lib/typescript/redux/utils/autoInstrument.d.ts.map +1 -1
- package/lib/typescript/redux/utils/buoyReduxMiddleware.d.ts +17 -3
- package/lib/typescript/redux/utils/buoyReduxMiddleware.d.ts.map +1 -1
- package/lib/typescript/redux/utils/devtoolsHook.d.ts.map +1 -1
- package/lib/typescript/redux/utils/testIDs.d.ts +51 -0
- package/lib/typescript/redux/utils/testIDs.d.ts.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Redux tool test handles.
|
|
5
|
+
*
|
|
6
|
+
* Every tappable and every value the e2e suite reads back is addressed
|
|
7
|
+
* `buoy-redux-<thing>`. One rule in here needs explaining, because it is the
|
|
8
|
+
* opposite of what the Events tool does and the difference is not cosmetic:
|
|
9
|
+
*
|
|
10
|
+
* **A redux row's handle carries an ORDINAL.** The Events tool can address a
|
|
11
|
+
* row by what it is about, because an event is a thing that happened to a
|
|
12
|
+
* named subject — one key, one URL, one atom. A redux action is not: an app
|
|
13
|
+
* dispatches `counter/increment` fifty times and every one of them is a
|
|
14
|
+
* separate, equally real row. Addressing them by type alone would give fifty
|
|
15
|
+
* views one handle, and Detox fails a *matcher* that hits more than one
|
|
16
|
+
* element — so the suite would break on `toExist()`, before any assertion,
|
|
17
|
+
* with an error that says nothing about duplicate actions.
|
|
18
|
+
*
|
|
19
|
+
* So the handle is `buoy-redux-row-<slug(type)>-<n>`, where n counts back from
|
|
20
|
+
* the newest row of that type (1 = newest). It is deliberately relative to the
|
|
21
|
+
* list rather than absolute: an action has no identity of its own that a host
|
|
22
|
+
* could know in advance — `id` is a timestamp plus a per-process counter, and
|
|
23
|
+
* the counter's value depends on how many actions the app happened to dispatch
|
|
24
|
+
* before the test looked. What a test CAN know is "the increment I just fired
|
|
25
|
+
* is the newest increment", which is exactly what `-1` means.
|
|
26
|
+
*
|
|
27
|
+
* The consequence, and it is the same one the Events tool documents for its
|
|
28
|
+
* positional-free handles: read and tap in one beat. A row's ordinal changes
|
|
29
|
+
* the moment another action of that type arrives.
|
|
30
|
+
*
|
|
31
|
+
* The suite mirrors these rules in CommonJS (`example-dev-build/utils/
|
|
32
|
+
* reduxBench.js`) and asserts the two agree — Detox runs in Node on the host
|
|
33
|
+
* and cannot import TypeScript.
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
/** Prefix every handle in this tool shares. */
|
|
37
|
+
export const REDUX_TEST_ID = "buoy-redux";
|
|
38
|
+
|
|
39
|
+
/** `counter/increment` → `counter-increment`. Shared with every Buoy tool. */
|
|
40
|
+
export function slugForTestID(value) {
|
|
41
|
+
return String(value ?? "").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "") || "unknown";
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Handle for one action row: `buoy-redux-row-counter-increment-1`.
|
|
46
|
+
*
|
|
47
|
+
* `ordinal` is 1-based and counts back from the newest row of this type.
|
|
48
|
+
*/
|
|
49
|
+
export function actionRowTestID(type, ordinal) {
|
|
50
|
+
return `${REDUX_TEST_ID}-row-${slugForTestID(type)}-${ordinal}`;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Row handle per action id for one rendered list, newest-first.
|
|
55
|
+
*
|
|
56
|
+
* Built once for the whole list rather than per row, because an ordinal is a
|
|
57
|
+
* fact about the list and a row cannot compute its own.
|
|
58
|
+
*/
|
|
59
|
+
export function buildActionRowTestIDs(actions) {
|
|
60
|
+
const seen = new Map();
|
|
61
|
+
const handles = new Map();
|
|
62
|
+
for (const action of actions) {
|
|
63
|
+
const ordinal = (seen.get(action.type) ?? 0) + 1;
|
|
64
|
+
seen.set(action.type, ordinal);
|
|
65
|
+
handles.set(action.id, actionRowTestID(action.type, ordinal));
|
|
66
|
+
}
|
|
67
|
+
return handles;
|
|
68
|
+
}
|
|
@@ -69,6 +69,7 @@ export { ReduxActionDetailView } from "./redux/components/ReduxActionDetailView"
|
|
|
69
69
|
export { ReduxActionDetailContent, ReduxActionDetailFooter, } from "./redux/components/ReduxActionDetailContent";
|
|
70
70
|
export { ReduxIcon } from "./redux/components/ReduxIcon";
|
|
71
71
|
export { ReduxAutoInstrument } from "./redux/components/ReduxAutoInstrument";
|
|
72
|
+
export { REDUX_TEST_ID, actionRowTestID, buildActionRowTestIDs, slugForTestID, } from "./redux/utils/testIDs";
|
|
72
73
|
export type { ActionCategory, ActionMeta, ReduxAction, ReduxFilter, ReduxConnectorOptions, ReduxStoreMinimal, BuoyReduxMiddlewareOptions, } from "./redux/types";
|
|
73
74
|
/** @internal */
|
|
74
75
|
export { reduxActionStore } from "./redux/utils/reduxActionStore";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAGH,OAAO,gCAAgC,CAAC;AAKxC,OAAO,4BAA4B,CAAC;AAKpC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAK5D,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAK3C,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AAItC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKjE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAG3E,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACV,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,sCAAsC,CAAC;AAO9C,OAAO,EACL,UAAU,EACV,aAAa,EACb,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAK7E,YAAY,EACV,cAAc,EACd,UAAU,EACV,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AAKvB,gBAAgB;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAGH,OAAO,gCAAgC,CAAC;AAKxC,OAAO,4BAA4B,CAAC;AAKpC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAK5D,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAK3C,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AAItC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKjE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAG3E,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACV,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,sCAAsC,CAAC;AAO9C,OAAO,EACL,UAAU,EACV,aAAa,EACb,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAK7E,OAAO,EACL,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,aAAa,GACd,MAAM,uBAAuB,CAAC;AAK/B,YAAY,EACV,cAAc,EACd,UAAU,EACV,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AAKvB,gBAAgB;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -48,7 +48,8 @@ interface ReduxActionButtonProps {
|
|
|
48
48
|
text: string;
|
|
49
49
|
type: ButtonType;
|
|
50
50
|
disabled?: boolean;
|
|
51
|
+
testID?: string;
|
|
51
52
|
}
|
|
52
|
-
export declare function ReduxActionButton({ onPress, text, type, disabled, }: ReduxActionButtonProps): import("react").JSX.Element;
|
|
53
|
+
export declare function ReduxActionButton({ onPress, text, type, disabled, testID, }: ReduxActionButtonProps): import("react").JSX.Element;
|
|
53
54
|
export {};
|
|
54
55
|
//# sourceMappingURL=ReduxActionButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReduxActionButton.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxActionButton.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,aAAa,CAAC;AAEpD,UAAU,sBAAsB;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ReduxActionButton.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxActionButton.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,aAAa,CAAC;AAEpD,UAAU,sBAAsB;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,QAAgB,EAChB,MAAM,GACP,EAAE,sBAAsB,+BAyCxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReduxActionDetailContent.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxActionDetailContent.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkBH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"ReduxActionDetailContent.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxActionDetailContent.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkBH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AASjC,UAAU,6BAA6B;IACrC,qCAAqC;IACrC,MAAM,EAAE,WAAW,CAAC;IACpB,iCAAiC;IACjC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,qCAAqC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,iDAAiD;IACjD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAwDD,wBAAgB,wBAAwB,CAAC,EACvC,MAAM,EACN,OAAO,EACP,aAAa,EACb,aAAa,EACb,qBAA6B,EAC7B,WAAsB,GACvB,EAAE,6BAA6B,+BA+P/B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,MAAM,EACN,OAAO,EACP,aAAa,EACb,aAAa,GACd,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,sCAiBA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReduxActionInfoView.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxActionInfoView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAA0D,MAAM,OAAO,CAAC;AAmB/E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ReduxActionInfoView.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxActionInfoView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAA0D,MAAM,OAAO,CAAC;AAmB/E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AAU5D,UAAU,wBAAwB;IAChC,MAAM,EAAE,WAAW,CAAC;IACpB,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CACpD;AA4ID,eAAO,MAAM,mBAAmB,sDAsgB9B,CAAC"}
|
|
@@ -6,6 +6,21 @@ import type { ReduxAction } from "../types";
|
|
|
6
6
|
interface ReduxActionItemProps {
|
|
7
7
|
action: ReduxAction;
|
|
8
8
|
onPress: (action: ReduxAction) => void;
|
|
9
|
+
/**
|
|
10
|
+
* How many captured actions share this action's requestId, supplied by the
|
|
11
|
+
* list. A row cannot derive this and stay correct: it is a fact about OTHER
|
|
12
|
+
* rows, and this component is memoized on props whose identity never changes
|
|
13
|
+
* — so a `pending` row drawn before its `fulfilled` partner existed would
|
|
14
|
+
* keep saying it is alone forever. Passing it as a prop is what brings the
|
|
15
|
+
* row back when the partner lands.
|
|
16
|
+
*/
|
|
17
|
+
linkedCount?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Row handle, built by the list (see ../utils/testIDs.ts). A row cannot
|
|
20
|
+
* build its own: the handle carries an ordinal among rows of the same action
|
|
21
|
+
* type, which is a fact about the list.
|
|
22
|
+
*/
|
|
23
|
+
testID?: string;
|
|
9
24
|
}
|
|
10
25
|
export declare const ReduxActionItem: import("react").NamedExoticComponent<ReduxActionItemProps>;
|
|
11
26
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReduxActionItem.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxActionItem.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AAG5D,UAAU,oBAAoB;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ReduxActionItem.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxActionItem.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AAG5D,UAAU,oBAAoB;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmKD,eAAO,MAAM,eAAe,4DAiI1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReduxDetailViewToggle.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxDetailViewToggle.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAe,MAAM,OAAO,CAAC;AAIpC,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAW9D,UAAU,0BAA0B;IAClC,UAAU,EAAE,mBAAmB,CAAC;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA4BD,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"ReduxDetailViewToggle.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxDetailViewToggle.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAe,MAAM,OAAO,CAAC;AAIpC,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAW9D,UAAU,0BAA0B;IAClC,UAAU,EAAE,mBAAmB,CAAC;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA4BD,eAAO,MAAM,qBAAqB,wDAkEhC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReduxModal.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxModal.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"ReduxModal.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxModal.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6CH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAAoC,CAAC;AAExE,UAAU,eAAe;IACvB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC/C;;;;;;;OAOG;IACH,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,mBAAmB,CAAC;CACzC;AAiCD,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,2BAAmC,EACnC,MAAc,EACd,cAAc,EACd,uBAAuB,EACvB,iBAAiB,GAClB,EAAE,eAAe,sCAslBjB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,KAAK,GAAE,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAM,+BAGpE"}
|
|
@@ -29,6 +29,27 @@ export declare function registerActiveStore(store: ActiveReduxStore, mech: Captu
|
|
|
29
29
|
export declare function unregisterActiveStore(store: ActiveReduxStore): void;
|
|
30
30
|
export declare function getActiveStore(): ActiveReduxStore | null;
|
|
31
31
|
export declare function getCaptureMechanism(): CaptureMechanism | null;
|
|
32
|
+
/**
|
|
33
|
+
* Record that a reducer able to serve `BUOY_JUMP_TO_STATE` is in the store.
|
|
34
|
+
*
|
|
35
|
+
* Called by the devtools-hook enhancer and by `withBuoyDevTools` — the only
|
|
36
|
+
* two things that wrap the root reducer. Capture and time travel are separate
|
|
37
|
+
* capabilities and they are wired separately: a store can be fully captured
|
|
38
|
+
* through `buoyReduxMiddleware` and still have no way to restore a state,
|
|
39
|
+
* because middleware sits ABOVE the reducer and cannot replace what it
|
|
40
|
+
* returns.
|
|
41
|
+
*/
|
|
42
|
+
export declare function markTimeTravelReducer(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Whether pressing JUMP can actually do anything.
|
|
45
|
+
*
|
|
46
|
+
* Worth a first-class answer rather than a try-and-see, because the failure is
|
|
47
|
+
* invisible: `jumpToState` dispatches into a store that simply does not
|
|
48
|
+
* recognise the action, the reducer returns the state it already had, and the
|
|
49
|
+
* screen does not move. From the outside that is indistinguishable from a
|
|
50
|
+
* devtool that is broken.
|
|
51
|
+
*/
|
|
52
|
+
export declare function isTimeTravelAvailable(): boolean;
|
|
32
53
|
/**
|
|
33
54
|
* Recorded by the auto-instrument hook so non-React surfaces (sync adapter,
|
|
34
55
|
* MCP) can report WHY there's no store instead of a generic failure.
|
|
@@ -40,6 +61,12 @@ export interface InstrumentationStatus {
|
|
|
40
61
|
/** What the bound mechanism can see. */
|
|
41
62
|
capture: "full" | "top-level-only" | "none";
|
|
42
63
|
hasStore: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Whether a state JUMP would do anything. Independent of `capture`: the
|
|
66
|
+
* middleware path is full capture with no time travel unless the root
|
|
67
|
+
* reducer was also wrapped. See markTimeTravelReducer.
|
|
68
|
+
*/
|
|
69
|
+
timeTravel: boolean;
|
|
43
70
|
/** Why there's no store, when known (from the auto-instrument hook). */
|
|
44
71
|
diagnostic: ReduxDiagnostic;
|
|
45
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activeStoreRegistry.d.ts","sourceRoot":"","sources":["../../../../src/redux/utils/activeStoreRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,OAAO,CAAC;IAIxB,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC;AAEnE,yDAAyD;AACzD,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,aAAa,GAAG,IAAI,CAAC;AAEtE,oEAAoE;AACpE,eAAO,MAAM,eAAe,eAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"activeStoreRegistry.d.ts","sourceRoot":"","sources":["../../../../src/redux/utils/activeStoreRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,OAAO,CAAC;IAIxB,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC;AAEnE,yDAAyD;AACzD,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,aAAa,GAAG,IAAI,CAAC;AAEtE,oEAAoE;AACpE,eAAO,MAAM,eAAe,eAA4C,CAAC;AAOzE,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,gBAAgB,GACrB,IAAI,CAIN;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAKnE;AAED,wBAAgB,cAAc,IAAI,gBAAgB,GAAG,IAAI,CAExD;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAE7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,eAAe,GAAG,IAAI,CAE3D;AAED,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,wCAAwC;IACxC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,MAAM,CAAC;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB,wEAAwE;IACxE,UAAU,EAAE,eAAe,CAAC;CAC7B;AAED,wBAAgB,wBAAwB,IAAI,qBAAqB,CAahE"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* rejected, RTK Query) bypass the patch. That's why this mechanism reports
|
|
13
13
|
* capture as "top-level-only" — see activeStoreRegistry.getInstrumentationStatus.
|
|
14
14
|
*/
|
|
15
|
-
import type { Store
|
|
15
|
+
import type { Store } from "@reduxjs/toolkit";
|
|
16
16
|
import { type ActiveReduxStore } from "./activeStoreRegistry";
|
|
17
17
|
export { getInstrumentationStatus, type InstrumentationStatus, type CaptureMechanism, } from "./activeStoreRegistry";
|
|
18
18
|
export interface AutoInstrumentOptions {
|
|
@@ -58,18 +58,14 @@ export declare function uninstrumentStore(store: Store): void;
|
|
|
58
58
|
*/
|
|
59
59
|
export declare function registerReduxStore(store: Store, options?: AutoInstrumentOptions): () => void;
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
61
|
+
* Time travel lives in buoyReduxMiddleware.ts and is re-exported here.
|
|
62
62
|
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
63
|
+
* It used to be reimplemented in this file, and the two copies drifted: this
|
|
64
|
+
* one learned to notice that a jump had been ignored, the one the modal's JUMP
|
|
65
|
+
* button actually calls never did. So the detection existed and no user could
|
|
66
|
+
* ever have seen it. One implementation, one behaviour.
|
|
67
67
|
*/
|
|
68
|
-
export
|
|
69
|
-
/**
|
|
70
|
-
* Replay an action (dispatch it again)
|
|
71
|
-
*/
|
|
72
|
-
export declare function replayAction(action: UnknownAction): void;
|
|
68
|
+
export { jumpToState, replayAction, isTimeTravelAvailable, } from "./buoyReduxMiddleware";
|
|
73
69
|
/**
|
|
74
70
|
* Get the currently active (instrumented) store.
|
|
75
71
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autoInstrument.d.ts","sourceRoot":"","sources":["../../../../src/redux/utils/autoInstrument.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"autoInstrument.d.ts","sourceRoot":"","sources":["../../../../src/redux/utils/autoInstrument.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAiB,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAsB/B,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAGzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,qBAA0B,GAClC,MAAM,IAAI,CAuFZ;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAapD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,qBAA0B,GAClC,MAAM,IAAI,CAEZ;AAMD;;;;;;;GAOG;AACH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;GAMG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,GAAG,IAAI,CAExD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD"}
|
|
@@ -25,11 +25,25 @@ export declare const BUOY_REPLAY_ACTION = "@@buoy/REPLAY_ACTION";
|
|
|
25
25
|
/**
|
|
26
26
|
* Jump to a specific state (time-travel).
|
|
27
27
|
*
|
|
28
|
-
* Registry-backed, so it
|
|
29
|
-
*
|
|
30
|
-
*
|
|
28
|
+
* Registry-backed, so it reaches the store on every capture path — but
|
|
29
|
+
* REACHING the store is not the same as being able to jump, and conflating the
|
|
30
|
+
* two is what made this fail invisibly. A jump is an action like any other: it
|
|
31
|
+
* only does something if a reducer handles it, and the only two things that
|
|
32
|
+
* install such a reducer are the devtools-hook enhancer and `withBuoyDevTools`.
|
|
33
|
+
* An app that captures through `buoyReduxMiddleware` alone dispatches the jump
|
|
34
|
+
* into a store that has never heard of it, gets its own state back, and shows
|
|
35
|
+
* a screen that does not move — with no error, because nothing went wrong.
|
|
36
|
+
*
|
|
37
|
+
* So the capability is checked up front and refused out loud. The UI asks the
|
|
38
|
+
* same question (`isTimeTravelAvailable`) and disables the button, which is the
|
|
39
|
+
* half a warning cannot do.
|
|
31
40
|
*/
|
|
32
41
|
export declare function jumpToState(state: unknown): void;
|
|
42
|
+
/**
|
|
43
|
+
* Whether the JUMP affordance can do anything in this app. Re-exported from
|
|
44
|
+
* the registry so hosts have one import for the whole time-travel surface.
|
|
45
|
+
*/
|
|
46
|
+
export { isTimeTravelAvailable } from "./activeStoreRegistry";
|
|
33
47
|
/**
|
|
34
48
|
* Replay an action (dispatch it again)
|
|
35
49
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buoyReduxMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/redux/utils/buoyReduxMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"buoyReduxMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/redux/utils/buoyReduxMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAgB3D;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAMD,eAAO,MAAM,kBAAkB,yBAAyB,CAAC;AACzD,eAAO,MAAM,kBAAkB,yBAAyB,CAAC;AAczD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAsBhD;AAED;;;GAGG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAOxD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAcnE;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,UA4BjC,CAAC;AAEF;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,0BAA+B,GACvC,UAAU,CAoCZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtoolsHook.d.ts","sourceRoot":"","sources":["../../../../src/redux/utils/devtoolsHook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;
|
|
1
|
+
{"version":3,"file":"devtoolsHook.d.ts","sourceRoot":"","sources":["../../../../src/redux/utils/devtoolsHook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAWH,KAAK,UAAU,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;AACnD,KAAK,cAAc,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,OAAO,KAAK,GAAG,CAAC;AAmC7E;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC9B,aAAa,cAAc,MAC3B,SAAS,UAAU,EAAE,iBAAiB,OAAO,QAgC7C,CAAC;AAuBJ;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAU3C;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redux tool test handles.
|
|
3
|
+
*
|
|
4
|
+
* Every tappable and every value the e2e suite reads back is addressed
|
|
5
|
+
* `buoy-redux-<thing>`. One rule in here needs explaining, because it is the
|
|
6
|
+
* opposite of what the Events tool does and the difference is not cosmetic:
|
|
7
|
+
*
|
|
8
|
+
* **A redux row's handle carries an ORDINAL.** The Events tool can address a
|
|
9
|
+
* row by what it is about, because an event is a thing that happened to a
|
|
10
|
+
* named subject — one key, one URL, one atom. A redux action is not: an app
|
|
11
|
+
* dispatches `counter/increment` fifty times and every one of them is a
|
|
12
|
+
* separate, equally real row. Addressing them by type alone would give fifty
|
|
13
|
+
* views one handle, and Detox fails a *matcher* that hits more than one
|
|
14
|
+
* element — so the suite would break on `toExist()`, before any assertion,
|
|
15
|
+
* with an error that says nothing about duplicate actions.
|
|
16
|
+
*
|
|
17
|
+
* So the handle is `buoy-redux-row-<slug(type)>-<n>`, where n counts back from
|
|
18
|
+
* the newest row of that type (1 = newest). It is deliberately relative to the
|
|
19
|
+
* list rather than absolute: an action has no identity of its own that a host
|
|
20
|
+
* could know in advance — `id` is a timestamp plus a per-process counter, and
|
|
21
|
+
* the counter's value depends on how many actions the app happened to dispatch
|
|
22
|
+
* before the test looked. What a test CAN know is "the increment I just fired
|
|
23
|
+
* is the newest increment", which is exactly what `-1` means.
|
|
24
|
+
*
|
|
25
|
+
* The consequence, and it is the same one the Events tool documents for its
|
|
26
|
+
* positional-free handles: read and tap in one beat. A row's ordinal changes
|
|
27
|
+
* the moment another action of that type arrives.
|
|
28
|
+
*
|
|
29
|
+
* The suite mirrors these rules in CommonJS (`example-dev-build/utils/
|
|
30
|
+
* reduxBench.js`) and asserts the two agree — Detox runs in Node on the host
|
|
31
|
+
* and cannot import TypeScript.
|
|
32
|
+
*/
|
|
33
|
+
import type { ReduxAction } from "../types";
|
|
34
|
+
/** Prefix every handle in this tool shares. */
|
|
35
|
+
export declare const REDUX_TEST_ID = "buoy-redux";
|
|
36
|
+
/** `counter/increment` → `counter-increment`. Shared with every Buoy tool. */
|
|
37
|
+
export declare function slugForTestID(value: unknown): string;
|
|
38
|
+
/**
|
|
39
|
+
* Handle for one action row: `buoy-redux-row-counter-increment-1`.
|
|
40
|
+
*
|
|
41
|
+
* `ordinal` is 1-based and counts back from the newest row of this type.
|
|
42
|
+
*/
|
|
43
|
+
export declare function actionRowTestID(type: string, ordinal: number): string;
|
|
44
|
+
/**
|
|
45
|
+
* Row handle per action id for one rendered list, newest-first.
|
|
46
|
+
*
|
|
47
|
+
* Built once for the whole list rather than per row, because an ordinal is a
|
|
48
|
+
* fact about the list and a row cannot compute its own.
|
|
49
|
+
*/
|
|
50
|
+
export declare function buildActionRowTestIDs(actions: ReduxAction[]): Map<string, string>;
|
|
51
|
+
//# sourceMappingURL=testIDs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testIDs.d.ts","sourceRoot":"","sources":["../../../../src/redux/utils/testIDs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,+CAA+C;AAC/C,eAAO,MAAM,aAAa,eAAe,CAAC;AAE1C,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOpD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,WAAW,EAAE,GACrB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CASrB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/redux",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.32",
|
|
4
4
|
"description": "Redux DevTools inside your React Native app — action log, state diffs & time travel with zero store changes. Part of Buoy devtools.",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"**/snapshotProvider.ts"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@buoy-gg/shared-ui": "^7.0.
|
|
35
|
-
"@buoy-gg/
|
|
36
|
-
"@buoy-gg/
|
|
34
|
+
"@buoy-gg/shared-ui": "^7.0.32",
|
|
35
|
+
"@buoy-gg/license": "^7.0.32",
|
|
36
|
+
"@buoy-gg/floating-tools-core": "^7.0.32"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"@reduxjs/toolkit": ">=1.9.0",
|