@aiquants/daily-report 0.42.0 → 0.44.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.
@@ -0,0 +1,39 @@
1
+ import { R as RowBoxSizing, d as RowUnitChange, e as ViewTestReadHandle, c as ListScrollToIndexOptions, a as DailyReportInstrumentation } from "./instrumentation-CobsTeyw.mjs";
2
+ export { f as DailyReportRowPassEvent, g as DailyReportRowPassUnitFrameEvent, h as DailyReportRowPassUnitKind } from "./instrumentation-CobsTeyw.mjs";
3
+ import { D as DailyReportItem } from "./types-BP1kIGMo.mjs";
4
+ import "react";
5
+ import "@aiquants/virtualscroll";
6
+ type RowPassCounters = {
7
+ readonly syncReleases: number;
8
+ readonly deferredVisible: number;
9
+ readonly oversizeFrames: number;
10
+ readonly lateFrames: number;
11
+ readonly lateForcedFrames: number;
12
+ readonly unitFrames: number;
13
+ };
14
+ type RowPassKindReading = {
15
+ readonly sizing: RowBoxSizing;
16
+ readonly change: RowUnitChange;
17
+ readonly p50: number | null;
18
+ readonly p90: number | null;
19
+ readonly budget: number;
20
+ };
21
+ type ReEstimateCounters = {
22
+ readonly reEstimates: number;
23
+ readonly reEstimatesInMotion: number;
24
+ };
25
+ type ViewTestHandle = ViewTestReadHandle & {
26
+ readonly findReportIndex: (id: number) => number;
27
+ readonly getReportItem: (index: number) => DailyReportItem | undefined;
28
+ readonly getReportIds: (limit?: number) => number[];
29
+ readonly revealIndex: (index: number, options: ListScrollToIndexOptions) => void;
30
+ readonly rowPass: {
31
+ readonly counters: () => RowPassCounters;
32
+ readonly unitKinds: () => readonly RowPassKindReading[];
33
+ };
34
+ readonly estimate: {
35
+ readonly counters: () => ReEstimateCounters;
36
+ };
37
+ };
38
+ declare const createDailyReportTestInstrumentation: () => DailyReportInstrumentation;
39
+ export { type ReEstimateCounters as DailyReportReEstimateCounters, RowBoxSizing as DailyReportRowBoxSizing, type RowPassCounters as DailyReportRowPassCounters, type RowPassKindReading as DailyReportRowPassKindReading, RowUnitChange as DailyReportRowUnitChange, type ViewTestHandle as DailyReportViewTestHandle, ViewTestReadHandle as DailyReportViewTestReadHandle, createDailyReportTestInstrumentation };
@@ -0,0 +1,39 @@
1
+ import { R as RowBoxSizing, d as RowUnitChange, e as ViewTestReadHandle, c as ListScrollToIndexOptions, a as DailyReportInstrumentation } from "./instrumentation-Dz7Uh7dT.js";
2
+ export { f as DailyReportRowPassEvent, g as DailyReportRowPassUnitFrameEvent, h as DailyReportRowPassUnitKind } from "./instrumentation-Dz7Uh7dT.js";
3
+ import { D as DailyReportItem } from "./types-BP1kIGMo.js";
4
+ import "react";
5
+ import "@aiquants/virtualscroll";
6
+ type RowPassCounters = {
7
+ readonly syncReleases: number;
8
+ readonly deferredVisible: number;
9
+ readonly oversizeFrames: number;
10
+ readonly lateFrames: number;
11
+ readonly lateForcedFrames: number;
12
+ readonly unitFrames: number;
13
+ };
14
+ type RowPassKindReading = {
15
+ readonly sizing: RowBoxSizing;
16
+ readonly change: RowUnitChange;
17
+ readonly p50: number | null;
18
+ readonly p90: number | null;
19
+ readonly budget: number;
20
+ };
21
+ type ReEstimateCounters = {
22
+ readonly reEstimates: number;
23
+ readonly reEstimatesInMotion: number;
24
+ };
25
+ type ViewTestHandle = ViewTestReadHandle & {
26
+ readonly findReportIndex: (id: number) => number;
27
+ readonly getReportItem: (index: number) => DailyReportItem | undefined;
28
+ readonly getReportIds: (limit?: number) => number[];
29
+ readonly revealIndex: (index: number, options: ListScrollToIndexOptions) => void;
30
+ readonly rowPass: {
31
+ readonly counters: () => RowPassCounters;
32
+ readonly unitKinds: () => readonly RowPassKindReading[];
33
+ };
34
+ readonly estimate: {
35
+ readonly counters: () => ReEstimateCounters;
36
+ };
37
+ };
38
+ declare const createDailyReportTestInstrumentation: () => DailyReportInstrumentation;
39
+ export { type ReEstimateCounters as DailyReportReEstimateCounters, RowBoxSizing as DailyReportRowBoxSizing, type RowPassCounters as DailyReportRowPassCounters, type RowPassKindReading as DailyReportRowPassKindReading, RowUnitChange as DailyReportRowUnitChange, type ViewTestHandle as DailyReportViewTestHandle, ViewTestReadHandle as DailyReportViewTestReadHandle, createDailyReportTestInstrumentation };
@@ -0,0 +1 @@
1
+ "use strict";var b=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var S=(r,e)=>{for(var t in e)b(r,t,{get:e[t],enumerable:!0})},k=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of H(e))!v.call(r,n)&&n!==t&&b(r,n,{get:()=>e[n],enumerable:!(o=P(e,n))||o.enumerable});return r};var B=r=>k(b({},"__esModule",{value:!0}),r);var G={};S(G,{createDailyReportTestInstrumentation:()=>A});module.exports=B(G);var M=[null];var g=[void 0];var R=r=>{let e=M[r];if(e===void 0)throw new Error(`[daily-report] No business date has the code ${r}`);return e};var m=r=>{if(!(Number.isInteger(r)&&r>=0&&r<g.length))throw new Error(`[daily-report] No source type has the code ${r}`);return g[r]},f=class{constructor(e,t,o,n){this.length=e,this.ids=t,this.businessDateCodes=o,this.sourceTypeCodes=n}idAt(e){return this.ids[this.rowIndexOf(e)]}itemAt(e){let t=this.rowIndexOf(e);return{reportHubId:this.ids[t],businessDate:R(this.businessDateCodes[t]),sourceType:m(this.sourceTypeCodes[t])}}items(){let e=[];for(let t=0;t<this.length;t++)e.push(this.itemAt(t));return e}businessDateAt(e){return R(this.businessDateCodes[this.rowIndexOf(e)])}sourceTypeAt(e){return m(this.sourceTypeCodes[this.rowIndexOf(e)])}rowIndexOf(e){if(Number.isInteger(e)&&e>=0&&e<this.length)return e;throw new Error(`[daily-report] A batch of ${this.length} rows has no row ${e}`)}};var L=new f(0,new Float64Array(0),new Uint32Array(0),new Uint8Array(0)),ee=Float64Array.BYTES_PER_ELEMENT+Uint32Array.BYTES_PER_ELEMENT+Uint8Array.BYTES_PER_ELEMENT;var I=10,C=1<<I,F=C-1,U=C,N=U/2,c=new Map,h=new Map,w=(r,e,t)=>r.businessDate===e&&r.sourceType===t,V=(r,e,t)=>{let o=c.get(r),n=o===void 0?h.get(r):o;return n!==void 0&&w(n,e,t)?n:void 0},z=(r,e,t)=>{let o=R(e),n=m(t),s=c.get(r);if(s!==void 0&&w(s,o,n))return s;let i=s===void 0?h.get(r):void 0,d=i!==void 0&&w(i,o,n)?i:{reportHubId:r,businessDate:o,sourceType:n};return c.set(r,d),c.size>=N&&(h=c,c=new Map),d},K=(r,e,t)=>{let o=R(e),n=m(t),s=V(r,o,n);return s===void 0?{reportHubId:r,businessDate:o,sourceType:n}:s};var y=class{constructor(e,t){this.chunks=e,this.length=t}at(e){let t=Number.isNaN(e)?0:Math.trunc(e),o=t<0?t+this.length:t;if(!(o<0||o>=this.length))return Y(this,o)}[Symbol.iterator](){let{chunks:e}=this,t=0,o=0;return{next:()=>{for(;t<e.length;){let n=e[t];if(o<n.length){let s=K(n.ids[o],n.businessDateCodes[o],n.sourceTypeCodes[o]);return o+=1,{done:!1,value:s}}t+=1,o=0}return{done:!0,value:void 0}}}}},se=new y([],0),Y=(r,e)=>{let t=r.chunks[e>>>I],o=e&F;return z(t.ids[o],t.businessDateCodes[o],t.sourceTypeCodes[o])};var D=(r,e)=>{let{chunks:t}=r;for(let o=0;o<t.length;o++){let{ids:n,length:s}=t[o];for(let i=0;i<s;i++)if(n[i]===e)return(o<<I)+i}return-1};var $=(r,e)=>Number.isInteger(e)&&e>=0&&e<r.length,T=(r,e)=>$(r,e)?r.at(e):void 0;var E=(r,e)=>{if(r instanceof y)return D(r,e);let t=0;for(let o of r){if(o.reportHubId===e)return t;t+=1}return-1};var x=(r,e)=>{let t=[];for(let o of r){if(t.length>=e)break;t.push(o.reportHubId)}return t};var W=20,j=()=>{},q=({hostTestId:r,readHandle:e,readItems:t,reveal:o})=>{let n={syncReleases:0,deferredVisible:0,oversizeFrames:0,lateFrames:0,lateForcedFrames:0,unitFrames:0},s=new Map,i=Object.freeze({counters:()=>({...n}),unitKinds:()=>[...s.values()]}),d={reEstimates:0,reEstimatesInMotion:0},O=Object.freeze({counters:()=>({...d})});return{observeRowPass:a=>{switch(a.type){case"sync-release":n.syncReleases+=1;return;case"deferred-visible":n.deferredVisible+=1;return;case"oversize-frame":n.oversizeFrames+=1;return;case"late-frame":n.lateFrames+=1;return;case"late-forced-frame":n.lateForcedFrames+=1;return;case"unit-frame":{if(n.unitFrames+=1,a.kind===null)return;let{sizing:p,change:u}=a.kind;s.set(`${p}:${u}`,Object.freeze({sizing:p,change:u,p50:a.p50,p90:a.p90,budget:a.budget}));return}}},observeReEstimate:a=>{d.reEstimates+=1,a&&(d.reEstimatesInMotion+=1)},attach:a=>{let p=a.querySelector(`[data-testid="${r}"]`);return p===null?j:(Object.defineProperty(p,"__virtualScroll",{configurable:!0,get:()=>{let u=e();if(u!==null)return{getViewportSize:()=>u.getViewportSize(),getScrollPosition:()=>u.getScrollPosition(),getScrollAnchor:()=>u.getScrollAnchor(),getRange:()=>u.getRange(),getFenwickSize:()=>u.getFenwickSize(),findReportIndex:l=>E(t(),l),getReportItem:l=>T(t(),l),getReportIds:(l=W)=>x(t(),l),revealIndex:(l,_)=>o(l,_),rowPass:i,estimate:O}}}),()=>{delete p.__virtualScroll})}}},A=()=>Object.freeze({instrumentView:q});0&&(module.exports={createDailyReportTestInstrumentation});
@@ -0,0 +1 @@
1
+ var O=[null];var I=[void 0];var R=r=>{let e=O[r];if(e===void 0)throw new Error(`[daily-report] No business date has the code ${r}`);return e};var m=r=>{if(!(Number.isInteger(r)&&r>=0&&r<I.length))throw new Error(`[daily-report] No source type has the code ${r}`);return I[r]},b=class{constructor(e,t,o,n){this.length=e,this.ids=t,this.businessDateCodes=o,this.sourceTypeCodes=n}idAt(e){return this.ids[this.rowIndexOf(e)]}itemAt(e){let t=this.rowIndexOf(e);return{reportHubId:this.ids[t],businessDate:R(this.businessDateCodes[t]),sourceType:m(this.sourceTypeCodes[t])}}items(){let e=[];for(let t=0;t<this.length;t++)e.push(this.itemAt(t));return e}businessDateAt(e){return R(this.businessDateCodes[this.rowIndexOf(e)])}sourceTypeAt(e){return m(this.sourceTypeCodes[this.rowIndexOf(e)])}rowIndexOf(e){if(Number.isInteger(e)&&e>=0&&e<this.length)return e;throw new Error(`[daily-report] A batch of ${this.length} rows has no row ${e}`)}};var _=new b(0,new Float64Array(0),new Uint32Array(0),new Uint8Array(0)),$=Float64Array.BYTES_PER_ELEMENT+Uint32Array.BYTES_PER_ELEMENT+Uint8Array.BYTES_PER_ELEMENT;var w=10,g=1<<w,P=g-1,H=g,v=H/2,c=new Map,f=new Map,h=(r,e,t)=>r.businessDate===e&&r.sourceType===t,S=(r,e,t)=>{let o=c.get(r),n=o===void 0?f.get(r):o;return n!==void 0&&h(n,e,t)?n:void 0},k=(r,e,t)=>{let o=R(e),n=m(t),s=c.get(r);if(s!==void 0&&h(s,o,n))return s;let i=s===void 0?f.get(r):void 0,d=i!==void 0&&h(i,o,n)?i:{reportHubId:r,businessDate:o,sourceType:n};return c.set(r,d),c.size>=v&&(f=c,c=new Map),d},B=(r,e,t)=>{let o=R(e),n=m(t),s=S(r,o,n);return s===void 0?{reportHubId:r,businessDate:o,sourceType:n}:s};var y=class{constructor(e,t){this.chunks=e,this.length=t}at(e){let t=Number.isNaN(e)?0:Math.trunc(e),o=t<0?t+this.length:t;if(!(o<0||o>=this.length))return M(this,o)}[Symbol.iterator](){let{chunks:e}=this,t=0,o=0;return{next:()=>{for(;t<e.length;){let n=e[t];if(o<n.length){let s=B(n.ids[o],n.businessDateCodes[o],n.sourceTypeCodes[o]);return o+=1,{done:!1,value:s}}t+=1,o=0}return{done:!0,value:void 0}}}}},X=new y([],0),M=(r,e)=>{let t=r.chunks[e>>>w],o=e&P;return k(t.ids[o],t.businessDateCodes[o],t.sourceTypeCodes[o])};var C=(r,e)=>{let{chunks:t}=r;for(let o=0;o<t.length;o++){let{ids:n,length:s}=t[o];for(let i=0;i<s;i++)if(n[i]===e)return(o<<w)+i}return-1};var L=(r,e)=>Number.isInteger(e)&&e>=0&&e<r.length,D=(r,e)=>L(r,e)?r.at(e):void 0;var T=(r,e)=>{if(r instanceof y)return C(r,e);let t=0;for(let o of r){if(o.reportHubId===e)return t;t+=1}return-1};var E=(r,e)=>{let t=[];for(let o of r){if(t.length>=e)break;t.push(o.reportHubId)}return t};var F=20,U=()=>{},N=({hostTestId:r,readHandle:e,readItems:t,reveal:o})=>{let n={syncReleases:0,deferredVisible:0,oversizeFrames:0,lateFrames:0,lateForcedFrames:0,unitFrames:0},s=new Map,i=Object.freeze({counters:()=>({...n}),unitKinds:()=>[...s.values()]}),d={reEstimates:0,reEstimatesInMotion:0},x=Object.freeze({counters:()=>({...d})});return{observeRowPass:a=>{switch(a.type){case"sync-release":n.syncReleases+=1;return;case"deferred-visible":n.deferredVisible+=1;return;case"oversize-frame":n.oversizeFrames+=1;return;case"late-frame":n.lateFrames+=1;return;case"late-forced-frame":n.lateForcedFrames+=1;return;case"unit-frame":{if(n.unitFrames+=1,a.kind===null)return;let{sizing:p,change:u}=a.kind;s.set(`${p}:${u}`,Object.freeze({sizing:p,change:u,p50:a.p50,p90:a.p90,budget:a.budget}));return}}},observeReEstimate:a=>{d.reEstimates+=1,a&&(d.reEstimatesInMotion+=1)},attach:a=>{let p=a.querySelector(`[data-testid="${r}"]`);return p===null?U:(Object.defineProperty(p,"__virtualScroll",{configurable:!0,get:()=>{let u=e();if(u!==null)return{getViewportSize:()=>u.getViewportSize(),getScrollPosition:()=>u.getScrollPosition(),getScrollAnchor:()=>u.getScrollAnchor(),getRange:()=>u.getRange(),getFenwickSize:()=>u.getFenwickSize(),findReportIndex:l=>T(t(),l),getReportItem:l=>D(t(),l),getReportIds:(l=F)=>E(t(),l),revealIndex:(l,A)=>o(l,A),rowPass:i,estimate:x}}}),()=>{delete p.__virtualScroll})}}},V=()=>Object.freeze({instrumentView:N});export{V as createDailyReportTestInstrumentation};
@@ -0,0 +1,75 @@
1
+ type DailyReportItem = {
2
+ reportHubId: number;
3
+ businessDate: string | null;
4
+ sourceType?: string;
5
+ };
6
+ type DailyReportInterviewer = {
7
+ name?: string | null;
8
+ affiliation?: string | null;
9
+ };
10
+ type DailyReportExternalComment = {
11
+ name?: string | null;
12
+ text?: string | null;
13
+ color?: string | null;
14
+ };
15
+ type DailyReportLabelDef = {
16
+ id: number;
17
+ name?: string | null;
18
+ color?: string | null;
19
+ };
20
+ type DailyReportAttachmentState = "present" | "absent" | "unknown";
21
+ type DailyReportAttachmentSummary = {
22
+ id: string;
23
+ fileName: string;
24
+ fileType: string | null;
25
+ fileSize: number | null;
26
+ createdAt: string | null;
27
+ state: DailyReportAttachmentState;
28
+ hasThumbnail: boolean;
29
+ };
30
+ type DailyReportPostedComment = {
31
+ id: number;
32
+ userId?: string | null;
33
+ userName?: string | null;
34
+ content?: string | null;
35
+ createdAt?: string | null;
36
+ isMine: boolean;
37
+ };
38
+ type DailyReportDetail = {
39
+ reportHubId: number;
40
+ date?: string | null;
41
+ createdAt?: string | null;
42
+ author?: string | null;
43
+ userId?: string | null;
44
+ sourceType?: string | null;
45
+ employeeName?: string | null;
46
+ updatedBy?: string | null;
47
+ updatedAt?: string | null;
48
+ category?: string | null;
49
+ creationCategory?: string | null;
50
+ visitTimeFrom?: string | null;
51
+ visitTimeTo?: string | null;
52
+ customerName?: string | null;
53
+ interviewers: DailyReportInterviewer[];
54
+ subject?: string | null;
55
+ content?: string | null;
56
+ externalComments: DailyReportExternalComment[];
57
+ isRead: boolean;
58
+ isStarred: boolean;
59
+ isDraft: boolean;
60
+ labels: DailyReportLabelDef[];
61
+ postedComments: DailyReportPostedComment[];
62
+ attachments: DailyReportAttachmentSummary[];
63
+ };
64
+ type DailyReportUser = {
65
+ id: string;
66
+ displayName?: string;
67
+ name?: {
68
+ familyName?: string;
69
+ givenName?: string;
70
+ };
71
+ emails?: {
72
+ value: string;
73
+ }[];
74
+ };
75
+ export type { DailyReportItem as D, DailyReportUser as a, DailyReportDetail as b, DailyReportAttachmentState as c, DailyReportAttachmentSummary as d, DailyReportExternalComment as e, DailyReportInterviewer as f, DailyReportLabelDef as g, DailyReportPostedComment as h };
@@ -0,0 +1,75 @@
1
+ type DailyReportItem = {
2
+ reportHubId: number;
3
+ businessDate: string | null;
4
+ sourceType?: string;
5
+ };
6
+ type DailyReportInterviewer = {
7
+ name?: string | null;
8
+ affiliation?: string | null;
9
+ };
10
+ type DailyReportExternalComment = {
11
+ name?: string | null;
12
+ text?: string | null;
13
+ color?: string | null;
14
+ };
15
+ type DailyReportLabelDef = {
16
+ id: number;
17
+ name?: string | null;
18
+ color?: string | null;
19
+ };
20
+ type DailyReportAttachmentState = "present" | "absent" | "unknown";
21
+ type DailyReportAttachmentSummary = {
22
+ id: string;
23
+ fileName: string;
24
+ fileType: string | null;
25
+ fileSize: number | null;
26
+ createdAt: string | null;
27
+ state: DailyReportAttachmentState;
28
+ hasThumbnail: boolean;
29
+ };
30
+ type DailyReportPostedComment = {
31
+ id: number;
32
+ userId?: string | null;
33
+ userName?: string | null;
34
+ content?: string | null;
35
+ createdAt?: string | null;
36
+ isMine: boolean;
37
+ };
38
+ type DailyReportDetail = {
39
+ reportHubId: number;
40
+ date?: string | null;
41
+ createdAt?: string | null;
42
+ author?: string | null;
43
+ userId?: string | null;
44
+ sourceType?: string | null;
45
+ employeeName?: string | null;
46
+ updatedBy?: string | null;
47
+ updatedAt?: string | null;
48
+ category?: string | null;
49
+ creationCategory?: string | null;
50
+ visitTimeFrom?: string | null;
51
+ visitTimeTo?: string | null;
52
+ customerName?: string | null;
53
+ interviewers: DailyReportInterviewer[];
54
+ subject?: string | null;
55
+ content?: string | null;
56
+ externalComments: DailyReportExternalComment[];
57
+ isRead: boolean;
58
+ isStarred: boolean;
59
+ isDraft: boolean;
60
+ labels: DailyReportLabelDef[];
61
+ postedComments: DailyReportPostedComment[];
62
+ attachments: DailyReportAttachmentSummary[];
63
+ };
64
+ type DailyReportUser = {
65
+ id: string;
66
+ displayName?: string;
67
+ name?: {
68
+ familyName?: string;
69
+ givenName?: string;
70
+ };
71
+ emails?: {
72
+ value: string;
73
+ }[];
74
+ };
75
+ export type { DailyReportItem as D, DailyReportUser as a, DailyReportDetail as b, DailyReportAttachmentState as c, DailyReportAttachmentSummary as d, DailyReportExternalComment as e, DailyReportInterviewer as f, DailyReportLabelDef as g, DailyReportPostedComment as h };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiquants/daily-report",
3
- "version": "0.42.0",
3
+ "version": "0.44.0",
4
4
  "description": "Reusable daily-report feature package: shared types/schemas, React (Router v7 / v8) UI with virtual scrolling + optimistic updates + SSE sync, and a drizzle (mssql) server layer with DI ports (auth, user resolution, redis, external sources).",
