@pluve/logger-sdk 0.0.6 → 0.0.8

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 (105) hide show
  1. package/README.md +139 -432
  2. package/dist/cjs/capture/jsError.js +48 -0
  3. package/dist/cjs/capture/promiseError.js +49 -0
  4. package/dist/cjs/capture/resourceError.js +48 -0
  5. package/dist/cjs/capture/wechatError.js +95 -0
  6. package/dist/cjs/compress/compression.js +84 -0
  7. package/dist/cjs/config/index.js +55 -0
  8. package/dist/cjs/core/fingerprint.js +36 -0
  9. package/dist/cjs/core/httpClient.js +96 -0
  10. package/dist/cjs/core/loggerSDK.js +641 -0
  11. package/dist/cjs/core/queueManager.js +249 -0
  12. package/dist/cjs/core/retryManager.js +127 -0
  13. package/dist/cjs/index.js +29 -0
  14. package/dist/cjs/logger-sdk.mermaid +84 -0
  15. package/dist/cjs/logger-sdk.svg +1 -0
  16. package/dist/cjs/stack/stacktrace.js +48 -0
  17. package/dist/cjs/transport/beaconTransport.js +64 -0
  18. package/dist/cjs/transport/pixelImageTransport.js +100 -0
  19. package/dist/cjs/transport/transport.js +17 -0
  20. package/dist/cjs/transport/transportAdapter.js +56 -0
  21. package/dist/cjs/transport/wechatTransport.js +103 -0
  22. package/dist/cjs/types/api.js +17 -0
  23. package/dist/cjs/types/env.js +17 -0
  24. package/dist/cjs/types/external.d.ts +21 -0
  25. package/dist/cjs/types/logEvent.js +17 -0
  26. package/dist/cjs/types/logEventLevel.js +17 -0
  27. package/dist/cjs/types/sdkOptions.js +17 -0
  28. package/dist/cjs/types/trackOptions.js +17 -0
  29. package/dist/cjs/utils/environment.js +183 -0
  30. package/dist/cjs/utils/session.js +31 -0
  31. package/dist/cjs/utils/tools.js +82 -0
  32. package/dist/cjs/utils/uuid.js +35 -0
  33. package/dist/esm/capture/jsError.js +45 -0
  34. package/dist/esm/capture/promiseError.js +46 -0
  35. package/dist/esm/capture/resourceError.js +24 -0
  36. package/dist/esm/capture/wechatError.js +92 -0
  37. package/dist/esm/compress/compression.js +82 -0
  38. package/dist/esm/config/index.js +28 -0
  39. package/dist/esm/core/fingerprint.js +12 -0
  40. package/dist/esm/core/httpClient.js +95 -0
  41. package/dist/esm/core/loggerSDK.js +650 -0
  42. package/dist/esm/core/queueManager.js +269 -0
  43. package/dist/esm/core/retryManager.js +129 -0
  44. package/dist/esm/index.js +5 -0
  45. package/dist/esm/logger-sdk.mermaid +84 -0
  46. package/dist/esm/logger-sdk.svg +1 -0
  47. package/dist/esm/stack/stacktrace.js +37 -0
  48. package/dist/esm/transport/beaconTransport.js +81 -0
  49. package/dist/esm/transport/pixelImageTransport.js +99 -0
  50. package/dist/esm/transport/transport.js +0 -0
  51. package/dist/esm/transport/transportAdapter.js +32 -0
  52. package/dist/esm/transport/wechatTransport.js +120 -0
  53. package/dist/esm/types/api.js +0 -0
  54. package/dist/esm/types/env.js +0 -0
  55. package/dist/esm/types/external.d.ts +21 -0
  56. package/dist/esm/types/logEvent.js +0 -0
  57. package/dist/esm/types/logEventLevel.js +0 -0
  58. package/dist/esm/types/sdkOptions.js +0 -0
  59. package/dist/esm/types/trackOptions.js +0 -0
  60. package/dist/esm/utils/environment.js +154 -0
  61. package/dist/esm/utils/session.js +7 -0
  62. package/dist/esm/utils/tools.js +76 -0
  63. package/dist/esm/utils/uuid.js +11 -0
  64. package/dist/types/capture/jsError.d.ts +2 -0
  65. package/dist/types/capture/promiseError.d.ts +2 -0
  66. package/dist/types/capture/resourceError.d.ts +2 -0
  67. package/dist/types/capture/wechatError.d.ts +3 -0
  68. package/dist/types/compress/compression.d.ts +10 -0
  69. package/dist/types/config/index.d.ts +9 -0
  70. package/dist/types/core/fingerprint.d.ts +8 -0
  71. package/dist/types/core/httpClient.d.ts +11 -0
  72. package/dist/{loggerSDK.d.ts → types/core/loggerSDK.d.ts} +32 -14
  73. package/dist/{queueManager.d.ts → types/core/queueManager.d.ts} +9 -5
  74. package/dist/{retryManager.d.ts → types/core/retryManager.d.ts} +2 -6
  75. package/dist/types/index.d.ts +1 -0
  76. package/dist/types/stack/stacktrace.d.ts +2 -0
  77. package/dist/types/transport/beaconTransport.d.ts +11 -0
  78. package/dist/types/transport/pixelImageTransport.d.ts +11 -0
  79. package/dist/types/transport/transport.d.ts +14 -0
  80. package/dist/types/transport/transportAdapter.d.ts +10 -0
  81. package/dist/types/transport/wechatTransport.d.ts +11 -0
  82. package/dist/types/types/api.d.ts +12 -0
  83. package/dist/types/types/env.d.ts +14 -0
  84. package/dist/types/types/logEvent.d.ts +57 -0
  85. package/dist/types/types/logEventLevel.d.ts +2 -0
  86. package/dist/types/types/sdkOptions.d.ts +61 -0
  87. package/dist/types/types/trackOptions.d.ts +7 -0
  88. package/dist/types/utils/environment.d.ts +21 -0
  89. package/dist/types/utils/session.d.ts +1 -0
  90. package/dist/types/utils/tools.d.ts +12 -0
  91. package/dist/types/utils/uuid.d.ts +7 -0
  92. package/dist/umd/logger-sdk.min.js +1 -0
  93. package/package.json +30 -6
  94. package/README.html +0 -982
  95. package/dist/index.d.ts +0 -10
  96. package/dist/index.js +0 -13
  97. package/dist/loggerSDK.js +0 -573
  98. package/dist/queueManager.js +0 -201
  99. package/dist/retryManager.js +0 -223
  100. package/dist/transportAdapter.d.ts +0 -51
  101. package/dist/transportAdapter.js +0 -315
  102. package/dist/types.d.ts +0 -70
  103. package/dist/types.js +0 -1
  104. package/dist/utils.d.ts +0 -47
  105. package/dist/utils.js +0 -306
