@aiquants/daily-report 0.15.0 → 0.17.0

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 (56) hide show
  1. package/README.md +2 -2
  2. package/dist/client.d.mts +24 -7
  3. package/dist/client.d.ts +24 -7
  4. package/dist/client.js +5 -5
  5. package/dist/client.js.map +1 -1
  6. package/dist/client.mjs +5 -5
  7. package/dist/client.mjs.map +1 -1
  8. package/dist/index.d.mts +84 -7
  9. package/dist/index.d.ts +84 -7
  10. package/dist/index.js +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/index.mjs +1 -1
  13. package/dist/index.mjs.map +1 -1
  14. package/dist/server.d.mts +35 -12
  15. package/dist/server.d.ts +35 -12
  16. package/dist/server.js +10 -10
  17. package/dist/server.js.map +1 -1
  18. package/dist/server.mjs +10 -10
  19. package/dist/server.mjs.map +1 -1
  20. package/dist/{sse-schema-D1oZnFg6.d.ts → sse-schema-BdUGThiz.d.ts} +136 -136
  21. package/dist/{sse-schema-lMo8yW4e.d.mts → sse-schema-ChSFm-4q.d.mts} +136 -136
  22. package/dist/{types-Ct1ggzy-.d.mts → types-CqgYQgbH.d.mts} +5 -5
  23. package/dist/{types-Ct1ggzy-.d.ts → types-CqgYQgbH.d.ts} +5 -5
  24. package/package.json +7 -5
  25. package/src/client/components/daily-report-comment-item.tsx +2 -2
  26. package/src/client/components/daily-report-comment-section.tsx +2 -2
  27. package/src/client/components/daily-report-scroll-restoration.spec.tsx +2 -2
  28. package/src/client/components/report-views.spec.tsx +2 -2
  29. package/src/client/contexts/daily-report-action-context.spec.tsx +102 -5
  30. package/src/client/contexts/daily-report-action-context.tsx +33 -14
  31. package/src/client/hooks/use-daily-report-comments.ts +1 -1
  32. package/src/client/hooks/use-daily-report.spec.ts +294 -8
  33. package/src/client/hooks/use-daily-report.ts +81 -14
  34. package/src/client/streaming/daily-report-ids-stream-client.spec.ts +196 -0
  35. package/src/client/streaming/daily-report-ids-stream-client.ts +67 -14
  36. package/src/client/streaming/daily-report-ids-stream-session.spec.ts +41 -0
  37. package/src/client/streaming/daily-report-ids-stream-session.ts +39 -0
  38. package/src/server/cache.spec.ts +145 -0
  39. package/src/server/cache.ts +46 -11
  40. package/src/server/external-source.ts +2 -2
  41. package/src/server/handlers.ids-stream.spec.ts +225 -23
  42. package/src/server/handlers.ts +113 -38
  43. package/src/server/handlers.visibility.spec.ts +16 -16
  44. package/src/server/schema.spec.ts +30 -0
  45. package/src/server/schema.ts +4 -1
  46. package/src/server/service.spec.ts +90 -11
  47. package/src/server/service.ts +59 -24
  48. package/src/server/test-helpers/handlers-config.ts +17 -1
  49. package/src/server.spec.ts +39 -0
  50. package/src/server.ts +6 -0
  51. package/src/shared/comment-adapter.ts +2 -2
  52. package/src/shared/ids-stream.spec.ts +90 -1
  53. package/src/shared/ids-stream.ts +144 -4
  54. package/src/shared/sse-schema.spec.ts +2 -2
  55. package/src/shared/sse-schema.ts +13 -11
  56. package/src/shared/types.ts +4 -4
