@parca/profile 0.19.112 → 0.19.113

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 (62) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/GraphTooltipArrow/Content.d.ts +2 -2
  3. package/dist/GraphTooltipArrow/Content.d.ts.map +1 -1
  4. package/dist/GraphTooltipArrow/DockedGraphTooltip/index.d.ts +2 -2
  5. package/dist/GraphTooltipArrow/DockedGraphTooltip/index.d.ts.map +1 -1
  6. package/dist/GraphTooltipArrow/useGraphTooltip/index.d.ts +2 -2
  7. package/dist/GraphTooltipArrow/useGraphTooltip/index.d.ts.map +1 -1
  8. package/dist/GraphTooltipArrow/useGraphTooltipMetaInfo/index.d.ts +2 -2
  9. package/dist/GraphTooltipArrow/useGraphTooltipMetaInfo/index.d.ts.map +1 -1
  10. package/dist/ProfileFlameGraph/FlameGraphArrow/ContextMenu.d.ts +2 -2
  11. package/dist/ProfileFlameGraph/FlameGraphArrow/ContextMenu.d.ts.map +1 -1
  12. package/dist/ProfileFlameGraph/FlameGraphArrow/ContextMenuWrapper.d.ts +2 -2
  13. package/dist/ProfileFlameGraph/FlameGraphArrow/ContextMenuWrapper.d.ts.map +1 -1
  14. package/dist/ProfileFlameGraph/FlameGraphArrow/FlameGraphNodes.d.ts +2 -2
  15. package/dist/ProfileFlameGraph/FlameGraphArrow/FlameGraphNodes.d.ts.map +1 -1
  16. package/dist/ProfileFlameGraph/FlameGraphArrow/TooltipContext.d.ts +3 -3
  17. package/dist/ProfileFlameGraph/FlameGraphArrow/TooltipContext.d.ts.map +1 -1
  18. package/dist/ProfileFlameGraph/FlameGraphArrow/index.d.ts.map +1 -1
  19. package/dist/ProfileFlameGraph/FlameGraphArrow/index.js +3 -2
  20. package/dist/ProfileFlameGraph/FlameGraphArrow/useMappingList.d.ts +1 -1
  21. package/dist/ProfileFlameGraph/FlameGraphArrow/useMappingList.d.ts.map +1 -1
  22. package/dist/ProfileFlameGraph/FlameGraphArrow/useMappingList.js +16 -16
  23. package/dist/ProfileFlameGraph/FlameGraphArrow/useVisibleNodes.d.ts +2 -2
  24. package/dist/ProfileFlameGraph/FlameGraphArrow/useVisibleNodes.d.ts.map +1 -1
  25. package/dist/ProfileFlameGraph/FlameGraphArrow/utils.d.ts +5 -5
  26. package/dist/ProfileFlameGraph/FlameGraphArrow/utils.d.ts.map +1 -1
  27. package/dist/ProfileView/hooks/useProfileMetadata.d.ts +2 -2
  28. package/dist/ProfileView/hooks/useProfileMetadata.d.ts.map +1 -1
  29. package/dist/ProfileView/hooks/useProfileMetadata.js +6 -2
  30. package/dist/Sandwich/components/CallersSection.d.ts.map +1 -1
  31. package/dist/Sandwich/components/CallersSection.js +5 -2
  32. package/dist/Sandwich/utils/processRowData.d.ts +1 -1
  33. package/dist/Sandwich/utils/processRowData.d.ts.map +1 -1
  34. package/dist/SourceView/index.js +3 -3
  35. package/dist/Table/index.d.ts.map +1 -1
  36. package/dist/Table/index.js +3 -2
  37. package/dist/Table/utils/functions.d.ts +3 -3
  38. package/dist/Table/utils/functions.d.ts.map +1 -1
  39. package/dist/Table/utils/functions.js +3 -3
  40. package/dist/utils.d.ts +6 -0
  41. package/dist/utils.d.ts.map +1 -1
  42. package/dist/utils.js +8 -0
  43. package/package.json +3 -3
  44. package/src/GraphTooltipArrow/Content.tsx +3 -3
  45. package/src/GraphTooltipArrow/DockedGraphTooltip/index.tsx +2 -2
  46. package/src/GraphTooltipArrow/useGraphTooltip/index.ts +2 -2
  47. package/src/GraphTooltipArrow/useGraphTooltipMetaInfo/index.ts +2 -2
  48. package/src/ProfileFlameGraph/FlameGraphArrow/ContextMenu.tsx +2 -2
  49. package/src/ProfileFlameGraph/FlameGraphArrow/ContextMenuWrapper.tsx +2 -2
  50. package/src/ProfileFlameGraph/FlameGraphArrow/FlameGraphNodes.tsx +2 -2
  51. package/src/ProfileFlameGraph/FlameGraphArrow/TooltipContext.tsx +3 -3
  52. package/src/ProfileFlameGraph/FlameGraphArrow/index.tsx +4 -3
  53. package/src/ProfileFlameGraph/FlameGraphArrow/useMappingList.ts +19 -19
  54. package/src/ProfileFlameGraph/FlameGraphArrow/useVisibleNodes.ts +4 -6
  55. package/src/ProfileFlameGraph/FlameGraphArrow/utils.ts +6 -10
  56. package/src/ProfileView/hooks/useProfileMetadata.ts +8 -4
  57. package/src/Sandwich/components/CallersSection.tsx +6 -3
  58. package/src/Sandwich/utils/processRowData.ts +1 -1
  59. package/src/SourceView/index.tsx +3 -3
  60. package/src/Table/index.tsx +3 -3
  61. package/src/Table/utils/functions.ts +9 -9
  62. package/src/utils.ts +9 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,10 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.19.113](https://github.com/parca-dev/parca/compare/@parca/profile@0.19.112...@parca/profile@0.19.113) (2026-01-29)
7
+
8
+ **Note:** Version bump only for package @parca/profile
9
+
6
10
  ## [0.19.112](https://github.com/parca-dev/parca/compare/@parca/profile@0.19.111...@parca/profile@0.19.112) (2026-01-15)
7
11
 
8
12
  **Note:** Version bump only for package @parca/profile
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import { Table } from 'apache-arrow';
2
+ import { Table } from '@uwdata/flechette';
3
3
  import { ProfileType } from '@parca/parser';
4
4
  interface GraphTooltipArrowContentProps {
5
- table: Table<any>;
5
+ table: Table;
6
6
  profileType?: ProfileType;
7
7
  unit?: string;
8
8
  total: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"Content.d.ts","sourceRoot":"","sources":["../../src/GraphTooltipArrow/Content.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AAGnC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAQ1C,UAAU,6BAA6B;IACrC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAMD,QAAA,MAAM,wBAAwB,GAAI,sFAS/B,6BAA6B,KAAG,KAAK,CAAC,GAAG,CAAC,OA+E5C,CAAC;AAqFF,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"Content.d.ts","sourceRoot":"","sources":["../../src/GraphTooltipArrow/Content.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAGxC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAQ1C,UAAU,6BAA6B;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAMD,QAAA,MAAM,wBAAwB,GAAI,sFAS/B,6BAA6B,KAAG,KAAK,CAAC,GAAG,CAAC,OA+E5C,CAAC;AAqFF,eAAe,wBAAwB,CAAC"}
@@ -1,7 +1,7 @@
1
- import { Table } from 'apache-arrow';
1
+ import { Table } from '@uwdata/flechette';
2
2
  import { ProfileType } from '@parca/parser';
3
3
  interface Props {
4
- table: Table<any>;
4
+ table: Table;
5
5
  total: bigint;
6
6
  totalUnfiltered: bigint;
7
7
  row: number | null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/GraphTooltipArrow/DockedGraphTooltip/index.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AAKnC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAO1C,UAAU,KAAK;IACb,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,OAAO,CAAC;CAC1B;AAuBD,eAAO,MAAM,kBAAkB,GAAI,6EAQhC,KAAK,KAAG,GAAG,CAAC,OAuGd,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/GraphTooltipArrow/DockedGraphTooltip/index.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAKxC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAO1C,UAAU,KAAK;IACb,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,OAAO,CAAC;CAC1B;AAuBD,eAAO,MAAM,kBAAkB,GAAI,6EAQhC,KAAK,KAAG,GAAG,CAAC,OAuGd,CAAC"}
@@ -1,7 +1,7 @@
1
- import { Table } from 'apache-arrow';
1
+ import { Table } from '@uwdata/flechette';
2
2
  import { ProfileType } from '@parca/parser';
3
3
  interface Props {
4
- table: Table<any>;
4
+ table: Table;
5
5
  profileType?: ProfileType;
6
6
  unit?: string;
7
7
  total: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/GraphTooltipArrow/useGraphTooltip/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAW1C,UAAU,KAAK;IACb,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,eAAe,GAAI,6EAQ7B,KAAK,KAAG,gBAAgB,GAAG,IA4C7B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/GraphTooltipArrow/useGraphTooltip/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAW1C,UAAU,KAAK;IACb,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,eAAe,GAAI,6EAQ7B,KAAK,KAAG,gBAAgB,GAAG,IA4C7B,CAAC"}
@@ -1,6 +1,6 @@
1
- import { Table } from 'apache-arrow';
1
+ import { Table } from '@uwdata/flechette';
2
2
  interface Props {
3
- table: Table<any>;
3
+ table: Table;
4
4
  row: number;
5
5
  }
6
6
  interface GraphTooltipMetaInfoData {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/GraphTooltipArrow/useGraphTooltipMetaInfo/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AAqBnC,UAAU,KAAK;IACb,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,UAAU,wBAAwB;IAChC,UAAU,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,eAAO,MAAM,uBAAuB,GAAI,gBAAc,KAAK,KAAG,wBA8F7D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/GraphTooltipArrow/useGraphTooltipMetaInfo/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAqBxC,UAAU,KAAK;IACb,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,UAAU,wBAAwB;IAChC,UAAU,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,eAAO,MAAM,uBAAuB,GAAI,gBAAc,KAAK,KAAG,wBA8F7D,CAAC"}
@@ -1,8 +1,8 @@
1
- import { Table } from 'apache-arrow';
1
+ import { Table } from '@uwdata/flechette';
2
2
  import { ProfileType } from '@parca/parser';
3
3
  interface ContextMenuProps {
4
4
  menuId: string;
5
- table: Table<any>;
5
+ table: Table;
6
6
  profileType?: ProfileType;
7
7
  unit?: string;
8
8
  total: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/ContextMenu.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AAOnC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAQ1C,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,QAAA,MAAM,WAAW,GAAI,kIAalB,gBAAgB,KAAG,GAAG,CAAC,OAyOzB,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/ContextMenu.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAOxC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAQ1C,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,QAAA,MAAM,WAAW,GAAI,kIAalB,gBAAgB,KAAG,GAAG,CAAC,OAyOzB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,8 +1,8 @@
1
- import { Table } from 'apache-arrow';
1
+ import { Table } from '@uwdata/flechette';
2
2
  import { ProfileType } from '@parca/parser';
3
3
  interface ContextMenuWrapperProps {
4
4
  menuId: string;
5
- table: Table<any>;
5
+ table: Table;
6
6
  total: bigint;
7
7
  totalUnfiltered: bigint;
8
8
  profileType?: ProfileType;
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuWrapper.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/ContextMenuWrapper.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAI1C,UAAU,uBAAuB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CACtD;AAED,QAAA,MAAM,kBAAkB,2HAwBvB,CAAC;AAIF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"ContextMenuWrapper.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/ContextMenuWrapper.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAI1C,UAAU,uBAAuB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CACtD;AAED,QAAA,MAAM,kBAAkB,2HAwBvB,CAAC;AAIF,eAAe,kBAAkB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { Table } from 'apache-arrow';
2
+ import { Table } from '@uwdata/flechette';
3
3
  import 'react-contexify/dist/ReactContexify.css';
4
4
  import { ProfileSource } from '../../ProfileSource';
5
5
  export declare const RowHeight = 26;
@@ -9,7 +9,7 @@ export interface colorByColors {
9
9
  export interface FlameNodeProps {
10
10
  height: number;
11
11
  totalWidth: number;
12
- table: Table<any>;
12
+ table: Table;
13
13
  row: number;
14
14
  colors: colorByColors;
15
15
  colorBy: string;
@@ -1 +1 @@
1
- {"version":3,"file":"FlameGraphNodes.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/FlameGraphNodes.tsx"],"names":[],"mappings":"AAaA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAElD,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AAKnC,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAelD,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CACnD;AAED,eAAO,MAAM,eAAe;;;CAG3B,CAAC;AACF,eAAO,MAAM,oBAAoB;;;;CAIhC,CAAC;AAEF,eAAO,MAAM,SAAS,4CA6PrB,CAAC"}
1
+ {"version":3,"file":"FlameGraphNodes.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/FlameGraphNodes.tsx"],"names":[],"mappings":"AAaA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAElD,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAKxC,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAelD,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CACnD;AAED,eAAO,MAAM,eAAe;;;CAG3B,CAAC;AACF,eAAO,MAAM,oBAAoB;;;;CAIhC,CAAC;AAEF,eAAO,MAAM,SAAS,4CA6PrB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { Table } from 'apache-arrow';
2
+ import { Table } from '@uwdata/flechette';
3
3
  import { ProfileType } from '@parca/parser';
4
4
  interface TooltipState {
5
5
  row: number | null;
@@ -7,7 +7,7 @@ interface TooltipState {
7
7
  y: number;
8
8
  }
9
9
  interface TooltipContextValue {
10
- table: Table<any>;
10
+ table: Table;
11
11
  total: bigint;
12
12
  totalUnfiltered: bigint;
13
13
  profileType?: ProfileType;
@@ -20,7 +20,7 @@ interface TooltipContextValue {
20
20
  export declare const useTooltipContext: () => TooltipContextValue;
21
21
  interface TooltipProviderProps {
22
22
  children: React.ReactNode;
23
- table: Table<any>;
23
+ table: Table;
24
24
  total: bigint;
25
25
  totalUnfiltered: bigint;
26
26
  profileType?: ProfileType;
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipContext.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/TooltipContext.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAgE,MAAM,OAAO,CAAC;AAErF,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAE1C,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,eAAO,MAAM,iBAAiB,QAAO,mBAMpC,CAAC;AAEF,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAqC1D,CAAC"}
1
+ {"version":3,"file":"TooltipContext.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/TooltipContext.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAgE,MAAM,OAAO,CAAC;AAErF,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAE1C,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,eAAO,MAAM,iBAAiB,QAAO,mBAMpC,CAAC;AAEF,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAqC1D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAQN,MAAM,OAAO,CAAC;AAKf,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAG9C,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAIlD,OAAO,EAAuB,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAMtE,OAAO,EACL,gBAAgB,EAMjB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AACjD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAC9D,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,YAAY,WAAW,CAAC;AACrC,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,YAAY,WAAW,CAAC;AACrC,eAAO,MAAM,WAAW,UAAU,CAAC;AACnC,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,UAAU,oBAAoB;IAC5B,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,UAAU,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC/C,YAAY,EAAE,OAAO,CAAC;IACtB,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,GAC3B,cAAc,MAAM,EAAE,EACtB,YAAY,OAAO,EACnB,qBAAqB,WAAW,KAC/B,aAQF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,eAAe,MAAM,EAAE,EACvB,YAAY,OAAO,EACnB,qBAAqB,WAAW,KAC/B,aAQF,CAAC;AAIF,eAAO,MAAM,eAAe,kDAkR1B,CAAC;AAEH,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAQN,MAAM,OAAO,CAAC;AAKf,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAG9C,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAKlD,OAAO,EAAuB,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAMtE,OAAO,EACL,gBAAgB,EAMjB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AACjD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAC9D,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,YAAY,WAAW,CAAC;AACrC,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,YAAY,WAAW,CAAC;AACrC,eAAO,MAAM,WAAW,UAAU,CAAC;AACnC,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,UAAU,oBAAoB;IAC5B,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,UAAU,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC/C,YAAY,EAAE,OAAO,CAAC;IACtB,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,GAC3B,cAAc,MAAM,EAAE,EACtB,YAAY,OAAO,EACnB,qBAAqB,WAAW,KAC/B,aAQF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,eAAe,MAAM,EAAE,EACvB,YAAY,OAAO,EACnB,qBAAqB,WAAW,KAC/B,aAQF,CAAC;AAIF,eAAO,MAAM,eAAe,kDAkR1B,CAAC;AAEH,eAAe,eAAe,CAAC"}
@@ -12,13 +12,14 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
  import { memo, useCallback, useDeferredValue, useEffect, useMemo, useRef, useState, } from 'react';
15
- import { tableFromIPC } from 'apache-arrow';
15
+ import { tableFromIPC } from '@uwdata/flechette';
16
16
  import { useContextMenu } from 'react-contexify';
17
17
  import { FlameGraphSkeleton, SandwichFlameGraphSkeleton, useParcaContext } from '@parca/components';
18
18
  import { USER_PREFERENCES, useCurrentColorProfile, useUserPreference } from '@parca/hooks';
19
19
  import { getColorForFeature, selectDarkMode, useAppSelector } from '@parca/store';
20
20
  import { useProfileFilters } from '../../ProfileView/components/ProfileFilters/useProfileFilters';
21
21
  import { useProfileViewContext } from '../../ProfileView/context/ProfileViewContext';
22
+ import { alignedUint8Array } from '../../utils';
22
23
  import ContextMenuWrapper from './ContextMenuWrapper';
23
24
  import { FlameNode, RowHeight } from './FlameGraphNodes';
24
25
  import { MemoizedTooltip } from './MemoizedTooltip';
@@ -72,7 +73,7 @@ export const FlameGraphArrow = memo(function FlameGraphArrow({ arrow, total, fil
72
73
  const isDarkMode = useAppSelector(selectDarkMode);
73
74
  const { perf } = useParcaContext();
74
75
  const table = useMemo(() => {
75
- const result = tableFromIPC(arrow.record);
76
+ const result = tableFromIPC(alignedUint8Array(arrow.record), { useBigInt: true });
76
77
  if (perf?.setMeasurement != null) {
77
78
  perf.setMeasurement('flamegraph.node_count', result.numRows);
78
79
  }
@@ -1,4 +1,4 @@
1
- import { Table } from 'apache-arrow';
1
+ import { Table } from '@uwdata/flechette';
2
2
  declare const useMappingList: (mappings: string[] | undefined) => string[];
3
3
  export declare const useFilenamesList: (table: Table | null) => string[];
4
4
  export default useMappingList;
@@ -1 +1 @@
1
- {"version":3,"file":"useMappingList.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/useMappingList.ts"],"names":[],"mappings":"AAeA,OAAO,EAAa,KAAK,EAAS,MAAM,cAAc,CAAC;AAOvD,QAAA,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,GAAG,SAAS,KAAG,MAAM,EAsB9D,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,KAAK,GAAG,IAAI,KAAG,MAAM,EAyB5D,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"useMappingList.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/useMappingList.ts"],"names":[],"mappings":"AAeA,OAAO,EAAS,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAOhD,QAAA,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,GAAG,SAAS,KAAG,MAAM,EAsB9D,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,KAAK,GAAG,IAAI,KAAG,MAAM,EAyB5D,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -36,23 +36,23 @@ export const useFilenamesList = (table) => {
36
36
  if (table === null) {
37
37
  return [];
38
38
  }
39
- const filenamesDict = table.getChild(FIELD_FUNCTION_FILE_NAME);
40
- const filenames = filenamesDict?.data
41
- .map(file => {
42
- if (file.dictionary == null) {
43
- return [];
44
- }
45
- const len = file.dictionary.length;
46
- const entries = [];
47
- for (let i = 0; i < len; i++) {
48
- const fn = arrowToString(file.dictionary.get(i));
49
- entries.push(getLastItem(fn) ?? '');
50
- }
51
- return entries;
39
+ const filenamesColumn = table.getChild(FIELD_FUNCTION_FILE_NAME);
40
+ if (filenamesColumn === null) {
41
+ return [];
42
+ }
43
+ // Access dictionary directly instead of iterating all rows
44
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
+ const dictionary = filenamesColumn.data[0]?.dictionary;
46
+ if (dictionary == null) {
47
+ return [''];
48
+ }
49
+ const filenames = Array.from(dictionary.toArray())
50
+ .map(value => {
51
+ const fn = arrowToString(value);
52
+ return fn != null ? getLastItem(fn) ?? '' : '';
52
53
  })
53
- .flat() ?? [];
54
- filenames.push('');
55
- filenames.sort((a, b) => a.localeCompare(b));
54
+ .concat('') // Add empty string for "Everything else"
55
+ .sort((a, b) => a.localeCompare(b));
56
56
  return filenames;
57
57
  };
58
58
  export default useMappingList;
@@ -1,7 +1,7 @@
1
- import { Table } from 'apache-arrow';
1
+ import { Table } from '@uwdata/flechette';
2
2
  import { ViewportState } from './useScrollViewport';
3
3
  export interface UseVisibleNodesParams {
4
- table: Table<any>;
4
+ table: Table;
5
5
  viewport: ViewportState;
6
6
  total: bigint;
7
7
  width: number;
@@ -1 +1 @@
1
- {"version":3,"file":"useVisibleNodes.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/useVisibleNodes.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AAInC,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAiClD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,GAAI,iEAO7B,qBAAqB,KAAG,MAAM,EA4HhC,CAAC"}
1
+ {"version":3,"file":"useVisibleNodes.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/useVisibleNodes.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAIxC,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AA+BlD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,GAAI,iEAO7B,qBAAqB,KAAG,MAAM,EA4HhC,CAAC"}
@@ -1,8 +1,8 @@
1
- import { Table, Vector } from 'apache-arrow';
1
+ import { Column, Table } from '@uwdata/flechette';
2
2
  import { type BinaryFeature, type FilenameFeature } from '@parca/store';
3
3
  import { ProfileSource } from '../../ProfileSource';
4
4
  import { BigIntDuo } from '../../utils';
5
- export declare function nodeLabel(table: Table<any>, row: number, showBinaryName: boolean): string;
5
+ export declare function nodeLabel(table: Table, row: number, showBinaryName: boolean): string;
6
6
  export declare const extractFeature: (mapping: string) => BinaryFeature;
7
7
  export declare const extractFilenameFeature: (filename: string) => FilenameFeature;
8
8
  export declare const getTextForCumulative: (hoveringNodeCumulative: bigint, totalUnfiltered: bigint, total: bigint, unit: string) => string;
@@ -18,7 +18,7 @@ export interface CurrentPathFrame {
18
18
  inlined: boolean;
19
19
  labels?: string;
20
20
  }
21
- export declare const getCurrentPathFrameData: (table: Table<any>, row: number) => CurrentPathFrame;
22
- export declare function isCurrentPathFrameMatch(table: Table<any>, row: number, b: CurrentPathFrame): boolean;
23
- export declare function getMaxDepth(depthColumn: Vector<any> | null): number;
21
+ export declare const getCurrentPathFrameData: (table: Table, row: number) => CurrentPathFrame;
22
+ export declare function isCurrentPathFrameMatch(table: Table, row: number, b: CurrentPathFrame): boolean;
23
+ export declare function getMaxDepth(depthColumn: Column<number> | null): number;
24
24
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/utils.ts"],"names":[],"mappings":"AAaA,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,MAAM,cAAc,CAAC;AAE3C,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAsB,aAAa,EAAC,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAC,SAAS,EAAgB,MAAM,aAAa,CAAC;AAWrD,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,MAAM,CAuBzF;AAED,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,aAMhD,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,eAMzD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,wBAAwB,MAAM,EAC9B,iBAAiB,MAAM,EACvB,OAAO,MAAM,EACb,MAAM,MAAM,KACX,MAOF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,wBAAwB,MAAM,EAC9B,MAAM,MAAM,KACX,MAMF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,QAAQ,GAAG,KAAG,MAAM,GAAG,IAQpD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,gBAAgB,aAAa,KAAG,SAyBvE,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,uBAAuB,GAAI,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,KAAG,gBAwBxE,CAAC;AAgBF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,GAAG,EAAE,MAAM,EACX,CAAC,EAAE,gBAAgB,GAClB,OAAO,CAWT;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CASnE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/ProfileFlameGraph/FlameGraphArrow/utils.ts"],"names":[],"mappings":"AAaA,OAAO,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAsB,aAAa,EAAC,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAC,SAAS,EAAgB,MAAM,aAAa,CAAC;AAWrD,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,MAAM,CAuBpF;AAED,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,aAMhD,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,eAMzD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,wBAAwB,MAAM,EAC9B,iBAAiB,MAAM,EACvB,OAAO,MAAM,EACb,MAAM,MAAM,KACX,MAOF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,wBAAwB,MAAM,EAC9B,MAAM,MAAM,KACX,MAMF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,QAAQ,GAAG,KAAG,MAAM,GAAG,IAQpD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,gBAAgB,aAAa,KAAG,SAyBvE,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,uBAAuB,GAAI,OAAO,KAAK,EAAE,KAAK,MAAM,KAAG,gBAwBnE,CAAC;AAgBF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAW/F;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,MAAM,CAStE"}
@@ -1,4 +1,4 @@
1
- import { Table as ArrowTable } from 'apache-arrow';
1
+ import { Table } from '@uwdata/flechette';
2
2
  import { FlamegraphArrow } from '@parca/client';
3
3
  interface UseProfileMetadataProps {
4
4
  flamegraphArrow?: FlamegraphArrow;
@@ -7,7 +7,7 @@ interface UseProfileMetadataProps {
7
7
  colorBy: string;
8
8
  }
9
9
  export declare const useProfileMetadata: ({ flamegraphArrow, metadataMappingFiles, metadataLoading, colorBy, }: UseProfileMetadataProps) => {
10
- table: ArrowTable<any> | null;
10
+ table: Table | null;
11
11
  mappingsList: string[];
12
12
  filenamesList: string[];
13
13
  colorMappings: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"useProfileMetadata.d.ts","sourceRoot":"","sources":["../../../src/ProfileView/hooks/useProfileMetadata.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,KAAK,IAAI,UAAU,EAAe,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAM9C,UAAU,uBAAuB;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,kBAAkB,GAAI,sEAKhC,uBAAuB,KAAG;IAC3B,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;CAkB1B,CAAC"}
1
+ {"version":3,"file":"useProfileMetadata.d.ts","sourceRoot":"","sources":["../../../src/ProfileView/hooks/useProfileMetadata.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,KAAK,EAAe,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAO9C,UAAU,uBAAuB;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,kBAAkB,GAAI,sEAKhC,uBAAuB,KAAG;IAC3B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;CAqB1B,CAAC"}
@@ -11,11 +11,15 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
  import { useMemo } from 'react';
14
- import { tableFromIPC } from 'apache-arrow';
14
+ import { tableFromIPC } from '@uwdata/flechette';
15
15
  import useMappingList, { useFilenamesList, } from '../../ProfileFlameGraph/FlameGraphArrow/useMappingList';
16
+ import { alignedUint8Array } from '../../utils';
16
17
  export const useProfileMetadata = ({ flamegraphArrow, metadataMappingFiles, metadataLoading, colorBy, }) => {
17
18
  const table = useMemo(() => {
18
- return flamegraphArrow !== undefined ? tableFromIPC(flamegraphArrow.record) : null;
19
+ if (flamegraphArrow === undefined) {
20
+ return null;
21
+ }
22
+ return tableFromIPC(alignedUint8Array(flamegraphArrow.record), { useBigInt: true });
19
23
  }, [flamegraphArrow]);
20
24
  const mappingsList = useMappingList(metadataMappingFiles);
21
25
  const filenamesList = useFilenamesList(table);
@@ -1 +1 @@
1
- {"version":3,"file":"CallersSection.d.ts","sourceRoot":"","sources":["../../../src/Sandwich/components/CallersSection.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAgB,MAAM,OAAO,CAAC;AASrC,OAAO,EAAC,KAAK,gBAAgB,EAAC,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAC,KAAK,aAAa,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,cAAc,EAAC,MAAM,uCAAuC,CAAC;AAerE,UAAU,mBAAmB;IAC3B,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC5C,qBAAqB,EAAE,cAAc,CAAC;IACtC,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,eAAe,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAqEnC"}
1
+ {"version":3,"file":"CallersSection.d.ts","sourceRoot":"","sources":["../../../src/Sandwich/components/CallersSection.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAgB,MAAM,OAAO,CAAC;AASrC,OAAO,EAAC,KAAK,gBAAgB,EAAC,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAC,KAAK,aAAa,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,cAAc,EAAC,MAAM,uCAAuC,CAAC;AAgBrE,UAAU,mBAAmB;IAC3B,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC5C,qBAAqB,EAAE,cAAc,CAAC;IACtC,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,eAAe,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAuEnC"}
@@ -12,11 +12,12 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
  import { useMemo } from 'react';
15
- import { tableFromIPC } from 'apache-arrow';
15
+ import { tableFromIPC } from '@uwdata/flechette';
16
16
  import { Tooltip } from 'react-tooltip';
17
17
  import { Button } from '@parca/components';
18
18
  import { TEST_IDS, testId } from '@parca/test-utils';
19
19
  import ProfileFlameGraph from '../../ProfileFlameGraph';
20
+ import { alignedUint8Array } from '../../utils';
20
21
  const FIELD_DEPTH = 'depth';
21
22
  function getMaxDepth(depthColumn) {
22
23
  if (depthColumn === null)
@@ -32,7 +33,9 @@ function getMaxDepth(depthColumn) {
32
33
  export function CallersSection({ callersRef, callersFlamegraphData, profileSource, curPathArrow, setCurPathArrow, isExpanded, setIsExpanded, defaultMaxFrames, }) {
33
34
  const maxDepth = useMemo(() => {
34
35
  if (callersFlamegraphData?.arrow != null) {
35
- const table = tableFromIPC(callersFlamegraphData.arrow.record);
36
+ const table = tableFromIPC(alignedUint8Array(callersFlamegraphData.arrow.record), {
37
+ useBigInt: true,
38
+ });
36
39
  const depthColumn = table.getChild(FIELD_DEPTH);
37
40
  return getMaxDepth(depthColumn);
38
41
  }
@@ -1,4 +1,4 @@
1
- import { type Table } from 'apache-arrow';
1
+ import { type Table } from '@uwdata/flechette';
2
2
  import { type colorByColors } from '../../ProfileFlameGraph/FlameGraphArrow/FlameGraphNodes';
3
3
  import { type DataRow } from '../../Table/utils/functions';
4
4
  interface ProcessRowDataProps {
@@ -1 +1 @@
1
- {"version":3,"file":"processRowData.d.ts","sourceRoot":"","sources":["../../../src/Sandwich/utils/processRowData.ts"],"names":[],"mappings":"AAaA,OAAO,EAAC,KAAK,KAAK,EAAC,MAAM,cAAc,CAAC;AAExC,OAAO,EAAC,KAAK,aAAa,EAAC,MAAM,yDAAyD,CAAC;AAY3F,OAAO,EAAuB,KAAK,OAAO,EAAC,MAAM,6BAA6B,CAAC;AAE/E,UAAU,mBAAmB;IAC3B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,cAAc,CAAC,EAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAC,EAAE,mBAAmB,GAAG,OAAO,EAAE,CA0C9F"}
1
+ {"version":3,"file":"processRowData.d.ts","sourceRoot":"","sources":["../../../src/Sandwich/utils/processRowData.ts"],"names":[],"mappings":"AAaA,OAAO,EAAC,KAAK,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAC,KAAK,aAAa,EAAC,MAAM,yDAAyD,CAAC;AAY3F,OAAO,EAAuB,KAAK,OAAO,EAAC,MAAM,6BAA6B,CAAC;AAE/E,UAAU,mBAAmB;IAC3B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,cAAc,CAAC,EAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAC,EAAE,mBAAmB,GAAG,OAAO,EAAE,CA0C9F"}
@@ -12,12 +12,12 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
  import React, { useCallback, useEffect, useMemo } from 'react';
15
- import { tableFromIPC } from 'apache-arrow';
15
+ import { tableFromIPC } from '@uwdata/flechette';
16
16
  import { AnimatePresence, motion } from 'framer-motion';
17
17
  import { Item, Menu, useContextMenu } from 'react-contexify';
18
18
  import { SourceSkeleton, useParcaContext, useURLState } from '@parca/components';
19
19
  import { ExpandOnHover } from '../GraphTooltipArrow/ExpandOnHoverValue';
20
- import { truncateStringReverse } from '../utils';
20
+ import { alignedUint8Array, truncateStringReverse } from '../utils';
21
21
  import { Highlighter, profileAwareRenderer } from './Highlighter';
22
22
  import useLineRange from './useSelectedLineRange';
23
23
  const MENU_ID = 'source-view-context-menu';
@@ -39,7 +39,7 @@ export const SourceView = React.memo(function SourceView({ data, loading, total,
39
39
  if (data === undefined) {
40
40
  return null;
41
41
  }
42
- const table = tableFromIPC(data.record);
42
+ const table = tableFromIPC(alignedUint8Array(data.record), { useBigInt: true });
43
43
  return {
44
44
  numRows: table.numRows,
45
45
  lineNumbers: table.getChild('line_number'),
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Table/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAgD,MAAM,OAAO,CAAC;AAErE,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAYlD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAS1C,OAAO,EAAC,OAAO,EAAmC,MAAM,mBAAmB,CAAC;AAE5E,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AACjD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC;AAE1B,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,KAAK,wCA0MhB,CAAC;AAEH,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Table/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAgD,MAAM,OAAO,CAAC;AAErE,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAYlD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAU1C,OAAO,EAAC,OAAO,EAAmC,MAAM,mBAAmB,CAAC;AAE5E,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AACjD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC;AAE1B,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,KAAK,wCAyMhB,CAAC;AAEH,eAAe,KAAK,CAAC"}
@@ -12,13 +12,14 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
  import React, { useCallback, useEffect, useMemo, useRef } from 'react';
15
- import { tableFromIPC } from 'apache-arrow';
15
+ import { tableFromIPC } from '@uwdata/flechette';
16
16
  import { AnimatePresence, motion } from 'framer-motion';
17
17
  import { useContextMenu } from 'react-contexify';
18
18
  import { Table as TableComponent, TableSkeleton, useParcaContext, useURLState, } from '@parca/components';
19
19
  import { useCurrentColorProfile } from '@parca/hooks';
20
20
  import useMappingList, { useFilenamesList, } from '../ProfileFlameGraph/FlameGraphArrow/useMappingList';
21
21
  import { useProfileViewContext } from '../ProfileView/context/ProfileViewContext';
22
+ import { alignedUint8Array } from '../utils';
22
23
  import TableContextMenuWrapper from './TableContextMenuWrapper';
23
24
  import { useColorManagement } from './hooks/useColorManagement';
24
25
  import { useTableConfiguration } from './hooks/useTableConfiguration';
@@ -52,7 +53,7 @@ export const Table = React.memo(function Table({ data, total, filtered, profileT
52
53
  if (loading || data == null) {
53
54
  return null;
54
55
  }
55
- return tableFromIPC(data);
56
+ return tableFromIPC(alignedUint8Array(data), { useBigInt: true });
56
57
  }, [data, loading]);
57
58
  const mappingsList = useMappingList(metadataMappingFiles);
58
59
  const filenamesList = useFilenamesList(table);
@@ -1,5 +1,5 @@
1
1
  import { type Row as RowType } from '@tanstack/table-core';
2
- import { Vector } from 'apache-arrow';
2
+ import { Column } from '@uwdata/flechette';
3
3
  import { colorByColors } from '../../ProfileFlameGraph/FlameGraphArrow/FlameGraphNodes';
4
4
  export interface DataRow {
5
5
  id: number;
@@ -30,8 +30,8 @@ export interface DummyRow {
30
30
  }
31
31
  export type Row = DataRow | DummyRow;
32
32
  export declare const addPlusSign: (num: string) => string;
33
- export declare const getRowColor: (colorByColors: colorByColors, mappingFileColumn: Vector | null, row: number, functionFileNameColumn: Vector | null, colorBy: string) => string;
34
- export declare const RowName: (mappingFileColumn: Vector | null, locationAddressColumn: Vector | null, functionNameColumn: Vector | null, row: number) => string;
33
+ export declare const getRowColor: (colorByColors: colorByColors, mappingFileColumn: Column<string> | null, row: number, functionFileNameColumn: Column<string> | null, colorBy: string) => string;
34
+ export declare const RowName: (mappingFileColumn: Column<string> | null, locationAddressColumn: Column<bigint> | null, functionNameColumn: Column<string> | null, row: number) => string;
35
35
  export declare const getRowsCount: (rows: Array<RowType<Row>>) => number;
36
36
  export declare function getScrollTargetIndex(rows: Array<RowType<Row>>, parentRow: RowType<Row>, newRow: RowType<Row>): number;
37
37
  export declare function isSubRow(row: Row): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/Table/utils/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/Table/utils/functions.ts"],"names":[],"mappings":"AAaA,OAAO,EAAC,KAAK,GAAG,IAAI,OAAO,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAIzC,OAAO,EAAC,aAAa,EAAC,MAAM,yDAAyD,CAAC;AAGtF,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErC,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAMzC,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,eAAe,aAAa,EAC5B,mBAAmB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EACxC,KAAK,MAAM,EACX,wBAAwB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EAC7C,SAAS,MAAM,KACd,MAwBF,CAAC;AAEF,eAAO,MAAM,OAAO,GAClB,mBAAmB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EACxC,uBAAuB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EAC5C,oBAAoB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EACzC,KAAK,MAAM,KACV,MAoBF,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAG,MAMxD,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EACzB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,EACvB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GACnB,MAAM,CAgBR;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAE1C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAIlF;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAInF;AAED,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,gBAAgB,GAChB,UAAU,GACV,oBAAoB,GACpB,YAAY,GACZ,sBAAsB,GACtB,gBAAgB,GAChB,0BAA0B,GAC1B,MAAM,GACN,oBAAoB,GACpB,kBAAkB,GAClB,aAAa,CAAC;AAElB,eAAO,MAAM,eAAe,GAC1B,YAAY,OAAO,EACnB,UAAU,OAAO,KAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAMxB,CAAC;AAEF,eAAO,MAAM,UAAU,KAAK,CAAC;AAE7B,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAIrE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAIpE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAIrE,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,SAAS,OAAO,EAAE,KAAG,GAAG,EAarD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,SAAS,OAAO,EAAE,KAAG,GAAG,EAarD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,GAAG,MAAM,EAAE,OAAO,MAAM,GAAG,MAAM,KAAG,MAOpF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,GAAG,MAAM,EAAE,OAAO,MAAM,EAAE,UAAU,MAAM,KAAG,MAMxF,CAAC;AAEF,eAAO,MAAM,eAAe,UAa3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,GAAG,MAAM,EAAE,OAAO,MAAM,GAAG,MAAM,KAAG,MAOjF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,GAAG,MAAM,EAAE,OAAO,MAAM,EAAE,UAAU,MAAM,KAAG,MAMrF,CAAC"}
@@ -23,8 +23,8 @@ export const getRowColor = (colorByColors, mappingFileColumn, row, functionFileN
23
23
  console.error('mapping_file column not found');
24
24
  return '';
25
25
  }
26
- const mappingFile = mappingFileColumn?.get(row);
27
- const functionFileName = functionFileNameColumn?.get(row);
26
+ const mappingFile = mappingFileColumn?.get(row) ?? null;
27
+ const functionFileName = functionFileNameColumn?.get(row) ?? null;
28
28
  let mapping = '';
29
29
  let filename = '';
30
30
  if (mappingFile != null) {
@@ -53,7 +53,7 @@ export const RowName = (mappingFileColumn, locationAddressColumn, functionNameCo
53
53
  if (functionName !== null && functionName !== '') {
54
54
  return `${mapping} ${functionName}`;
55
55
  }
56
- const address = locationAddressColumn?.get(row) ?? 0;
56
+ const address = locationAddressColumn?.get(row) ?? 0n;
57
57
  return hexifyAddress(address);
58
58
  };
59
59
  export const getRowsCount = (rows) => {
package/dist/utils.d.ts CHANGED
@@ -6,4 +6,10 @@ export declare const truncateString: (str: string, num: number) => string;
6
6
  export declare const truncateStringReverse: (str: string, num: number) => string;
7
7
  export type NumberDuo = [number, number];
8
8
  export type BigIntDuo = [bigint, bigint];
9
+ /**
10
+ * Ensures the buffer is 8-byte aligned for Arrow IPC parsing with BigInt support.
11
+ * Arrow's BigInt64Array/BigUint64Array require 8-byte aligned memory.
12
+ * If not aligned, creates a copy which will be properly aligned.
13
+ */
14
+ export declare const alignedUint8Array: (buffer: Uint8Array) => Uint8Array;
9
15
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAC,YAAY,EAA2B,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAExF,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,KAAG,MAKhD,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,SAAS,YAAY,EACrB,aAAa,kBAAkB,EAC/B,UAAU,WAAW,KACpB,OAAO,CAAC,IAAI,CAiBd,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAMzD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAMhE,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACzC,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAC,YAAY,EAA2B,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAExF,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,KAAG,MAKhD,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,SAAS,YAAY,EACrB,aAAa,kBAAkB,EAC/B,UAAU,WAAW,KACpB,OAAO,CAAC,IAAI,CAiBd,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAMzD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAMhE,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACzC,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEzC;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,UAAU,KAAG,UAEtD,CAAC"}
package/dist/utils.js CHANGED
@@ -41,3 +41,11 @@ export const truncateStringReverse = (str, num) => {
41
41
  }
42
42
  return '...' + str.slice(str.length - num);
43
43
  };
44
+ /**
45
+ * Ensures the buffer is 8-byte aligned for Arrow IPC parsing with BigInt support.
46
+ * Arrow's BigInt64Array/BigUint64Array require 8-byte aligned memory.
47
+ * If not aligned, creates a copy which will be properly aligned.
48
+ */
49
+ export const alignedUint8Array = (buffer) => {
50
+ return buffer.byteOffset % 8 === 0 ? buffer : new Uint8Array(buffer);
51
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parca/profile",
3
- "version": "0.19.112",
3
+ "version": "0.19.113",
4
4
  "description": "Profile viewing libraries",
5
5
  "dependencies": {
6
6
  "@floating-ui/react": "^0.27.12",
@@ -26,7 +26,7 @@
26
26
  "@types/d3-selection": "^3.0.10",
27
27
  "@types/fast-levenshtein": "^0.0.4",
28
28
  "@types/react-beautiful-dnd": "^13.1.8",
29
- "apache-arrow": "^19.0.1",
29
+ "@uwdata/flechette": "^2.3.0",
30
30
  "classnames": "^2.3.1",
31
31
  "d3": "7.9.0",
32
32
  "d3-array": "^3.2.4",
@@ -84,5 +84,5 @@
84
84
  "access": "public",
85
85
  "registry": "https://registry.npmjs.org/"
86
86
  },
87
- "gitHead": "250c30a141481e91a3d81968d644705dae028ad5"
87
+ "gitHead": "cb690dea5c6bd3369fdee920fbdc5609d783f2cd"
88
88
  }
@@ -14,7 +14,7 @@
14
14
  import React from 'react';
15
15
 
16
16
  import {Icon} from '@iconify/react';
17
- import {Table} from 'apache-arrow';
17
+ import {Table} from '@uwdata/flechette';
18
18
 
19
19
  import {useParcaContext} from '@parca/components';
20
20
  import {ProfileType} from '@parca/parser';
@@ -26,7 +26,7 @@ import {useGraphTooltip} from './useGraphTooltip';
26
26
  import {useGraphTooltipMetaInfo} from './useGraphTooltipMetaInfo';
27
27
 
28
28
  interface GraphTooltipArrowContentProps {
29
- table: Table<any>;
29
+ table: Table;
30
30
  profileType?: ProfileType;
31
31
  unit?: string;
32
32
  total: bigint;
@@ -130,7 +130,7 @@ const GraphTooltipArrowContent = ({
130
130
  );
131
131
  };
132
132
 
133
- const TooltipMetaInfo = ({table, row}: {table: Table<any>; row: number}): React.JSX.Element => {
133
+ const TooltipMetaInfo = ({table, row}: {table: Table; row: number}): React.JSX.Element => {
134
134
  const {
135
135
  labelPairs,
136
136
  functionFilename,
@@ -12,7 +12,7 @@
12
12
  // limitations under the License.
13
13
 
14
14
  import {Icon} from '@iconify/react';
15
- import {Table} from 'apache-arrow';
15
+ import {Table} from '@uwdata/flechette';
16
16
  import cx from 'classnames';
17
17
  import {useWindowSize} from 'react-use';
18
18
 
@@ -25,7 +25,7 @@ import {useGraphTooltip} from '../useGraphTooltip';
25
25
  import {useGraphTooltipMetaInfo} from '../useGraphTooltipMetaInfo';
26
26
 
27
27
  interface Props {
28
- table: Table<any>;
28
+ table: Table;
29
29
  total: bigint;
30
30
  totalUnfiltered: bigint;
31
31
  row: number | null;
@@ -11,7 +11,7 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
 
14
- import {Table} from 'apache-arrow';
14
+ import {Table} from '@uwdata/flechette';
15
15
 
16
16
  import {ProfileType} from '@parca/parser';
17
17
  import {divide, valueFormatter} from '@parca/utilities';
@@ -25,7 +25,7 @@ import {
25
25
  import {getTextForCumulative, nodeLabel} from '../../ProfileFlameGraph/FlameGraphArrow/utils';
26
26
 
27
27
  interface Props {
28
- table: Table<any>;
28
+ table: Table;
29
29
  profileType?: ProfileType;
30
30
  unit?: string;
31
31
  total: bigint;
@@ -11,7 +11,7 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
 
14
- import {Table} from 'apache-arrow';
14
+ import {Table} from '@uwdata/flechette';
15
15
 
16
16
  import {QueryRequest_ReportType} from '@parca/client';
17
17
  import {useParcaContext, useURLState} from '@parca/components';
@@ -33,7 +33,7 @@ import {useProfileViewContext} from '../../ProfileView/context/ProfileViewContex
33
33
  import {useQuery} from '../../useQuery';
34
34
 
35
35
  interface Props {
36
- table: Table<any>;
36
+ table: Table;
37
37
  row: number;
38
38
  }
39
39
 
@@ -12,7 +12,7 @@
12
12
  // limitations under the License.
13
13
 
14
14
  import {Icon} from '@iconify/react';
15
- import {Table} from 'apache-arrow';
15
+ import {Table} from '@uwdata/flechette';
16
16
  import cx from 'classnames';
17
17
  import {Item, Menu, Separator, Submenu} from 'react-contexify';
18
18
  import {Tooltip} from 'react-tooltip';
@@ -29,7 +29,7 @@ import {hexifyAddress, truncateString} from '../../utils';
29
29
 
30
30
  interface ContextMenuProps {
31
31
  menuId: string;
32
- table: Table<any>;
32
+ table: Table;
33
33
  profileType?: ProfileType;
34
34
  unit?: string;
35
35
  total: bigint;
@@ -13,7 +13,7 @@
13
13
 
14
14
  import {forwardRef, useImperativeHandle, useState} from 'react';
15
15
 
16
- import {Table} from 'apache-arrow';
16
+ import {Table} from '@uwdata/flechette';
17
17
 
18
18
  import {ProfileType} from '@parca/parser';
19
19
 
@@ -21,7 +21,7 @@ import ContextMenu from './ContextMenu';
21
21
 
22
22
  interface ContextMenuWrapperProps {
23
23
  menuId: string;
24
- table: Table<any>;
24
+ table: Table;
25
25
  total: bigint;
26
26
  totalUnfiltered: bigint;
27
27
  profileType?: ProfileType;
@@ -13,7 +13,7 @@
13
13
 
14
14
  import React, {useCallback, useMemo} from 'react';
15
15
 
16
- import {Table} from 'apache-arrow';
16
+ import {Table} from '@uwdata/flechette';
17
17
  import cx from 'classnames';
18
18
 
19
19
  import {selectBinaries, useAppSelector} from '@parca/store';
@@ -44,7 +44,7 @@ export interface colorByColors {
44
44
  export interface FlameNodeProps {
45
45
  height: number;
46
46
  totalWidth: number;
47
- table: Table<any>;
47
+ table: Table;
48
48
  row: number;
49
49
  colors: colorByColors;
50
50
  colorBy: string;
@@ -13,7 +13,7 @@
13
13
 
14
14
  import React, {createContext, useCallback, useContext, useMemo, useRef} from 'react';
15
15
 
16
- import {Table} from 'apache-arrow';
16
+ import {Table} from '@uwdata/flechette';
17
17
 
18
18
  import {ProfileType} from '@parca/parser';
19
19
 
@@ -24,7 +24,7 @@ interface TooltipState {
24
24
  }
25
25
 
26
26
  interface TooltipContextValue {
27
- table: Table<any>;
27
+ table: Table;
28
28
  total: bigint;
29
29
  totalUnfiltered: bigint;
30
30
  profileType?: ProfileType;
@@ -47,7 +47,7 @@ export const useTooltipContext = (): TooltipContextValue => {
47
47
 
48
48
  interface TooltipProviderProps {
49
49
  children: React.ReactNode;
50
- table: Table<any>;
50
+ table: Table;
51
51
  total: bigint;
52
52
  totalUnfiltered: bigint;
53
53
  profileType?: ProfileType;
@@ -21,7 +21,7 @@ import React, {
21
21
  useState,
22
22
  } from 'react';
23
23
 
24
- import {Table, tableFromIPC} from 'apache-arrow';
24
+ import {Table, tableFromIPC} from '@uwdata/flechette';
25
25
  import {useContextMenu} from 'react-contexify';
26
26
 
27
27
  import {FlamegraphArrow} from '@parca/client';
@@ -34,6 +34,7 @@ import {type ColorConfig} from '@parca/utilities';
34
34
  import {ProfileSource} from '../../ProfileSource';
35
35
  import {useProfileFilters} from '../../ProfileView/components/ProfileFilters/useProfileFilters';
36
36
  import {useProfileViewContext} from '../../ProfileView/context/ProfileViewContext';
37
+ import {alignedUint8Array} from '../../utils';
37
38
  import ContextMenuWrapper, {ContextMenuWrapperRef} from './ContextMenuWrapper';
38
39
  import {FlameNode, RowHeight, colorByColors} from './FlameGraphNodes';
39
40
  import {MemoizedTooltip} from './MemoizedTooltip';
@@ -153,8 +154,8 @@ export const FlameGraphArrow = memo(function FlameGraphArrow({
153
154
  const isDarkMode = useAppSelector(selectDarkMode);
154
155
  const {perf} = useParcaContext();
155
156
 
156
- const table: Table<any> = useMemo(() => {
157
- const result = tableFromIPC(arrow.record);
157
+ const table: Table = useMemo(() => {
158
+ const result = tableFromIPC(alignedUint8Array(arrow.record), {useBigInt: true});
158
159
 
159
160
  if (perf?.setMeasurement != null) {
160
161
  perf.setMeasurement('flamegraph.node_count', result.numRows);
@@ -13,7 +13,7 @@
13
13
 
14
14
  import {useMemo} from 'react';
15
15
 
16
- import {Dictionary, Table, Vector} from 'apache-arrow';
16
+ import {Column, Table} from '@uwdata/flechette';
17
17
 
18
18
  import {getLastItem} from '@parca/utilities';
19
19
 
@@ -48,26 +48,26 @@ export const useFilenamesList = (table: Table | null): string[] => {
48
48
  if (table === null) {
49
49
  return [];
50
50
  }
51
- const filenamesDict: Vector<Dictionary> | null = table.getChild(FIELD_FUNCTION_FILE_NAME);
52
- const filenames =
53
- filenamesDict?.data
54
- .map(file => {
55
- if (file.dictionary == null) {
56
- return [];
57
- }
58
- const len = file.dictionary.length;
59
- const entries: string[] = [];
60
- for (let i = 0; i < len; i++) {
61
- const fn = arrowToString(file.dictionary.get(i));
62
- entries.push(getLastItem(fn) ?? '');
63
- }
64
- return entries;
65
- })
66
- .flat() ?? [];
51
+ const filenamesColumn: Column<string> | null = table.getChild(FIELD_FUNCTION_FILE_NAME);
52
+ if (filenamesColumn === null) {
53
+ return [];
54
+ }
55
+
56
+ // Access dictionary directly instead of iterating all rows
57
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
58
+ const dictionary: Column<string> | undefined = (filenamesColumn.data[0] as any)?.dictionary;
59
+ if (dictionary == null) {
60
+ return [''];
61
+ }
67
62
 
68
- filenames.push('');
63
+ const filenames = Array.from(dictionary.toArray())
64
+ .map(value => {
65
+ const fn = arrowToString(value);
66
+ return fn != null ? getLastItem(fn) ?? '' : '';
67
+ })
68
+ .concat('') // Add empty string for "Everything else"
69
+ .sort((a, b) => a.localeCompare(b));
69
70
 
70
- filenames.sort((a, b) => a.localeCompare(b));
71
71
  return filenames;
72
72
  };
73
73
 
@@ -13,7 +13,7 @@
13
13
 
14
14
  import {useMemo, useRef} from 'react';
15
15
 
16
- import {Table} from 'apache-arrow';
16
+ import {Table} from '@uwdata/flechette';
17
17
 
18
18
  import {RowHeight} from './FlameGraphNodes';
19
19
  import {FIELD_CUMULATIVE, FIELD_DEPTH, FIELD_VALUE_OFFSET} from './index';
@@ -25,9 +25,7 @@ import {getMaxDepth} from './utils';
25
25
  * Instead of scanning all rows to find depth matches, we pre-compute
26
26
  * buckets so viewport rendering only examines depth ranges that are relevant.
27
27
  */
28
- const useDepthBuckets = <TRow extends Record<string, any>>(
29
- table: Table<TRow> | undefined
30
- ): number[][] => {
28
+ const useDepthBuckets = (table: Table | undefined): number[][] => {
31
29
  return useMemo(() => {
32
30
  if (table === undefined) return [];
33
31
 
@@ -51,7 +49,7 @@ const useDepthBuckets = <TRow extends Record<string, any>>(
51
49
  };
52
50
 
53
51
  export interface UseVisibleNodesParams {
54
- table: Table<any>;
52
+ table: Table;
55
53
  viewport: ViewportState;
56
54
  total: bigint;
57
55
  width: number;
@@ -85,7 +83,7 @@ export const useVisibleNodes = ({
85
83
  result: number[];
86
84
  }>({key: '', result: []});
87
85
 
88
- const renderedRangeRef = useRef<{minDepth: number; maxDepth: number; table: Table<any> | null}>({
86
+ const renderedRangeRef = useRef<{minDepth: number; maxDepth: number; table: Table | null}>({
89
87
  minDepth: Infinity,
90
88
  maxDepth: -Infinity,
91
89
  table: null,
@@ -11,7 +11,7 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
 
14
- import {Table, Vector} from 'apache-arrow';
14
+ import {Column, Table} from '@uwdata/flechette';
15
15
 
16
16
  import {
17
17
  BINARY_FEATURE_TYPES,
@@ -34,7 +34,7 @@ import {
34
34
  FIELD_MAPPING_FILE,
35
35
  } from './index';
36
36
 
37
- export function nodeLabel(table: Table<any>, row: number, showBinaryName: boolean): string {
37
+ export function nodeLabel(table: Table, row: number, showBinaryName: boolean): string {
38
38
  const labelsOnly: boolean | null = table.getChild(FIELD_LABELS_ONLY)?.get(row);
39
39
  const depth: number = table.getChild(FIELD_DEPTH)?.get(row) ?? 0;
40
40
  if (depth === 1 && labelsOnly !== null && labelsOnly) {
@@ -147,7 +147,7 @@ export interface CurrentPathFrame {
147
147
  labels?: string;
148
148
  }
149
149
 
150
- export const getCurrentPathFrameData = (table: Table<any>, row: number): CurrentPathFrame => {
150
+ export const getCurrentPathFrameData = (table: Table, row: number): CurrentPathFrame => {
151
151
  const functionName: string | null = arrowToString(table.getChild(FIELD_FUNCTION_NAME)?.get(row));
152
152
  const systemName: string | null = arrowToString(table.getChild(FIELD_FUNCTION_NAME)?.get(row));
153
153
  const fileName: string | null = arrowToString(table.getChild(FIELD_MAPPING_FILE)?.get(row));
@@ -173,7 +173,7 @@ export const getCurrentPathFrameData = (table: Table<any>, row: number): Current
173
173
  };
174
174
  };
175
175
 
176
- function getLabelSet(table: Table<any>, row: number): string {
176
+ function getLabelSet(table: Table, row: number): string {
177
177
  const labelPrefix = 'labels.';
178
178
  const labelColumnNames = table.schema.fields.filter(field => field.name.startsWith(labelPrefix));
179
179
 
@@ -187,11 +187,7 @@ function getLabelSet(table: Table<any>, row: number): string {
187
187
  .join(', ');
188
188
  }
189
189
 
190
- export function isCurrentPathFrameMatch(
191
- table: Table<any>,
192
- row: number,
193
- b: CurrentPathFrame
194
- ): boolean {
190
+ export function isCurrentPathFrameMatch(table: Table, row: number, b: CurrentPathFrame): boolean {
195
191
  const a = getCurrentPathFrameData(table, row);
196
192
  return (
197
193
  a.functionName === b.functionName &&
@@ -204,7 +200,7 @@ export function isCurrentPathFrameMatch(
204
200
  );
205
201
  }
206
202
 
207
- export function getMaxDepth(depthColumn: Vector<any> | null): number {
203
+ export function getMaxDepth(depthColumn: Column<number> | null): number {
208
204
  if (depthColumn === null) return 0;
209
205
 
210
206
  let max = 0;
@@ -13,13 +13,14 @@
13
13
 
14
14
  import {useMemo} from 'react';
15
15
 
16
- import {Table as ArrowTable, tableFromIPC} from 'apache-arrow';
16
+ import {Table, tableFromIPC} from '@uwdata/flechette';
17
17
 
18
18
  import {FlamegraphArrow} from '@parca/client';
19
19
 
20
20
  import useMappingList, {
21
21
  useFilenamesList,
22
22
  } from '../../ProfileFlameGraph/FlameGraphArrow/useMappingList';
23
+ import {alignedUint8Array} from '../../utils';
23
24
 
24
25
  interface UseProfileMetadataProps {
25
26
  flamegraphArrow?: FlamegraphArrow;
@@ -34,14 +35,17 @@ export const useProfileMetadata = ({
34
35
  metadataLoading,
35
36
  colorBy,
36
37
  }: UseProfileMetadataProps): {
37
- table: ArrowTable<any> | null;
38
+ table: Table | null;
38
39
  mappingsList: string[];
39
40
  filenamesList: string[];
40
41
  colorMappings: string[];
41
42
  metadataLoading: boolean;
42
43
  } => {
43
- const table: ArrowTable<any> | null = useMemo(() => {
44
- return flamegraphArrow !== undefined ? tableFromIPC(flamegraphArrow.record) : null;
44
+ const table: Table | null = useMemo(() => {
45
+ if (flamegraphArrow === undefined) {
46
+ return null;
47
+ }
48
+ return tableFromIPC(alignedUint8Array(flamegraphArrow.record), {useBigInt: true});
45
49
  }, [flamegraphArrow]);
46
50
 
47
51
  const mappingsList = useMappingList(metadataMappingFiles);
@@ -13,7 +13,7 @@
13
13
 
14
14
  import React, {useMemo} from 'react';
15
15
 
16
- import {Vector, tableFromIPC} from 'apache-arrow';
16
+ import {Column, tableFromIPC} from '@uwdata/flechette';
17
17
  import {Tooltip} from 'react-tooltip';
18
18
 
19
19
  import {Button} from '@parca/components';
@@ -23,10 +23,11 @@ import ProfileFlameGraph from '../../ProfileFlameGraph';
23
23
  import {type CurrentPathFrame} from '../../ProfileFlameGraph/FlameGraphArrow/utils';
24
24
  import {type ProfileSource} from '../../ProfileSource';
25
25
  import {FlamegraphData} from '../../ProfileView/types/visualization';
26
+ import {alignedUint8Array} from '../../utils';
26
27
 
27
28
  const FIELD_DEPTH = 'depth';
28
29
 
29
- function getMaxDepth(depthColumn: Vector<any> | null): number {
30
+ function getMaxDepth(depthColumn: Column<number> | null): number {
30
31
  if (depthColumn === null) return 0;
31
32
 
32
33
  let max = 0;
@@ -60,7 +61,9 @@ export function CallersSection({
60
61
  }: CallersSectionProps): JSX.Element {
61
62
  const maxDepth = useMemo(() => {
62
63
  if (callersFlamegraphData?.arrow != null) {
63
- const table = tableFromIPC(callersFlamegraphData.arrow.record);
64
+ const table = tableFromIPC(alignedUint8Array(callersFlamegraphData.arrow.record), {
65
+ useBigInt: true,
66
+ });
64
67
  const depthColumn = table.getChild(FIELD_DEPTH);
65
68
  return getMaxDepth(depthColumn);
66
69
  }
@@ -11,7 +11,7 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
 
14
- import {type Table} from 'apache-arrow';
14
+ import {type Table} from '@uwdata/flechette';
15
15
 
16
16
  import {type colorByColors} from '../../ProfileFlameGraph/FlameGraphArrow/FlameGraphNodes';
17
17
  import {
@@ -13,7 +13,7 @@
13
13
 
14
14
  import React, {useCallback, useEffect, useMemo} from 'react';
15
15
 
16
- import {tableFromIPC} from 'apache-arrow';
16
+ import {tableFromIPC} from '@uwdata/flechette';
17
17
  import {AnimatePresence, motion} from 'framer-motion';
18
18
  import {Item, Menu, useContextMenu} from 'react-contexify';
19
19
 
@@ -21,7 +21,7 @@ import {Source} from '@parca/client';
21
21
  import {SourceSkeleton, useParcaContext, useURLState, type ProfileData} from '@parca/components';
22
22
 
23
23
  import {ExpandOnHover} from '../GraphTooltipArrow/ExpandOnHoverValue';
24
- import {truncateStringReverse} from '../utils';
24
+ import {alignedUint8Array, truncateStringReverse} from '../utils';
25
25
  import {Highlighter, profileAwareRenderer, type LineDataLookup} from './Highlighter';
26
26
  import useLineRange from './useSelectedLineRange';
27
27
 
@@ -63,7 +63,7 @@ export const SourceView = React.memo(function SourceView({
63
63
  if (data === undefined) {
64
64
  return null;
65
65
  }
66
- const table = tableFromIPC(data.record);
66
+ const table = tableFromIPC(alignedUint8Array(data.record), {useBigInt: true});
67
67
  return {
68
68
  numRows: table.numRows,
69
69
  lineNumbers: table.getChild('line_number'),
@@ -14,7 +14,7 @@
14
14
  import React, {useCallback, useEffect, useMemo, useRef} from 'react';
15
15
 
16
16
  import {RpcError} from '@protobuf-ts/runtime-rpc';
17
- import {tableFromIPC} from 'apache-arrow';
17
+ import {tableFromIPC} from '@uwdata/flechette';
18
18
  import {AnimatePresence, motion} from 'framer-motion';
19
19
  import {useContextMenu} from 'react-contexify';
20
20
 
@@ -31,6 +31,7 @@ import useMappingList, {
31
31
  useFilenamesList,
32
32
  } from '../ProfileFlameGraph/FlameGraphArrow/useMappingList';
33
33
  import {useProfileViewContext} from '../ProfileView/context/ProfileViewContext';
34
+ import {alignedUint8Array} from '../utils';
34
35
  import TableContextMenuWrapper, {TableContextMenuWrapperRef} from './TableContextMenuWrapper';
35
36
  import {useColorManagement} from './hooks/useColorManagement';
36
37
  import {useTableConfiguration} from './hooks/useTableConfiguration';
@@ -93,8 +94,7 @@ export const Table = React.memo(function Table({
93
94
  if (loading || data == null) {
94
95
  return null;
95
96
  }
96
-
97
- return tableFromIPC(data);
97
+ return tableFromIPC(alignedUint8Array(data), {useBigInt: true});
98
98
  }, [data, loading]);
99
99
 
100
100
  const mappingsList = useMappingList(metadataMappingFiles);
@@ -12,7 +12,7 @@
12
12
  // limitations under the License.
13
13
 
14
14
  import {type Row as RowType} from '@tanstack/table-core';
15
- import {Vector} from 'apache-arrow';
15
+ import {Column} from '@uwdata/flechette';
16
16
 
17
17
  import {getLastItem} from '@parca/utilities';
18
18
 
@@ -60,9 +60,9 @@ export const addPlusSign = (num: string): string => {
60
60
 
61
61
  export const getRowColor = (
62
62
  colorByColors: colorByColors,
63
- mappingFileColumn: Vector | null,
63
+ mappingFileColumn: Column<string> | null,
64
64
  row: number,
65
- functionFileNameColumn: Vector | null,
65
+ functionFileNameColumn: Column<string> | null,
66
66
  colorBy: string
67
67
  ): string => {
68
68
  if (mappingFileColumn === null) {
@@ -70,8 +70,8 @@ export const getRowColor = (
70
70
  return '';
71
71
  }
72
72
 
73
- const mappingFile: string | null = mappingFileColumn?.get(row);
74
- const functionFileName: string | null = functionFileNameColumn?.get(row);
73
+ const mappingFile: string | null = mappingFileColumn?.get(row) ?? null;
74
+ const functionFileName: string | null = functionFileNameColumn?.get(row) ?? null;
75
75
  let mapping = '';
76
76
  let filename = '';
77
77
 
@@ -91,9 +91,9 @@ export const getRowColor = (
91
91
  };
92
92
 
93
93
  export const RowName = (
94
- mappingFileColumn: Vector | null,
95
- locationAddressColumn: Vector | null,
96
- functionNameColumn: Vector | null,
94
+ mappingFileColumn: Column<string> | null,
95
+ locationAddressColumn: Column<bigint> | null,
96
+ functionNameColumn: Column<string> | null,
97
97
  row: number
98
98
  ): string => {
99
99
  if (mappingFileColumn === null) {
@@ -112,7 +112,7 @@ export const RowName = (
112
112
  return `${mapping} ${functionName}`;
113
113
  }
114
114
 
115
- const address: bigint = locationAddressColumn?.get(row) ?? 0;
115
+ const address: bigint = locationAddressColumn?.get(row) ?? 0n;
116
116
 
117
117
  return hexifyAddress(address);
118
118
  };
package/src/utils.ts CHANGED
@@ -63,3 +63,12 @@ export const truncateStringReverse = (str: string, num: number): string => {
63
63
 
64
64
  export type NumberDuo = [number, number];
65
65
  export type BigIntDuo = [bigint, bigint];
66
+
67
+ /**
68
+ * Ensures the buffer is 8-byte aligned for Arrow IPC parsing with BigInt support.
69
+ * Arrow's BigInt64Array/BigUint64Array require 8-byte aligned memory.
70
+ * If not aligned, creates a copy which will be properly aligned.
71
+ */
72
+ export const alignedUint8Array = (buffer: Uint8Array): Uint8Array => {
73
+ return buffer.byteOffset % 8 === 0 ? buffer : new Uint8Array(buffer);
74
+ };