@@ -0,0 +1 @@
1
+ <svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="-8 -8 5231.60546875 3178.265625" style="max-width: 5231.61px; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="100%" id="my-svg"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span,#my-svg p{color:#333;}#my-svg .label text,#my-svg span,#my-svg p{fill:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .flowchart-label text{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .node .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#333333;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:#333333;fill:none;}#my-svg .edgeLabel{background-color:#e8e8e8;text-align:center;}#my-svg .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#my-svg .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#my-svg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span,#my-svg p{color:#333;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="6" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"/></marker><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="4.5" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><g class="root"><g class="clusters"><g id="存储兼容" class="cluster default flowchart-label"><rect height="1070.859375" width="787.55078125" y="1032.65625" x="0" ry="0" rx="0" style=""/><g transform="translate(361.775390625, 1032.65625)" class="cluster-label"><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">存储兼容</span></div></foreignObject></g></g><g id="重试策略" class="cluster default flowchart-label"><rect height="280.875" width="1034.93359375" y="2769.390625" x="3861.875" ry="0" rx="0" style=""/><g transform="translate(4347.341796875, 2769.390625)" class="cluster-label"><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">重试策略</span></div></foreignObject></g></g><g id="定时与卸载" class="cluster default flowchart-label"><rect height="1081.78125" width="684.515625" y="1304.609375" x="1281.078125" ry="0" rx="0" style=""/><g transform="translate(1583.3359375, 1304.609375)" class="cluster-label"><foreignObject height="22" width="80"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">定时与卸载</span></div></foreignObject></g></g><g id="传输细节" class="cluster default flowchart-label"><rect height="838.640625" width="1557.00390625" y="1547.75" x="2228.734375" ry="0" rx="0" style=""/><g transform="translate(2975.236328125, 1547.75)" class="cluster-label"><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">传输细节</span></div></foreignObject></g></g><g id="批量刷新" class="cluster default flowchart-label"><rect height="591.875" width="298.796875" y="2570.390625" x="4916.80859375" ry="0" rx="0" style=""/><g transform="translate(5034.20703125, 2570.390625)" class="cluster-label"><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">批量刷新</span></div></foreignObject></g></g><g id="采集与上报" class="cluster default flowchart-label"><rect height="2520.390625" width="1314.90625" y="0" x="3836.46484375" ry="0" rx="0" style=""/><g transform="translate(4453.91796875, 0)" class="cluster-label"><foreignObject height="22" width="80"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">采集与上报</span></div></foreignObject></g></g></g><g class="edgePaths"><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-A LE-B" id="L-A-B-0" d="M2406.23,284.258L2406.23,325.467C2406.23,366.677,2406.23,449.096,2406.23,505.996C2406.23,562.895,2406.23,594.274,2406.23,609.964L2406.23,625.653"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-C" id="L-B-C-0" d="M2259.59,660.185L1990.397,679.886C1721.204,699.587,1182.819,738.989,913.701,765.922C644.582,792.856,644.731,807.321,644.805,814.554L644.879,821.786"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C LE-D" id="L-C-D-0" d="M613.211,917.238L598.665,930.475C584.119,943.711,555.026,970.184,540.48,989.42C525.934,1008.656,525.934,1020.656,525.934,1041.436C525.934,1062.215,525.934,1091.774,525.934,1106.553L525.934,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C LE-E" id="L-C-E-0" d="M686.911,906.984L720.101,921.929C753.291,936.874,819.671,966.765,852.861,987.711C886.051,1008.656,886.051,1020.656,886.051,1041.436C886.051,1062.215,886.051,1091.774,886.051,1106.553L886.051,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-F" id="L-B-F-0" d="M2259.59,665.096L2082.577,683.978C1905.565,702.861,1551.54,740.626,1374.602,766.741C1197.664,792.856,1197.813,807.321,1197.887,814.554L1197.961,821.786"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-F LE-G" id="L-F-G-0" d="M1164.378,915.324L1147.49,928.879C1130.603,942.435,1096.827,969.545,1079.939,989.101C1063.051,1008.656,1063.051,1020.656,1063.051,1041.436C1063.051,1062.215,1063.051,1091.774,1063.051,1106.553L1063.051,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-F LE-H" id="L-F-H-0" d="M1215.105,931.871L1219.263,942.669C1223.421,953.466,1231.736,975.061,1235.893,991.859C1240.051,1008.656,1240.051,1020.656,1240.051,1041.436C1240.051,1062.215,1240.051,1091.774,1240.051,1106.553L1240.051,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-I" id="L-B-I-0" d="M2507.669,667.953L2608.594,686.359C2709.519,704.766,2911.369,741.578,3012.294,774.207C3113.219,806.835,3113.219,835.279,3113.219,849.501L3113.219,863.723"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-I LE-J" id="L-I-J-0" d="M3113.219,906.023L3113.219,921.129C3113.219,936.234,3113.219,966.445,3113.219,987.551C3113.219,1008.656,3113.219,1020.656,3113.294,1034.936C3113.369,1049.215,3113.52,1065.774,3113.595,1074.054L3113.671,1082.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-J LE-K" id="L-J-K-0" d="M3065.049,1154.964L2965.735,1173.905C2866.421,1192.845,2667.793,1230.727,2568.478,1255.668C2469.164,1280.609,2469.164,1292.609,2469.164,1314.954C2469.164,1337.299,2469.164,1369.99,2469.164,1404.513C2469.164,1439.036,2469.164,1475.393,2469.164,1499.572C2469.164,1523.75,2469.164,1535.75,2469.164,1558.295C2469.164,1580.84,2469.164,1613.93,2469.164,1630.475L2469.164,1647.02"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-J LE-L" id="L-J-L-0" d="M3147.309,1170.043L3169.946,1186.471C3192.583,1202.898,3237.858,1235.754,3260.495,1258.182C3283.133,1280.609,3283.133,1292.609,3283.199,1301.976C3283.265,1311.343,3283.397,1318.077,3283.463,1321.444L3283.529,1324.81"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-L LE-M" id="L-L-M-0" d="M3231.295,1423.913L3194.046,1438.552C3156.797,1453.192,3082.299,1482.471,3045.05,1503.11C3007.801,1523.75,3007.801,1535.75,3007.801,1558.295C3007.801,1580.84,3007.801,1613.93,3007.801,1630.475L3007.801,1647.02"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-L LE-N" id="L-L-N-0" d="M3329.255,1430.627L3351.784,1444.148C3374.312,1457.668,3419.369,1484.709,3441.897,1504.23C3464.426,1523.75,3464.426,1535.75,3464.426,1558.295C3464.426,1580.84,3464.426,1613.93,3464.426,1630.475L3464.426,1647.02"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-O" id="L-B-O-0" d="M2552.871,665.374L2726.365,684.21C2899.858,703.046,3246.845,740.718,3420.339,773.777C3593.832,806.835,3593.832,835.279,3593.832,849.501L3593.832,863.723"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-P" id="L-B-P-0" d="M2552.871,663.566L2751.72,682.703C2950.569,701.841,3348.267,740.116,3547.116,773.475C3745.965,806.835,3745.965,835.279,3745.965,849.501L3745.965,863.723"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-Q" id="L-B-Q-0" d="M2274.309,667.953L2143.057,686.359C2011.804,704.766,1749.298,741.578,1618.046,774.207C1486.793,806.835,1486.793,835.279,1486.793,849.501L1486.793,863.723"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Q LE-R" id="L-Q-R-0" d="M1486.793,906.023L1486.793,921.129C1486.793,936.234,1486.793,966.445,1486.793,987.551C1486.793,1008.656,1486.793,1020.656,1486.793,1041.436C1486.793,1062.215,1486.793,1091.774,1486.793,1106.553L1486.793,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R LE-S" id="L-R-S-0" d="M1441.598,1163.633L1398.855,1181.129C1356.112,1198.625,1270.626,1233.617,1227.883,1257.113C1185.141,1280.609,1185.141,1292.609,1185.212,1303.998C1185.284,1315.387,1185.427,1326.165,1185.499,1331.554L1185.57,1336.943"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-S LE-T" id="L-S-T-0" d="M1226.566,1423.192L1256.838,1437.951C1287.109,1452.711,1347.652,1482.231,1377.924,1502.99C1408.195,1523.75,1408.195,1535.75,1408.195,1558.045C1408.195,1580.34,1408.195,1612.93,1408.195,1629.225L1408.195,1645.52"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R LE-U" id="L-R-U-0" d="M1528.432,1163.633L1567.812,1181.129C1607.192,1198.625,1685.951,1233.617,1725.331,1257.113C1764.711,1280.609,1764.711,1292.609,1764.711,1310.988C1764.711,1329.366,1764.711,1354.123,1764.711,1366.501L1764.711,1378.88"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-U LE-V" id="L-U-V-0" d="M1782.064,1421.18L1796.223,1436.275C1810.383,1451.37,1838.701,1481.56,1852.86,1502.655C1867.02,1523.75,1867.02,1535.75,1894.148,1556.118C1921.276,1576.487,1975.533,1605.223,2002.661,1619.592L2029.79,1633.96"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-V LE-V1" id="L-V-V1-0" d="M2027.259,1695.986L1979.458,1713.637C1931.657,1731.288,1836.055,1766.589,1788.254,1806.325C1740.453,1846.061,1740.453,1890.232,1740.453,1912.318L1740.453,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-V LE-V2" id="L-V-V2-0" d="M2097.664,1766.391L2097.581,1772.307C2097.497,1778.224,2097.331,1790.057,2097.247,1818.059C2097.164,1846.061,2097.164,1890.232,2097.164,1912.318L2097.164,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-W LE-X" id="L-W-X-0" d="M4446.039,284.258L4446.039,325.467C4446.039,366.677,4446.039,449.096,4446.105,493.673C4446.171,538.249,4446.303,544.983,4446.369,548.35L4446.435,551.717"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-X LE-X1" id="L-X-X1-0" d="M4372.172,668.523L4298.424,686.834C4224.676,705.146,4077.18,741.768,4003.432,774.302C3929.684,806.835,3929.684,835.279,3929.684,849.501L3929.684,863.723"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-X LE-X2" id="L-X-X2-0" d="M4480.229,709.201L4486.75,720.733C4493.271,732.264,4506.313,755.327,4512.906,772.059C4519.498,788.791,4519.64,799.191,4519.712,804.391L4519.783,809.591"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-X2 LE-X3" id="L-X2-X3-0" d="M4459.483,900.783L4383.402,916.762C4307.322,932.741,4155.161,964.699,4079.08,986.677C4003,1008.656,4003,1020.656,4003,1041.436C4003,1062.215,4003,1091.774,4003,1106.553L4003,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-X2 LE-Y" id="L-X2-Y-0" d="M4550.898,930.114L4559.056,941.204C4567.213,952.295,4583.529,974.475,4591.686,991.566C4599.844,1008.656,4599.844,1020.656,4599.91,1030.023C4599.976,1039.39,4600.108,1046.124,4600.174,1049.49L4600.24,1052.857"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Y LE-Y1" id="L-Y-Y1-0" d="M4529.962,1162.728L4456.883,1180.375C4383.804,1198.022,4237.646,1233.316,4164.567,1256.962C4091.488,1280.609,4091.488,1292.609,4091.488,1310.988C4091.488,1329.366,4091.488,1354.123,4091.488,1366.501L4091.488,1378.88"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Y LE-Z" id="L-Y-Z-0" d="M4601.561,1231.892L4601.565,1238.012C4601.569,1244.131,4601.578,1256.37,4601.582,1268.49C4601.586,1280.609,4601.586,1292.609,4601.586,1310.988C4601.586,1329.366,4601.586,1354.123,4601.586,1366.501L4601.586,1378.88"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Z LE-AA" id="L-Z-AA-0" d="M4601.586,1421.18L4601.586,1436.275C4601.586,1451.37,4601.586,1481.56,4601.586,1502.655C4601.586,1523.75,4601.586,1535.75,4601.662,1551.055C4601.738,1566.361,4601.89,1584.972,4601.966,1594.277L4602.043,1603.583"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AA LE-AB" id="L-AA-AB-0" d="M4646.429,1686.414L4697.998,1705.66C4749.567,1724.907,4852.706,1763.399,4904.275,1804.73C4955.844,1846.061,4955.844,1890.232,4955.844,1912.318L4955.844,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AB LE-AC" id="L-AB-AC-0" d="M4955.844,1976.703L4955.844,1997.839C4955.844,2018.974,4955.844,2061.245,4955.844,2088.38C4955.844,2115.516,4955.844,2127.516,4955.915,2138.716C4955.986,2149.916,4956.129,2160.316,4956.2,2165.516L4956.271,2170.716"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AC LE-AD" id="L-AC-AD-0" d="M4997.184,2321.051L5005.703,2331.941C5014.221,2342.831,5031.259,2364.611,5039.778,2381.501C5048.297,2398.391,5048.297,2410.391,5048.297,2421.507C5048.297,2432.624,5048.297,2442.857,5048.297,2447.974L5048.297,2453.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AC LE-AE" id="L-AC-AE-0" d="M4891.788,2297.335L4857.754,2312.177C4823.721,2327.02,4755.653,2356.705,4721.62,2377.548C4687.586,2398.391,4687.586,2410.391,4687.586,2421.507C4687.586,2432.624,4687.586,2442.857,4687.586,2447.974L4687.586,2453.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AA LE-AF" id="L-AA-AF-0" d="M4555.857,1684.529L4494.032,1704.089C4432.207,1723.649,4308.556,1762.77,4246.731,1808.382C4184.906,1853.995,4184.906,1906.099,4184.906,1956.37C4184.906,2006.641,4184.906,2055.078,4184.906,2085.297C4184.906,2115.516,4184.906,2127.516,4184.906,2155.005C4184.906,2182.495,4184.906,2225.474,4184.906,2266.62C4184.906,2307.766,4184.906,2347.078,4184.906,2372.734C4184.906,2398.391,4184.906,2410.391,4184.906,2421.507C4184.906,2432.624,4184.906,2442.857,4184.906,2447.974L4184.906,2453.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AD LE-AG" id="L-AD-AG-0" d="M5048.297,2495.391L5048.297,2499.557C5048.297,2503.724,5048.297,2512.057,5048.297,2520.391C5048.297,2528.724,5048.297,2537.057,5048.297,2545.391C5048.297,2553.724,5048.297,2562.057,5048.297,2569.507C5048.297,2576.957,5048.297,2583.524,5048.297,2586.807L5048.297,2590.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AG LE-AH" id="L-AG-AH-0" d="M5048.297,2632.391L5048.297,2636.557C5048.297,2640.724,5048.297,2649.057,5048.297,2656.507C5048.297,2663.957,5048.297,2670.524,5048.297,2673.807L5048.297,2677.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AH LE-AI" id="L-AH-AI-0" d="M5055.914,2719.391L5057.629,2723.557C5059.345,2727.724,5062.776,2736.057,5064.491,2744.391C5066.207,2752.724,5066.207,2761.057,5066.207,2775.58C5066.207,2790.103,5066.207,2810.816,5066.207,2821.172L5066.207,2831.528"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AI LE-AJ" id="L-AI-AJ-0" d="M5066.207,2873.828L5066.207,2886.901C5066.207,2899.974,5066.207,2926.12,5066.207,2944.309C5066.207,2962.499,5066.207,2972.732,5066.207,2977.849L5066.207,2982.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AJ LE-AK" id="L-AJ-AK-0" d="M5066.207,3025.266L5066.207,3029.432C5066.207,3033.599,5066.207,3041.932,5066.207,3050.266C5066.207,3058.599,5066.207,3066.932,5066.207,3074.382C5066.207,3081.832,5066.207,3088.399,5066.207,3091.682L5066.207,3094.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-K LE-K1" id="L-K-K1-0" d="M2469.164,1686.32L2469.164,1705.582C2469.164,1724.844,2469.164,1763.367,2469.164,1804.714C2469.164,1846.061,2469.164,1890.232,2469.164,1912.318L2469.164,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-M LE-M1" id="L-M-M1-0" d="M3007.801,1686.32L3007.801,1705.582C3007.801,1724.844,3007.801,1763.367,3007.872,1787.829C3007.943,1812.291,3008.086,1822.691,3008.157,1827.891L3008.228,1833.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-M1 LE-M2" id="L-M1-M2-0" d="M2928.896,1999.611L2895.037,2016.929C2861.178,2034.246,2793.46,2068.881,2759.601,2092.198C2725.742,2115.516,2725.742,2127.516,2725.742,2151.039C2725.742,2174.561,2725.742,2209.607,2725.742,2227.13L2725.742,2244.653"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-M1 LE-M3" id="L-M1-M3-0" d="M3088.063,1999.253L3122.325,2016.63C3156.586,2034.007,3225.11,2068.761,3259.371,2092.139C3293.633,2115.516,3293.633,2127.516,3293.633,2151.039C3293.633,2174.561,3293.633,2209.607,3293.633,2227.13L3293.633,2244.653"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-N LE-N1" id="L-N-N1-0" d="M3464.426,1686.32L3464.426,1705.582C3464.426,1724.844,3464.426,1763.367,3464.426,1804.714C3464.426,1846.061,3464.426,1890.232,3464.426,1912.318L3464.426,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-T LE-T1" id="L-T-T1-0" d="M1408.195,1687.82L1408.195,1706.832C1408.195,1725.844,1408.195,1763.867,1408.195,1804.964C1408.195,1846.061,1408.195,1890.232,1408.195,1912.318L1408.195,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-U LE-U1" id="L-U-U1-0" d="M1758.169,1421.18L1752.832,1436.275C1747.494,1451.37,1736.82,1481.56,1731.482,1502.655C1726.145,1523.75,1726.145,1535.75,1726.145,1558.045C1726.145,1580.34,1726.145,1612.93,1726.145,1629.225L1726.145,1645.52"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-V1 LE-U2" id="L-V1-U2-0" d="M1740.453,1976.703L1740.453,1997.839C1740.453,2018.974,1740.453,2061.245,1740.453,2088.38C1740.453,2115.516,1740.453,2127.516,1740.453,2151.039C1740.453,2174.561,1740.453,2209.607,1740.453,2227.13L1740.453,2244.653"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AF LE-R1" id="L-AF-R1-0" d="M4184.906,2495.391L4184.906,2499.557C4184.906,2503.724,4184.906,2512.057,4184.906,2520.391C4184.906,2528.724,4184.906,2537.057,4184.906,2545.391C4184.906,2553.724,4184.906,2562.057,4184.906,2573.474C4184.906,2584.891,4184.906,2599.391,4184.906,2613.891C4184.906,2628.391,4184.906,2642.891,4184.906,2657.391C4184.906,2671.891,4184.906,2686.391,4184.906,2700.891C4184.906,2715.391,4184.906,2729.891,4184.906,2741.307C4184.906,2752.724,4184.906,2761.057,4184.972,2768.591C4185.038,2776.124,4185.17,2782.858,4185.236,2786.225L4185.302,2789.592"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R1 LE-R2" id="L-R1-R2-0" d="M4150.539,2881.898L4134.659,2893.626C4118.779,2905.354,4087.018,2928.81,4071.138,2945.654C4055.258,2962.499,4055.258,2972.732,4055.258,2977.849L4055.258,2982.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R1 LE-R3" id="L-R1-R3-0" d="M4220.274,2881.898L4235.987,2893.626C4251.701,2905.354,4283.128,2928.81,4298.841,2945.654C4314.555,2962.499,4314.555,2972.732,4314.555,2977.849L4314.555,2982.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AH LE-R4" id="L-AH-R4-0" d="M5020.781,2719.391L5014.584,2723.557C5008.387,2727.724,4995.992,2736.057,4989.795,2744.391C4983.598,2752.724,4983.598,2761.057,4942.337,2777.127C4901.075,2793.197,4818.553,2817.003,4777.292,2828.906L4736.031,2840.809"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R4 LE-R5" id="L-R4-R5-0" d="M4649.492,2882.707L4634.613,2894.3C4619.734,2905.893,4589.977,2929.079,4575.098,2945.789C4560.219,2962.499,4560.219,2972.732,4560.219,2977.849L4560.219,2982.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R4 LE-R6" id="L-R4-R6-0" d="M4717.61,2882.707L4732.322,2894.3C4747.034,2905.893,4776.458,2929.079,4791.171,2945.789C4805.883,2962.499,4805.883,2972.732,4805.883,2977.849L4805.883,2982.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-D LE-D1" id="L-D-D1-0" d="M525.934,1163.633L525.934,1181.129C525.934,1198.625,525.934,1233.617,525.934,1257.113C525.934,1280.609,525.934,1292.609,526.009,1307.154C526.085,1321.7,526.236,1338.79,526.311,1347.335L526.387,1355.88"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-D1 LE-D2" id="L-D1-D2-0" d="M496.978,1415.724L459.12,1431.729C421.261,1447.733,345.545,1479.741,307.686,1501.746C269.828,1523.75,269.828,1535.75,269.828,1558.045C269.828,1580.34,269.828,1612.93,269.828,1629.225L269.828,1645.52"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-D2 LE-D2a" id="L-D2-D2a-0" d="M269.828,1687.82L269.828,1706.832C269.828,1725.844,269.828,1763.867,269.828,1804.964C269.828,1846.061,269.828,1890.232,269.828,1912.318L269.828,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-D1 LE-D3" id="L-D1-D3-0" d="M548.959,1422.655L566.147,1437.504C583.334,1452.353,617.71,1482.052,634.898,1502.901C652.086,1523.75,652.086,1535.75,652.086,1558.045C652.086,1580.34,652.086,1612.93,652.086,1629.225L652.086,1645.52"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(525.93359375, 996.65625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(886.05078125, 996.65625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(1063.05078125, 996.65625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(1240.05078125, 996.65625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(2469.1640625, 1402.6796875)" class="edgeLabel"><g transform="translate(-40, -11)" class="label"><foreignObject height="22" width="80"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">微信小程序</span></div></foreignObject></g></g><g transform="translate(3283.1328125, 1268.609375)" class="edgeLabel"><g transform="translate(-24, -11)" class="label"><foreignObject height="22" width="48"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">浏览器</span></div></foreignObject></g></g><g transform="translate(3007.80078125, 1511.75)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(3464.42578125, 1511.75)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(1408.1953125, 1511.75)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(1740.453125, 1801.890625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(2097.1640625, 1801.890625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(3929.68359375, 778.390625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g transform="translate(4519.35546875, 778.390625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(4003, 996.65625)" class="edgeLabel"><g transform="translate(-16, -11)" class="label"><foreignObject height="22" width="32"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">重复</span></div></foreignObject></g></g><g transform="translate(4599.84375, 996.65625)" class="edgeLabel"><g transform="translate(-24, -11)" class="label"><foreignObject height="22" width="48"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">非重复</span></div></foreignObject></g></g><g transform="translate(4091.48828125, 1268.609375)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g transform="translate(4601.5859375, 1268.609375)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(4955.84375, 1801.890625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(5048.296875, 2422.390625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(4687.5859375, 2422.390625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g transform="translate(4184.90625, 2139.515625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(2725.7421875, 2139.515625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(3293.6328125, 2139.515625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(4055.2578125, 2952.265625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(4314.5546875, 2952.265625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(4560.21875, 2952.265625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(4805.8828125, 2952.265625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(269.828125, 1511.75)" class="edgeLabel"><g transform="translate(-24, -11)" class="label"><foreignObject height="22" width="48"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">浏览器</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(652.0859375, 1511.75)" class="edgeLabel"><g transform="translate(-40, -11)" class="label"><foreignObject height="22" width="80"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">微信小程序</span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(525.93359375, 1402.6796875)" data-id="D1" data-node="true" id="flowchart-D1-117" class="node default default flowchart-label"><polygon style="" transform="translate(-42,42)" class="label-container" points="42,0 84,-42 42,-84 0,-42"/><g transform="translate(-16, -11)" style="" class="label"><rect/><foreignObject height="22" width="32"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">环境</span></div></foreignObject></g></g><g transform="translate(525.93359375, 1145.1328125)" data-id="D" data-node="true" id="flowchart-D-5" class="node default default flowchart-label"><rect height="37" width="207" y="-18.5" x="-103.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-96, -11)" style="" class="label"><rect/><foreignObject height="22" width="192"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">创建队列管理器并加载存储</span></div></foreignObject></g></g><g transform="translate(269.828125, 1669.3203125)" data-id="D2" data-node="true" id="flowchart-D2-119" class="node default default flowchart-label"><rect height="37" width="469.65625" y="-18.5" x="-234.828125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-227.328125, -11)" style="" class="label"><rect/><foreignObject height="22" width="454.65625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">动态 import localforage 使用 IndexedDB; 失败回退 localStorage</span></div></foreignObject></g></g><g transform="translate(269.828125, 1958.203125)" data-id="D2a" data-node="true" id="flowchart-D2a-121" class="node default default flowchart-label"><rect height="37" width="301.078125" y="-18.5" x="-150.5390625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-143.0390625, -11)" style="" class="label"><rect/><foreignObject height="22" width="286.078125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">如解析失败: 回退 globalThis.localforage</span></div></foreignObject></g></g><g transform="translate(652.0859375, 1669.3203125)" data-id="D3" data-node="true" id="flowchart-D3-123" class="node default default flowchart-label"><rect height="37" width="194.859375" y="-18.5" x="-97.4296875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-89.9296875, -11)" style="" class="label"><rect/><foreignObject height="22" width="179.859375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">使用 wx.storage 同步 API</span></div></foreignObject></g></g><g transform="translate(4184.90625, 2855.328125)" data-id="R1" data-node="true" id="flowchart-R1-105" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用重试?</span></div></foreignObject></g></g><g transform="translate(4055.2578125, 3006.765625)" data-id="R2" data-node="true" id="flowchart-R2-107" class="node default default flowchart-label"><rect height="37" width="316.765625" y="-18.5" x="-158.3828125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-150.8828125, -11)" style="" class="label"><rect/><foreignObject height="22" width="301.765625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">executeWithRetry(event.logId, sendFn)</span></div></foreignObject></g></g><g transform="translate(4314.5546875, 3006.765625)" data-id="R3" data-node="true" id="flowchart-R3-109" class="node default default flowchart-label"><rect height="37" width="101.828125" y="-18.5" x="-50.9140625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-43.4140625, -11)" style="" class="label"><rect/><foreignObject height="22" width="86.828125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">直接 sendFn</span></div></foreignObject></g></g><g transform="translate(4683.05078125, 2855.328125)" data-id="R4" data-node="true" id="flowchart-R4-111" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用重试?</span></div></foreignObject></g></g><g transform="translate(4560.21875, 3006.765625)" data-id="R5" data-node="true" id="flowchart-R5-113" class="node default default flowchart-label"><rect height="37" width="289.5" y="-18.5" x="-144.75" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-137.25, -11)" style="" class="label"><rect/><foreignObject height="22" width="274.5"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">executeWithRetry(batchId, sendFn)</span></div></foreignObject></g></g><g transform="translate(4805.8828125, 3006.765625)" data-id="R6" data-node="true" id="flowchart-R6-115" class="node default default flowchart-label"><rect height="37" width="101.828125" y="-18.5" x="-50.9140625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-43.4140625, -11)" style="" class="label"><rect/><foreignObject height="22" width="86.828125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">直接 sendFn</span></div></foreignObject></g></g><g transform="translate(1408.1953125, 1958.203125)" data-id="T1" data-node="true" id="flowchart-T1-99" class="node default default flowchart-label"><rect height="37" width="184.234375" y="-18.5" x="-92.1171875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-84.6171875, -11)" style="" class="label"><rect/><foreignObject height="22" width="169.234375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">setInterval 周期性 flush</span></div></foreignObject></g></g><g transform="translate(1408.1953125, 1669.3203125)" data-id="T" data-node="true" id="flowchart-T-37" class="node default default flowchart-label"><rect height="37" width="127" y="-18.5" x="-63.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56, -11)" style="" class="label"><rect/><foreignObject height="22" width="112"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启动批量定时器</span></div></foreignObject></g></g><g transform="translate(1726.14453125, 1669.3203125)" data-id="U1" data-node="true" id="flowchart-U1-101" class="node default default flowchart-label"><rect height="37" width="379.234375" y="-18.5" x="-189.6171875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-182.1171875, -11)" style="" class="label"><rect/><foreignObject height="22" width="364.234375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">visibilitychange/pagehide/beforeunload 触发 flush</span></div></foreignObject></g></g><g transform="translate(1764.7109375, 1402.6796875)" data-id="U" data-node="true" id="flowchart-U-39" class="node default default flowchart-label"><rect height="37" width="199.390625" y="-18.5" x="-99.6953125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-92.1953125, -11)" style="" class="label"><rect/><foreignObject height="22" width="184.390625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">挂载卸载/可见性事件处理</span></div></foreignObject></g></g><g transform="translate(1740.453125, 2268.453125)" data-id="U2" data-node="true" id="flowchart-U2-103" class="node default default flowchart-label"><rect height="37" width="360.1875" y="-18.5" x="-180.09375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-172.59375, -11)" style="" class="label"><rect/><foreignObject height="22" width="345.1875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">销毁时统一 off(js/promise/resource/wechat)</span></div></foreignObject></g></g><g transform="translate(1740.453125, 1958.203125)" data-id="V1" data-node="true" id="flowchart-V1-43" class="node default default flowchart-label"><rect height="37" width="380.28125" y="-18.5" x="-190.140625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-182.640625, -11)" style="" class="label"><rect/><foreignObject height="22" width="365.28125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">按 autoCapture: 注册 js/promise/resource/wechat</span></div></foreignObject></g></g><g transform="translate(1514.16015625, 17)" class="root"><g class="clusters"><g id="压缩流程" class="cluster default flowchart-label"><rect height="481.515625" width="787.296875" y="8" x="8" ry="0" rx="0" style=""/><g transform="translate(369.6484375, 8)" class="cluster-label"><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">压缩流程</span></div></foreignObject></g></g></g><g class="edgePaths"><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C1 LE-C2" id="L-C1-C2-0" d="M415.379,70L415.379,74.167C415.379,78.333,415.379,86.667,415.445,94.2C415.511,101.734,415.643,108.467,415.709,111.834L415.775,115.201"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C2 LE-C3" id="L-C2-C3-0" d="M350.514,290.651L329.354,307.462C308.194,324.273,265.875,357.894,244.715,379.822C223.555,401.749,223.555,411.982,223.555,417.099L223.555,422.216"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C2 LE-C4" id="L-C2-C4-0" d="M481.243,290.651L502.237,307.462C523.23,324.273,565.217,357.894,586.21,380.072C607.203,402.249,607.203,412.982,607.203,418.349L607.203,423.716"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(223.5546875, 391.515625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(607.203125, 391.515625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(415.37890625, 237.7578125)" data-id="C2" data-node="true" id="flowchart-C2-93" class="node default default flowchart-label"><polygon style="" transform="translate(-117.7578125,117.7578125)" class="label-container" points="117.7578125,0 235.515625,-117.7578125 117.7578125,-235.515625 0,-117.7578125"/><g transform="translate(-91.7578125, -11)" style="" class="label"><rect/><foreignObject height="22" width="183.515625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">支持 CompressionStream?</span></div></foreignObject></g></g><g transform="translate(415.37890625, 51.5)" data-id="C1" data-node="true" id="flowchart-C1-92" class="node default default flowchart-label"><rect height="37" width="176.421875" y="-18.5" x="-88.2109375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-80.7109375, -11)" style="" class="label"><rect/><foreignObject height="22" width="161.421875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">gzipCompress(data)</span></div></foreignObject></g></g><g transform="translate(223.5546875, 446.015625)" data-id="C3" data-node="true" id="flowchart-C3-95" class="node default default flowchart-label"><rect height="37" width="361.109375" y="-18.5" x="-180.5546875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-173.0546875, -11)" style="" class="label"><rect/><foreignObject height="22" width="346.109375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">CompressionStream('gzip') 流式压缩后 Base64</span></div></foreignObject></g></g><g transform="translate(607.203125, 446.015625)" data-id="C4" data-node="true" id="flowchart-C4-97" class="node default default flowchart-label"><rect height="34" width="306.1875" y="-17" x="-153.09375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-145.59375, -9.5)" style="" class="label"><rect/><foreignObject height="19" width="291.1875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">fflate.gzipSync + Base64.fromUint8Array</span></div></foreignObject></g></g></g></g><g transform="translate(2469.1640625, 1958.203125)" data-id="K1" data-node="true" id="flowchart-K1-83" class="node default default flowchart-label"><rect height="37" width="410.859375" y="-18.5" x="-205.4296875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-197.9296875, -11)" style="" class="label"><rect/><foreignObject height="22" width="395.859375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">字符串化; 启用 gzip 时压缩成 Base64; wx.request POST</span></div></foreignObject></g></g><g transform="translate(2469.1640625, 1669.3203125)" data-id="K" data-node="true" id="flowchart-K-19" class="node default default flowchart-label"><rect height="34" width="135.484375" y="-17" x="-67.7421875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-60.2421875, -9.5)" style="" class="label"><rect/><foreignObject height="19" width="120.484375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">WechatTransport</span></div></foreignObject></g></g><g transform="translate(3007.80078125, 1958.203125)" data-id="M1" data-node="true" id="flowchart-M1-85" class="node default default flowchart-label"><polygon style="" transform="translate(-120.3125,120.3125)" class="label-container" points="120.3125,0 240.625,-120.3125 120.3125,-240.625 0,-120.3125"/><g transform="translate(-94.3125, -11)" style="" class="label"><rect/><foreignObject height="22" width="188.625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用 gzip? 且满足批量条件</span></div></foreignObject></g></g><g transform="translate(3007.80078125, 1669.3203125)" data-id="M" data-node="true" id="flowchart-M-23" class="node default default flowchart-label"><rect height="34" width="133.875" y="-17" x="-66.9375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-59.4375, -9.5)" style="" class="label"><rect/><foreignObject height="19" width="118.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">BeaconTransport</span></div></foreignObject></g></g><g transform="translate(2725.7421875, 2268.453125)" data-id="M2" data-node="true" id="flowchart-M2-87" class="node default default flowchart-label"><rect height="37" width="685.6875" y="-18.5" x="-342.84375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-335.34375, -11)" style="" class="label"><rect/><foreignObject height="22" width="670.6875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">压缩 items 为 Base64 字符串; 替换 body 为 「...payload, items: Base64」; 设置 Content-Type</span></div></foreignObject></g></g><g transform="translate(3293.6328125, 2268.453125)" data-id="M3" data-node="true" id="flowchart-M3-89" class="node default default flowchart-label"><rect height="37" width="342.546875" y="-18.5" x="-171.2734375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-163.7734375, -11)" style="" class="label"><rect/><foreignObject height="22" width="327.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">直接 JSON body; Blob 包裹; sendBeacon POST</span></div></foreignObject></g></g><g transform="translate(3464.42578125, 1958.203125)" data-id="N1" data-node="true" id="flowchart-N1-91" class="node default default flowchart-label"><rect height="37" width="572.625" y="-18.5" x="-286.3125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-278.8125, -11)" style="" class="label"><rect/><foreignObject height="22" width="557.625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">字符串化 items; gzip: Base64 / btoa / encodeURIComponent 回退; Image GET</span></div></foreignObject></g></g><g transform="translate(3464.42578125, 1669.3203125)" data-id="N" data-node="true" id="flowchart-N-25" class="node default default flowchart-label"><rect height="34" width="159.53125" y="-17" x="-79.765625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-72.265625, -9.5)" style="" class="label"><rect/><foreignObject height="19" width="144.53125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">PixelImageTransport</span></div></foreignObject></g></g><g transform="translate(5048.296875, 2613.890625)" data-id="AG" data-node="true" id="flowchart-AG-73" class="node default default flowchart-label"><rect height="37" width="150.265625" y="-18.5" x="-75.1328125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-67.6328125, -11)" style="" class="label"><rect/><foreignObject height="22" width="135.265625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">peek 读取待发事件</span></div></foreignObject></g></g><g transform="translate(5048.296875, 2700.890625)" data-id="AH" data-node="true" id="flowchart-AH-75" class="node default default flowchart-label"><rect height="37" width="157.15625" y="-18.5" x="-78.578125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-71.078125, -11)" style="" class="label"><rect/><foreignObject height="22" width="142.15625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">sendBatch 批量发送</span></div></foreignObject></g></g><g transform="translate(5066.20703125, 2855.328125)" data-id="AI" data-node="true" id="flowchart-AI-77" class="node default default flowchart-label"><rect height="37" width="219.171875" y="-18.5" x="-109.5859375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-102.0859375, -11)" style="" class="label"><rect/><foreignObject height="22" width="204.171875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">按 appId &amp; stage 分组并分块</span></div></foreignObject></g></g><g transform="translate(5066.20703125, 3006.765625)" data-id="AJ" data-node="true" id="flowchart-AJ-79" class="node default default flowchart-label"><rect height="37" width="228.796875" y="-18.5" x="-114.3984375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-106.8984375, -11)" style="" class="label"><rect/><foreignObject height="22" width="213.796875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">transporter.send(并发收集)</span></div></foreignObject></g></g><g transform="translate(5066.20703125, 3118.765625)" data-id="AK" data-node="true" id="flowchart-AK-81" class="node default default flowchart-label"><rect height="37" width="161.3125" y="-18.5" x="-80.65625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-73.15625, -11)" style="" class="label"><rect/><foreignObject height="22" width="146.3125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">dequeue 成功后出队</span></div></foreignObject></g></g><g transform="translate(4446.0390625, 649.453125)" data-id="X" data-node="true" id="flowchart-X-47" class="node default default flowchart-label"><polygon style="" transform="translate(-92.9375,92.9375)" class="label-container" points="92.9375,0 185.875,-92.9375 92.9375,-185.875 0,-92.9375"/><g transform="translate(-66.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="133.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">已初始化且未关闭?</span></div></foreignObject></g></g><g transform="translate(4446.0390625, 265.7578125)" data-id="W" data-node="true" id="flowchart-W-46" class="node default default flowchart-label"><rect height="37" width="173.609375" y="-18.5" x="-86.8046875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-79.3046875, -11)" style="" class="label"><rect/><foreignObject height="22" width="158.609375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">调用 track 或自动采集</span></div></foreignObject></g></g><g transform="translate(3929.68359375, 887.5234375)" data-id="X1" data-node="true" id="flowchart-X1-49" class="node default default flowchart-label"><rect height="37" width="47" y="-18.5" x="-23.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-16, -11)" style="" class="label"><rect/><foreignObject height="22" width="32"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">跳过</span></div></foreignObject></g></g><g transform="translate(4519.35546875, 887.5234375)" data-id="X2" data-node="true" id="flowchart-X2-51" class="node default default flowchart-label"><polygon style="" transform="translate(-73.1328125,73.1328125)" class="label-container" points="73.1328125,0 146.265625,-73.1328125 73.1328125,-146.265625 0,-73.1328125"/><g transform="translate(-47.1328125, -11)" style="" class="label"><rect/><foreignObject height="22" width="94.265625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">3秒去重窗口?</span></div></foreignObject></g></g><g transform="translate(4003, 1145.1328125)" data-id="X3" data-node="true" id="flowchart-X3-53" class="node default default flowchart-label"><rect height="37" width="47" y="-18.5" x="-23.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-16, -11)" style="" class="label"><rect/><foreignObject height="22" width="32"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">跳过</span></div></foreignObject></g></g><g transform="translate(4599.84375, 1145.1328125)" data-id="Y" data-node="true" id="flowchart-Y-55" class="node default default flowchart-label"><polygon style="" transform="translate(-87.4765625,87.4765625)" class="label-container" points="87.4765625,0 174.953125,-87.4765625 87.4765625,-174.953125 0,-87.4765625"/><g transform="translate(-61.4765625, -11)" style="" class="label"><rect/><foreignObject height="22" width="122.953125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">shouldSend 采样?</span></div></foreignObject></g></g><g transform="translate(4091.48828125, 1402.6796875)" data-id="Y1" data-node="true" id="flowchart-Y1-57" class="node default default flowchart-label"><rect height="37" width="79" y="-18.5" x="-39.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-32, -11)" style="" class="label"><rect/><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">采样丢弃</span></div></foreignObject></g></g><g transform="translate(4601.5859375, 1402.6796875)" data-id="Z" data-node="true" id="flowchart-Z-59" class="node default default flowchart-label"><rect height="37" width="116.765625" y="-18.5" x="-58.3828125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-50.8828125, -11)" style="" class="label"><rect/><foreignObject height="22" width="101.765625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">构建 LogEvent</span></div></foreignObject></g></g><g transform="translate(4601.5859375, 1669.3203125)" data-id="AA" data-node="true" id="flowchart-AA-61" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用批量?</span></div></foreignObject></g></g><g transform="translate(4955.84375, 1958.203125)" data-id="AB" data-node="true" id="flowchart-AB-63" class="node default default flowchart-label"><rect height="37" width="113.140625" y="-18.5" x="-56.5703125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-49.0703125, -11)" style="" class="label"><rect/><foreignObject height="22" width="98.140625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">enqueue 入队</span></div></foreignObject></g></g><g transform="translate(4955.84375, 2268.453125)" data-id="AC" data-node="true" id="flowchart-AC-65" class="node default default flowchart-label"><polygon style="" transform="translate(-92.9375,92.9375)" class="label-container" points="92.9375,0 185.875,-92.9375 92.9375,-185.875 0,-92.9375"/><g transform="translate(-66.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="133.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">队列达到批量阈值?</span></div></foreignObject></g></g><g transform="translate(5048.296875, 2476.890625)" data-id="AD" data-node="true" id="flowchart-AD-67" class="node default default flowchart-label"><rect height="37" width="86.421875" y="-18.5" x="-43.2109375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-35.7109375, -11)" style="" class="label"><rect/><foreignObject height="22" width="71.421875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">flush 刷新</span></div></foreignObject></g></g><g transform="translate(4687.5859375, 2476.890625)" data-id="AE" data-node="true" id="flowchart-AE-69" class="node default default flowchart-label"><rect height="37" width="183.390625" y="-18.5" x="-91.6953125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-84.1953125, -11)" style="" class="label"><rect/><foreignObject height="22" width="168.390625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">等待定时器/下一次触发</span></div></foreignObject></g></g><g transform="translate(4184.90625, 2476.890625)" data-id="AF" data-node="true" id="flowchart-AF-71" class="node default default flowchart-label"><rect height="37" width="156.90625" y="-18.5" x="-78.453125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-70.953125, -11)" style="" class="label"><rect/><foreignObject height="22" width="141.90625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">sendEvent 直接发送</span></div></foreignObject></g></g><g transform="translate(2406.23046875, 265.7578125)" data-id="A" data-node="true" id="flowchart-A-0" class="node default default flowchart-label"><rect height="37" width="94.546875" y="-18.5" x="-47.2734375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-39.7734375, -11)" style="" class="label"><rect/><foreignObject height="22" width="79.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">初始化 SDK</span></div></foreignObject></g></g><g transform="translate(2406.23046875, 649.453125)" data-id="B" data-node="true" id="flowchart-B-1" class="node default default flowchart-label"><rect height="37" width="293.28125" y="-18.5" x="-146.640625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-139.140625, -11)" style="" class="label"><rect/><foreignObject height="22" width="278.28125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">设置选项(批量/重试/gzip/自动采集)</span></div></foreignObject></g></g><g transform="translate(644.43359375, 887.5234375)" data-id="C" data-node="true" id="flowchart-C-3" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用批量?</span></div></foreignObject></g></g><g transform="translate(886.05078125, 1145.1328125)" data-id="E" data-node="true" id="flowchart-E-7" class="node default default flowchart-label"><rect height="37" width="127" y="-18.5" x="-63.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56, -11)" style="" class="label"><rect/><foreignObject height="22" width="112"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">跳过队列管理器</span></div></foreignObject></g></g><g transform="translate(1197.515625, 887.5234375)" data-id="F" data-node="true" id="flowchart-F-9" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用重试?</span></div></foreignObject></g></g><g transform="translate(1063.05078125, 1145.1328125)" data-id="G" data-node="true" id="flowchart-G-11" class="node default default flowchart-label"><rect height="37" width="127" y="-18.5" x="-63.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56, -11)" style="" class="label"><rect/><foreignObject height="22" width="112"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">创建重试管理器</span></div></foreignObject></g></g><g transform="translate(1240.05078125, 1145.1328125)" data-id="H" data-node="true" id="flowchart-H-13" class="node default default flowchart-label"><rect height="37" width="127" y="-18.5" x="-63.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56, -11)" style="" class="label"><rect/><foreignObject height="22" width="112"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">跳过重试管理器</span></div></foreignObject></g></g><g transform="translate(3113.21875, 887.5234375)" data-id="I" data-node="true" id="flowchart-I-15" class="node default default flowchart-label"><rect height="37" width="127" y="-18.5" x="-63.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56, -11)" style="" class="label"><rect/><foreignObject height="22" width="112"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">选择传输适配器</span></div></foreignObject></g></g><g transform="translate(3113.21875, 1145.1328125)" data-id="J" data-node="true" id="flowchart-J-17" class="node default default flowchart-label"><polygon style="" transform="translate(-58,58)" class="label-container" points="58,0 116,-58 58,-116 0,-58"/><g transform="translate(-32, -11)" style="" class="label"><rect/><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">运行环境</span></div></foreignObject></g></g><g transform="translate(3283.1328125, 1402.6796875)" data-id="L" data-node="true" id="flowchart-L-21" class="node default default flowchart-label"><polygon style="" transform="translate(-73.0703125,73.0703125)" class="label-container" points="73.0703125,0 146.140625,-73.0703125 73.0703125,-146.140625 0,-73.0703125"/><g transform="translate(-47.0703125, -11)" style="" class="label"><rect/><foreignObject height="22" width="94.140625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">支持 Beacon?</span></div></foreignObject></g></g><g transform="translate(3593.83203125, 887.5234375)" data-id="O" data-node="true" id="flowchart-O-27" class="node default default flowchart-label"><rect height="37" width="93.265625" y="-18.5" x="-46.6328125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-39.1328125, -11)" style="" class="label"><rect/><foreignObject height="22" width="78.265625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">生成会话ID</span></div></foreignObject></g></g><g transform="translate(3745.96484375, 887.5234375)" data-id="P" data-node="true" id="flowchart-P-29" class="node default default flowchart-label"><rect height="37" width="111" y="-18.5" x="-55.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-48, -11)" style="" class="label"><rect/><foreignObject height="22" width="96"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">收集环境标签</span></div></foreignObject></g></g><g transform="translate(1486.79296875, 887.5234375)" data-id="Q" data-node="true" id="flowchart-Q-31" class="node default default flowchart-label"><rect height="37" width="78.546875" y="-18.5" x="-39.2734375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-31.7734375, -11)" style="" class="label"><rect/><foreignObject height="22" width="63.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">注册 SDK</span></div></foreignObject></g></g><g transform="translate(1486.79296875, 1145.1328125)" data-id="R" data-node="true" id="flowchart-R-33" class="node default default flowchart-label"><rect height="37" width="266.484375" y="-18.5" x="-133.2421875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-125.7421875, -11)" style="" class="label"><rect/><foreignObject height="22" width="251.484375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">接收初始化数据: 开关/等级/采样率</span></div></foreignObject></g></g><g transform="translate(1185.140625, 1402.6796875)" data-id="S" data-node="true" id="flowchart-S-35" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用批量?</span></div></foreignObject></g></g><g transform="translate(2097.1640625, 1669.3203125)" data-id="V" data-node="true" id="flowchart-V-41" class="node default default flowchart-label"><polygon style="" transform="translate(-96.5703125,96.5703125)" class="label-container" points="96.5703125,0 193.140625,-96.5703125 96.5703125,-193.140625 0,-96.5703125"/><g transform="translate(-72.0703125, -9.5)" style="" class="label"><rect/><foreignObject height="19" width="144.140625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">enableAutoCapture?</span></div></foreignObject></g></g><g transform="translate(2097.1640625, 1958.203125)" data-id="V2" data-node="true" id="flowchart-V2-45" class="node default default flowchart-label"><rect height="37" width="111" y="-18.5" x="-55.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-48, -11)" style="" class="label"><rect/><foreignObject height="22" width="96"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">跳过自动采集</span></div></foreignObject></g></g></g></g></g></svg>
@@ -0,0 +1,48 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/stack/stacktrace.ts
30
+ var stacktrace_exports = {};
31
+ __export(stacktrace_exports, {
32
+ parseStack: () => parseStack
33
+ });
34
+ module.exports = __toCommonJS(stacktrace_exports);
35
+ var import_stacktrace_js = __toESM(require("stacktrace-js"));
36
+ async function parseStack(error) {
37
+ const frames = await import_stacktrace_js.default.fromError(error);
38
+ return frames.slice(0, 5).map((f) => ({
39
+ file: f.fileName || "",
40
+ line: f.lineNumber || 0,
41
+ column: f.columnNumber || 0,
42
+ function: f.functionName || void 0
43
+ }));
44
+ }
45
+ // Annotate the CommonJS export names for ESM import in node:
46
+ 0 && (module.exports = {
47
+ parseStack
48
+ });
@@ -0,0 +1,64 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/transport/beaconTransport.ts
20
+ var beaconTransport_exports = {};
21
+ __export(beaconTransport_exports, {
22
+ BeaconTransport: () => BeaconTransport
23
+ });
24
+ module.exports = __toCommonJS(beaconTransport_exports);
25
+ var import_compression = require("../compress/compression");
26
+ var import_config = require("../config");
27
+ var import_environment = require("../utils/environment");
28
+ var import_tools = require("../utils/tools");
29
+ var BeaconTransport = class {
30
+ constructor(opts) {
31
+ /** 传输器名称 */
32
+ this.name = "beacon";
33
+ this.opts = opts;
34
+ }
35
+ // eslint-disable-next-line class-methods-use-this
36
+ isSupported() {
37
+ return (0, import_environment.isBrowser)() && typeof navigator !== "undefined" && navigator.sendBeacon && typeof navigator.sendBeacon === "function";
38
+ }
39
+ async send(payload) {
40
+ var _a, _b, _c, _d, _e;
41
+ let body = typeof payload === "string" ? payload : (0, import_tools.safeStringify)(payload);
42
+ const endpoint = (0, import_config.getReportApi)(((_a = this.opts) == null ? void 0 : _a.env) || "develop");
43
+ let contentType = "application/json";
44
+ if (((_b = this.opts) == null ? void 0 : _b.enableGzip) && (!((_c = this.opts) == null ? void 0 : _c.gzipOnlyInBatchMode) || payload.items.length > 0)) {
45
+ const compressedItems = await (0, import_compression.gzipCompress)((0, import_tools.safeStringify)(payload.items));
46
+ body = (0, import_tools.safeStringify)({
47
+ ...payload,
48
+ items: compressedItems
49
+ });
50
+ contentType = "application/json; charset=utf-8";
51
+ }
52
+ const blob = new Blob([body], { type: contentType });
53
+ const success = navigator.sendBeacon(endpoint, blob);
54
+ (0, import_tools.logDebug)(!!((_d = this.opts) == null ? void 0 : _d.debug), "sendBeacon result", success);
55
+ if (!success) {
56
+ (0, import_tools.logDebug)(!!((_e = this.opts) == null ? void 0 : _e.debug), "sendBeacon failed (queue full or other error)");
57
+ }
58
+ return Promise.resolve();
59
+ }
60
+ };
61
+ // Annotate the CommonJS export names for ESM import in node:
62
+ 0 && (module.exports = {
63
+ BeaconTransport
64
+ });
@@ -0,0 +1,100 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/transport/pixelImageTransport.ts
20
+ var pixelImageTransport_exports = {};
21
+ __export(pixelImageTransport_exports, {
22
+ PixelImageTransport: () => PixelImageTransport
23
+ });
24
+ module.exports = __toCommonJS(pixelImageTransport_exports);
25
+ var import_js_base64 = require("js-base64");
26
+ var import_environment = require("../utils/environment");
27
+ var import_tools = require("../utils/tools");
28
+ var import_config = require("../config");
29
+ var import_compression = require("../compress/compression");
30
+ var PixelImageTransport = class {
31
+ constructor(opts) {
32
+ /** 传输器名称 */
33
+ this.name = "image";
34
+ this.opts = opts;
35
+ }
36
+ // eslint-disable-next-line class-methods-use-this
37
+ isSupported() {
38
+ return (0, import_environment.isBrowser)() && typeof Image !== "undefined";
39
+ }
40
+ async send(payload) {
41
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
42
+ const body = (0, import_tools.safeStringify)(payload.items);
43
+ const endpoint = (0, import_config.getPixelBatchApi)(((_a = this.opts) == null ? void 0 : _a.env) || "develop");
44
+ const param = "items";
45
+ const maxLen = ((_b = this.opts) == null ? void 0 : _b.maxPixelUrlLen) || 8192;
46
+ let compressedBody;
47
+ if (((_c = this.opts) == null ? void 0 : _c.enableGzip) && (!((_d = this.opts) == null ? void 0 : _d.gzipOnlyInBatchMode) || payload.items.length > 0)) {
48
+ const t = (0, import_tools.now)();
49
+ (0, import_tools.logDebug)(!!((_e = this.opts) == null ? void 0 : _e.debug), "PixelImage request gzip compress body: ", body);
50
+ compressedBody = await (0, import_compression.gzipCompress)(body);
51
+ (0, import_tools.logDebug)(!!((_f = this.opts) == null ? void 0 : _f.debug), "PixelImage request gzip compress cost: ", (0, import_tools.now)() - t);
52
+ (0, import_tools.logDebug)(!!((_g = this.opts) == null ? void 0 : _g.debug), `original body size: ${body.length}, compressed body size: ${compressedBody.length}`);
53
+ (0, import_tools.logDebug)(!!((_h = this.opts) == null ? void 0 : _h.debug), "PixelImage request gzip compress body: ", compressedBody);
54
+ } else {
55
+ compressedBody = import_js_base64.Base64.encode(body, false);
56
+ }
57
+ const cacheBuster = `_=${Date.now()}`;
58
+ const qs = `appId=${((_i = this.opts) == null ? void 0 : _i.appId) || ""}&appStage=${((_j = this.opts) == null ? void 0 : _j.logStage) || ""}&${param}=${encodeURIComponent(compressedBody)}&gzip=${((_k = this.opts) == null ? void 0 : _k.enableGzip) ? 1 : 0}&${cacheBuster}`;
59
+ const url = endpoint.includes("?") ? `${endpoint}&${qs}` : `${endpoint}?${qs}`;
60
+ if (url.length > maxLen) {
61
+ (0, import_tools.logDebug)(!!((_l = this.opts) == null ? void 0 : _l.debug), `URL too long (${url.length} > ${maxLen})`);
62
+ }
63
+ return new Promise((resolve, reject) => {
64
+ const img = new Image();
65
+ let timeoutId = null;
66
+ let settled = false;
67
+ timeoutId = setTimeout(() => {
68
+ if (!settled) {
69
+ settled = true;
70
+ img.src = "";
71
+ reject(new Error("Image request timeout after 5000ms"));
72
+ }
73
+ }, 5e3);
74
+ img.onload = () => {
75
+ if (timeoutId)
76
+ clearTimeout(timeoutId);
77
+ if (!settled) {
78
+ settled = true;
79
+ resolve();
80
+ }
81
+ };
82
+ img.onerror = (event, source, lineno, colno, error) => {
83
+ var _a2, _b2;
84
+ (0, import_tools.logDebug)(!!((_a2 = this.opts) == null ? void 0 : _a2.debug), "Image request failed", event, source, lineno, colno, error);
85
+ if (timeoutId)
86
+ clearTimeout(timeoutId);
87
+ if (!settled) {
88
+ settled = true;
89
+ (0, import_tools.logDebug)(!!((_b2 = this.opts) == null ? void 0 : _b2.debug), "Image request failed", event, source, lineno, colno, error);
90
+ resolve();
91
+ }
92
+ };
93
+ img.src = url;
94
+ });
95
+ }
96
+ };
97
+ // Annotate the CommonJS export names for ESM import in node:
98
+ 0 && (module.exports = {
99
+ PixelImageTransport
100
+ });
@@ -0,0 +1,17 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+
15
+ // src/transport/transport.ts
16
+ var transport_exports = {};
17
+ module.exports = __toCommonJS(transport_exports);
@@ -0,0 +1,56 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/transport/transportAdapter.ts
20
+ var transportAdapter_exports = {};
21
+ __export(transportAdapter_exports, {
22
+ TransportAdapter: () => TransportAdapter
23
+ });
24
+ module.exports = __toCommonJS(transportAdapter_exports);
25
+ var import_environment = require("../utils/environment");
26
+ var import_beaconTransport = require("./beaconTransport");
27
+ var import_pixelImageTransport = require("./pixelImageTransport");
28
+ var import_wechatTransport = require("./wechatTransport");
29
+ var TransportAdapter = class {
30
+ constructor(opts) {
31
+ this.beaconTransport = new import_beaconTransport.BeaconTransport(opts);
32
+ this.pixelImageTransport = new import_pixelImageTransport.PixelImageTransport(opts);
33
+ this.wechatTransport = new import_wechatTransport.WechatTransport(opts);
34
+ }
35
+ static getInstance(opts) {
36
+ if (!TransportAdapter.instance) {
37
+ TransportAdapter.instance = new TransportAdapter(opts);
38
+ }
39
+ return TransportAdapter.instance;
40
+ }
41
+ getTransporter() {
42
+ if ((0, import_environment.isWeChatMiniProgram)()) {
43
+ return this.wechatTransport;
44
+ }
45
+ const transports = [this.beaconTransport, this.pixelImageTransport];
46
+ const transporter = transports.find((t) => t.isSupported());
47
+ if (!transporter) {
48
+ return this.pixelImageTransport;
49
+ }
50
+ return transporter;
51
+ }
52
+ };
53
+ // Annotate the CommonJS export names for ESM import in node:
54
+ 0 && (module.exports = {
55
+ TransportAdapter
56
+ });