package/README.md CHANGED
@@ -180,9 +180,9 @@ resolveVisibleSourceTypes: async (request, { reason }) => {
180
180
  | `["Internal"]` | Only those source types' comments are visible/writable. Narrowed to `read ∩ comment` at construction, since comments only ever ship inside an already-read-filtered report. |
181
181
 
182
182
  - **`null` is rejected by the type system** — a second spelling for "follow `read`" would make the dimension four-state and reintroduce exactly the unrestricted-vs-deny-all confusion the tri-state contract exists to prevent. A `null` that slips through at runtime fails **closed**.
183
- - **What it covers**: `DailyReportDetail` carries comments in **two** structurally different fields — `commentItems` (the package's own comment table) and `comments` (legacy JSON supplied by an `externalSources` adapter). Both are gated. They are emptied, never omitted: the keys are required by the SSE schema, and dropping them would make a receiver discard the whole message.
183
+ - **What it covers**: `DailyReportDetail` carries comments in **two** structurally different fields — `postedComments` (the package's own comment table) and `externalComments` (JSON supplied by an `externalSources` adapter). Both are gated. They are emptied, never omitted: the keys are required by the SSE schema, and dropping them would make a receiver discard the whole message.
184
184
  - **Live events**: `comment-add` / `comment-delete` are judged on the comment dimension, and the report payload embedded in `report-create` / `report-update` / `report-publish` has its two comment arrays emptied per viewer at delivery time.
185
- - **Your own comments are always visible and always deletable** (`commentItems` only — the legacy `comments` array carries no user identity, so it is all-or-nothing per source type). Hiding them would strand existing comments as undeletable the moment a grant is revoked, with no security gain.
185
+ - **Your own comments are always visible and always deletable** (`postedComments` only — the `externalComments` array carries no user identity, so it is all-or-nothing per source type). Hiding them would strand existing comments as undeletable the moment a grant is revoked, with no security gain.
186
186
  - **Writing to external sources remains impossible regardless** — `addComment` rejects any non-`Internal` source type outright, so for external categories the comment dimension effectively controls *reading*.
187
187
  - **Cache**: the dimension is folded into the cache-key digest, so revoking only the comment grant invalidates immediately. When `comment` follows `read` (the default) the digest is byte-identical to before, so existing deployments see no cache churn.
188
188
 
package/dist/client.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as react from 'react';
2
2
  import { RefObject, ReactNode, Context } from 'react';
3
3
  import { ScrollBarThumbOverlayRenderProps, ScrollPaneInertiaOptions, ScrollBarTapCircleOptions } from '@aiquants/virtualscroll';
4
- import { D as DailyReportAttachmentSummary, a as DailyReportItem, b as DailyReportDetail, c as DailyReportUser } from './types-Ct1ggzy-.mjs';
5
- import { U as UIComment, D as DailyReportSseMessage } from './sse-schema-lMo8yW4e.mjs';
4
+ import { D as DailyReportAttachmentSummary, a as DailyReportItem, b as DailyReportDetail, c as DailyReportUser } from './types-CqgYQgbH.mjs';
5
+ import { U as UIComment, D as DailyReportSseMessage } from './sse-schema-ChSFm-4q.mjs';
6
6
  import { ShouldRevalidateFunction } from 'react-router';
7
7
  import 'zod';
8
8
 
@@ -45,7 +45,7 @@ type DailyReportAttachmentListProps = {
45
45
  */
46
46
  declare const DailyReportAttachmentList: ({ attachments }: DailyReportAttachmentListProps) => react.JSX.Element | null;
47
47
 
48
- type DailyReportCommentItemProps = {
48
+ type DailyReportPostedCommentProps = {
49
49
  comment: UIComment;
50
50
  reportHubId: number;
51
51
  businessDate: string;
@@ -59,7 +59,7 @@ type DailyReportCommentItemProps = {
59
59
  * Renders a single comment item with delete functionality.
60
60
  * 削除機能付きの単一コメントアイテムを描画するコンポーネント。
61
61
  */
62
- declare const DailyReportCommentItem: ({ comment, reportHubId: _reportHubId, businessDate: _businessDate, onOptimisticDelete, pendingDeleteId, onPendingDeleteIdChange, onTrashClick, resolvedIdMap }: DailyReportCommentItemProps) => react.JSX.Element;
62
+ declare const DailyReportPostedComment: ({ comment, reportHubId: _reportHubId, businessDate: _businessDate, onOptimisticDelete, pendingDeleteId, onPendingDeleteIdChange, onTrashClick, resolvedIdMap }: DailyReportPostedCommentProps) => react.JSX.Element;
63
63
 
64
64
  type DailyReportCommentListProps = {
65
65
  comments: UIComment[];
@@ -494,7 +494,7 @@ declare const DailyReportCache: {
494
494
  * Hydrate the cache with fetched reports, handling comment merges and locks.
495
495
  * フェッチされたレポートでキャッシュをハイドレートし、コメントのマージとロックを処理する。
496
496
  */
497
- cacheMany(reports: DailyReportDetail[], dateKey: string | null, fetchStart?: number): DailyReportDetail[];
497
+ cacheMany(reports: DailyReportDetail[], dateKey: string | null, fetchStart: number): DailyReportDetail[];
498
498
  };
499
499
  /**
500
500
  * Update the cache for a single report.
@@ -730,6 +730,14 @@ declare class DailyReportIdsStreamClient {
730
730
  private readonly listeners;
731
731
  private state;
732
732
  private lastCursor;
733
+ /**
734
+ * 最後に受け取ったスナップショットトークン。カーソルと**対**で意味を持つ。
735
+ *
736
+ * サーバーはこのトークンが現在の配列と一致するときだけカーソルを信用する。
737
+ * トークンを欠いたカーソルは安全側 (先頭から再送) へ倒されるため、対で送れないなら
738
+ * 送らないのと同じコスト (全量再送) になる。
739
+ */
740
+ private lastSnapshot;
733
741
  private consecutiveFailures;
734
742
  private started;
735
743
  private disposed;
@@ -863,7 +871,16 @@ declare class DailyReportIdsStreamClient {
863
871
  *
864
872
  * @returns True when anything was added or changed. 追加または内容変化があれば true。
865
873
  */
866
- private absorbChunkItems;
874
+ /**
875
+ * Absorbs one chunk line, applying its restart directive first.
876
+ * チャンク行を 1 行吸収する処理。再開指示があれば最初に適用する。
877
+ *
878
+ * ❗ リセット (restarted) とトークン記録を**この関数の内部**に置くのは意図的。
879
+ * 「吸収より前に初期化せよ」を呼び出し側の責務にすると、順序を間違えたとき
880
+ * 再開直後の行が新しい観測集合へ入らず完走剪定で即座に消える。関数へ畳み込めば
881
+ * 呼び出し側に順序という概念が存在しなくなる。
882
+ */
883
+ private absorbChunkLine;
867
884
  /** アイテム配列を再スナップショットして即時 publish する。 */
868
885
  private publishItems;
869
886
  /**
@@ -1075,4 +1092,4 @@ declare const TAP_SCROLL_CIRCLE_OPTIONS: ScrollBarTapCircleOptions;
1075
1092
  */
1076
1093
  declare const CONTENT_DRAG_POINTER_INPUTS: readonly ["pen", "touch"];
1077
1094
 
1078
- export { BusinessDayThumbOverlay, CONTENT_DRAG_POINTER_INPUTS, DAILY_REPORT_FETCH_DEBOUNCE_MS, DEFAULT_ITEM_HEIGHT, type DailyReportActionContextType, DailyReportActionProvider, DailyReportAttachmentIndicator, DailyReportAttachmentList, DailyReportCache, type DailyReportClientConfig, type DailyReportClientConfigInput, DailyReportCommentForm, DailyReportCommentItem, DailyReportCommentList, DailyReportConfigProvider, DailyReportDetailList, type DailyReportDetailListScrollRestore, type DailyReportDetailResource, DailyReportEditForm, type DailyReportErrorInfo, DailyReportErrorProvider, type DailyReportFieldLabels, type DailyReportHeaderProps, DailyReportIdsStreamClient, type DailyReportIdsStreamClientOptions, type DailyReportIdsStreamPhase, type DailyReportIdsStreamState, DailyReportIdsStreamStatus, DailyReportList, DailyReportLoadError, DailyReportLoading, DailyReportPage, type DailyReportPageProps, DailyReportResolvedContent, EMPTY_DETAIL, EMPTY_ITEM, FAST_SCROLL_INERTIA_OPTIONS, FAST_SCROLL_WHEEL_MULTIPLIER, ITEM_CONTAINER_HEIGHT, ITEM_VERTICAL_PADDING, MAX_PREVIEW_LINES, PREFETCH_LOOKAHEAD, PREFETCH_MAX_DATES, SCROLL_BAR_WIDTH, SSE_INITIAL_CONNECT_DEFER_MS, type SourceTypeConfig, TAP_SCROLL_CIRCLE_OPTIONS, UnreadIndicator, VIRTUAL_SCROLL_OVERSCAN_COUNT, WHEEL_RESET_TIMEOUT_MS, acquireMutationLock, applyBroadcastReportUpdate, applyDailyReportServerUpdates, bootstrapDailyReportIdsStreamSession, clearDailyReportCache, createDailyReportClientLoader, dailyReportShouldRevalidate, defaultDailyReportClientConfig, defaultDailyReportFieldLabels, deleteDailyReportCache, ensureDailyReportIdsStreamSession, getCachedReport, getDailyReportIdsStreamSessionUserKey, primeDailyReportIdsStreamSession, refreshDailyReportIdsStream, registerRecentDeletion, releaseMutationLock, reloadDocument, removeDailyReportIdsStreamItem, resetDailyReportIdsStreamSessionForTesting, resolveSourceTypeConfig, retryDailyReportIdsStream, subscribeCacheReady, updateDailyReportCache, upsertDailyReportIdsStreamItem, useAnimatedNumber, useDailyReportActionContext, useDailyReportComments, useDailyReportConfig, useDailyReportDetail, useDailyReportErrorSurface, useDailyReportIdsStream, useDailyReportPrefetch, useDailyReportSseConnection, useDynamicViewportHeight, writeCache };
1095
+ export { BusinessDayThumbOverlay, CONTENT_DRAG_POINTER_INPUTS, DAILY_REPORT_FETCH_DEBOUNCE_MS, DEFAULT_ITEM_HEIGHT, type DailyReportActionContextType, DailyReportActionProvider, DailyReportAttachmentIndicator, DailyReportAttachmentList, DailyReportCache, type DailyReportClientConfig, type DailyReportClientConfigInput, DailyReportCommentForm, DailyReportCommentList, DailyReportConfigProvider, DailyReportDetailList, type DailyReportDetailListScrollRestore, type DailyReportDetailResource, DailyReportEditForm, type DailyReportErrorInfo, DailyReportErrorProvider, type DailyReportFieldLabels, type DailyReportHeaderProps, DailyReportIdsStreamClient, type DailyReportIdsStreamClientOptions, type DailyReportIdsStreamPhase, type DailyReportIdsStreamState, DailyReportIdsStreamStatus, DailyReportList, DailyReportLoadError, DailyReportLoading, DailyReportPage, type DailyReportPageProps, DailyReportPostedComment, DailyReportResolvedContent, EMPTY_DETAIL, EMPTY_ITEM, FAST_SCROLL_INERTIA_OPTIONS, FAST_SCROLL_WHEEL_MULTIPLIER, ITEM_CONTAINER_HEIGHT, ITEM_VERTICAL_PADDING, MAX_PREVIEW_LINES, PREFETCH_LOOKAHEAD, PREFETCH_MAX_DATES, SCROLL_BAR_WIDTH, SSE_INITIAL_CONNECT_DEFER_MS, type SourceTypeConfig, TAP_SCROLL_CIRCLE_OPTIONS, UnreadIndicator, VIRTUAL_SCROLL_OVERSCAN_COUNT, WHEEL_RESET_TIMEOUT_MS, acquireMutationLock, applyBroadcastReportUpdate, applyDailyReportServerUpdates, bootstrapDailyReportIdsStreamSession, clearDailyReportCache, createDailyReportClientLoader, dailyReportShouldRevalidate, defaultDailyReportClientConfig, defaultDailyReportFieldLabels, deleteDailyReportCache, ensureDailyReportIdsStreamSession, getCachedReport, getDailyReportIdsStreamSessionUserKey, primeDailyReportIdsStreamSession, refreshDailyReportIdsStream, registerRecentDeletion, releaseMutationLock, reloadDocument, removeDailyReportIdsStreamItem, resetDailyReportIdsStreamSessionForTesting, resolveSourceTypeConfig, retryDailyReportIdsStream, subscribeCacheReady, updateDailyReportCache, upsertDailyReportIdsStreamItem, useAnimatedNumber, useDailyReportActionContext, useDailyReportComments, useDailyReportConfig, useDailyReportDetail, useDailyReportErrorSurface, useDailyReportIdsStream, useDailyReportPrefetch, useDailyReportSseConnection, useDynamicViewportHeight, writeCache };
package/dist/client.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as react from 'react';
2
2
  import { RefObject, ReactNode, Context } from 'react';
3
3
  import { ScrollBarThumbOverlayRenderProps, ScrollPaneInertiaOptions, ScrollBarTapCircleOptions } from '@aiquants/virtualscroll';
4
- import { D as DailyReportAttachmentSummary, a as DailyReportItem, b as DailyReportDetail, c as DailyReportUser } from './types-Ct1ggzy-.js';
5
- import { U as UIComment, D as DailyReportSseMessage } from './sse-schema-D1oZnFg6.js';
4
+ import { D as DailyReportAttachmentSummary, a as DailyReportItem, b as DailyReportDetail, c as DailyReportUser } from './types-CqgYQgbH.js';
5
+ import { U as UIComment, D as DailyReportSseMessage } from './sse-schema-BdUGThiz.js';
6
6
  import { ShouldRevalidateFunction } from 'react-router';
7
7
  import 'zod';
8
8
 
@@ -45,7 +45,7 @@ type DailyReportAttachmentListProps = {
45
45
  */
46
46
  declare const DailyReportAttachmentList: ({ attachments }: DailyReportAttachmentListProps) => react.JSX.Element | null;
47
47
 
48
- type DailyReportCommentItemProps = {
48
+ type DailyReportPostedCommentProps = {
49
49
  comment: UIComment;
50
50
  reportHubId: number;
51
51
  businessDate: string;
@@ -59,7 +59,7 @@ type DailyReportCommentItemProps = {
59
59
  * Renders a single comment item with delete functionality.
60
60
  * 削除機能付きの単一コメントアイテムを描画するコンポーネント。
61
61
  */
62
- declare const DailyReportCommentItem: ({ comment, reportHubId: _reportHubId, businessDate: _businessDate, onOptimisticDelete, pendingDeleteId, onPendingDeleteIdChange, onTrashClick, resolvedIdMap }: DailyReportCommentItemProps) => react.JSX.Element;
62
+ declare const DailyReportPostedComment: ({ comment, reportHubId: _reportHubId, businessDate: _businessDate, onOptimisticDelete, pendingDeleteId, onPendingDeleteIdChange, onTrashClick, resolvedIdMap }: DailyReportPostedCommentProps) => react.JSX.Element;
63
63
 
64
64
  type DailyReportCommentListProps = {
65
65
  comments: UIComment[];
@@ -494,7 +494,7 @@ declare const DailyReportCache: {
494
494
  * Hydrate the cache with fetched reports, handling comment merges and locks.
495
495
  * フェッチされたレポートでキャッシュをハイドレートし、コメントのマージとロックを処理する。
496
496
  */
497
- cacheMany(reports: DailyReportDetail[], dateKey: string | null, fetchStart?: number): DailyReportDetail[];
497
+ cacheMany(reports: DailyReportDetail[], dateKey: string | null, fetchStart: number): DailyReportDetail[];
498
498
  };
499
499
  /**
500
500
  * Update the cache for a single report.
@@ -730,6 +730,14 @@ declare class DailyReportIdsStreamClient {
730
730
  private readonly listeners;
731
731
  private state;
732
732
  private lastCursor;
733
+ /**
734
+ * 最後に受け取ったスナップショットトークン。カーソルと**対**で意味を持つ。
735
+ *
736
+ * サーバーはこのトークンが現在の配列と一致するときだけカーソルを信用する。
737
+ * トークンを欠いたカーソルは安全側 (先頭から再送) へ倒されるため、対で送れないなら
738
+ * 送らないのと同じコスト (全量再送) になる。
739
+ */
740
+ private lastSnapshot;
733
741
  private consecutiveFailures;
734
742
  private started;
735
743
  private disposed;
@@ -863,7 +871,16 @@ declare class DailyReportIdsStreamClient {
863
871
  *
864
872
  * @returns True when anything was added or changed. 追加または内容変化があれば true。
865
873
  */
866
- private absorbChunkItems;
874
+ /**
875
+ * Absorbs one chunk line, applying its restart directive first.
876
+ * チャンク行を 1 行吸収する処理。再開指示があれば最初に適用する。
877
+ *
878
+ * ❗ リセット (restarted) とトークン記録を**この関数の内部**に置くのは意図的。
879
+ * 「吸収より前に初期化せよ」を呼び出し側の責務にすると、順序を間違えたとき
880
+ * 再開直後の行が新しい観測集合へ入らず完走剪定で即座に消える。関数へ畳み込めば
881
+ * 呼び出し側に順序という概念が存在しなくなる。
882
+ */
883
+ private absorbChunkLine;
867
884
  /** アイテム配列を再スナップショットして即時 publish する。 */
868
885
  private publishItems;
869
886
  /**
@@ -1075,4 +1092,4 @@ declare const TAP_SCROLL_CIRCLE_OPTIONS: ScrollBarTapCircleOptions;
1075
1092
  */
1076
1093
  declare const CONTENT_DRAG_POINTER_INPUTS: readonly ["pen", "touch"];
1077
1094
 
1078
- export { BusinessDayThumbOverlay, CONTENT_DRAG_POINTER_INPUTS, DAILY_REPORT_FETCH_DEBOUNCE_MS, DEFAULT_ITEM_HEIGHT, type DailyReportActionContextType, DailyReportActionProvider, DailyReportAttachmentIndicator, DailyReportAttachmentList, DailyReportCache, type DailyReportClientConfig, type DailyReportClientConfigInput, DailyReportCommentForm, DailyReportCommentItem, DailyReportCommentList, DailyReportConfigProvider, DailyReportDetailList, type DailyReportDetailListScrollRestore, type DailyReportDetailResource, DailyReportEditForm, type DailyReportErrorInfo, DailyReportErrorProvider, type DailyReportFieldLabels, type DailyReportHeaderProps, DailyReportIdsStreamClient, type DailyReportIdsStreamClientOptions, type DailyReportIdsStreamPhase, type DailyReportIdsStreamState, DailyReportIdsStreamStatus, DailyReportList, DailyReportLoadError, DailyReportLoading, DailyReportPage, type DailyReportPageProps, DailyReportResolvedContent, EMPTY_DETAIL, EMPTY_ITEM, FAST_SCROLL_INERTIA_OPTIONS, FAST_SCROLL_WHEEL_MULTIPLIER, ITEM_CONTAINER_HEIGHT, ITEM_VERTICAL_PADDING, MAX_PREVIEW_LINES, PREFETCH_LOOKAHEAD, PREFETCH_MAX_DATES, SCROLL_BAR_WIDTH, SSE_INITIAL_CONNECT_DEFER_MS, type SourceTypeConfig, TAP_SCROLL_CIRCLE_OPTIONS, UnreadIndicator, VIRTUAL_SCROLL_OVERSCAN_COUNT, WHEEL_RESET_TIMEOUT_MS, acquireMutationLock, applyBroadcastReportUpdate, applyDailyReportServerUpdates, bootstrapDailyReportIdsStreamSession, clearDailyReportCache, createDailyReportClientLoader, dailyReportShouldRevalidate, defaultDailyReportClientConfig, defaultDailyReportFieldLabels, deleteDailyReportCache, ensureDailyReportIdsStreamSession, getCachedReport, getDailyReportIdsStreamSessionUserKey, primeDailyReportIdsStreamSession, refreshDailyReportIdsStream, registerRecentDeletion, releaseMutationLock, reloadDocument, removeDailyReportIdsStreamItem, resetDailyReportIdsStreamSessionForTesting, resolveSourceTypeConfig, retryDailyReportIdsStream, subscribeCacheReady, updateDailyReportCache, upsertDailyReportIdsStreamItem, useAnimatedNumber, useDailyReportActionContext, useDailyReportComments, useDailyReportConfig, useDailyReportDetail, useDailyReportErrorSurface, useDailyReportIdsStream, useDailyReportPrefetch, useDailyReportSseConnection, useDynamicViewportHeight, writeCache };
1095
+ export { BusinessDayThumbOverlay, CONTENT_DRAG_POINTER_INPUTS, DAILY_REPORT_FETCH_DEBOUNCE_MS, DEFAULT_ITEM_HEIGHT, type DailyReportActionContextType, DailyReportActionProvider, DailyReportAttachmentIndicator, DailyReportAttachmentList, DailyReportCache, type DailyReportClientConfig, type DailyReportClientConfigInput, DailyReportCommentForm, DailyReportCommentList, DailyReportConfigProvider, DailyReportDetailList, type DailyReportDetailListScrollRestore, type DailyReportDetailResource, DailyReportEditForm, type DailyReportErrorInfo, DailyReportErrorProvider, type DailyReportFieldLabels, type DailyReportHeaderProps, DailyReportIdsStreamClient, type DailyReportIdsStreamClientOptions, type DailyReportIdsStreamPhase, type DailyReportIdsStreamState, DailyReportIdsStreamStatus, DailyReportList, DailyReportLoadError, DailyReportLoading, DailyReportPage, type DailyReportPageProps, DailyReportPostedComment, DailyReportResolvedContent, EMPTY_DETAIL, EMPTY_ITEM, FAST_SCROLL_INERTIA_OPTIONS, FAST_SCROLL_WHEEL_MULTIPLIER, ITEM_CONTAINER_HEIGHT, ITEM_VERTICAL_PADDING, MAX_PREVIEW_LINES, PREFETCH_LOOKAHEAD, PREFETCH_MAX_DATES, SCROLL_BAR_WIDTH, SSE_INITIAL_CONNECT_DEFER_MS, type SourceTypeConfig, TAP_SCROLL_CIRCLE_OPTIONS, UnreadIndicator, VIRTUAL_SCROLL_OVERSCAN_COUNT, WHEEL_RESET_TIMEOUT_MS, acquireMutationLock, applyBroadcastReportUpdate, applyDailyReportServerUpdates, bootstrapDailyReportIdsStreamSession, clearDailyReportCache, createDailyReportClientLoader, dailyReportShouldRevalidate, defaultDailyReportClientConfig, defaultDailyReportFieldLabels, deleteDailyReportCache, ensureDailyReportIdsStreamSession, getCachedReport, getDailyReportIdsStreamSessionUserKey, primeDailyReportIdsStreamSession, refreshDailyReportIdsStream, registerRecentDeletion, releaseMutationLock, reloadDocument, removeDailyReportIdsStreamItem, resetDailyReportIdsStreamSessionForTesting, resolveSourceTypeConfig, retryDailyReportIdsStream, subscribeCacheReady, updateDailyReportCache, upsertDailyReportIdsStreamItem, useAnimatedNumber, useDailyReportActionContext, useDailyReportComments, useDailyReportConfig, useDailyReportDetail, useDailyReportErrorSurface, useDailyReportIdsStream, useDailyReportPrefetch, useDailyReportSseConnection, useDynamicViewportHeight, writeCache };