issue-sticker 0.9.0 → 0.9.1

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.
@@ -1,8 +1,8 @@
1
- import { c as createLucideIcon, u as ungzip_1, C as CANVAS_INTERACTION_TAG, a as cn, R as Replayer, M as MousePointer2 } from "./three-B7nbYqGK.js";
2
- import { r } from "./three-B7nbYqGK.js";
1
+ import { c as createLucideIcon, u as ungzip_1, R as REPLAY_EVENT_TYPE, C as CANVAS_INTERACTION_TAG, a as cn, b as Replayer, M as MousePointer2 } from "./three-_bdgDAmI.js";
2
+ import { r } from "./three-_bdgDAmI.js";
3
3
  import { jsxs, jsx } from "react/jsx-runtime";
4
- import { memo, useRef, useState, useCallback, useEffect, useMemo } from "react";
5
- import { T as TooltipProvider, a as Tooltip, b as TooltipTrigger, c as TooltipContent } from "./tooltip-BBukUPo_.js";
4
+ import { memo, useRef, useEffect, useState, useCallback, useMemo } from "react";
5
+ import { T as TooltipProvider, a as Tooltip, b as TooltipTrigger, c as TooltipContent } from "./tooltip-UijEbdDX.js";
6
6
  /**
7
7
  * @license lucide-react v0.468.0 - ISC
8
8
  *
@@ -156,10 +156,6 @@ class NodeIndex {
156
156
  return (firstClass ? `${tag}.${firstClass}` : `<${tag}>`).slice(0, 40);
157
157
  }
158
158
  }
159
- const EVENT_TYPE_FULL_SNAPSHOT = 2;
160
- const EVENT_TYPE_INCREMENTAL = 3;
161
- const EVENT_TYPE_META = 4;
162
- const EVENT_TYPE_CUSTOM = 5;
163
159
  const SOURCE_MUTATION$1 = 0;
164
160
  const SOURCE_MOUSE_INTERACTION = 2;
165
161
  const SOURCE_INPUT = 5;
@@ -189,7 +185,7 @@ function deriveTimeline(events) {
189
185
  const ts = Number((ev == null ? void 0 : ev.timestamp) ?? 0);
190
186
  const t = ts - startTime;
191
187
  const data = (ev == null ? void 0 : ev.data) ?? {};
192
- if ((ev == null ? void 0 : ev.type) === EVENT_TYPE_META) {
188
+ if ((ev == null ? void 0 : ev.type) === REPLAY_EVENT_TYPE.Meta) {
193
189
  if (!seenFirstMeta) {
194
190
  seenFirstMeta = true;
195
191
  recordedWidth = Number(data.width ?? 0);
@@ -200,7 +196,7 @@ function deriveTimeline(events) {
200
196
  out.push({ t, type: "nav", href, label: href || TYPE_LABEL.nav });
201
197
  continue;
202
198
  }
203
- if ((ev == null ? void 0 : ev.type) === EVENT_TYPE_CUSTOM) {
199
+ if ((ev == null ? void 0 : ev.type) === REPLAY_EVENT_TYPE.Custom) {
204
200
  if (data.tag !== CANVAS_INTERACTION_TAG) continue;
205
201
  const payload = data.payload;
206
202
  if (payload == null ? void 0 : payload.snapshot) {
@@ -222,11 +218,11 @@ function deriveTimeline(events) {
222
218
  });
223
219
  continue;
224
220
  }
225
- if ((ev == null ? void 0 : ev.type) === EVENT_TYPE_FULL_SNAPSHOT) {
221
+ if ((ev == null ? void 0 : ev.type) === REPLAY_EVENT_TYPE.FullSnapshot) {
226
222
  index.reset(data.node);
227
223
  continue;
228
224
  }
229
- if ((ev == null ? void 0 : ev.type) === EVENT_TYPE_INCREMENTAL) {
225
+ if ((ev == null ? void 0 : ev.type) === REPLAY_EVENT_TYPE.IncrementalSnapshot) {
230
226
  const source = Number(data.source);
231
227
  if (source === SOURCE_MUTATION$1) {
232
228
  for (const add of data.adds ?? []) {
@@ -244,8 +240,6 @@ function deriveTimeline(events) {
244
240
  return { startTime, recordedWidth, recordedHeight, events: out, canvasFrames };
245
241
  }
246
242
  const WIDGET_HOST_HTML_ID = "issue-sticker-host";
247
- const EVENT_FULL_SNAPSHOT = 2;
248
- const EVENT_INCREMENTAL = 3;
249
243
  const NODE_ELEMENT = 2;
250
244
  const SOURCE_MUTATION = 0;
251
245
  const SOURCE_MOUSE_MOVE = 1;
@@ -351,13 +345,13 @@ function stripWidgetEvents(events) {
351
345
  let removedEvents = 0;
352
346
  for (const event of events) {
353
347
  const ev = event;
354
- if ((ev == null ? void 0 : ev.type) === EVENT_FULL_SNAPSHOT) {
348
+ if ((ev == null ? void 0 : ev.type) === REPLAY_EVENT_TYPE.FullSnapshot) {
355
349
  const data2 = asRecord(ev.data);
356
350
  const pruned = pruneTree(data2.node, widgetIds);
357
351
  out.push(pruned === data2.node ? event : { ...ev, data: { ...data2, node: pruned } });
358
352
  continue;
359
353
  }
360
- if ((ev == null ? void 0 : ev.type) !== EVENT_INCREMENTAL) {
354
+ if ((ev == null ? void 0 : ev.type) !== REPLAY_EVENT_TYPE.IncrementalSnapshot) {
361
355
  out.push(event);
362
356
  continue;
363
357
  }
@@ -427,6 +421,17 @@ const EventLog = memo(function EventLog2({
427
421
  total
428
422
  }) {
429
423
  const filtered = filter === "all" ? rows : rows.filter((r2) => r2.type === filter);
424
+ const listRef = useRef(null);
425
+ useEffect(() => {
426
+ const list = listRef.current;
427
+ const row = list == null ? void 0 : list.querySelector(`[data-row-index="${currentIndex}"]`);
428
+ if (!list || !row) return;
429
+ const top = row.offsetTop;
430
+ const bottom = top + row.offsetHeight;
431
+ if (top < list.scrollTop || bottom > list.scrollTop + list.clientHeight) {
432
+ list.scrollTop = Math.max(0, top - (list.clientHeight - row.offsetHeight) / 2);
433
+ }
434
+ }, [currentIndex, filter]);
430
435
  return /* @__PURE__ */ jsxs("div", { className: "flex h-full min-h-0 min-w-0 flex-col rounded-md border border-line-subtle bg-surface-1", children: [
431
436
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between border-b border-line-subtle px-3 py-2.5", children: [
432
437
  /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold text-text-primary", children: "이벤트 로그" }),
@@ -448,12 +453,13 @@ const EventLog = memo(function EventLog2({
448
453
  },
449
454
  f
450
455
  )) }),
451
- /* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-auto", children: filtered.map((row) => {
456
+ /* @__PURE__ */ jsx("div", { ref: listRef, className: "relative min-h-0 flex-1 overflow-auto", children: filtered.map((row) => {
452
457
  const isCurrent = row.index === currentIndex;
453
458
  return /* @__PURE__ */ jsxs(
454
459
  "button",
455
460
  {
456
461
  type: "button",
462
+ "data-row-index": row.index,
457
463
  onClick: () => onSeek(row.t),
458
464
  className: cn(
459
465
  "flex w-full items-center gap-2 border-b border-line-subtle px-3 py-2 text-left text-xs hover:bg-surface-2",
@@ -1,5 +1,5 @@
1
- import { u as uploadScreenshotDataUrls, a as uploadSignedMediaWithApi, d as directUploadToSignedUrl, p as pristineFetch, g as getElementPosition, c as captureWithModernScreenshot, b as buildJiraCreateFields, e as buildNotionCreateFields, f as buildGuestOwnerQuery, h as composeIssueFilterGroups, i as buildIssueIntegrationsPayload, j as devLogger, W as WebSocketCollector, C as ConsoleCollector, N as NetworkCollector, s as selectNetworkLogsForSubmit, k as filterExcludeServiceRelatedLogs, l as filterExcludeServiceRelatedConsoleLogs, m as compactNetworkLogsForTransport, n as CONSOLE_LOG_SUBMIT_LIMIT, o as buildExternalUserPayload, q as shrinkNetworkLogsToFit, r as measureJsonBytes, t as sanitizeString, v as serializeSocketTranscript, w as uploadSocketTranscript, x as getCurrentPageUrl, S as ScreenRecordingController, y as SessionReplayCaptureController, z as preloadModernScreenshot, I as ISSUE_STICKER_INTERNAL_LOG_PREFIX } from "./externalUserPayload-CVp5Hz2L.js";
2
- import { r } from "./three-B7nbYqGK.js";
1
+ import { u as uploadScreenshotDataUrls, a as uploadSignedMediaWithApi, d as directUploadToSignedUrl, p as pristineFetch, g as getElementPosition, c as captureWithModernScreenshot, b as buildJiraCreateFields, e as buildNotionCreateFields, f as buildGuestOwnerQuery, h as composeIssueFilterGroups, i as buildIssueIntegrationsPayload, j as devLogger, W as WebSocketCollector, C as ConsoleCollector, N as NetworkCollector, s as selectNetworkLogsForSubmit, k as filterExcludeServiceRelatedLogs, l as filterExcludeServiceRelatedConsoleLogs, m as compactNetworkLogsForTransport, n as CONSOLE_LOG_SUBMIT_LIMIT, o as buildExternalUserPayload, q as shrinkNetworkLogsToFit, r as measureJsonBytes, t as sanitizeString, v as serializeSocketTranscript, w as uploadSocketTranscript, x as getCurrentPageUrl, S as ScreenRecordingController, y as SessionReplayCaptureController, z as preloadModernScreenshot, I as ISSUE_STICKER_INTERNAL_LOG_PREFIX } from "./externalUserPayload-CVYSPfcx.js";
2
+ import { r } from "./three-_bdgDAmI.js";
3
3
  import "react/jsx-runtime";
4
4
  import "react";
5
5
  const WINDOW_MS = 6e4;
@@ -867,7 +867,7 @@ class HeadlessLogCollectors {
867
867
  this.socketCollector = null;
868
868
  }
869
869
  start() {
870
- var _a, _b, _c;
870
+ var _a, _b, _c, _d, _e;
871
871
  if (((_a = this.config.capture) == null ? void 0 : _a.networkLogs) !== false && !this.networkCollector) {
872
872
  this.networkCollector = this.deps.createNetworkCollector(this.getApiBaseUrl());
873
873
  this.networkCollector.start();
@@ -877,15 +877,10 @@ class HeadlessLogCollectors {
877
877
  this.consoleCollector.start();
878
878
  }
879
879
  if (((_c = this.config.capture) == null ? void 0 : _c.socketLogs) !== false && !this.socketCollector) {
880
- this.socketCollector = this.deps.createSocketCollector(this.getApiBaseUrl());
881
- const network = this.networkCollector;
882
- if (network) {
883
- this.socketCollector.bindNetworkLogSink((log) => {
884
- var _a2;
885
- return (_a2 = network.ingest) == null ? void 0 : _a2.call(network, log);
886
- });
887
- }
888
- this.socketCollector.start();
880
+ const socket = this.deps.createSocketCollector(this.getApiBaseUrl());
881
+ this.socketCollector = socket;
882
+ (_e = (_d = this.networkCollector) == null ? void 0 : _d.bindSocketLogs) == null ? void 0 : _e.call(_d, () => socket.getNetworkLogs());
883
+ socket.start();
889
884
  }
890
885
  }
891
886
  stop() {