jazz-tools 0.18.30 → 0.18.32

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 (42) hide show
  1. package/.turbo/turbo-build.log +61 -61
  2. package/CHANGELOG.md +20 -0
  3. package/dist/{chunk-6BIYT3KH.js → chunk-JXRJMGKV.js} +2 -2
  4. package/dist/chunk-JXRJMGKV.js.map +1 -0
  5. package/dist/index.js +1 -1
  6. package/dist/inspector/{custom-element-RQTLPAPJ.js → custom-element-RBBL46TI.js} +636 -193
  7. package/dist/inspector/custom-element-RBBL46TI.js.map +1 -0
  8. package/dist/inspector/index.js +626 -183
  9. package/dist/inspector/index.js.map +1 -1
  10. package/dist/inspector/register-custom-element.js +1 -1
  11. package/dist/inspector/tests/ui/data-table.test.d.ts +2 -0
  12. package/dist/inspector/tests/ui/data-table.test.d.ts.map +1 -0
  13. package/dist/inspector/tests/viewer/history-view.test.d.ts +2 -0
  14. package/dist/inspector/tests/viewer/history-view.test.d.ts.map +1 -0
  15. package/dist/inspector/ui/data-table.d.ts +23 -0
  16. package/dist/inspector/ui/data-table.d.ts.map +1 -0
  17. package/dist/inspector/ui/index.d.ts +1 -0
  18. package/dist/inspector/ui/index.d.ts.map +1 -1
  19. package/dist/inspector/viewer/history-view.d.ts +6 -0
  20. package/dist/inspector/viewer/history-view.d.ts.map +1 -0
  21. package/dist/inspector/viewer/page.d.ts.map +1 -1
  22. package/dist/testing.js +1 -1
  23. package/dist/tools/coValues/coFeed.d.ts +1 -1
  24. package/dist/tools/coValues/coFeed.d.ts.map +1 -1
  25. package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts +2 -2
  26. package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts.map +1 -1
  27. package/dist/worker/index.d.ts +2 -1
  28. package/dist/worker/index.d.ts.map +1 -1
  29. package/dist/worker/index.js +2 -1
  30. package/dist/worker/index.js.map +1 -1
  31. package/package.json +4 -4
  32. package/src/inspector/tests/ui/data-table.test.tsx +296 -0
  33. package/src/inspector/tests/viewer/history-view.test.tsx +246 -0
  34. package/src/inspector/ui/data-table.tsx +265 -0
  35. package/src/inspector/ui/index.ts +1 -0
  36. package/src/inspector/viewer/history-view.tsx +379 -0
  37. package/src/inspector/viewer/page.tsx +2 -0
  38. package/src/tools/coValues/coFeed.ts +2 -2
  39. package/src/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.ts +1 -1
  40. package/src/worker/index.ts +9 -1
  41. package/dist/chunk-6BIYT3KH.js.map +0 -1
  42. package/dist/inspector/custom-element-RQTLPAPJ.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  // src/inspector/register-custom-element.ts
2
2
  if (typeof window !== "undefined" && process.env.NODE_ENV === "development") {
3
- import("./custom-element-RQTLPAPJ.js");
3
+ import("./custom-element-RBBL46TI.js");
4
4
  }
5
5
  //# sourceMappingURL=register-custom-element.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data-table.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table.test.d.ts","sourceRoot":"","sources":["../../../../src/inspector/tests/ui/data-table.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=history-view.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-view.test.d.ts","sourceRoot":"","sources":["../../../../src/inspector/tests/viewer/history-view.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ export type ColumnDef<T> = {
2
+ id: string;
3
+ header: string;
4
+ accessor: (row: T) => React.ReactNode;
5
+ sortable?: boolean;
6
+ filterable?: boolean;
7
+ sortFn?: (a: T, b: T) => number;
8
+ filterFn?: (row: T, filterValue: string) => boolean;
9
+ };
10
+ export type SortConfig = {
11
+ columnId: string;
12
+ direction: "asc" | "desc";
13
+ } | null;
14
+ export type DataTableProps<T> = {
15
+ columns: ColumnDef<T>[];
16
+ data: T[];
17
+ pageSize?: number;
18
+ initialSort?: SortConfig;
19
+ getRowKey: (row: T, index: number) => string;
20
+ emptyMessage?: string;
21
+ };
22
+ export declare function DataTable<T>({ columns, data, pageSize, initialSort, getRowKey, emptyMessage, }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
23
+ //# sourceMappingURL=data-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../../src/inspector/ui/data-table.tsx"],"names":[],"mappings":"AAYA,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B,GAAG,IAAI,CAAC;AAET,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAC3B,OAAO,EACP,IAAI,EACJ,QAAa,EACb,WAAkB,EAClB,SAAS,EACT,YAAkC,GACnC,EAAE,cAAc,CAAC,CAAC,CAAC,2CA6NnB"}
@@ -3,4 +3,5 @@ export { Icon } from "./icon.js";
3
3
  export { Modal } from "./modal.js";
4
4
  export { Input } from "./input.js";
5
5
  export { Select } from "./select.js";
6
+ export { DataTable } from "./data-table.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/inspector/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/inspector/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { LocalNode, RawCoValue } from "cojson";
2
+ export declare function HistoryView({ coValue, node, }: {
3
+ coValue: RawCoValue;
4
+ node: LocalNode;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=history-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-view.d.ts","sourceRoot":"","sources":["../../../src/inspector/viewer/history-view.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EAET,UAAU,EAEX,MAAM,QAAQ,CAAC;AA2BhB,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,IAAI,GACL,EAAE;IACD,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;CACjB,2CA0EA"}
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../src/inspector/viewer/page.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,SAAS,EAGT,UAAU,EAEX,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA8DtC,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA4EF,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,2CA4EpC"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../src/inspector/viewer/page.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,SAAS,EAGT,UAAU,EAEX,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA+DtC,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA4EF,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,2CA6EpC"}
package/dist/testing.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  createAnonymousJazzContext,
7
7
  createJazzContext,
8
8
  randomSessionProvider
9
- } from "./chunk-6BIYT3KH.js";
9
+ } from "./chunk-JXRJMGKV.js";
10
10
  import "./chunk-PZ5AY32C.js";