5
5
  "sideEffects": [
6
6
  "**/*.css"
@@ -24,6 +24,11 @@
24
24
  "import": "./dist/server.mjs",
25
25
  "require": "./dist/server.js"
26
26
  },
27
+ "./testing": {
28
+ "types": "./dist/testing.d.ts",
29
+ "import": "./dist/testing.mjs",
30
+ "require": "./dist/testing.js"
31
+ },
27
32
  "./styles/daily-report.standalone.css": "./dist/styles/daily-report.standalone.css"
28
33
  },
29
34
  "files": [
@@ -47,6 +52,7 @@
47
52
  "dependencies": {
48
53
  "@aiquants/fuzzy-search": "^3.2.0",
49
54
  "@aiquants/mssql": "^0.1.3",
55
+ "@aiquants/request-isolation": "^0.1.0",
50
56
  "@aiquants/sse": "^0.2.0",
51
57
  "@heroicons/react": "^2.2.0",
52
58
  "@radix-ui/react-label": "^2.1.8",
@@ -61,7 +67,7 @@
61
67
  "devDependencies": {
62
68
  "@aiquants/resize-panels": "^2.1.0",
63
69
  "@aiquants/swipe-overlay": "^1.2.5",
64
- "@aiquants/virtualscroll": "^3.17.0",
70
+ "@aiquants/virtualscroll": "^3.18.0",
65
71
  "@tailwindcss/cli": "^4.1.18",
66
72
  "@testing-library/jest-dom": "^6.9.1",
67
73
  "@testing-library/react": "^16.3.2",
@@ -85,7 +91,7 @@
85
91
  "peerDependencies": {
86
92
  "@aiquants/resize-panels": "^2.1.0",
87
93
  "@aiquants/swipe-overlay": "^1.2.5",
88
- "@aiquants/virtualscroll": "^3.17.0",
94
+ "@aiquants/virtualscroll": "^3.18.0",
89
95
  "drizzle-orm": ">=1.0.0-beta.4 <2.0.0",
90
96
  "react": ">=19",
91
97
  "react-dom": ">=19",
@@ -112,9 +118,9 @@
112
118
  "dev": "tsup --watch --onSuccess \"pnpm build:css\"",
113
119
  "typecheck": "tsc --noEmit",
114
120
  "clean": "rimraf dist",
115
- "publish:patch": "pnpm run verify && node scripts/check-bundle-size.mjs --write && node scripts/check-bundle-size.mjs --exact && node ../../.config/scripts/check-publish-leaks.mjs && node scripts/check-peer-floors.mjs && pnpm version patch --no-git-tag-version --no-git-checks && node scripts/check-bundle-size.mjs --stamp-release && pnpm publish --no-git-checks",
116
- "publish:minor": "pnpm run verify && node scripts/check-bundle-size.mjs --write && node scripts/check-bundle-size.mjs --exact && node ../../.config/scripts/check-publish-leaks.mjs && node scripts/check-peer-floors.mjs && pnpm version minor --no-git-tag-version --no-git-checks && node scripts/check-bundle-size.mjs --stamp-release && pnpm publish --no-git-checks",
117
- "publish:major": "pnpm run verify && node scripts/check-bundle-size.mjs --write && node scripts/check-bundle-size.mjs --exact && node ../../.config/scripts/check-publish-leaks.mjs && node scripts/check-peer-floors.mjs && pnpm version major --no-git-tag-version --no-git-checks && node scripts/check-bundle-size.mjs --stamp-release && pnpm publish --no-git-checks",
121
+ "publish:patch": "pnpm run verify && node scripts/check-bundle-size.mjs --write && pnpm run build && node scripts/check-bundle-size.mjs --exact && node ../../.config/scripts/check-publish-leaks.mjs && node scripts/check-peer-floors.mjs && pnpm version patch --no-git-tag-version --no-git-checks && node scripts/check-bundle-size.mjs --stamp-release && pnpm publish --no-git-checks",
122
+ "publish:minor": "pnpm run verify && node scripts/check-bundle-size.mjs --write && pnpm run build && node scripts/check-bundle-size.mjs --exact && node ../../.config/scripts/check-publish-leaks.mjs && node scripts/check-peer-floors.mjs && pnpm version minor --no-git-tag-version --no-git-checks && node scripts/check-bundle-size.mjs --stamp-release && pnpm publish --no-git-checks",
123
+ "publish:major": "pnpm run verify && node scripts/check-bundle-size.mjs --write && pnpm run build && node scripts/check-bundle-size.mjs --exact && node ../../.config/scripts/check-publish-leaks.mjs && node scripts/check-peer-floors.mjs && pnpm version major --no-git-tag-version --no-git-checks && node scripts/check-bundle-size.mjs --stamp-release && pnpm publish --no-git-checks",
118
124
  "lint": "biome lint src/ scripts/",
119
125
  "check": "biome check src/ scripts/",
120
126
  "check:fix": "biome check --write src/ scripts/",