@react-navigation/devtools 6.0.14 → 6.0.15

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.
Files changed (37) hide show
  1. package/lib/commonjs/index.js +0 -3
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/parseErrorStack.js +3 -15
  4. package/lib/commonjs/parseErrorStack.js.map +1 -1
  5. package/lib/commonjs/parseHermesStack.js +6 -17
  6. package/lib/commonjs/parseHermesStack.js.map +1 -1
  7. package/lib/commonjs/useDevToolsBase.js +8 -26
  8. package/lib/commonjs/useDevToolsBase.js.map +1 -1
  9. package/lib/commonjs/useFlipper.js +7 -29
  10. package/lib/commonjs/useFlipper.js.map +1 -1
  11. package/lib/commonjs/useReduxDevToolsExtension.js +0 -12
  12. package/lib/commonjs/useReduxDevToolsExtension.js.map +1 -1
  13. package/lib/module/index.js +0 -2
  14. package/lib/module/index.js.map +1 -1
  15. package/lib/module/parseErrorStack.js +3 -10
  16. package/lib/module/parseErrorStack.js.map +1 -1
  17. package/lib/module/parseHermesStack.js +6 -16
  18. package/lib/module/parseHermesStack.js.map +1 -1
  19. package/lib/module/useDevToolsBase.js +8 -19
  20. package/lib/module/useDevToolsBase.js.map +1 -1
  21. package/lib/module/useFlipper.js +7 -22
  22. package/lib/module/useFlipper.js.map +1 -1
  23. package/lib/module/useReduxDevToolsExtension.js +0 -6
  24. package/lib/module/useReduxDevToolsExtension.js.map +1 -1
  25. package/lib/typescript/src/index.d.ts +1 -0
  26. package/lib/typescript/src/index.d.ts.map +1 -0
  27. package/lib/typescript/src/parseErrorStack.d.ts +1 -0
  28. package/lib/typescript/src/parseErrorStack.d.ts.map +1 -0
  29. package/lib/typescript/src/parseHermesStack.d.ts +1 -0
  30. package/lib/typescript/src/parseHermesStack.d.ts.map +1 -0
  31. package/lib/typescript/src/useDevToolsBase.d.ts +1 -0
  32. package/lib/typescript/src/useDevToolsBase.d.ts.map +1 -0
  33. package/lib/typescript/src/useFlipper.d.ts +1 -0
  34. package/lib/typescript/src/useFlipper.d.ts.map +1 -0
  35. package/lib/typescript/src/useReduxDevToolsExtension.d.ts +1 -0
  36. package/lib/typescript/src/useReduxDevToolsExtension.d.ts.map +1 -0
  37. package/package.json +4 -4
@@ -4,26 +4,22 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
+
7
8
  import * as stacktraceParser from 'stacktrace-parser';
8
9
  import parseHermesStack from './parseHermesStack';