11
11
 
12
12
  // src/tools/testing.ts
@@ -144,7 +144,7 @@ export declare class CoFeed<out Item = any> extends CoValueBase implements CoVal
144
144
  * @category Subscription & Loading
145
145
  * @deprecated Use `co.feed(...).load` instead.
146
146
  */
147
- static load<F extends CoFeed, const R extends RefsToResolve<F> = true>(this: CoValueClass<F>, id: ID<F>, options: {
147
+ static load<F extends CoFeed, const R extends RefsToResolve<F> = true>(this: CoValueClass<F>, id: ID<F>, options?: {
148
148
  resolve?: RefsToResolveStrict<F, R>;
149
149
  loadAs?: Account | AnonymousJazzAgent;
150
150
  }): Promise<Resolved<F, R> | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"coFeed.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/coFeed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coFeed.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/coFeed.ts"],"names":[],"mappings":"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"}
@@ -31,8 +31,8 @@ export declare class FileStreamSchema implements CoreFileStreamSchema {
31
31
  allowUnfinished?: boolean;
32
32
  loadAs?: Account | AnonymousJazzAgent;
33
33
  }): Promise<Blob | undefined>;
34
- load(id: string, options: {
35
- loadAs: Account | AnonymousJazzAgent;
34
+ load(id: string, options?: {
35
+ loadAs?: Account | AnonymousJazzAgent;
36
36
  }): Promise<FileStream | null>;
37
37
  unstable_merge(id: string, options: {
38
38
  loadAs: Account | AnonymousJazzAgent;
@@ -1 +1 @@
1
- {"version":3,"file":"FileStreamSchema.d.ts","sourceRoot":"","sources":["../../../../../src/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,UAAU,EACV,KAAK,EAGN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,wBAAgB,0BAA0B,IAAI,oBAAoB,CAKjE;AAED,qBAAa,gBAAiB,YAAW,oBAAoB;IAI/C,OAAO,CAAC,YAAY;IAHhC,QAAQ,CAAC,aAAa,OAAiB;IACvC,QAAQ,CAAC,OAAO,eAAyB;gBAErB,YAAY,EAAE,OAAO,UAAU;IAEnD,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,KAAK,GAAG,UAAU;IACtD,iGAAiG;IACjG,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,GAAG,KAAK,CAAA;KAAE,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU;IAK1E,cAAc,CACZ,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,CAAC,EACJ;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GAC1D,KAAK,GACR,OAAO,CAAC,UAAU,CAAC;IACtB,iGAAiG;IACjG,cAAc,CACZ,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,CAAC,EACJ;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;QAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GACpE,OAAO,GACP,KAAK,GACR,OAAO,CAAC,UAAU,CAAC;IActB,qBAAqB,CACnB,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,qBAAqB,CAAC;IAK9D,UAAU,CACR,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE;QACR,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;KACvC,GACA,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAI5B,IAAI,CACF,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,GAAG,kBAAkB,CAAA;KAAE,GAChD,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAI7B,cAAc,CACZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,GAAG,kBAAkB,CAAA;KAAE,GAChD,OAAO,CAAC,IAAI,CAAC;IAKhB,SAAS,CACP,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,GAAG,kBAAkB,CAAA;KAAE,EACjD,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,KAAK,IAAI,GAC7D,MAAM,IAAI;IACb,SAAS,CACP,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,KAAK,IAAI,GAC7D,MAAM,IAAI;IAMb,eAAe,IAAI,OAAO,UAAU;IAIpC,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC;CAGnC"}
1
+ {"version":3,"file":"FileStreamSchema.d.ts","sourceRoot":"","sources":["../../../../../src/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,UAAU,EACV,KAAK,EAGN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,wBAAgB,0BAA0B,IAAI,oBAAoB,CAKjE;AAED,qBAAa,gBAAiB,YAAW,oBAAoB;IAI/C,OAAO,CAAC,YAAY;IAHhC,QAAQ,CAAC,aAAa,OAAiB;IACvC,QAAQ,CAAC,OAAO,eAAyB;gBAErB,YAAY,EAAE,OAAO,UAAU;IAEnD,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,KAAK,GAAG,UAAU;IACtD,iGAAiG;IACjG,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,GAAG,KAAK,CAAA;KAAE,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU;IAK1E,cAAc,CACZ,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,CAAC,EACJ;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GAC1D,KAAK,GACR,OAAO,CAAC,UAAU,CAAC;IACtB,iGAAiG;IACjG,cAAc,CACZ,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,CAAC,EACJ;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;QAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GACpE,OAAO,GACP,KAAK,GACR,OAAO,CAAC,UAAU,CAAC;IActB,qBAAqB,CACnB,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,qBAAqB,CAAC;IAK9D,UAAU,CACR,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE;QACR,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;KACvC,GACA,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAI5B,IAAI,CACF,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAA;KAAE,GAClD,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAI7B,cAAc,CACZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,GAAG,kBAAkB,CAAA;KAAE,GAChD,OAAO,CAAC,IAAI,CAAC;IAKhB,SAAS,CACP,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,GAAG,kBAAkB,CAAA;KAAE,EACjD,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,KAAK,IAAI,GAC7D,MAAM,IAAI;IACb,SAAS,CACP,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,KAAK,IAAI,GAC7D,MAAM,IAAI;IAMb,eAAe,IAAI,OAAO,UAAU;IAIpC,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC;CAGnC"}
@@ -1,4 +1,4 @@
1
- import { CryptoProvider } from "cojson";
1
+ import { CryptoProvider, StorageAPI } from "cojson";
2
2
  import { type AnyWebSocketConstructor } from "cojson-transport-ws";
3
3
  import { Account, AccountClass, AnyAccountSchema, CoValueFromRaw, Inbox, Loaded } from "jazz-tools";
4
4
  type WorkerOptions<S extends (AccountClass<Account> & CoValueFromRaw<Account>) | AnyAccountSchema> = {
@@ -16,6 +16,7 @@ type WorkerOptions<S extends (AccountClass<Account> & CoValueFromRaw<Account>) |
16
16
  * If false, the worker will not set in the global account context
17
17
  */
18
18
  asActiveAccount?: boolean;
19
+ storage?: StorageAPI;
19
20
  };
20
21
  /** @category Context Creation */
21
22
  export declare function startWorker<S extends (AccountClass<Account> & CoValueFromRaw<Account>) | AnyAccountSchema>(options: WorkerOptions<S>): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,cAAc,EAAmB,MAAM,QAAQ,CAAC;AACtE,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,KAAK,EAEL,MAAM,EAGP,MAAM,YAAY,CAAC;AAEpB,KAAK,aAAa,CAChB,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,gBAAgB,IAClB;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,iCAAiC;AACjC,wBAAsB,WAAW,CAC/B,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,gBAAgB,EACpB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAgFvB;;OAEG;YACwB,MAAM,CAAC,CAAC,CAAC;;QAElC;;;;WAIG;;uBAhByC,KAAK,CAAC,WAAW,CAAC;;;;;IAmBhE;;;;OAIG;;0CAImC,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI;IAOlE;;;;;;OAMG;;IAEH;;;;OAIG;;GAKN"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAGd,UAAU,EACX,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,KAAK,EAEL,MAAM,EAGP,MAAM,YAAY,CAAC;AAEpB,KAAK,aAAa,CAChB,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,gBAAgB,IAClB;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB,CAAC;AAEF,iCAAiC;AACjC,wBAAsB,WAAW,CAC/B,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,gBAAgB,EACpB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAiFvB;;OAEG;YACwB,MAAM,CAAC,CAAC,CAAC;;QAElC;;;;WAIG;;uBAhByC,KAAK,CAAC,WAAW,CAAC;;;;;IAmBhE;;;;OAIG;;0CAImC,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI;IAOlE;;;;;;OAMG;;IAEH;;;;OAIG;;GAKN"}
@@ -56,7 +56,8 @@ async function startWorker(options) {
56
56
  sessionProvider: randomSessionProvider,
57
57
  peers,
58
58
  crypto: options.crypto ?? await WasmCrypto.create(),
59
- asActiveAccount
59
+ asActiveAccount,
60
+ storage: options.storage
60
61
  });
61
62
  const account = context.account;
62
63
  node = account.$jazz.localNode;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/worker/index.ts"],"sourcesContent":["import { AgentSecret, CryptoProvider, LocalNode, Peer } from \"cojson\";\nimport {\n type AnyWebSocketConstructor,\n WebSocketPeerWithReconnection,\n} from \"cojson-transport-ws\";\nimport { WasmCrypto } from \"cojson/crypto/WasmCrypto\";\nimport {\n Account,\n AccountClass,\n AnyAccountSchema,\n CoValueFromRaw,\n Inbox,\n InstanceOfSchema,\n Loaded,\n createJazzContextFromExistingCredentials,\n randomSessionProvider,\n} from \"jazz-tools\";\n\ntype WorkerOptions<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n> = {\n accountID?: string;\n accountSecret?: string;\n syncServer?: string;\n WebSocket?: AnyWebSocketConstructor;\n AccountSchema?: S;\n crypto?: CryptoProvider;\n /**\n * If true, the inbox will not be loaded.\n */\n skipInboxLoad?: boolean;\n /**\n * If false, the worker will not set in the global account context\n */\n asActiveAccount?: boolean;\n};\n\n/** @category Context Creation */\nexport async function startWorker<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n>(options: WorkerOptions<S>) {\n const {\n accountID = process.env.JAZZ_WORKER_ACCOUNT,\n accountSecret = process.env.JAZZ_WORKER_SECRET,\n syncServer = \"wss://cloud.jazz.tools\",\n AccountSchema = Account as unknown as S,\n skipInboxLoad = false,\n asActiveAccount = true,\n } = options;\n\n let node: LocalNode | undefined = undefined;\n\n const peers: Peer[] = [];\n\n const wsPeer = new WebSocketPeerWithReconnection({\n peer: syncServer,\n reconnectionTimeout: 100,\n addPeer: (peer) => {\n if (node) {\n node.syncManager.addPeer(peer);\n } else {\n peers.push(peer);\n }\n },\n removePeer: () => {},\n WebSocketConstructor: options.WebSocket,\n });\n\n wsPeer.enable();\n\n if (!accountID) {\n throw new Error(\"No accountID provided\");\n }\n if (!accountSecret) {\n throw new Error(\"No accountSecret provided\");\n }\n if (!accountID.startsWith(\"co_\")) {\n throw new Error(\"Invalid accountID\");\n }\n if (!accountSecret?.startsWith(\"sealerSecret_\")) {\n throw new Error(\"Invalid accountSecret\");\n }\n\n const context = await createJazzContextFromExistingCredentials({\n credentials: {\n accountID: accountID,\n secret: accountSecret as AgentSecret,\n },\n AccountSchema,\n sessionProvider: randomSessionProvider,\n peers,\n crypto: options.crypto ?? (await WasmCrypto.create()),\n asActiveAccount,\n });\n\n const account = context.account as InstanceOfSchema<S>;\n node = account.$jazz.localNode;\n\n if (!account.$jazz.refs.profile?.id) {\n throw new Error(\"Account has no profile\");\n }\n\n const inbox = skipInboxLoad ? undefined : await Inbox.load(account);\n\n async function done() {\n await context.account.$jazz.waitForAllCoValuesSync();\n\n wsPeer.disable();\n context.done();\n }\n\n const inboxPublicApi = inbox\n ? {\n subscribe: inbox.subscribe.bind(inbox) as Inbox[\"subscribe\"],\n }\n : {\n subscribe: () => {},\n };\n\n return {\n /**\n * The worker account instance.\n */\n worker: context.account as Loaded<S>,\n experimental: {\n /**\n * API to subscribe to the inbox messages.\n *\n * More info on the Inbox API: https://jazz.tools/docs/react/server-side/inbox\n */\n inbox: inboxPublicApi,\n },\n /**\n * Wait for the connection to the sync server to be established.\n *\n * If already connected, it will resolve immediately.\n */\n waitForConnection() {\n return wsPeer.waitUntilConnected();\n },\n subscribeToConnectionChange(listener: (connected: boolean) => void) {\n wsPeer.subscribe(listener);\n\n return () => {\n wsPeer.unsubscribe(listener);\n };\n },\n /**\n * Waits for all CoValues to sync and then shuts down the worker.\n *\n * To only wait for sync use worker.$jazz.waitForAllCoValuesSync()\n *\n * @deprecated Use shutdownWorker\n */\n done,\n /**\n * Waits for all CoValues to sync and then shuts down the worker.\n *\n * To only wait for sync use worker.$jazz.waitForAllCoValuesSync()\n */\n shutdownWorker() {\n return done();\n },\n };\n}\n"],"mappings":";AACA;AAAA,EAEE;AAAA,OACK;AACP,SAAS,kBAAkB;AAC3B;AAAA,EACE;AAAA,EAIA;AAAA,EAGA;AAAA,EACA;AAAA,OACK;AAwBP,eAAsB,YAIpB,SAA2B;AAC3B,QAAM;AAAA,IACJ,YAAY,QAAQ,IAAI;AAAA,IACxB,gBAAgB,QAAQ,IAAI;AAAA,IAC5B,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,EACpB,IAAI;AAEJ,MAAI,OAA8B;AAElC,QAAM,QAAgB,CAAC;AAEvB,QAAM,SAAS,IAAI,8BAA8B;AAAA,IAC/C,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,SAAS,CAAC,SAAS;AACjB,UAAI,MAAM;AACR,aAAK,YAAY,QAAQ,IAAI;AAAA,MAC/B,OAAO;AACL,cAAM,KAAK,IAAI;AAAA,MACjB;AAAA,IACF;AAAA,IACA,YAAY,MAAM;AAAA,IAAC;AAAA,IACnB,sBAAsB,QAAQ;AAAA,EAChC,CAAC;AAED,SAAO,OAAO;AAEd,MAAI,CAAC,WAAW;AACd,UAAM,IAAI,MAAM,uBAAuB;AAAA,EACzC;AACA,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC7C;AACA,MAAI,CAAC,UAAU,WAAW,KAAK,GAAG;AAChC,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACrC;AACA,MAAI,CAAC,eAAe,WAAW,eAAe,GAAG;AAC/C,UAAM,IAAI,MAAM,uBAAuB;AAAA,EACzC;AAEA,QAAM,UAAU,MAAM,yCAAyC;AAAA,IAC7D,aAAa;AAAA,MACX;AAAA,MACA,QAAQ;AAAA,IACV;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,IACA,QAAQ,QAAQ,UAAW,MAAM,WAAW,OAAO;AAAA,IACnD;AAAA,EACF,CAAC;AAED,QAAM,UAAU,QAAQ;AACxB,SAAO,QAAQ,MAAM;AAErB,MAAI,CAAC,QAAQ,MAAM,KAAK,SAAS,IAAI;AACnC,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AAEA,QAAM,QAAQ,gBAAgB,SAAY,MAAM,MAAM,KAAK,OAAO;AAElE,iBAAe,OAAO;AACpB,UAAM,QAAQ,QAAQ,MAAM,uBAAuB;AAEnD,WAAO,QAAQ;AACf,YAAQ,KAAK;AAAA,EACf;AAEA,QAAM,iBAAiB,QACnB;AAAA,IACE,WAAW,MAAM,UAAU,KAAK,KAAK;AAAA,EACvC,IACA;AAAA,IACE,WAAW,MAAM;AAAA,IAAC;AAAA,EACpB;AAEJ,SAAO;AAAA;AAAA;AAAA;AAAA,IAIL,QAAQ,QAAQ;AAAA,IAChB,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMZ,OAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,oBAAoB;AAClB,aAAO,OAAO,mBAAmB;AAAA,IACnC;AAAA,IACA,4BAA4B,UAAwC;AAClE,aAAO,UAAU,QAAQ;AAEzB,aAAO,MAAM;AACX,eAAO,YAAY,QAAQ;AAAA,MAC7B;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,iBAAiB;AACf,aAAO,KAAK;AAAA,IACd;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/worker/index.ts"],"sourcesContent":["import {\n AgentSecret,\n CryptoProvider,\n LocalNode,\n Peer,\n StorageAPI,\n} from \"cojson\";\nimport {\n type AnyWebSocketConstructor,\n WebSocketPeerWithReconnection,\n} from \"cojson-transport-ws\";\nimport { WasmCrypto } from \"cojson/crypto/WasmCrypto\";\nimport {\n Account,\n AccountClass,\n AnyAccountSchema,\n CoValueFromRaw,\n Inbox,\n InstanceOfSchema,\n Loaded,\n createJazzContextFromExistingCredentials,\n randomSessionProvider,\n} from \"jazz-tools\";\n\ntype WorkerOptions<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n> = {\n accountID?: string;\n accountSecret?: string;\n syncServer?: string;\n WebSocket?: AnyWebSocketConstructor;\n AccountSchema?: S;\n crypto?: CryptoProvider;\n /**\n * If true, the inbox will not be loaded.\n */\n skipInboxLoad?: boolean;\n /**\n * If false, the worker will not set in the global account context\n */\n asActiveAccount?: boolean;\n storage?: StorageAPI;\n};\n\n/** @category Context Creation */\nexport async function startWorker<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n>(options: WorkerOptions<S>) {\n const {\n accountID = process.env.JAZZ_WORKER_ACCOUNT,\n accountSecret = process.env.JAZZ_WORKER_SECRET,\n syncServer = \"wss://cloud.jazz.tools\",\n AccountSchema = Account as unknown as S,\n skipInboxLoad = false,\n asActiveAccount = true,\n } = options;\n\n let node: LocalNode | undefined = undefined;\n\n const peers: Peer[] = [];\n\n const wsPeer = new WebSocketPeerWithReconnection({\n peer: syncServer,\n reconnectionTimeout: 100,\n addPeer: (peer) => {\n if (node) {\n node.syncManager.addPeer(peer);\n } else {\n peers.push(peer);\n }\n },\n removePeer: () => {},\n WebSocketConstructor: options.WebSocket,\n });\n\n wsPeer.enable();\n\n if (!accountID) {\n throw new Error(\"No accountID provided\");\n }\n if (!accountSecret) {\n throw new Error(\"No accountSecret provided\");\n }\n if (!accountID.startsWith(\"co_\")) {\n throw new Error(\"Invalid accountID\");\n }\n if (!accountSecret?.startsWith(\"sealerSecret_\")) {\n throw new Error(\"Invalid accountSecret\");\n }\n\n const context = await createJazzContextFromExistingCredentials({\n credentials: {\n accountID: accountID,\n secret: accountSecret as AgentSecret,\n },\n AccountSchema,\n sessionProvider: randomSessionProvider,\n peers,\n crypto: options.crypto ?? (await WasmCrypto.create()),\n asActiveAccount,\n storage: options.storage,\n });\n\n const account = context.account as InstanceOfSchema<S>;\n node = account.$jazz.localNode;\n\n if (!account.$jazz.refs.profile?.id) {\n throw new Error(\"Account has no profile\");\n }\n\n const inbox = skipInboxLoad ? undefined : await Inbox.load(account);\n\n async function done() {\n await context.account.$jazz.waitForAllCoValuesSync();\n\n wsPeer.disable();\n context.done();\n }\n\n const inboxPublicApi = inbox\n ? {\n subscribe: inbox.subscribe.bind(inbox) as Inbox[\"subscribe\"],\n }\n : {\n subscribe: () => {},\n };\n\n return {\n /**\n * The worker account instance.\n */\n worker: context.account as Loaded<S>,\n experimental: {\n /**\n * API to subscribe to the inbox messages.\n *\n * More info on the Inbox API: https://jazz.tools/docs/react/server-side/inbox\n */\n inbox: inboxPublicApi,\n },\n /**\n * Wait for the connection to the sync server to be established.\n *\n * If already connected, it will resolve immediately.\n */\n waitForConnection() {\n return wsPeer.waitUntilConnected();\n },\n subscribeToConnectionChange(listener: (connected: boolean) => void) {\n wsPeer.subscribe(listener);\n\n return () => {\n wsPeer.unsubscribe(listener);\n };\n },\n /**\n * Waits for all CoValues to sync and then shuts down the worker.\n *\n * To only wait for sync use worker.$jazz.waitForAllCoValuesSync()\n *\n * @deprecated Use shutdownWorker\n */\n done,\n /**\n * Waits for all CoValues to sync and then shuts down the worker.\n *\n * To only wait for sync use worker.$jazz.waitForAllCoValuesSync()\n */\n shutdownWorker() {\n return done();\n },\n };\n}\n"],"mappings":";AAOA;AAAA,EAEE;AAAA,OACK;AACP,SAAS,kBAAkB;AAC3B;AAAA,EACE;AAAA,EAIA;AAAA,EAGA;AAAA,EACA;AAAA,OACK;AAyBP,eAAsB,YAIpB,SAA2B;AAC3B,QAAM;AAAA,IACJ,YAAY,QAAQ,IAAI;AAAA,IACxB,gBAAgB,QAAQ,IAAI;AAAA,IAC5B,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,EACpB,IAAI;AAEJ,MAAI,OAA8B;AAElC,QAAM,QAAgB,CAAC;AAEvB,QAAM,SAAS,IAAI,8BAA8B;AAAA,IAC/C,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,SAAS,CAAC,SAAS;AACjB,UAAI,MAAM;AACR,aAAK,YAAY,QAAQ,IAAI;AAAA,MAC/B,OAAO;AACL,cAAM,KAAK,IAAI;AAAA,MACjB;AAAA,IACF;AAAA,IACA,YAAY,MAAM;AAAA,IAAC;AAAA,IACnB,sBAAsB,QAAQ;AAAA,EAChC,CAAC;AAED,SAAO,OAAO;AAEd,MAAI,CAAC,WAAW;AACd,UAAM,IAAI,MAAM,uBAAuB;AAAA,EACzC;AACA,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC7C;AACA,MAAI,CAAC,UAAU,WAAW,KAAK,GAAG;AAChC,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACrC;AACA,MAAI,CAAC,eAAe,WAAW,eAAe,GAAG;AAC/C,UAAM,IAAI,MAAM,uBAAuB;AAAA,EACzC;AAEA,QAAM,UAAU,MAAM,yCAAyC;AAAA,IAC7D,aAAa;AAAA,MACX;AAAA,MACA,QAAQ;AAAA,IACV;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,IACA,QAAQ,QAAQ,UAAW,MAAM,WAAW,OAAO;AAAA,IACnD;AAAA,IACA,SAAS,QAAQ;AAAA,EACnB,CAAC;AAED,QAAM,UAAU,QAAQ;AACxB,SAAO,QAAQ,MAAM;AAErB,MAAI,CAAC,QAAQ,MAAM,KAAK,SAAS,IAAI;AACnC,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AAEA,QAAM,QAAQ,gBAAgB,SAAY,MAAM,MAAM,KAAK,OAAO;AAElE,iBAAe,OAAO;AACpB,UAAM,QAAQ,QAAQ,MAAM,uBAAuB;AAEnD,WAAO,QAAQ;AACf,YAAQ,KAAK;AAAA,EACf;AAEA,QAAM,iBAAiB,QACnB;AAAA,IACE,WAAW,MAAM,UAAU,KAAK,KAAK;AAAA,EACvC,IACA;AAAA,IACE,WAAW,MAAM;AAAA,IAAC;AAAA,EACpB;AAEJ,SAAO;AAAA;AAAA;AAAA;AAAA,IAIL,QAAQ,QAAQ;AAAA,IAChB,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMZ,OAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,oBAAoB;AAClB,aAAO,OAAO,mBAAmB;AAAA,IACnC;AAAA,IACA,4BAA4B,UAAwC;AAClE,aAAO,UAAU,QAAQ;AAEzB,aAAO,MAAM;AACX,eAAO,YAAY,QAAQ;AAAA,MAC7B;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,iBAAiB;AACf,aAAO,KAAK;AAAA,IACd;AAAA,EACF;AACF;","names":[]}
package/package.json CHANGED
@@ -187,7 +187,7 @@
187
187
  },
