@aiquants/daily-report 0.33.0 → 0.35.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.
package/dist/server.d.mts CHANGED
@@ -1,7 +1,9 @@
1
- import { c as DailyReportSseMessage, j as DailyReportInterviewer, i as DailyReportExternalComment, D as DailyReportItem, d as DailyReportDetail, h as DailyReportAttachmentSummary, l as DailyReportPostedComment } from "./sse-schema-DcOgQr_O.mjs";
1
+ import { c as DailyReportSseMessage, k as DailyReportInterviewer, j as DailyReportExternalComment, D as DailyReportItem, d as DailyReportDetail, i as DailyReportAttachmentSummary, m as DailyReportPostedComment } from "./sse-schema-getLS62T.mjs";
2
2
  import * as drizzle_orm_mssql_core from "drizzle-orm/mssql-core";
3
3
  import { AnyMsSqlColumn } from "drizzle-orm/mssql-core";
4
+ import { a as DailyReportLogger, b as DailyReportSearchCombine, c as DailyReportSearchHit } from "./logger-BaxnzF-0.mjs";
4
5
  import { TransactionRetryOptions } from "@aiquants/mssql";
6
+ import { SQL } from "drizzle-orm";
5
7
  import "zod";
6
8
  type RedisStreamMessage = {
7
9
  id: string;
@@ -147,10 +149,14 @@ declare class SqlResultCache {
147
149
  private readonly epochStore;
148
150
  private readonly buckets;
149
151
  private readonly inFlight;
152
+ private readonly forcedFetches;
150
153
  constructor(config: {
151
154
  defaultTtlMs: number;
152
155
  }, epochStore: EpochStore);
153
156
  private maybeRefreshAhead;
157
+ private startFetch;
158
+ private forcedFetch;
159
+ private runForcedFetch;
154
160
  getOrFetch: <T>(opts: {
155
161
  cacheKey: string;
156
162
  fetcher: () => Promise<readonly T[]>;
@@ -160,12 +166,6 @@ declare class SqlResultCache {
160
166
  invalidatePrefix: (prefix: string) => void;
161
167
  private cleanExpired;
162
168
  }
163
- interface DailyReportLogger {
164
- debug(message?: unknown, ...optionalParams: unknown[]): void;
165
- info(message?: unknown, ...optionalParams: unknown[]): void;
166
- warn(message?: unknown, ...optionalParams: unknown[]): void;
167
- error(message?: unknown, ...optionalParams: unknown[]): void;
168
- }
169
169
  type ExternalReportFields = {
170
170
  content?: string | null;
171
171
  employeeName?: string | null;
@@ -184,6 +184,11 @@ type DailyReportExternalSource = {
184
184
  mapRow: (row: Record<string, unknown>) => ExternalReportFields;
185
185
  };
186
186
  declare const transformJsonArray: <TRaw, TResult>(payload: string | null, label: string, mapper: (raw: TRaw) => TResult | null, logger?: DailyReportLogger) => TResult[];
187
+ declare const CLIENT_TEMP_ID_BRAND: unique symbol;
188
+ type DailyReportClientTempId = string & {
189
+ readonly [CLIENT_TEMP_ID_BRAND]: true;
190
+ };
191
+ declare const parseClientTempId: (raw: string | null) => DailyReportClientTempId | null;
187
192
  type ResourceRouteArgs = {
188
193
  request: Request;
189
194
  params: Record<string, string | undefined>;
@@ -1467,6 +1472,245 @@ declare function defineDailyReportSchema<S extends string>(schemaName: S, opts:
1467
1472
  dialect: "mssql";
1468
1473
  }>;
1469
1474
  };
1475
+ type DailyReportSearchDocumentTable = {
1476
+ hubId: AnyMsSqlColumn;
1477
+ searchText: AnyMsSqlColumn;
1478
+ sourceDigest: AnyMsSqlColumn;
1479
+ normalizerVersion: AnyMsSqlColumn;
1480
+ indexedAt: AnyMsSqlColumn;
1481
+ rowVersion: AnyMsSqlColumn;
1482
+ };
1483
+ type DailyReportSearchCommentTable = {
1484
+ hubId: AnyMsSqlColumn;
1485
+ ordinal: AnyMsSqlColumn;
1486
+ authorUserId: AnyMsSqlColumn;
1487
+ commentText: AnyMsSqlColumn;
1488
+ };
1489
+ type DailyReportSearchTables = {
1490
+ document: DailyReportSearchDocumentTable;
1491
+ comment: DailyReportSearchCommentTable;
1492
+ };
1493
+ declare function defineDailyReportSearchSchema<S extends string>(schemaName: S): {
1494
+ document: drizzle_orm_mssql_core.MsSqlTableWithColumns<{
1495
+ name: "DailyReportSearchDocument";
1496
+ schema: S;
1497
+ columns: {
1498
+ hubId: drizzle_orm_mssql_core.MsSqlColumn<{
1499
+ name: string;
1500
+ tableName: "DailyReportSearchDocument";
1501
+ dataType: "number int53";
1502
+ data: number;
1503
+ driverParam: string;
1504
+ notNull: true;
1505
+ hasDefault: false;
1506
+ isPrimaryKey: false;
1507
+ isAutoincrement: false;
1508
+ hasRuntimeDefault: false;
1509
+ enumValues: undefined;
1510
+ baseColumn: never;
1511
+ identity: undefined;
1512
+ generated: undefined;
1513
+ }, {}>;
1514
+ searchText: drizzle_orm_mssql_core.MsSqlColumn<{
1515
+ name: string;
1516
+ tableName: "DailyReportSearchDocument";
1517
+ dataType: "string";
1518
+ data: string;
1519
+ driverParam: string | number;
1520
+ notNull: true;
1521
+ hasDefault: false;
1522
+ isPrimaryKey: false;
1523
+ isAutoincrement: false;
1524
+ hasRuntimeDefault: false;
1525
+ enumValues: [
1526
+ string,
1527
+ ...string[]
1528
+ ];
1529
+ baseColumn: never;
1530
+ identity: undefined;
1531
+ generated: undefined;
1532
+ }, {}>;
1533
+ sourceDigest: drizzle_orm_mssql_core.MsSqlColumn<{
1534
+ name: string;
1535
+ tableName: "DailyReportSearchDocument";
1536
+ dataType: "object buffer";
1537
+ data: Buffer<ArrayBufferLike>;
1538
+ driverParam: Buffer<ArrayBufferLike>;
1539
+ notNull: true;
1540
+ hasDefault: false;
1541
+ isPrimaryKey: false;
1542
+ isAutoincrement: false;
1543
+ hasRuntimeDefault: false;
1544
+ enumValues: undefined;
1545
+ baseColumn: never;
1546
+ identity: undefined;
1547
+ generated: undefined;
1548
+ }, {}>;
1549
+ normalizerVersion: drizzle_orm_mssql_core.MsSqlColumn<{
1550
+ name: string;
1551
+ tableName: "DailyReportSearchDocument";
1552
+ dataType: "string";
1553
+ data: string;
1554
+ driverParam: string | number;
1555
+ notNull: true;
1556
+ hasDefault: false;
1557
+ isPrimaryKey: false;
1558
+ isAutoincrement: false;
1559
+ hasRuntimeDefault: false;
1560
+ enumValues: [
1561
+ string,
1562
+ ...string[]
1563
+ ];
1564
+ baseColumn: never;
1565
+ identity: undefined;
1566
+ generated: undefined;
1567
+ }, {}>;
1568
+ indexedAt: drizzle_orm_mssql_core.MsSqlColumn<{
1569
+ name: string;
1570
+ tableName: "DailyReportSearchDocument";
1571
+ dataType: "object date";
1572
+ data: Date;
1573
+ driverParam: string | Date;
1574
+ notNull: true;
1575
+ hasDefault: false;
1576
+ isPrimaryKey: false;
1577
+ isAutoincrement: false;
1578
+ hasRuntimeDefault: false;
1579
+ enumValues: undefined;
1580
+ baseColumn: never;
1581
+ identity: undefined;
1582
+ generated: undefined;
1583
+ }, {}>;
1584
+ rowVersion: drizzle_orm_mssql_core.MsSqlColumn<{
1585
+ name: string;
1586
+ tableName: "DailyReportSearchDocument";
1587
+ dataType: "object buffer";
1588
+ data: Buffer<ArrayBufferLike>;
1589
+ driverParam: Buffer<ArrayBufferLike>;
1590
+ notNull: true;
1591
+ hasDefault: false;
1592
+ isPrimaryKey: false;
1593
+ isAutoincrement: false;
1594
+ hasRuntimeDefault: false;
1595
+ enumValues: undefined;
1596
+ baseColumn: never;
1597
+ identity: undefined;
1598
+ generated: undefined;
1599
+ }, {}>;
1600
+ };
1601
+ dialect: "mssql";
1602
+ }>;
1603
+ comment: drizzle_orm_mssql_core.MsSqlTableWithColumns<{
1604
+ name: "DailyReportSearchComment";
1605
+ schema: S;
1606
+ columns: {
1607
+ hubId: drizzle_orm_mssql_core.MsSqlColumn<{
1608
+ name: string;
1609
+ tableName: "DailyReportSearchComment";
1610
+ dataType: "number int53";
1611
+ data: number;
1612
+ driverParam: string;
1613
+ notNull: true;
1614
+ hasDefault: false;
1615
+ isPrimaryKey: false;
1616
+ isAutoincrement: false;
1617
+ hasRuntimeDefault: false;
1618
+ enumValues: undefined;
1619
+ baseColumn: never;
1620
+ identity: undefined;
1621
+ generated: undefined;
1622
+ }, {}>;
1623
+ ordinal: drizzle_orm_mssql_core.MsSqlColumn<{
1624
+ name: string;
1625
+ tableName: "DailyReportSearchComment";
1626
+ dataType: "number int32";
1627
+ data: number;
1628
+ driverParam: number;
1629
+ notNull: true;
1630
+ hasDefault: false;
1631
+ isPrimaryKey: false;
1632
+ isAutoincrement: false;
1633
+ hasRuntimeDefault: false;
1634
+ enumValues: undefined;
1635
+ baseColumn: never;
1636
+ identity: undefined;
1637
+ generated: undefined;
1638
+ }, {}>;
1639
+ authorUserId: drizzle_orm_mssql_core.MsSqlColumn<{
1640
+ name: string;
1641
+ tableName: "DailyReportSearchComment";
1642
+ dataType: "number int53";
1643
+ data: number;
1644
+ driverParam: string;
1645
+ notNull: false;
1646
+ hasDefault: false;
1647
+ isPrimaryKey: false;
1648
+ isAutoincrement: false;
1649
+ hasRuntimeDefault: false;
1650
+ enumValues: undefined;
1651
+ baseColumn: never;
1652
+ identity: undefined;
1653
+ generated: undefined;
1654
+ }, {}>;
1655
+ commentText: drizzle_orm_mssql_core.MsSqlColumn<{
1656
+ name: string;
1657
+ tableName: "DailyReportSearchComment";
1658
+ dataType: "string";
1659
+ data: string;
1660
+ driverParam: string | number;
1661
+ notNull: true;
1662
+ hasDefault: false;
1663
+ isPrimaryKey: false;
1664
+ isAutoincrement: false;
1665
+ hasRuntimeDefault: false;
1666
+ enumValues: [
1667
+ string,
1668
+ ...string[]
1669
+ ];
1670
+ baseColumn: never;
1671
+ identity: undefined;
1672
+ generated: undefined;
1673
+ }, {}>;
1674
+ };
1675
+ dialect: "mssql";
1676
+ }>;
1677
+ };
1678
+ type DailyReportSearchSourceTextReader = (db: DailyReportDb, sourceIdNums: readonly number[]) => Promise<ReadonlyMap<number, readonly string[]>>;
1679
+ type DailyReportSearchConfig = {
1680
+ tables: DailyReportSearchTables;
1681
+ externalSourceTexts?: Readonly<Record<string, DailyReportSearchSourceTextReader>>;
1682
+ concurrency: number;
1683
+ rateLimitPerMinute: number;
1684
+ };
1685
+ type DailyReportSearchSqlExecutor = {
1686
+ execute(query: SQL): Promise<unknown>;
1687
+ };
1688
+ type DailyReportSearchReconcileProgress = {
1689
+ readonly scanned: number;
1690
+ readonly written: number;
1691
+ readonly skipped: number;
1692
+ readonly forcedCuts: number;
1693
+ readonly lastHubId: number | null;
1694
+ };
1695
+ type DailyReportSearchReconcileSummary = DailyReportSearchReconcileProgress & {
1696
+ readonly elapsedMs: number;
1697
+ };
1698
+ type DailyReportSearchReconcileOptions = {
1699
+ readonly batchSize: number;
1700
+ readonly hubIds?: readonly number[];
1701
+ readonly signal?: AbortSignal;
1702
+ readonly onProgress?: (progress: DailyReportSearchReconcileProgress) => void;
1703
+ };
1704
+ type DailyReportSearchWord = {
1705
+ readonly alternatives: readonly string[];
1706
+ };
1707
+ type DailyReportSearchSet = {
1708
+ readonly words: readonly DailyReportSearchWord[];
1709
+ };
1710
+ type DailyReportSearchPlan = {
1711
+ readonly combine: DailyReportSearchCombine;
1712
+ readonly sets: readonly DailyReportSearchSet[];
1713
+ };
1470
1714
  type VisibleSourceTypeSet = ReadonlySet<string> | null;
1471
1715
  declare class DailyReportViewerScope {
1472
1716
  #private;
@@ -1476,11 +1720,6 @@ declare class DailyReportViewerScope {
1476
1720
  static restrictTo(input: readonly string[] | DailyReportVisibilityDimensions): DailyReportViewerScope;
1477
1721
  static unrestricted(auditReason: string): DailyReportViewerScope;
1478
1722
  }
1479
- declare const CLIENT_TEMP_ID_BRAND: unique symbol;
1480
- type DailyReportClientTempId = string & {
1481
- readonly [CLIENT_TEMP_ID_BRAND]: true;
1482
- };
1483
- declare const parseClientTempId: (raw: string | null) => DailyReportClientTempId | null;
1484
1723
  type DailyReportHubRow = {
1485
1724
  id: number;
1486
1725
  sourceType: string;
@@ -1542,7 +1781,7 @@ interface UpdateChain<T> {
1542
1781
  interface DeleteChain {
1543
1782
  where(cond: unknown): PromiseLike<unknown>;
1544
1783
  }
1545
- interface DailyReportDb {
1784
+ interface DailyReportDb extends DailyReportSearchSqlExecutor {
1546
1785
  select<T = Record<string, unknown>>(fields?: unknown): SelectChain<T>;
1547
1786
  insert<T = Record<string, unknown>>(t: unknown): InsertChain<T>;
1548
1787
  update<T = Record<string, unknown>>(t: unknown): UpdateChain<T>;
@@ -1568,6 +1807,7 @@ type DailyReportServiceConfig = {
1568
1807
  businessDateTtlMs?: number;
1569
1808
  disableUserIdCache?: boolean;
1570
1809
  attachments?: DailyReportAttachmentsConfig;
1810
+ search?: DailyReportSearchConfig;
1571
1811
  logger?: DailyReportLogger;
1572
1812
  };
1573
1813
  type DailyReportService = ReturnType<typeof createDailyReportService>;
@@ -1588,6 +1828,10 @@ declare function createDailyReportService(config: DailyReportServiceConfig): {
1588
1828
  thumbnails: AttachmentThumbnailDelivery | null;
1589
1829
  }> | null;
1590
1830
  titleMaxLength: number;
1831
+ searchLimits: {
1832
+ concurrency: number;
1833
+ rateLimitPerMinute: number;
1834
+ } | null;
1591
1835
  clearCache: () => Promise<void>;
1592
1836
  invalidateHubReadCaches: (hubIds: readonly number[], businessDates: readonly string[]) => Promise<void>;
1593
1837
  getUserIdByExternalId: (externalId: string) => Promise<number | null>;
@@ -1600,7 +1844,10 @@ declare function createDailyReportService(config: DailyReportServiceConfig): {
1600
1844
  getDailyReportsByBusinessDateByExternalId: (scope: DailyReportViewerScope, businessDate: string, externalId: string, { forceRefresh, snapshot, ttlMsOverride }?: SqlResultCacheQueryOptions) => Promise<DailyReportDetail[]>;
1601
1845
  getDailyReportDetailById: (scope: DailyReportViewerScope, reportHubId: number, userId: number, { forceRefresh, snapshot, ttlMsOverride }?: SqlResultCacheQueryOptions) => Promise<DailyReportDetail | null>;
1602
1846
  getDailyReportDetailByIdByExternalId: (scope: DailyReportViewerScope, reportHubId: number, externalId: string, options?: SqlResultCacheQueryOptions) => Promise<DailyReportDetail | null>;
1847
+ getDailyReportDetailsByIdsByExternalId: (scope: DailyReportViewerScope, reportHubIds: readonly number[], externalId: string) => Promise<DailyReportDetail[]>;
1603
1848
  getDraftLabelId: () => Promise<number | null>;
1849
+ searchDailyReports: (scope: DailyReportViewerScope, userId: number, plan: DailyReportSearchPlan) => Promise<DailyReportSearchHit[]>;
1850
+ reconcileSearchIndex: (options: DailyReportSearchReconcileOptions) => Promise<DailyReportSearchReconcileSummary>;
1604
1851
  getAttachmentsByHubIds: (hubIds: number[]) => Promise<Map<number, DailyReportAttachmentSummary[]>>;
1605
1852
  getAttachmentForUser: (scope: DailyReportViewerScope, attachmentId: number, userId: number) => Promise<{
1606
1853
  fileName: string;
@@ -1688,7 +1935,7 @@ declare class DailyReportSseReader implements DailyReportSseReaderPort {
1688
1935
  private _invalidateCaches;
1689
1936
  }
1690
1937
  declare const generateETag: (data: unknown) => string;
1691
- declare const jsonResponseWithETag: (request: Request, cookie: string | null, payload: Record<string, unknown>, status?: number, logger?: DailyReportLogger) => Response;
1938
+ declare const jsonResponseWithETag: (request: Request, cookie: string | null, payload: Record<string, unknown>, status?: number) => Response;
1692
1939
  type SharpHeaderLike = {
1693
1940
  width: number;
1694
1941
  height: number;
@@ -1783,6 +2030,10 @@ declare const predictSharpThumbnailWorkingSetBytes: (source: Uint8Array, format:
1783
2030
  declare const createSharpThumbnailRenderer: (sharp: SharpLike) => DailyReportAttachmentThumbnailRenderer;
1784
2031
  declare const DAILY_REPORT_SSE_VISIBILITY_REFRESH_MS = 60000;
1785
2032
  declare const DAILY_REPORT_SSE_CATCH_UP_BATCH: number;
2033
+ declare const readSseStreamEntry: (raw: RedisStreamMessage, logger: DailyReportLogger) => {
2034
+ readonly entry: StreamEntry;
2035
+ readonly json: unknown;
2036
+ };
1786
2037
  type DailyReportServerConfig = Omit<DailyReportServiceConfig, "cache" | "epochs"> & {
1787
2038
  authenticate: DailyReportAuthenticate;
1788
2039
  resolveVisibleSourceTypes?: DailyReportResolveVisibleSourceTypes;
@@ -1800,4 +2051,4 @@ type DailyReportServer = DailyReportHandlers & {
1800
2051
  knownSourceTypes: readonly string[];
1801
2052
  };
1802
2053
  declare function createDailyReportServer(config: DailyReportServerConfig): DailyReportServer;
1803
- export { DAILY_REPORT_ATTACHMENT_THUMBNAIL_MAX_OUTPUT_BYTES, DAILY_REPORT_ATTACHMENT_THUMBNAIL_OUTPUT_MEDIA_TYPES, DAILY_REPORT_SHARP_THUMBNAIL_DECODE_BUDGET_BYTES, DAILY_REPORT_SHARP_THUMBNAIL_DECODE_WORK_MODEL, DAILY_REPORT_SHARP_THUMBNAIL_WORKING_SET_MODEL, DAILY_REPORT_SSE_CATCH_UP_BATCH, DAILY_REPORT_SSE_VISIBILITY_REFRESH_MS, type DailyReportAttachmentDelivery, type DailyReportAttachmentError, type DailyReportAttachmentFailure, type DailyReportAttachmentThumbnail, type DailyReportAttachmentThumbnailOutputMediaType, type DailyReportAttachmentThumbnailRenderer, type DailyReportAttachmentThumbnailSourceFormat, type DailyReportAttachmentThumbnailsConfig, type DailyReportAttachmentsConfig, type DailyReportAuthResult, type DailyReportAuthenticate, type DailyReportClientTempId, type DailyReportDb, type DailyReportHandlers, type DailyReportHandlersConfig, type DailyReportIdCodec, type DailyReportReadAttachment, type DailyReportRedisProvider, type DailyReportServer, type DailyReportServerConfig, type DailyReportServiceConfig, DailyReportSseReader, type DailyReportSseReaderPort, type DailyReportTables, DailyReportViewerScope, type ExternalReportFields, type SharpLike, SqlResultCache, type StreamEntry, createDailyReportHandlers, createDailyReportServer, createDailyReportService, createEpochStore, createSharpThumbnailRenderer, defineDailyReportSchema, generateETag, isStreamIdLte, jsonResponseWithETag, parseClientTempId, predictSharpThumbnailWorkingSetBytes, transformJsonArray };
2054
+ export { DAILY_REPORT_ATTACHMENT_THUMBNAIL_MAX_OUTPUT_BYTES, DAILY_REPORT_ATTACHMENT_THUMBNAIL_OUTPUT_MEDIA_TYPES, DAILY_REPORT_SHARP_THUMBNAIL_DECODE_BUDGET_BYTES, DAILY_REPORT_SHARP_THUMBNAIL_DECODE_WORK_MODEL, DAILY_REPORT_SHARP_THUMBNAIL_WORKING_SET_MODEL, DAILY_REPORT_SSE_CATCH_UP_BATCH, DAILY_REPORT_SSE_VISIBILITY_REFRESH_MS, type DailyReportAttachmentBytes, type DailyReportAttachmentDelivery, type DailyReportAttachmentError, type DailyReportAttachmentFailure, type DailyReportAttachmentTable, type DailyReportAttachmentThumbnail, type AttachmentThumbnailDelivery as DailyReportAttachmentThumbnailDelivery, type DailyReportAttachmentThumbnailError, type DailyReportAttachmentThumbnailFailure, type DailyReportAttachmentThumbnailOutputMediaType, type DailyReportAttachmentThumbnailRenderer, type DailyReportAttachmentThumbnailSourceFormat, type DailyReportAttachmentThumbnailsConfig, type DailyReportAttachmentsConfig, type DailyReportAuthResult, type DailyReportAuthenticate, type DailyReportClientTempId, type DailyReportCommentTable, type DailyReportDb, type DeleteChain as DailyReportDbDeleteChain, type InsertChain as DailyReportDbInsertChain, type Rows as DailyReportDbRows, type SelectChain as DailyReportDbSelectChain, type UpdateChain as DailyReportDbUpdateChain, type DailyReportEncodeUserId, type EpochStore as DailyReportEpochStore, type DailyReportExternalSource, type DailyReportHandlers, type DailyReportHandlersConfig, type DailyReportHubLabelTable, type DailyReportHubRow, type DailyReportHubTable, type DailyReportIdCodec, type DailyReportIdsSource, type DailyReportInternalRow, type DailyReportInternalTable, type DailyReportLabelTable, type DailyReportReadAttachment, type DailyReportRedisBlockingClient, type DailyReportRedisClient, type DailyReportRedisProvider, type RedisStreamMessage as DailyReportRedisStreamMessage, type DailyReportResolveUserId, type DailyReportResolveVisibleSourceTypes, type ResourceRouteArgs as DailyReportResourceRouteArgs, type DailyReportSearchCommentTable, type DailyReportSearchConfig, type DailyReportSearchDocumentTable, type DailyReportSearchPlan, type DailyReportSearchReconcileOptions, type DailyReportSearchReconcileProgress, type DailyReportSearchReconcileSummary, type DailyReportSearchSet, type DailyReportSearchSourceTextReader, type DailyReportSearchSqlExecutor, type DailyReportSearchTables, type DailyReportSearchWord, type DailyReportServer, type DailyReportServerConfig, type DailyReportService, type DailyReportServiceConfig, type SharpHeaderLike as DailyReportSharpHeaderLike, type SharpPipelineLike as DailyReportSharpPipelineLike, type SqlResultCacheQueryOptions as DailyReportSqlResultCacheQueryOptions, type DailyReportSseEntryMessage, DailyReportSseReader, type DailyReportSseReaderConfig, type DailyReportSseReaderPort, type DailyReportTables, type DailyReportUserStatusRow, type DailyReportUserStatusTable, type DailyReportUserTable, DailyReportViewerScope, type DailyReportVisibilityDimensions, type DailyReportVisibilityResolveContext, type DailyReportVisibilityResolveReason, type VisibleSourceTypeSet as DailyReportVisibleSourceTypeSet, type DailyReportVisibleSourceTypes, type ExternalReportFields, type SharpLike, SqlResultCache, type StreamEntry, createDailyReportHandlers, createDailyReportServer, createDailyReportService, createEpochStore, createSharpThumbnailRenderer, defineDailyReportSchema, defineDailyReportSearchSchema, generateETag, isStreamIdLte, jsonResponseWithETag, parseClientTempId, predictSharpThumbnailWorkingSetBytes, readSseStreamEntry as readDailyReportSseStreamEntry, transformJsonArray };