9
-
10
10
  function convertHermesStack(stack) {
11
11
  const frames = [];
12
-
13
12
  for (const entry of stack.entries) {
14
13
  if (entry.type !== 'FRAME') {
15
14
  continue;
16
15
  }
17
-
18
16
  const {
19
17
  location,
20
18
  functionName
21
19
  } = entry;
22
-
23
20
  if (location.type === 'NATIVE') {
24
21
  continue;
25
22
  }
26
-
27
23
  frames.push({
28
24
  methodName: functionName,
29
25
  file: location.sourceUrl,
@@ -31,20 +27,17 @@ function convertHermesStack(stack) {
31
27
  column: location.type === 'SOURCE' ? location.column1Based - 1 : location.virtualOffset0Based
32
28
  });
33
29
  }
34
-
35
30
  return frames;
36
31
  }
37
-
38
32
  function parseErrorStack(errorStack) {
39
33
  if (!errorStack) {
40
34
  return [];
41
35
  }
42
-
43
- const parsedStack = Array.isArray(errorStack) ? errorStack : global.HermesInternal ? convertHermesStack(parseHermesStack(errorStack)) : stacktraceParser.parse(errorStack).map(frame => ({ ...frame,
36
+ const parsedStack = Array.isArray(errorStack) ? errorStack : global.HermesInternal ? convertHermesStack(parseHermesStack(errorStack)) : stacktraceParser.parse(errorStack).map(frame => ({
37
+ ...frame,
44
38
  column: frame.column != null ? frame.column - 1 : null
45
39
  }));
46
40
  return parsedStack;
47
41
  }
48
-
49
42
  export default parseErrorStack;
50
43
  //# sourceMappingURL=parseErrorStack.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["stacktraceParser","parseHermesStack","convertHermesStack","stack","frames","entry","entries","type","location","functionName","push","methodName","file","sourceUrl","lineNumber","line1Based","column","column1Based","virtualOffset0Based","parseErrorStack","errorStack","parsedStack","Array","isArray","global","HermesInternal","parse","map","frame"],"sources":["parseErrorStack.tsx"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport * as stacktraceParser from 'stacktrace-parser';\n\nimport parseHermesStack, { HermesParsedStack } from './parseHermesStack';\n\ninterface StackFrame {\n methodName: string;\n file: string;\n lineNumber: number;\n column: number;\n}\n\nfunction convertHermesStack(stack: HermesParsedStack): StackFrame[] {\n const frames = [];\n for (const entry of stack.entries) {\n if (entry.type !== 'FRAME') {\n continue;\n }\n const { location, functionName } = entry;\n if (location.type === 'NATIVE') {\n continue;\n }\n frames.push({\n methodName: functionName,\n file: location.sourceUrl,\n lineNumber: location.line1Based,\n column:\n location.type === 'SOURCE'\n ? location.column1Based - 1\n : location.virtualOffset0Based,\n });\n }\n return frames;\n}\n\nfunction parseErrorStack(errorStack?: string | StackFrame[]): StackFrame[] {\n if (!errorStack) {\n return [];\n }\n\n const parsedStack = Array.isArray(errorStack)\n ? errorStack\n : (global as any).HermesInternal\n ? convertHermesStack(parseHermesStack(errorStack))\n : stacktraceParser.parse(errorStack).map((frame) => ({\n ...frame,\n column: frame.column != null ? frame.column - 1 : null,\n }));\n\n return parsedStack as StackFrame[];\n}\n\nexport default parseErrorStack;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAO,KAAKA,gBAAZ,MAAkC,mBAAlC;AAEA,OAAOC,gBAAP,MAAoD,oBAApD;;AASA,SAASC,kBAAT,CAA4BC,KAA5B,EAAoE;EAClE,MAAMC,MAAM,GAAG,EAAf;;EACA,KAAK,MAAMC,KAAX,IAAoBF,KAAK,CAACG,OAA1B,EAAmC;IACjC,IAAID,KAAK,CAACE,IAAN,KAAe,OAAnB,EAA4B;MAC1B;IACD;;IACD,MAAM;MAAEC,QAAF;MAAYC;IAAZ,IAA6BJ,KAAnC;;IACA,IAAIG,QAAQ,CAACD,IAAT,KAAkB,QAAtB,EAAgC;MAC9B;IACD;;IACDH,MAAM,CAACM,IAAP,CAAY;MACVC,UAAU,EAAEF,YADF;MAEVG,IAAI,EAAEJ,QAAQ,CAACK,SAFL;MAGVC,UAAU,EAAEN,QAAQ,CAACO,UAHX;MAIVC,MAAM,EACJR,QAAQ,CAACD,IAAT,KAAkB,QAAlB,GACIC,QAAQ,CAACS,YAAT,GAAwB,CAD5B,GAEIT,QAAQ,CAACU;IAPL,CAAZ;EASD;;EACD,OAAOd,MAAP;AACD;;AAED,SAASe,eAAT,CAAyBC,UAAzB,EAA2E;EACzE,IAAI,CAACA,UAAL,EAAiB;IACf,OAAO,EAAP;EACD;;EAED,MAAMC,WAAW,GAAGC,KAAK,CAACC,OAAN,CAAcH,UAAd,IAChBA,UADgB,GAEfI,MAAD,CAAgBC,cAAhB,GACAvB,kBAAkB,CAACD,gBAAgB,CAACmB,UAAD,CAAjB,CADlB,GAEApB,gBAAgB,CAAC0B,KAAjB,CAAuBN,UAAvB,EAAmCO,GAAnC,CAAwCC,KAAD,KAAY,EACjD,GAAGA,KAD8C;IAEjDZ,MAAM,EAAEY,KAAK,CAACZ,MAAN,IAAgB,IAAhB,GAAuBY,KAAK,CAACZ,MAAN,GAAe,CAAtC,GAA0C;EAFD,CAAZ,CAAvC,CAJJ;EASA,OAAOK,WAAP;AACD;;AAED,eAAeF,eAAf"}
1
+ {"version":3,"names":["stacktraceParser","parseHermesStack","convertHermesStack","stack","frames","entry","entries","type","location","functionName","push","methodName","file","sourceUrl","lineNumber","line1Based","column","column1Based","virtualOffset0Based","parseErrorStack","errorStack","parsedStack","Array","isArray","global","HermesInternal","parse","map","frame"],"sourceRoot":"../../src","sources":["parseErrorStack.tsx"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,gBAAgB,MAAM,mBAAmB;AAErD,OAAOC,gBAAgB,MAA6B,oBAAoB;AASxE,SAASC,kBAAkB,CAACC,KAAwB,EAAgB;EAClE,MAAMC,MAAM,GAAG,EAAE;EACjB,KAAK,MAAMC,KAAK,IAAIF,KAAK,CAACG,OAAO,EAAE;IACjC,IAAID,KAAK,CAACE,IAAI,KAAK,OAAO,EAAE;MAC1B;IACF;IACA,MAAM;MAAEC,QAAQ;MAAEC;IAAa,CAAC,GAAGJ,KAAK;IACxC,IAAIG,QAAQ,CAACD,IAAI,KAAK,QAAQ,EAAE;MAC9B;IACF;IACAH,MAAM,CAACM,IAAI,CAAC;MACVC,UAAU,EAAEF,YAAY;MACxBG,IAAI,EAAEJ,QAAQ,CAACK,SAAS;MACxBC,UAAU,EAAEN,QAAQ,CAACO,UAAU;MAC/BC,MAAM,EACJR,QAAQ,CAACD,IAAI,KAAK,QAAQ,GACtBC,QAAQ,CAACS,YAAY,GAAG,CAAC,GACzBT,QAAQ,CAACU;IACjB,CAAC,CAAC;EACJ;EACA,OAAOd,MAAM;AACf;AAEA,SAASe,eAAe,CAACC,UAAkC,EAAgB;EACzE,IAAI,CAACA,UAAU,EAAE;IACf,OAAO,EAAE;EACX;EAEA,MAAMC,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,GACzCA,UAAU,GACTI,MAAM,CAASC,cAAc,GAC9BvB,kBAAkB,CAACD,gBAAgB,CAACmB,UAAU,CAAC,CAAC,GAChDpB,gBAAgB,CAAC0B,KAAK,CAACN,UAAU,CAAC,CAACO,GAAG,CAAEC,KAAK,KAAM;IACjD,GAAGA,KAAK;IACRZ,MAAM,EAAEY,KAAK,CAACZ,MAAM,IAAI,IAAI,GAAGY,KAAK,CAACZ,MAAM,GAAG,CAAC,GAAG;EACpD,CAAC,CAAC,CAAC;EAEP,OAAOK,WAAW;AACpB;AAEA,eAAeF,eAAe"}
@@ -4,6 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
+
7
8
  // Capturing groups:
8
9
  // 1. function name
9
10
  // 2. is this a native stack frame?
@@ -11,14 +12,13 @@
11
12
  // 4. source URL (filename)
12
13
  // 5. line number (1 based)
13
14
  // 6. column number (1 based) or virtual offset (0 based)
14
- const RE_FRAME = /^ {0,4}at (.+?)(?: \((native)\)?| \((address at )?(.*?):(\d+):(\d+)\))$/; // Capturing groups:
15
- // 1. count of skipped frames
15
+ const RE_FRAME = /^ {0,4}at (.+?)(?: \((native)\)?| \((address at )?(.*?):(\d+):(\d+)\))$/;
16
16
 
17
+ // Capturing groups:
18
+ // 1. count of skipped frames
17
19
  const RE_SKIPPED = /^ {0,4}... skipping (\d) frames$/;
18
-
19
20
  function parseLine(line) {
20
21
  const asFrame = line.match(RE_FRAME);
21
-
22
22
  if (asFrame) {
23
23
  return {
24
24
  type: 'FRAME',
@@ -38,43 +38,33 @@ function parseLine(line) {
38
38
  }
39
39
  };
40
40
  }
41
-
42
41
  const asSkipped = line.match(RE_SKIPPED);
43
-
44
42
  if (asSkipped) {
45
43
  return {
46
44
  type: 'SKIPPED',
47
45
  count: Number.parseInt(asSkipped[1], 10)
48
46
  };
49
47
  }
50
-
51
48
  return undefined;
52
49
  }
53
-
54
50
  export default function parseHermesStack(stack) {
55
51
  const lines = stack.split(/\n/);
56
52
  let entries = [];
57
53
  let lastMessageLine = -1;
58
-
59
54
  for (let i = 0; i < lines.length; ++i) {
60
55
  const line = lines[i];
61
-
62
56
  if (!line) {
63
57
  continue;
64
58
  }
65
-
66
59
  const entry = parseLine(line);
67
-
68
60
  if (entry) {
69
61
  entries.push(entry);
70
62
  continue;
71
- } // No match - we're still in the message
72
-
73
-
63
+ }
64
+ // No match - we're still in the message
74
65
  lastMessageLine = i;
75
66
  entries = [];
76
67
  }
77
-
78
68
  const message = lines.slice(0, lastMessageLine + 1).join('\n');
79
69
  return {
80
70
  message,
@@ -1 +1 @@
1
- {"version":3,"names":["RE_FRAME","RE_SKIPPED","parseLine","line","asFrame","match","type","functionName","location","sourceUrl","line1Based","Number","parseInt","virtualOffset0Based","column1Based","asSkipped","count","undefined","parseHermesStack","stack","lines","split","entries","lastMessageLine","i","length","entry","push","message","slice","join"],"sources":["parseHermesStack.tsx"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\ninterface HermesStackLocationNative {\n type: 'NATIVE';\n}\n\ninterface HermesStackLocationSource {\n type: 'SOURCE';\n sourceUrl: string;\n line1Based: number;\n column1Based: number;\n}\n\ninterface HermesStackLocationBytecode {\n type: 'BYTECODE';\n sourceUrl: string;\n line1Based: number;\n virtualOffset0Based: number;\n}\n\ntype HermesStackLocation =\n | HermesStackLocationNative\n | HermesStackLocationSource\n | HermesStackLocationBytecode;\n\ninterface HermesStackEntryFrame {\n type: 'FRAME';\n location: HermesStackLocation;\n functionName: string;\n}\n\ninterface HermesStackEntrySkipped {\n type: 'SKIPPED';\n count: number;\n}\n\ntype HermesStackEntry = HermesStackEntryFrame | HermesStackEntrySkipped;\n\nexport interface HermesParsedStack {\n message: string;\n entries: HermesStackEntry[];\n}\n\n// Capturing groups:\n// 1. function name\n// 2. is this a native stack frame?\n// 3. is this a bytecode address or a source location?\n// 4. source URL (filename)\n// 5. line number (1 based)\n// 6. column number (1 based) or virtual offset (0 based)\nconst RE_FRAME =\n /^ {0,4}at (.+?)(?: \\((native)\\)?| \\((address at )?(.*?):(\\d+):(\\d+)\\))$/;\n\n// Capturing groups:\n// 1. count of skipped frames\nconst RE_SKIPPED = /^ {0,4}... skipping (\\d) frames$/;\n\nfunction parseLine(line: string): HermesStackEntry | undefined {\n const asFrame = line.match(RE_FRAME);\n if (asFrame) {\n return {\n type: 'FRAME',\n functionName: asFrame[1],\n location:\n asFrame[2] === 'native'\n ? { type: 'NATIVE' }\n : asFrame[3] === 'address at '\n ? {\n type: 'BYTECODE',\n sourceUrl: asFrame[4],\n line1Based: Number.parseInt(asFrame[5], 10),\n virtualOffset0Based: Number.parseInt(asFrame[6], 10),\n }\n : {\n type: 'SOURCE',\n sourceUrl: asFrame[4],\n line1Based: Number.parseInt(asFrame[5], 10),\n column1Based: Number.parseInt(asFrame[6], 10),\n },\n };\n }\n const asSkipped = line.match(RE_SKIPPED);\n if (asSkipped) {\n return {\n type: 'SKIPPED',\n count: Number.parseInt(asSkipped[1], 10),\n };\n }\n return undefined;\n}\n\nexport default function parseHermesStack(stack: string): HermesParsedStack {\n const lines = stack.split(/\\n/);\n let entries = [];\n let lastMessageLine = -1;\n for (let i = 0; i < lines.length; ++i) {\n const line = lines[i];\n if (!line) {\n continue;\n }\n const entry = parseLine(line);\n if (entry) {\n entries.push(entry);\n continue;\n }\n // No match - we're still in the message\n lastMessageLine = i;\n entries = [];\n }\n const message = lines.slice(0, lastMessageLine + 1).join('\\n');\n return { message, entries };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AA2CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,QAAQ,GACZ,yEADF,C,CAGA;AACA;;AACA,MAAMC,UAAU,GAAG,kCAAnB;;AAEA,SAASC,SAAT,CAAmBC,IAAnB,EAA+D;EAC7D,MAAMC,OAAO,GAAGD,IAAI,CAACE,KAAL,CAAWL,QAAX,CAAhB;;EACA,IAAII,OAAJ,EAAa;IACX,OAAO;MACLE,IAAI,EAAE,OADD;MAELC,YAAY,EAAEH,OAAO,CAAC,CAAD,CAFhB;MAGLI,QAAQ,EACNJ,OAAO,CAAC,CAAD,CAAP,KAAe,QAAf,GACI;QAAEE,IAAI,EAAE;MAAR,CADJ,GAEIF,OAAO,CAAC,CAAD,CAAP,KAAe,aAAf,GACA;QACEE,IAAI,EAAE,UADR;QAEEG,SAAS,EAAEL,OAAO,CAAC,CAAD,CAFpB;QAGEM,UAAU,EAAEC,MAAM,CAACC,QAAP,CAAgBR,OAAO,CAAC,CAAD,CAAvB,EAA4B,EAA5B,CAHd;QAIES,mBAAmB,EAAEF,MAAM,CAACC,QAAP,CAAgBR,OAAO,CAAC,CAAD,CAAvB,EAA4B,EAA5B;MAJvB,CADA,GAOA;QACEE,IAAI,EAAE,QADR;QAEEG,SAAS,EAAEL,OAAO,CAAC,CAAD,CAFpB;QAGEM,UAAU,EAAEC,MAAM,CAACC,QAAP,CAAgBR,OAAO,CAAC,CAAD,CAAvB,EAA4B,EAA5B,CAHd;QAIEU,YAAY,EAAEH,MAAM,CAACC,QAAP,CAAgBR,OAAO,CAAC,CAAD,CAAvB,EAA4B,EAA5B;MAJhB;IAbD,CAAP;EAoBD;;EACD,MAAMW,SAAS,GAAGZ,IAAI,CAACE,KAAL,CAAWJ,UAAX,CAAlB;;EACA,IAAIc,SAAJ,EAAe;IACb,OAAO;MACLT,IAAI,EAAE,SADD;MAELU,KAAK,EAAEL,MAAM,CAACC,QAAP,CAAgBG,SAAS,CAAC,CAAD,CAAzB,EAA8B,EAA9B;IAFF,CAAP;EAID;;EACD,OAAOE,SAAP;AACD;;AAED,eAAe,SAASC,gBAAT,CAA0BC,KAA1B,EAA4D;EACzE,MAAMC,KAAK,GAAGD,KAAK,CAACE,KAAN,CAAY,IAAZ,CAAd;EACA,IAAIC,OAAO,GAAG,EAAd;EACA,IAAIC,eAAe,GAAG,CAAC,CAAvB;;EACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,KAAK,CAACK,MAA1B,EAAkC,EAAED,CAApC,EAAuC;IACrC,MAAMrB,IAAI,GAAGiB,KAAK,CAACI,CAAD,CAAlB;;IACA,IAAI,CAACrB,IAAL,EAAW;MACT;IACD;;IACD,MAAMuB,KAAK,GAAGxB,SAAS,CAACC,IAAD,CAAvB;;IACA,IAAIuB,KAAJ,EAAW;MACTJ,OAAO,CAACK,IAAR,CAAaD,KAAb;MACA;IACD,CAToC,CAUrC;;;IACAH,eAAe,GAAGC,CAAlB;IACAF,OAAO,GAAG,EAAV;EACD;;EACD,MAAMM,OAAO,GAAGR,KAAK,CAACS,KAAN,CAAY,CAAZ,EAAeN,eAAe,GAAG,CAAjC,EAAoCO,IAApC,CAAyC,IAAzC,CAAhB;EACA,OAAO;IAAEF,OAAF;IAAWN;EAAX,CAAP;AACD"}
1
+ {"version":3,"names":["RE_FRAME","RE_SKIPPED","parseLine","line","asFrame","match","type","functionName","location","sourceUrl","line1Based","Number","parseInt","virtualOffset0Based","column1Based","asSkipped","count","undefined","parseHermesStack","stack","lines","split","entries","lastMessageLine","i","length","entry","push","message","slice","join"],"sourceRoot":"../../src","sources":["parseHermesStack.tsx"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;AA2CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,QAAQ,GACZ,yEAAyE;;AAE3E;AACA;AACA,MAAMC,UAAU,GAAG,kCAAkC;AAErD,SAASC,SAAS,CAACC,IAAY,EAAgC;EAC7D,MAAMC,OAAO,GAAGD,IAAI,CAACE,KAAK,CAACL,QAAQ,CAAC;EACpC,IAAII,OAAO,EAAE;IACX,OAAO;MACLE,IAAI,EAAE,OAAO;MACbC,YAAY,EAAEH,OAAO,CAAC,CAAC,CAAC;MACxBI,QAAQ,EACNJ,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,GACnB;QAAEE,IAAI,EAAE;MAAS,CAAC,GAClBF,OAAO,CAAC,CAAC,CAAC,KAAK,aAAa,GAC5B;QACEE,IAAI,EAAE,UAAU;QAChBG,SAAS,EAAEL,OAAO,CAAC,CAAC,CAAC;QACrBM,UAAU,EAAEC,MAAM,CAACC,QAAQ,CAACR,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3CS,mBAAmB,EAAEF,MAAM,CAACC,QAAQ,CAACR,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;MACrD,CAAC,GACD;QACEE,IAAI,EAAE,QAAQ;QACdG,SAAS,EAAEL,OAAO,CAAC,CAAC,CAAC;QACrBM,UAAU,EAAEC,MAAM,CAACC,QAAQ,CAACR,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3CU,YAAY,EAAEH,MAAM,CAACC,QAAQ,CAACR,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;MAC9C;IACR,CAAC;EACH;EACA,MAAMW,SAAS,GAAGZ,IAAI,CAACE,KAAK,CAACJ,UAAU,CAAC;EACxC,IAAIc,SAAS,EAAE;IACb,OAAO;MACLT,IAAI,EAAE,SAAS;MACfU,KAAK,EAAEL,MAAM,CAACC,QAAQ,CAACG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;IACzC,CAAC;EACH;EACA,OAAOE,SAAS;AAClB;AAEA,eAAe,SAASC,gBAAgB,CAACC,KAAa,EAAqB;EACzE,MAAMC,KAAK,GAAGD,KAAK,CAACE,KAAK,CAAC,IAAI,CAAC;EAC/B,IAAIC,OAAO,GAAG,EAAE;EAChB,IAAIC,eAAe,GAAG,CAAC,CAAC;EACxB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,KAAK,CAACK,MAAM,EAAE,EAAED,CAAC,EAAE;IACrC,MAAMrB,IAAI,GAAGiB,KAAK,CAACI,CAAC,CAAC;IACrB,IAAI,CAACrB,IAAI,EAAE;MACT;IACF;IACA,MAAMuB,KAAK,GAAGxB,SAAS,CAACC,IAAI,CAAC;IAC7B,IAAIuB,KAAK,EAAE;MACTJ,OAAO,CAACK,IAAI,CAACD,KAAK,CAAC;MACnB;IACF;IACA;IACAH,eAAe,GAAGC,CAAC;IACnBF,OAAO,GAAG,EAAE;EACd;EACA,MAAMM,OAAO,GAAGR,KAAK,CAACS,KAAK,CAAC,CAAC,EAAEN,eAAe,GAAG,CAAC,CAAC,CAACO,IAAI,CAAC,IAAI,CAAC;EAC9D,OAAO;IAAEF,OAAO;IAAEN;EAAQ,CAAC;AAC7B"}
@@ -9,21 +9,16 @@ export default function useDevToolsBase(ref, callback) {
9
9
  React.useEffect(() => {
10
10
  callbackRef.current = callback;
11
11
  });
12
-
13
12
  const symbolicate = async stack => {
14
13
  var _frames$, _frames$$file;
15
-
16
14
  if (stack == null) {
17
15
  return undefined;
18
16
  }
19
-
20
17
  const frames = parseErrorStack(stack).slice(2).filter(frame => frame.file !== '[native code]');
21
18
  const urlMatch = (_frames$ = frames[0]) === null || _frames$ === void 0 ? void 0 : (_frames$$file = _frames$.file) === null || _frames$$file === void 0 ? void 0 : _frames$$file.match(/^https?:\/\/.+(:\d+)?\//);
22
-
23
19
  if (!urlMatch) {
24
20
  return stack;
25
21
  }
26
-
27
22
  try {
28
23
  const result = await fetch(`${urlMatch[0]}symbolicate`, {
29
24
  method: 'POST',
@@ -44,22 +39,22 @@ export default function useDevToolsBase(ref, callback) {
44
39
  return stack;
45
40
  }
46
41
  };
47
-
48
42
  const pendingPromiseRef = React.useRef(Promise.resolve());
49
43
  const send = React.useCallback(data => {
50
44
  // We need to make sure that our callbacks executed in the same order
51
45
  // So we add check if the last promise is settled before sending the next one
52
- pendingPromiseRef.current = pendingPromiseRef.current.catch(() => {// Ignore any errors from the last promise
46
+ pendingPromiseRef.current = pendingPromiseRef.current.catch(() => {
47
+ // Ignore any errors from the last promise
53
48
  }).then(async () => {
54
49
  if (data.stack) {
55
50
  let stack;
56
-
57
51
  try {
58
52
  stack = await symbolicate(data.stack);
59
- } catch (err) {// Ignore errors from symbolicate
53
+ } catch (err) {
54
+ // Ignore errors from symbolicate
60
55
  }
61
-
62
- callbackRef.current({ ...data,
56
+ callbackRef.current({
57
+ ...data,
63
58
  stack
64
59
  });
65
60
  } else {
@@ -71,7 +66,6 @@ export default function useDevToolsBase(ref, callback) {
71
66
  let timer;
72
67
  let unsubscribeAction;
73
68
  let unsubscribeState;
74
-
75
69
  const initialize = async () => {
76
70
  if (!ref.current) {
77
71
  // If the navigation object isn't ready yet, wait for it
@@ -90,11 +84,9 @@ export default function useDevToolsBase(ref, callback) {
90
84
  }, 100);
91
85
  });
92
86
  }
93
-
94
87
  const navigation = ref.current;
95
88
  unsubscribeAction = navigation.addListener('__unsafe_action__', e => {
96
89
  const action = e.data.action;
97
-
98
90
  if (e.data.noop) {
99
91
  // Even if the state didn't change, it's useful to show the action
100
92
  send({
@@ -113,17 +105,16 @@ export default function useDevToolsBase(ref, callback) {
113
105
  lastStateRef.current = undefined;
114
106
  return;
115
107
  }
116
-
117
108
  const state = navigation.getRootState();
118
109
  const lastState = lastStateRef.current;
119
110
  const lastChange = lastActionRef.current;
120
111
  lastActionRef.current = undefined;
121
- lastStateRef.current = state; // If we don't have an action and the state didn't change, then it's probably extraneous
112
+ lastStateRef.current = state;
122
113
 
114
+ // If we don't have an action and the state didn't change, then it's probably extraneous
123
115
  if (lastChange === undefined && deepEqual(state, lastState)) {
124
116
  return;
125
117
  }
126
-
127
118
  send({
128
119
  type: 'action',
129
120
  action: lastChange ? lastChange.action : {
@@ -134,11 +125,9 @@ export default function useDevToolsBase(ref, callback) {
134
125
  });
135
126
  });
136
127
  };
137
-
138
128
  initialize();
139
129
  return () => {
140
130
  var _unsubscribeAction, _unsubscribeState;
141
-
142
131
  (_unsubscribeAction = unsubscribeAction) === null || _unsubscribeAction === void 0 ? void 0 : _unsubscribeAction();
143
132
  (_unsubscribeState = unsubscribeState) === null || _unsubscribeState === void 0 ? void 0 : _unsubscribeState();
144
133
  clearTimeout(timer);
@@ -1 +1 @@
1
- {"version":3,"names":["deepEqual","React","parseErrorStack","useDevToolsBase","ref","callback","lastStateRef","useRef","lastActionRef","callbackRef","lastResetRef","undefined","useEffect","current","symbolicate","stack","frames","slice","filter","frame","file","urlMatch","match","result","fetch","method","body","JSON","stringify","then","res","json","it","collapse","map","methodName","lineNumber","column","join","err","pendingPromiseRef","Promise","resolve","send","useCallback","data","catch","timer","unsubscribeAction","unsubscribeState","initialize","setInterval","clearTimeout","state","getRootState","type","navigation","addListener","e","action","noop","lastState","lastChange","resetRoot"],"sources":["useDevToolsBase.tsx"],"sourcesContent":["import type {\n NavigationAction,\n NavigationContainerRef,\n NavigationState,\n} from '@react-navigation/core';\nimport deepEqual from 'deep-equal';\nimport * as React from 'react';\n\nimport parseErrorStack from './parseErrorStack';\n\ntype StackFrame = {\n lineNumber: number | null;\n column: number | null;\n file: string | null;\n methodName: string;\n};\n\ntype StackFrameResult = StackFrame & {\n collapse: boolean;\n};\n\ntype StackResult = {\n stack: StackFrameResult[];\n};\n\ntype InitData = {\n type: 'init';\n state: NavigationState | undefined;\n};\n\ntype ActionData = {\n type: 'action';\n action: NavigationAction;\n state: NavigationState | undefined;\n stack: string | undefined;\n};\n\nexport default function useDevToolsBase(\n ref: React.RefObject<NavigationContainerRef<any>>,\n callback: (result: InitData | ActionData) => void\n) {\n const lastStateRef = React.useRef<NavigationState | undefined>();\n const lastActionRef = React.useRef<\n { action: NavigationAction; stack: string | undefined } | undefined\n >();\n const callbackRef = React.useRef(callback);\n const lastResetRef = React.useRef<NavigationState | undefined>(undefined);\n\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n\n const symbolicate = async (stack: string | undefined) => {\n if (stack == null) {\n return undefined;\n }\n\n const frames = parseErrorStack(stack)\n .slice(2)\n .filter((frame) => frame.file !== '[native code]');\n\n const urlMatch = frames[0]?.file?.match(/^https?:\\/\\/.+(:\\d+)?\\//);\n\n if (!urlMatch) {\n return stack;\n }\n\n try {\n const result: StackResult = await fetch(`${urlMatch[0]}symbolicate`, {\n method: 'POST',\n body: JSON.stringify({ stack: frames }),\n }).then((res) => res.json());\n\n return result.stack\n .filter((it) => !it.collapse)\n .map(\n ({ methodName, file, lineNumber, column }) =>\n `${methodName}@${file}:${lineNumber}:${column}`\n )\n .join('\\n');\n } catch (err) {\n return stack;\n }\n };\n\n const pendingPromiseRef = React.useRef<Promise<void>>(Promise.resolve());\n\n const send = React.useCallback((data: ActionData) => {\n // We need to make sure that our callbacks executed in the same order\n // So we add check if the last promise is settled before sending the next one\n pendingPromiseRef.current = pendingPromiseRef.current\n .catch(() => {\n // Ignore any errors from the last promise\n })\n .then(async () => {\n if (data.stack) {\n let stack: string | undefined;\n\n try {\n stack = await symbolicate(data.stack);\n } catch (err) {\n // Ignore errors from symbolicate\n }\n\n callbackRef.current({ ...data, stack });\n } else {\n callbackRef.current(data);\n }\n });\n }, []);\n\n React.useEffect(() => {\n let timer: any;\n let unsubscribeAction: (() => void) | undefined;\n let unsubscribeState: (() => void) | undefined;\n\n const initialize = async () => {\n if (!ref.current) {\n // If the navigation object isn't ready yet, wait for it\n await new Promise<void>((resolve) => {\n timer = setInterval(() => {\n if (ref.current) {\n resolve();\n clearTimeout(timer);\n const state = ref.current.getRootState();\n\n lastStateRef.current = state;\n callbackRef.current({ type: 'init', state });\n }\n }, 100);\n });\n }\n\n const navigation = ref.current!;\n\n unsubscribeAction = navigation.addListener('__unsafe_action__', (e) => {\n const action = e.data.action;\n\n if (e.data.noop) {\n // Even if the state didn't change, it's useful to show the action\n send({\n type: 'action',\n action,\n state: lastStateRef.current,\n stack: e.data.stack,\n });\n } else {\n lastActionRef.current = e.data;\n }\n });\n\n unsubscribeState = navigation.addListener('state', (e) => {\n // Don't show the action in dev tools if the state is what we sent to reset earlier\n if (\n lastResetRef.current &&\n deepEqual(lastResetRef.current, e.data.state)\n ) {\n lastStateRef.current = undefined;\n return;\n }\n\n const state = navigation.getRootState();\n const lastState = lastStateRef.current;\n const lastChange = lastActionRef.current;\n\n lastActionRef.current = undefined;\n lastStateRef.current = state;\n\n // If we don't have an action and the state didn't change, then it's probably extraneous\n if (lastChange === undefined && deepEqual(state, lastState)) {\n return;\n }\n\n send({\n type: 'action',\n action: lastChange ? lastChange.action : { type: '@@UNKNOWN' },\n state,\n stack: lastChange?.stack,\n });\n });\n };\n\n initialize();\n\n return () => {\n unsubscribeAction?.();\n unsubscribeState?.();\n clearTimeout(timer);\n };\n }, [ref, send]);\n\n const resetRoot = React.useCallback(\n (state: NavigationState) => {\n if (ref.current) {\n lastResetRef.current = state;\n ref.current.resetRoot(state);\n }\n },\n [ref]\n );\n\n return { resetRoot };\n}\n"],"mappings":"AAKA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AAEA,OAAOC,eAAP,MAA4B,mBAA5B;AA6BA,eAAe,SAASC,eAAT,CACbC,GADa,EAEbC,QAFa,EAGb;EACA,MAAMC,YAAY,GAAGL,KAAK,CAACM,MAAN,EAArB;EACA,MAAMC,aAAa,GAAGP,KAAK,CAACM,MAAN,EAAtB;EAGA,MAAME,WAAW,GAAGR,KAAK,CAACM,MAAN,CAAaF,QAAb,CAApB;EACA,MAAMK,YAAY,GAAGT,KAAK,CAACM,MAAN,CAA0CI,SAA1C,CAArB;EAEAV,KAAK,CAACW,SAAN,CAAgB,MAAM;IACpBH,WAAW,CAACI,OAAZ,GAAsBR,QAAtB;EACD,CAFD;;EAIA,MAAMS,WAAW,GAAG,MAAOC,KAAP,IAAqC;IAAA;;IACvD,IAAIA,KAAK,IAAI,IAAb,EAAmB;MACjB,OAAOJ,SAAP;IACD;;IAED,MAAMK,MAAM,GAAGd,eAAe,CAACa,KAAD,CAAf,CACZE,KADY,CACN,CADM,EAEZC,MAFY,CAEJC,KAAD,IAAWA,KAAK,CAACC,IAAN,KAAe,eAFrB,CAAf;IAIA,MAAMC,QAAQ,eAAGL,MAAM,CAAC,CAAD,CAAT,8DAAG,SAAWI,IAAd,kDAAG,cAAiBE,KAAjB,CAAuB,yBAAvB,CAAjB;;IAEA,IAAI,CAACD,QAAL,EAAe;MACb,OAAON,KAAP;IACD;;IAED,IAAI;MACF,MAAMQ,MAAmB,GAAG,MAAMC,KAAK,CAAE,GAAEH,QAAQ,CAAC,CAAD,CAAI,aAAhB,EAA8B;QACnEI,MAAM,EAAE,MAD2D;QAEnEC,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAe;UAAEb,KAAK,EAAEC;QAAT,CAAf;MAF6D,CAA9B,CAAL,CAG/Ba,IAH+B,CAGzBC,GAAD,IAASA,GAAG,CAACC,IAAJ,EAHiB,CAAlC;MAKA,OAAOR,MAAM,CAACR,KAAP,CACJG,MADI,CACIc,EAAD,IAAQ,CAACA,EAAE,CAACC,QADf,EAEJC,GAFI,CAGH;QAAA,IAAC;UAAEC,UAAF;UAAcf,IAAd;UAAoBgB,UAApB;UAAgCC;QAAhC,CAAD;QAAA,OACG,GAAEF,UAAW,IAAGf,IAAK,IAAGgB,UAAW,IAAGC,MAAO,EADhD;MAAA,CAHG,EAMJC,IANI,CAMC,IAND,CAAP;IAOD,CAbD,CAaE,OAAOC,GAAP,EAAY;MACZ,OAAOxB,KAAP;IACD;EACF,CA/BD;;EAiCA,MAAMyB,iBAAiB,GAAGvC,KAAK,CAACM,MAAN,CAA4BkC,OAAO,CAACC,OAAR,EAA5B,CAA1B;EAEA,MAAMC,IAAI,GAAG1C,KAAK,CAAC2C,WAAN,CAAmBC,IAAD,IAAsB;IACnD;IACA;IACAL,iBAAiB,CAAC3B,OAAlB,GAA4B2B,iBAAiB,CAAC3B,OAAlB,CACzBiC,KADyB,CACnB,MAAM,CACX;IACD,CAHyB,EAIzBjB,IAJyB,CAIpB,YAAY;MAChB,IAAIgB,IAAI,CAAC9B,KAAT,EAAgB;QACd,IAAIA,KAAJ;;QAEA,IAAI;UACFA,KAAK,GAAG,MAAMD,WAAW,CAAC+B,IAAI,CAAC9B,KAAN,CAAzB;QACD,CAFD,CAEE,OAAOwB,GAAP,EAAY,CACZ;QACD;;QAED9B,WAAW,CAACI,OAAZ,CAAoB,EAAE,GAAGgC,IAAL;UAAW9B;QAAX,CAApB;MACD,CAVD,MAUO;QACLN,WAAW,CAACI,OAAZ,CAAoBgC,IAApB;MACD;IACF,CAlByB,CAA5B;EAmBD,CAtBY,EAsBV,EAtBU,CAAb;EAwBA5C,KAAK,CAACW,SAAN,CAAgB,MAAM;IACpB,IAAImC,KAAJ;IACA,IAAIC,iBAAJ;IACA,IAAIC,gBAAJ;;IAEA,MAAMC,UAAU,GAAG,YAAY;MAC7B,IAAI,CAAC9C,GAAG,CAACS,OAAT,EAAkB;QAChB;QACA,MAAM,IAAI4B,OAAJ,CAAmBC,OAAD,IAAa;UACnCK,KAAK,GAAGI,WAAW,CAAC,MAAM;YACxB,IAAI/C,GAAG,CAACS,OAAR,EAAiB;cACf6B,OAAO;cACPU,YAAY,CAACL,KAAD,CAAZ;cACA,MAAMM,KAAK,GAAGjD,GAAG,CAACS,OAAJ,CAAYyC,YAAZ,EAAd;cAEAhD,YAAY,CAACO,OAAb,GAAuBwC,KAAvB;cACA5C,WAAW,CAACI,OAAZ,CAAoB;gBAAE0C,IAAI,EAAE,MAAR;gBAAgBF;cAAhB,CAApB;YACD;UACF,CATkB,EAShB,GATgB,CAAnB;QAUD,CAXK,CAAN;MAYD;;MAED,MAAMG,UAAU,GAAGpD,GAAG,CAACS,OAAvB;MAEAmC,iBAAiB,GAAGQ,UAAU,CAACC,WAAX,CAAuB,mBAAvB,EAA6CC,CAAD,IAAO;QACrE,MAAMC,MAAM,GAAGD,CAAC,CAACb,IAAF,CAAOc,MAAtB;;QAEA,IAAID,CAAC,CAACb,IAAF,CAAOe,IAAX,EAAiB;UACf;UACAjB,IAAI,CAAC;YACHY,IAAI,EAAE,QADH;YAEHI,MAFG;YAGHN,KAAK,EAAE/C,YAAY,CAACO,OAHjB;YAIHE,KAAK,EAAE2C,CAAC,CAACb,IAAF,CAAO9B;UAJX,CAAD,CAAJ;QAMD,CARD,MAQO;UACLP,aAAa,CAACK,OAAd,GAAwB6C,CAAC,CAACb,IAA1B;QACD;MACF,CAdmB,CAApB;MAgBAI,gBAAgB,GAAGO,UAAU,CAACC,WAAX,CAAuB,OAAvB,EAAiCC,CAAD,IAAO;QACxD;QACA,IACEhD,YAAY,CAACG,OAAb,IACAb,SAAS,CAACU,YAAY,CAACG,OAAd,EAAuB6C,CAAC,CAACb,IAAF,CAAOQ,KAA9B,CAFX,EAGE;UACA/C,YAAY,CAACO,OAAb,GAAuBF,SAAvB;UACA;QACD;;QAED,MAAM0C,KAAK,GAAGG,UAAU,CAACF,YAAX,EAAd;QACA,MAAMO,SAAS,GAAGvD,YAAY,CAACO,OAA/B;QACA,MAAMiD,UAAU,GAAGtD,aAAa,CAACK,OAAjC;QAEAL,aAAa,CAACK,OAAd,GAAwBF,SAAxB;QACAL,YAAY,CAACO,OAAb,GAAuBwC,KAAvB,CAfwD,CAiBxD;;QACA,IAAIS,UAAU,KAAKnD,SAAf,IAA4BX,SAAS,CAACqD,KAAD,EAAQQ,SAAR,CAAzC,EAA6D;UAC3D;QACD;;QAEDlB,IAAI,CAAC;UACHY,IAAI,EAAE,QADH;UAEHI,MAAM,EAAEG,UAAU,GAAGA,UAAU,CAACH,MAAd,GAAuB;YAAEJ,IAAI,EAAE;UAAR,CAFtC;UAGHF,KAHG;UAIHtC,KAAK,EAAE+C,UAAF,aAAEA,UAAF,uBAAEA,UAAU,CAAE/C;QAJhB,CAAD,CAAJ;MAMD,CA5BkB,CAAnB;IA6BD,CAhED;;IAkEAmC,UAAU;IAEV,OAAO,MAAM;MAAA;;MACX,sBAAAF,iBAAiB,UAAjB;MACA,qBAAAC,gBAAgB,UAAhB;MACAG,YAAY,CAACL,KAAD,CAAZ;IACD,CAJD;EAKD,CA9ED,EA8EG,CAAC3C,GAAD,EAAMuC,IAAN,CA9EH;EAgFA,MAAMoB,SAAS,GAAG9D,KAAK,CAAC2C,WAAN,CACfS,KAAD,IAA4B;IAC1B,IAAIjD,GAAG,CAACS,OAAR,EAAiB;MACfH,YAAY,CAACG,OAAb,GAAuBwC,KAAvB;MACAjD,GAAG,CAACS,OAAJ,CAAYkD,SAAZ,CAAsBV,KAAtB;IACD;EACF,CANe,EAOhB,CAACjD,GAAD,CAPgB,CAAlB;EAUA,OAAO;IAAE2D;EAAF,CAAP;AACD"}
1
+ {"version":3,"names":["deepEqual","React","parseErrorStack","useDevToolsBase","ref","callback","lastStateRef","useRef","lastActionRef","callbackRef","lastResetRef","undefined","useEffect","current","symbolicate","stack","frames","slice","filter","frame","file","urlMatch","match","result","fetch","method","body","JSON","stringify","then","res","json","it","collapse","map","methodName","lineNumber","column","join","err","pendingPromiseRef","Promise","resolve","send","useCallback","data","catch","timer","unsubscribeAction","unsubscribeState","initialize","setInterval","clearTimeout","state","getRootState","type","navigation","addListener","e","action","noop","lastState","lastChange","resetRoot"],"sourceRoot":"../../src","sources":["useDevToolsBase.tsx"],"mappings":"AAKA,OAAOA,SAAS,MAAM,YAAY;AAClC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,OAAOC,eAAe,MAAM,mBAAmB;AA6B/C,eAAe,SAASC,eAAe,CACrCC,GAAiD,EACjDC,QAAiD,EACjD;EACA,MAAMC,YAAY,GAAGL,KAAK,CAACM,MAAM,EAA+B;EAChE,MAAMC,aAAa,GAAGP,KAAK,CAACM,MAAM,EAE/B;EACH,MAAME,WAAW,GAAGR,KAAK,CAACM,MAAM,CAACF,QAAQ,CAAC;EAC1C,MAAMK,YAAY,GAAGT,KAAK,CAACM,MAAM,CAA8BI,SAAS,CAAC;EAEzEV,KAAK,CAACW,SAAS,CAAC,MAAM;IACpBH,WAAW,CAACI,OAAO,GAAGR,QAAQ;EAChC,CAAC,CAAC;EAEF,MAAMS,WAAW,GAAG,MAAOC,KAAyB,IAAK;IAAA;IACvD,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAOJ,SAAS;IAClB;IAEA,MAAMK,MAAM,GAAGd,eAAe,CAACa,KAAK,CAAC,CAClCE,KAAK,CAAC,CAAC,CAAC,CACRC,MAAM,CAAEC,KAAK,IAAKA,KAAK,CAACC,IAAI,KAAK,eAAe,CAAC;IAEpD,MAAMC,QAAQ,eAAGL,MAAM,CAAC,CAAC,CAAC,8DAAT,SAAWI,IAAI,kDAAf,cAAiBE,KAAK,CAAC,yBAAyB,CAAC;IAElE,IAAI,CAACD,QAAQ,EAAE;MACb,OAAON,KAAK;IACd;IAEA,IAAI;MACF,MAAMQ,MAAmB,GAAG,MAAMC,KAAK,CAAE,GAAEH,QAAQ,CAAC,CAAC,CAAE,aAAY,EAAE;QACnEI,MAAM,EAAE,MAAM;QACdC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;UAAEb,KAAK,EAAEC;QAAO,CAAC;MACxC,CAAC,CAAC,CAACa,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,IAAI,EAAE,CAAC;MAE5B,OAAOR,MAAM,CAACR,KAAK,CAChBG,MAAM,CAAEc,EAAE,IAAK,CAACA,EAAE,CAACC,QAAQ,CAAC,CAC5BC,GAAG,CACF;QAAA,IAAC;UAAEC,UAAU;UAAEf,IAAI;UAAEgB,UAAU;UAAEC;QAAO,CAAC;QAAA,OACtC,GAAEF,UAAW,IAAGf,IAAK,IAAGgB,UAAW,IAAGC,MAAO,EAAC;MAAA,EAClD,CACAC,IAAI,CAAC,IAAI,CAAC;IACf,CAAC,CAAC,OAAOC,GAAG,EAAE;MACZ,OAAOxB,KAAK;IACd;EACF,CAAC;EAED,MAAMyB,iBAAiB,GAAGvC,KAAK,CAACM,MAAM,CAAgBkC,OAAO,CAACC,OAAO,EAAE,CAAC;EAExE,MAAMC,IAAI,GAAG1C,KAAK,CAAC2C,WAAW,CAAEC,IAAgB,IAAK;IACnD;IACA;IACAL,iBAAiB,CAAC3B,OAAO,GAAG2B,iBAAiB,CAAC3B,OAAO,CAClDiC,KAAK,CAAC,MAAM;MACX;IAAA,CACD,CAAC,CACDjB,IAAI,CAAC,YAAY;MAChB,IAAIgB,IAAI,CAAC9B,KAAK,EAAE;QACd,IAAIA,KAAyB;QAE7B,IAAI;UACFA,KAAK,GAAG,MAAMD,WAAW,CAAC+B,IAAI,CAAC9B,KAAK,CAAC;QACvC,CAAC,CAAC,OAAOwB,GAAG,EAAE;UACZ;QAAA;QAGF9B,WAAW,CAACI,OAAO,CAAC;UAAE,GAAGgC,IAAI;UAAE9B;QAAM,CAAC,CAAC;MACzC,CAAC,MAAM;QACLN,WAAW,CAACI,OAAO,CAACgC,IAAI,CAAC;MAC3B;IACF,CAAC,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;EAEN5C,KAAK,CAACW,SAAS,CAAC,MAAM;IACpB,IAAImC,KAAU;IACd,IAAIC,iBAA2C;IAC/C,IAAIC,gBAA0C;IAE9C,MAAMC,UAAU,GAAG,YAAY;MAC7B,IAAI,CAAC9C,GAAG,CAACS,OAAO,EAAE;QAChB;QACA,MAAM,IAAI4B,OAAO,CAAQC,OAAO,IAAK;UACnCK,KAAK,GAAGI,WAAW,CAAC,MAAM;YACxB,IAAI/C,GAAG,CAACS,OAAO,EAAE;cACf6B,OAAO,EAAE;cACTU,YAAY,CAACL,KAAK,CAAC;cACnB,MAAMM,KAAK,GAAGjD,GAAG,CAACS,OAAO,CAACyC,YAAY,EAAE;cAExChD,YAAY,CAACO,OAAO,GAAGwC,KAAK;cAC5B5C,WAAW,CAACI,OAAO,CAAC;gBAAE0C,IAAI,EAAE,MAAM;gBAAEF;cAAM,CAAC,CAAC;YAC9C;UACF,CAAC,EAAE,GAAG,CAAC;QACT,CAAC,CAAC;MACJ;MAEA,MAAMG,UAAU,GAAGpD,GAAG,CAACS,OAAQ;MAE/BmC,iBAAiB,GAAGQ,UAAU,CAACC,WAAW,CAAC,mBAAmB,EAAGC,CAAC,IAAK;QACrE,MAAMC,MAAM,GAAGD,CAAC,CAACb,IAAI,CAACc,MAAM;QAE5B,IAAID,CAAC,CAACb,IAAI,CAACe,IAAI,EAAE;UACf;UACAjB,IAAI,CAAC;YACHY,IAAI,EAAE,QAAQ;YACdI,MAAM;YACNN,KAAK,EAAE/C,YAAY,CAACO,OAAO;YAC3BE,KAAK,EAAE2C,CAAC,CAACb,IAAI,CAAC9B;UAChB,CAAC,CAAC;QACJ,CAAC,MAAM;UACLP,aAAa,CAACK,OAAO,GAAG6C,CAAC,CAACb,IAAI;QAChC;MACF,CAAC,CAAC;MAEFI,gBAAgB,GAAGO,UAAU,CAACC,WAAW,CAAC,OAAO,EAAGC,CAAC,IAAK;QACxD;QACA,IACEhD,YAAY,CAACG,OAAO,IACpBb,SAAS,CAACU,YAAY,CAACG,OAAO,EAAE6C,CAAC,CAACb,IAAI,CAACQ,KAAK,CAAC,EAC7C;UACA/C,YAAY,CAACO,OAAO,GAAGF,SAAS;UAChC;QACF;QAEA,MAAM0C,KAAK,GAAGG,UAAU,CAACF,YAAY,EAAE;QACvC,MAAMO,SAAS,GAAGvD,YAAY,CAACO,OAAO;QACtC,MAAMiD,UAAU,GAAGtD,aAAa,CAACK,OAAO;QAExCL,aAAa,CAACK,OAAO,GAAGF,SAAS;QACjCL,YAAY,CAACO,OAAO,GAAGwC,KAAK;;QAE5B;QACA,IAAIS,UAAU,KAAKnD,SAAS,IAAIX,SAAS,CAACqD,KAAK,EAAEQ,SAAS,CAAC,EAAE;UAC3D;QACF;QAEAlB,IAAI,CAAC;UACHY,IAAI,EAAE,QAAQ;UACdI,MAAM,EAAEG,UAAU,GAAGA,UAAU,CAACH,MAAM,GAAG;YAAEJ,IAAI,EAAE;UAAY,CAAC;UAC9DF,KAAK;UACLtC,KAAK,EAAE+C,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE/C;QACrB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC;IAEDmC,UAAU,EAAE;IAEZ,OAAO,MAAM;MAAA;MACX,sBAAAF,iBAAiB,uDAAjB,oBAAqB;MACrB,qBAAAC,gBAAgB,sDAAhB,mBAAoB;MACpBG,YAAY,CAACL,KAAK,CAAC;IACrB,CAAC;EACH,CAAC,EAAE,CAAC3C,GAAG,EAAEuC,IAAI,CAAC,CAAC;EAEf,MAAMoB,SAAS,GAAG9D,KAAK,CAAC2C,WAAW,CAChCS,KAAsB,IAAK;IAC1B,IAAIjD,GAAG,CAACS,OAAO,EAAE;MACfH,YAAY,CAACG,OAAO,GAAGwC,KAAK;MAC5BjD,GAAG,CAACS,OAAO,CAACkD,SAAS,CAACV,KAAK,CAAC;IAC9B;EACF,CAAC,EACD,CAACjD,GAAG,CAAC,CACN;EAED,OAAO;IAAE2D;EAAU,CAAC;AACtB"}
@@ -2,17 +2,15 @@ import { nanoid } from 'nanoid/non-secure';
2
2
  import * as React from 'react';
3
3
  import useDevToolsBase from './useDevToolsBase';
4
4
  let FlipperModule;
5
-
6
5
  try {
7
6
  FlipperModule = require('react-native-flipper');
8
- } catch (e) {// Do nothing
7
+ } catch (e) {
8
+ // Do nothing
9
9
  }
10
-
11
10
  export default function useFlipper(ref) {
12
11
  if (FlipperModule == null) {
13
12
  throw new Error("Please install the 'react-native-flipper' package in your project to use Flipper integration for React Navigation.");
14
13
  }
15
-
16
14
  const {
17
15
  addPlugin
18
16
  } = FlipperModule;
@@ -21,11 +19,9 @@ export default function useFlipper(ref) {
21
19
  resetRoot
22
20
  } = useDevToolsBase(ref, result => {
23
21
  const connection = connectionRef.current;
24
-
25
22
  if (!connection) {
26
23
  return;
27
24
  }
28
-
29
25
  switch (result.type) {
30
26
  case 'init':
31
27
  connection.send('init', {
@@ -33,7 +29,6 @@ export default function useFlipper(ref) {
33
29
  state: result.state
34
30
  });
35
31
  break;
36
-
37
32
  case 'action':
38
33
  connection.send('action', {
39
34
  id: nanoid(),
@@ -49,34 +44,29 @@ export default function useFlipper(ref) {
49
44
  getId() {
50
45
  return 'react-navigation';
51
46
  },
52
-
53
47
  async onConnect(connection) {
54
48
  connectionRef.current = connection;
55
-
56
49
  const on = (event, listener) => {
57
50
  connection.receive(event, (params, responder) => {
58
51
  try {
59
- const result = listener(params); // Return null instead of undefined, otherwise flipper doesn't respond
52
+ const result = listener(params);
60
53
 
61
- responder.success(result !== null && result !== void 0 ? result : null);
54
+ // Return null instead of undefined, otherwise flipper doesn't respond
55
+ responder.success(result ?? null);
62
56
  } catch (e) {
63
57
  responder.error(e);
64
58
  }
65
59
  });
66
60
  };
67
-
68
61
  on('navigation.invoke', _ref => {
69
62
  var _ref$current;
70
-
71
63
  let {
72
64
  method,
73
65
  args = []
74
66
  } = _ref;
75
-
76
67
  switch (method) {
77
68
  case 'resetRoot':
78
69
  return resetRoot(args[0]);
79
-
80
70
  default:
81
71
  // @ts-expect-error: we want to call arbitrary methods here
82
72
  return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current[method](...args);
@@ -84,35 +74,30 @@ export default function useFlipper(ref) {
84
74
  });
85
75
  on('linking.invoke', _ref2 => {
86
76
  var _global$REACT_NAVIGAT, _global$REACT_NAVIGAT2, _args$;
87
-
88
77
  let {
89
78
  method,
90
79
  args = []
91
80
  } = _ref2;
92
81
  const linking = ref.current ? // @ts-ignore: this might not exist
93
82
  (_global$REACT_NAVIGAT = global.REACT_NAVIGATION_DEVTOOLS) === null || _global$REACT_NAVIGAT === void 0 ? void 0 : (_global$REACT_NAVIGAT2 = _global$REACT_NAVIGAT.get(ref.current)) === null || _global$REACT_NAVIGAT2 === void 0 ? void 0 : _global$REACT_NAVIGAT2.linking : null;
94
-
95
83
  switch (method) {
96
84
  case 'getStateFromPath':
97
85
  case 'getPathFromState':
98
86
  case 'getActionFromState':
99
- return linking === null || linking === void 0 ? void 0 : linking[method](args[0], (_args$ = args[1]) !== null && _args$ !== void 0 && _args$.trim() ? // eslint-disable-next-line no-eval
87
+ return linking === null || linking === void 0 ? void 0 : linking[method](args[0], (_args$ = args[1]) !== null && _args$ !== void 0 && _args$.trim() ?
88
+ // eslint-disable-next-line no-eval
100
89
  eval(`(function() { return ${args[1]}; }())`) : linking.config);
101
-
102
90
  default:
103
91
  return linking === null || linking === void 0 ? void 0 : linking[method](...args);
104
92
  }
105
93
  });
106
94
  },
107
-
108
95
  onDisconnect() {
109
96
  connectionRef.current = undefined;
110
97
  },
111
-
112
98
  runInBackground() {
113
99
  return false;
114
100
  }
115
-
116
101
  });
117
102
  }, [addPlugin, ref, resetRoot]);
118
103
  }
@@ -1 +1 @@
1
- {"version":3,"names":["nanoid","React","useDevToolsBase","FlipperModule","require","e","useFlipper","ref","Error","addPlugin","connectionRef","useRef","resetRoot","result","connection","current","type","send","id","state","action","stack","useEffect","getId","onConnect","on","event","listener","receive","params","responder","success","error","method","args","linking","global","REACT_NAVIGATION_DEVTOOLS","get","trim","eval","config","onDisconnect","undefined","runInBackground"],"sources":["useFlipper.tsx"],"sourcesContent":["import type { NavigationContainerRef } from '@react-navigation/core';\nimport { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\nimport type { Flipper } from 'react-native-flipper';\n\nimport useDevToolsBase from './useDevToolsBase';\n\nlet FlipperModule: typeof import('react-native-flipper') | undefined;\n\ntry {\n FlipperModule = require('react-native-flipper');\n} catch (e) {\n // Do nothing\n}\n\nexport default function useFlipper(\n ref: React.RefObject<NavigationContainerRef<any>>\n) {\n if (FlipperModule == null) {\n throw new Error(\n \"Please install the 'react-native-flipper' package in your project to use Flipper integration for React Navigation.\"\n );\n }\n\n const { addPlugin } = FlipperModule;\n\n const connectionRef = React.useRef<Flipper.FlipperConnection>();\n\n const { resetRoot } = useDevToolsBase(ref, (result) => {\n const connection = connectionRef.current;\n\n if (!connection) {\n return;\n }\n\n switch (result.type) {\n case 'init':\n connection.send('init', {\n id: nanoid(),\n state: result.state,\n });\n break;\n case 'action':\n connection.send('action', {\n id: nanoid(),\n action: result.action,\n state: result.state,\n stack: result.stack,\n });\n break;\n }\n });\n\n React.useEffect(() => {\n addPlugin({\n getId() {\n return 'react-navigation';\n },\n async onConnect(connection) {\n connectionRef.current = connection;\n\n const on = (event: string, listener: (params: any) => Promise<any>) => {\n connection.receive(event, (params, responder) => {\n try {\n const result = listener(params);\n\n // Return null instead of undefined, otherwise flipper doesn't respond\n responder.success(result ?? null);\n } catch (e) {\n responder.error(e);\n }\n });\n };\n\n on('navigation.invoke', ({ method, args = [] }) => {\n switch (method) {\n case 'resetRoot':\n return resetRoot(args[0]);\n default:\n // @ts-expect-error: we want to call arbitrary methods here\n return ref.current?.[method](...args);\n }\n });\n\n on('linking.invoke', ({ method, args = [] }) => {\n const linking: any = ref.current\n ? // @ts-ignore: this might not exist\n global.REACT_NAVIGATION_DEVTOOLS?.get(ref.current)?.linking\n : null;\n\n switch (method) {\n case 'getStateFromPath':\n case 'getPathFromState':\n case 'getActionFromState':\n return linking?.[method](\n args[0],\n args[1]?.trim()\n ? // eslint-disable-next-line no-eval\n eval(`(function() { return ${args[1]}; }())`)\n : linking.config\n );\n default:\n return linking?.[method](...args);\n }\n });\n },\n onDisconnect() {\n connectionRef.current = undefined;\n },\n runInBackground() {\n return false;\n },\n });\n }, [addPlugin, ref, resetRoot]);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["nanoid","React","useDevToolsBase","FlipperModule","require","e","useFlipper","ref","Error","addPlugin","connectionRef","useRef","resetRoot","result","connection","current","type","send","id","state","action","stack","useEffect","getId","onConnect","on","event","listener","receive","params","responder","success","error","method","args","linking","global","REACT_NAVIGATION_DEVTOOLS","get","trim","eval","config","onDisconnect","undefined","runInBackground"],"sourceRoot":"../../src","sources":["useFlipper.tsx"],"mappings":"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"}
@@ -2,27 +2,22 @@ import * as React from 'react';
2
2
  import useDevToolsBase from './useDevToolsBase';
3
3
  export default function useReduxDevToolsExtension(ref) {
4
4
  const devToolsRef = React.useRef();
5
-
6
5
  if (devToolsRef.current === undefined && typeof __REDUX_DEVTOOLS_EXTENSION__ !== 'undefined') {
7
6
  devToolsRef.current = __REDUX_DEVTOOLS_EXTENSION__.connect({
8
7
  name: '@react-navigation/devtools'
9
8
  });
10
9
  }
11
-
12
10
  const {
13
11
  resetRoot
14
12
  } = useDevToolsBase(ref, result => {
15
13
  const devTools = devToolsRef.current;
16
-
17
14
  if (!devTools) {
18
15
  return;
19
16
  }
20
-
21
17
  switch (result.type) {
22
18
  case 'init':
23
19
  devTools.init(result.state);
24
20
  break;
25
-
26
21
  case 'action':
27
22
  devTools.send(result.action, result.state);
28
23
  break;
@@ -30,7 +25,6 @@ export default function useReduxDevToolsExtension(ref) {
30
25
  });
31
26
  React.useEffect(() => {
32
27
  var _devToolsRef$current;
33
-
34
28
  return (_devToolsRef$current = devToolsRef.current) === null || _devToolsRef$current === void 0 ? void 0 : _devToolsRef$current.subscribe(message => {
35
29
  if (message.type === 'DISPATCH' && message.state) {
36
30
  const state = JSON.parse(message.state);
@@ -1 +1 @@
1
- {"version":3,"names":["React","useDevToolsBase","useReduxDevToolsExtension","ref","devToolsRef","useRef","current","undefined","__REDUX_DEVTOOLS_EXTENSION__","connect","name","resetRoot","result","devTools","type","init","state","send","action","useEffect","subscribe","message","JSON","parse"],"sources":["useReduxDevToolsExtension.tsx"],"sourcesContent":["import type { NavigationContainerRef } from '@react-navigation/core';\nimport * as React from 'react';\n\nimport useDevToolsBase from './useDevToolsBase';\n\ntype DevToolsConnection = {\n init(value: any): void;\n send(action: any, value: any): void;\n subscribe(\n listener: (message: { type: string; [key: string]: any }) => void\n ): () => void;\n};\n\ntype DevToolsExtension = {\n connect(options: { name: string }): DevToolsConnection;\n disconnect(): void;\n};\n\ndeclare const __REDUX_DEVTOOLS_EXTENSION__: DevToolsExtension | undefined;\n\nexport default function useReduxDevToolsExtension(\n ref: React.RefObject<NavigationContainerRef<any>>\n) {\n const devToolsRef = React.useRef<DevToolsConnection>();\n\n if (\n devToolsRef.current === undefined &&\n typeof __REDUX_DEVTOOLS_EXTENSION__ !== 'undefined'\n ) {\n devToolsRef.current = __REDUX_DEVTOOLS_EXTENSION__.connect({\n name: '@react-navigation/devtools',\n });\n }\n\n const { resetRoot } = useDevToolsBase(ref, (result) => {\n const devTools = devToolsRef.current;\n\n if (!devTools) {\n return;\n }\n\n switch (result.type) {\n case 'init':\n devTools.init(result.state);\n break;\n case 'action':\n devTools.send(result.action, result.state);\n break;\n }\n });\n\n React.useEffect(\n () =>\n devToolsRef.current?.subscribe((message) => {\n if (message.type === 'DISPATCH' && message.state) {\n const state = JSON.parse(message.state);\n\n resetRoot(state);\n }\n }),\n [resetRoot]\n );\n}\n"],"mappings":"AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,OAAOC,eAAP,MAA4B,mBAA5B;AAiBA,eAAe,SAASC,yBAAT,CACbC,GADa,EAEb;EACA,MAAMC,WAAW,GAAGJ,KAAK,CAACK,MAAN,EAApB;;EAEA,IACED,WAAW,CAACE,OAAZ,KAAwBC,SAAxB,IACA,OAAOC,4BAAP,KAAwC,WAF1C,EAGE;IACAJ,WAAW,CAACE,OAAZ,GAAsBE,4BAA4B,CAACC,OAA7B,CAAqC;MACzDC,IAAI,EAAE;IADmD,CAArC,CAAtB;EAGD;;EAED,MAAM;IAAEC;EAAF,IAAgBV,eAAe,CAACE,GAAD,EAAOS,MAAD,IAAY;IACrD,MAAMC,QAAQ,GAAGT,WAAW,CAACE,OAA7B;;IAEA,IAAI,CAACO,QAAL,EAAe;MACb;IACD;;IAED,QAAQD,MAAM,CAACE,IAAf;MACE,KAAK,MAAL;QACED,QAAQ,CAACE,IAAT,CAAcH,MAAM,CAACI,KAArB;QACA;;MACF,KAAK,QAAL;QACEH,QAAQ,CAACI,IAAT,CAAcL,MAAM,CAACM,MAArB,EAA6BN,MAAM,CAACI,KAApC;QACA;IANJ;EAQD,CAfoC,CAArC;EAiBAhB,KAAK,CAACmB,SAAN,CACE;IAAA;;IAAA,+BACEf,WAAW,CAACE,OADd,yDACE,qBAAqBc,SAArB,CAAgCC,OAAD,IAAa;MAC1C,IAAIA,OAAO,CAACP,IAAR,KAAiB,UAAjB,IAA+BO,OAAO,CAACL,KAA3C,EAAkD;QAChD,MAAMA,KAAK,GAAGM,IAAI,CAACC,KAAL,CAAWF,OAAO,CAACL,KAAnB,CAAd;QAEAL,SAAS,CAACK,KAAD,CAAT;MACD;IACF,CAND,CADF;EAAA,CADF,EASE,CAACL,SAAD,CATF;AAWD"}
1
+ {"version":3,"names":["React","useDevToolsBase","useReduxDevToolsExtension","ref","devToolsRef","useRef","current","undefined","__REDUX_DEVTOOLS_EXTENSION__","connect","name","resetRoot","result","devTools","type","init","state","send","action","useEffect","subscribe","message","JSON","parse"],"sourceRoot":"../../src","sources":["useReduxDevToolsExtension.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAOC,eAAe,MAAM,mBAAmB;AAiB/C,eAAe,SAASC,yBAAyB,CAC/CC,GAAiD,EACjD;EACA,MAAMC,WAAW,GAAGJ,KAAK,CAACK,MAAM,EAAsB;EAEtD,IACED,WAAW,CAACE,OAAO,KAAKC,SAAS,IACjC,OAAOC,4BAA4B,KAAK,WAAW,EACnD;IACAJ,WAAW,CAACE,OAAO,GAAGE,4BAA4B,CAACC,OAAO,CAAC;MACzDC,IAAI,EAAE;IACR,CAAC,CAAC;EACJ;EAEA,MAAM;IAAEC;EAAU,CAAC,GAAGV,eAAe,CAACE,GAAG,EAAGS,MAAM,IAAK;IACrD,MAAMC,QAAQ,GAAGT,WAAW,CAACE,OAAO;IAEpC,IAAI,CAACO,QAAQ,EAAE;MACb;IACF;IAEA,QAAQD,MAAM,CAACE,IAAI;MACjB,KAAK,MAAM;QACTD,QAAQ,CAACE,IAAI,CAACH,MAAM,CAACI,KAAK,CAAC;QAC3B;MACF,KAAK,QAAQ;QACXH,QAAQ,CAACI,IAAI,CAACL,MAAM,CAACM,MAAM,EAAEN,MAAM,CAACI,KAAK,CAAC;QAC1C;IAAM;EAEZ,CAAC,CAAC;EAEFhB,KAAK,CAACmB,SAAS,CACb;IAAA;IAAA,+BACEf,WAAW,CAACE,OAAO,yDAAnB,qBAAqBc,SAAS,CAAEC,OAAO,IAAK;MAC1C,IAAIA,OAAO,CAACP,IAAI,KAAK,UAAU,IAAIO,OAAO,CAACL,KAAK,EAAE;QAChD,MAAMA,KAAK,GAAGM,IAAI,CAACC,KAAK,CAACF,OAAO,CAACL,KAAK,CAAC;QAEvCL,SAAS,CAACK,KAAK,CAAC;MAClB;IACF,CAAC,CAAC;EAAA,GACJ,CAACL,SAAS,CAAC,CACZ;AACH"}
@@ -1,2 +1,3 @@
1
1
  export declare let useReduxDevToolsExtension: typeof import('./useReduxDevToolsExtension').default;
2
2
  export declare let useFlipper: typeof import('./useFlipper').default;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAEA,eAAO,IAAI,yBAAyB,EAAE,cAAc,6BAA6B,EAAE,OAAO,CAAC;AAC3F,eAAO,IAAI,UAAU,EAAE,cAAc,cAAc,EAAE,OAAO,CAAC"}
@@ -12,3 +12,4 @@ interface StackFrame {
12
12
  }
13
13
  declare function parseErrorStack(errorStack?: string | StackFrame[]): StackFrame[];
14
14
  export default parseErrorStack;
15
+ //# sourceMappingURL=parseErrorStack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseErrorStack.d.ts","sourceRoot":"","sources":["../../../src/parseErrorStack.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAyBD,iBAAS,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE,CAezE;AAED,eAAe,eAAe,CAAC"}
@@ -36,3 +36,4 @@ export interface HermesParsedStack {
36
36
  }
37
37
  export default function parseHermesStack(stack: string): HermesParsedStack;
38
38
  export {};
39
+ //# sourceMappingURL=parseHermesStack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseHermesStack.d.ts","sourceRoot":"","sources":["../../../src/parseHermesStack.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,UAAU,yBAAyB;IACjC,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,UAAU,yBAAyB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,2BAA2B;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,aAAK,mBAAmB,GACpB,yBAAyB,GACzB,yBAAyB,GACzB,2BAA2B,CAAC;AAEhC,UAAU,qBAAqB;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,uBAAuB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,aAAK,gBAAgB,GAAG,qBAAqB,GAAG,uBAAuB,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAkDD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAoBzE"}
@@ -14,3 +14,4 @@ export default function useDevToolsBase(ref: React.RefObject<NavigationContainer
14
14
  resetRoot: (state: NavigationState) => void;
15
15
  };
16
16
  export {};
17
+ //# sourceMappingURL=useDevToolsBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDevToolsBase.d.ts","sourceRoot":"","sources":["../../../src/useDevToolsBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAmB/B,aAAK,QAAQ,GAAG;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,aAAK,UAAU,GAAG;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,eAAe,GAAG,SAAS,CAAC;IACnC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,EACjD,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,KAAK,IAAI;uBAyJvC,eAAe;EAU1B"}
@@ -1,3 +1,4 @@
1
1
  import type { NavigationContainerRef } from '@react-navigation/core';
2
2
  import * as React from 'react';
3
3
  export default function useFlipper(ref: React.RefObject<NavigationContainerRef<any>>): void;
4
+ //# sourceMappingURL=useFlipper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFlipper.d.ts","sourceRoot":"","sources":["../../../src/useFlipper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,QAkGlD"}
@@ -1,3 +1,4 @@
1
1
  import type { NavigationContainerRef } from '@react-navigation/core';
2
2
  import * as React from 'react';
3
3
  export default function useReduxDevToolsExtension(ref: React.RefObject<NavigationContainerRef<any>>): void;
4
+ //# sourceMappingURL=useReduxDevToolsExtension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReduxDevToolsExtension.d.ts","sourceRoot":"","sources":["../../../src/useReduxDevToolsExtension.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAmB/B,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,QAyClD"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-navigation/devtools",
3
3
  "description": "Developer tools for React Navigation",
4
- "version": "6.0.14",
4
+ "version": "6.0.15",
5
5
  "keywords": [
6
6
  "react",
7
7
  "react-native",
@@ -41,13 +41,13 @@
41
41
  "stacktrace-parser": "^0.1.10"
42
42
  },
43
43
  "devDependencies": {
44
- "@react-navigation/core": "^6.4.4",
44
+ "@react-navigation/core": "^6.4.5",
45
45
  "@testing-library/react-native": "^11.5.0",
46
46
  "@types/deep-equal": "^1.0.1",
47
47
  "@types/react": "~18.0.0",
48
48
  "del-cli": "^3.0.1",
49
49
  "react": "18.0.0",
50
- "react-native-builder-bob": "^0.18.1",
50
+ "react-native-builder-bob": "^0.20.3",
51
51
  "react-native-flipper": "~0.125.0",
52
52
  "typescript": "^4.7.4"
53
53
  },
@@ -68,5 +68,5 @@
68
68
  ]
69
69
  ]
70
70
  },
71
- "gitHead": "f7a9b1d102e5ff04ce3f726b934019ddbdd0550c"
71
+ "gitHead": "2b22d3ea9ca99bc298f4fb48ae9808b65aa25620"
72
72
  }