188
188
  "type": "module",
189
189
  "license": "MIT",
190
- "version": "0.18.30",
190
+ "version": "0.18.32",
191
191
  "dependencies": {
192
192
  "@manuscripts/prosemirror-recreate-steps": "^0.1.4",
193
193
  "@scure/base": "1.2.1",
@@ -204,9 +204,9 @@
204
204
  "prosemirror-transform": "^1.9.0",
205
205
  "use-sync-external-store": "^1.5.0",
206
206
  "zod": "4.1.11",
207
- "cojson": "0.18.30",
208
- "cojson-storage-indexeddb": "0.18.30",
209
- "cojson-transport-ws": "0.18.30"
207
+ "cojson": "0.18.32",
208
+ "cojson-storage-indexeddb": "0.18.32",
209
+ "cojson-transport-ws": "0.18.32"
210
210
  },
211
211
  "devDependencies": {
212
212
  "@scure/bip39": "^1.3.0",
@@ -0,0 +1,296 @@
1
+ // @vitest-environment happy-dom
2
+ import { describe, it, expect, assert, beforeAll, afterEach } from "vitest";
3
+ import { render, screen, fireEvent, cleanup } from "@testing-library/react";
4
+ import { DataTable, ColumnDef } from "../../ui/data-table";
5
+ import { setup } from "goober";
6
+ import React from "react";
7
+
8
+ type TestItem = {
9
+ id: number;
10
+ name: string;
11
+ value: number;
12
+ };
13
+
14
+ const mockData: TestItem[] = [
15
+ { id: 1, name: "Apple", value: 100 },
16
+ { id: 2, name: "Banana", value: 50 },
17
+ { id: 3, name: "Cherry", value: 200 },
18
+ { id: 4, name: "Date", value: 75 },
19
+ { id: 5, name: "Elderberry", value: 150 },
20
+ ];
21
+
22
+ const mockColumns: ColumnDef<TestItem>[] = [
23
+ {
24
+ id: "name",
25
+ header: "Name",
26
+ accessor: (item) => item.name,
27
+ sortable: true,
28
+ filterable: true,
29
+ },
30
+ {
31
+ id: "value",
32
+ header: "Value",
33
+ accessor: (item) => item.value.toString(),
34
+ sortable: true,
35
+ sortFn: (a, b) => a.value - b.value,
36
+ },
37
+ ];
38
+
39
+ describe("DataTable", () => {
40
+ beforeAll(() => {
41
+ // setup goober
42
+ setup(React.createElement);
43
+ });
44
+
45
+ afterEach(() => {
46
+ cleanup();
47
+ });
48
+
49
+ it("renders table with data", () => {
50
+ render(
51
+ <DataTable
52
+ columns={mockColumns}
53
+ data={mockData}
54
+ pageSize={10}
55
+ getRowKey={(item) => item.id.toString()}
56
+ />,
57
+ );
58
+
59
+ expect(screen.getByText("Apple")).toBeDefined();
60
+ expect(screen.getByText("Banana")).toBeDefined();
61
+ expect(screen.getByText("Cherry")).toBeDefined();
62
+ });
63
+
64
+ it("shows empty message when no data", () => {
65
+ render(
66
+ <DataTable
67
+ columns={mockColumns}
68
+ data={[]}
69
+ pageSize={10}
70
+ getRowKey={(item) => item.id.toString()}
71
+ emptyMessage="No items found"
72
+ />,
73
+ );
74
+
75
+ expect(screen.getByText("No items found")).toBeDefined();
76
+ });
77
+
78
+ it("hides pagination when data fits on one page", () => {
79
+ render(
80
+ <DataTable
81
+ columns={mockColumns}
82
+ data={mockData.slice(0, 3)}
83
+ pageSize={10}
84
+ getRowKey={(item) => item.id.toString()}
85
+ />,
86
+ );
87
+
88
+ expect(screen.queryByText(/Page \d+ of \d+/)).toBeNull();
89
+ });
90
+
91
+ it("shows pagination when data exceeds page size", () => {
92
+ const largeData = Array.from({ length: 25 }, (_, i) => ({
93
+ id: i,
94
+ name: `Item ${i}`,
95
+ value: i * 10,
96
+ }));
97
+
98
+ render(
99
+ <DataTable
100
+ columns={mockColumns}
101
+ data={largeData}
102
+ pageSize={10}
103
+ getRowKey={(item) => item.id.toString()}
104
+ />,
105
+ );
106
+
107
+ expect(screen.getByText(/Page 1 of 3/)).toBeDefined();
108
+ });
109
+
110
+ it("supports sorting when clicking header", () => {
111
+ render(
112
+ <DataTable
113
+ columns={mockColumns}
114
+ data={mockData}
115
+ pageSize={10}
116
+ getRowKey={(item) => item.id.toString()}
117
+ />,
118
+ );
119
+
120
+ const nameHeader = screen.getByText("Name").parentElement;
121
+
122
+ // Click to sort ascending
123
+ fireEvent.click(nameHeader!);
124
+ const rows = screen.getAllByRole("row");
125
+ expect(rows[2]?.textContent).toContain("Apple"); // First data row
126
+
127
+ // Click to sort descending
128
+ fireEvent.click(nameHeader!);
129
+ const rowsDesc = screen.getAllByRole("row");
130
+ expect(rowsDesc[2]?.textContent).toContain("Elderberry");
131
+ });
132
+
133
+ it("applies initial sort configuration", () => {
134
+ render(
135
+ <DataTable
136
+ columns={mockColumns}
137
+ data={mockData}
138
+ pageSize={10}
139
+ initialSort={{ columnId: "value", direction: "desc" }}
140
+ getRowKey={(item) => item.id.toString()}
141
+ />,
142
+ );
143
+
144
+ const rows = screen.getAllByRole("row");
145
+ expect(rows[2]?.textContent).toContain("Cherry"); // Highest value (200)
146
+ });
147
+
148
+ it("filters data based on input", () => {
149
+ render(
150
+ <DataTable
151
+ columns={mockColumns}
152
+ data={mockData}
153
+ pageSize={10}
154
+ getRowKey={(item) => item.id.toString()}
155
+ />,
156
+ );
157
+
158
+ const filterInput = screen.getAllByPlaceholderText("Filter name")[0];
159
+ assert(filterInput);
160
+ fireEvent.change(filterInput, { target: { value: "berry" } });
161
+
162
+ expect(screen.getByText("Elderberry")).toBeDefined();
163
+ expect(screen.queryByText("Apple")).toBeNull();
164
+ });
165
+
166
+ it("shows filtered count in pagination info", () => {
167
+ const largeData = Array.from({ length: 25 }, (_, i) => ({
168
+ id: i,
169
+ name: i % 2 === 0 ? `Apple ${i}` : `Banana ${i}`,
170
+ value: i * 10,
171
+ }));
172
+
173
+ render(
174
+ <DataTable
175
+ columns={mockColumns}
176
+ data={largeData}
177
+ pageSize={10}
178
+ getRowKey={(item) => item.id.toString()}
179
+ />,
180
+ );
181
+
182
+ const filterInput = screen.getAllByPlaceholderText("Filter name")[0];
183
+ assert(filterInput);
184
+ fireEvent.change(filterInput, { target: { value: "Apple" } });
185
+
186
+ expect(screen.getByText(/filtered from 25/)).toBeDefined();
187
+ });
188
+
189
+ it("navigates between pages", () => {
190
+ const largeData = Array.from({ length: 25 }, (_, i) => ({
191
+ id: i,
192
+ name: `Item ${i}`,
193
+ value: i * 10,
194
+ }));
195
+
196
+ render(
197
+ <DataTable
198
+ columns={mockColumns}
199
+ data={largeData}
200
+ pageSize={10}
201
+ getRowKey={(item) => item.id.toString()}
202
+ />,
203
+ );
204
+
205
+ expect(screen.getByText("Item 0")).toBeDefined();
206
+ expect(screen.queryByText("Item 10")).toBeNull();
207
+
208
+ // Click next page button
209
+ const nextButton = screen.getByText("»");
210
+ fireEvent.click(nextButton);
211
+
212
+ expect(screen.queryByText("Item 0")).toBeNull();
213
+ expect(screen.getByText("Item 10")).toBeDefined();
214
+ });
215
+
216
+ it("disables pagination buttons appropriately", () => {
217
+ const largeData = Array.from({ length: 25 }, (_, i) => ({
218
+ id: i,
219
+ name: `Item ${i}`,
220
+ value: i * 10,
221
+ }));
222
+
223
+ render(
224
+ <DataTable
225
+ columns={mockColumns}
226
+ data={largeData}
227
+ pageSize={10}
228
+ getRowKey={(item) => item.id.toString()}
229
+ />,
230
+ );
231
+
232
+ const firstPageButton = screen.getByText("««");
233
+ const prevButton = screen.getByText("«");
234
+
235
+ // On first page, first and prev should be disabled
236
+ expect((firstPageButton as HTMLButtonElement).disabled).toBe(true);
237
+ expect((prevButton as HTMLButtonElement).disabled).toBe(true);
238
+
239
+ // Navigate to last page
240
+ const lastPageButton = screen.getByText("»»");
241
+ fireEvent.click(lastPageButton);
242
+
243
+ const nextButton = screen.getByText("»");
244
+
245
+ // On last page, last and next should be disabled
246
+ expect((nextButton as HTMLButtonElement).disabled).toBe(true);
247
+ expect((lastPageButton as HTMLButtonElement).disabled).toBe(true);
248
+ });
249
+
250
+ it("uses custom sort function when provided", () => {
251
+ render(
252
+ <DataTable
253
+ columns={mockColumns}
254
+ data={mockData}
255
+ pageSize={10}
256
+ getRowKey={(item) => item.id.toString()}
257
+ />,
258
+ );
259
+
260
+ const valueHeader = screen.getByText("Value").parentElement;
261
+ fireEvent.click(valueHeader!);
262
+
263
+ const rows = screen.getAllByRole("row");
264
+ expect(rows[2]?.textContent).toContain("50"); // Banana - lowest value
265
+ });
266
+
267
+ it("resets to page 1 when filter changes", () => {
268
+ const largeData = Array.from({ length: 25 }, (_, i) => ({
269
+ id: i,
270
+ name: `Item ${i}`,
271
+ value: i * 10,
272
+ }));
273
+
274
+ render(
275
+ <DataTable
276
+ columns={mockColumns}
277
+ data={largeData}
278
+ pageSize={10}
279
+ getRowKey={(item) => item.id.toString()}
280
+ />,
281
+ );
282
+
283
+ // Go to page 2
284
+ const nextButton = screen.getByText("»");
285
+ fireEvent.click(nextButton);
286
+ expect(screen.getByText(/Page 2 of 3/)).toBeDefined();
287
+
288
+ // Apply filter
289
+ const filterInput = screen.getAllByPlaceholderText("Filter name")[0];
290
+ assert(filterInput);
291
+ fireEvent.change(filterInput, { target: { value: "1" } });
292
+
293
+ // Should be back on page 1
294
+ expect(screen.getByText(/Page 1 of/)).toBeDefined();
295
+ });
296
+ });