ccusage 0.2.2 → 0.2.3

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 (3) hide show
  1. package/README.md +3 -0
  2. package/dist/index.js +104 -9
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -3,6 +3,9 @@
3
3
  > **ccusage(claude-code-usage)**
4
4
 
5
5
  [![npm version](https://badge.fury.io/js/ccusage.svg)](https://www.npmjs.com/package/ccusage)
6
+ [![NPM Downloads](https://img.shields.io/npm/dy/ccusage)](https://www.npmjs.com/package/ccusage)
7
+ [![DeepWiki](https://img.shields.io/badge/DeepWiki-ryoppippi%2Fccusage-blue.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](https://deepwiki.com/ryoppippi/ccusage)
8
+ <!-- DeepWiki badge generated by https://deepwiki.ryoppippi.com/ -->
6
9
 
7
10
  <div align="center">
8
11
  <img src="https://github.com/ryoppippi/ccusage/blob/main/docs/screenshot.png?raw=true">
package/dist/index.js CHANGED
@@ -2932,6 +2932,107 @@ function createTotalsObject(totals) {
2932
2932
  };
2933
2933
  }
2934
2934
 
2935
+ //#endregion
2936
+ //#region node_modules/fast-sort/dist/sort.mjs
2937
+ var castComparer = function(comparer) {
2938
+ return function(a$1, b$1, order) {
2939
+ return comparer(a$1, b$1, order) * order;
2940
+ };
2941
+ };
2942
+ var throwInvalidConfigErrorIfTrue = function(condition, context) {
2943
+ if (condition) throw Error("Invalid sort config: " + context);
2944
+ };
2945
+ var unpackObjectSorter = function(sortByObj) {
2946
+ var _a = sortByObj || {}, asc = _a.asc, desc = _a.desc;
2947
+ var order = asc ? 1 : -1;
2948
+ var sortBy = asc || desc;
2949
+ throwInvalidConfigErrorIfTrue(!sortBy, "Expected `asc` or `desc` property");
2950
+ throwInvalidConfigErrorIfTrue(asc && desc, "Ambiguous object with `asc` and `desc` config properties");
2951
+ var comparer = sortByObj.comparer && castComparer(sortByObj.comparer);
2952
+ return {
2953
+ order,
2954
+ sortBy,
2955
+ comparer
2956
+ };
2957
+ };
2958
+ var multiPropertySorterProvider = function(defaultComparer$1) {
2959
+ return function multiPropertySorter(sortBy, sortByArr, depth$1, order, comparer, a$1, b$1) {
2960
+ var valA;
2961
+ var valB;
2962
+ if (typeof sortBy === "string") {
2963
+ valA = a$1[sortBy];
2964
+ valB = b$1[sortBy];
2965
+ } else if (typeof sortBy === "function") {
2966
+ valA = sortBy(a$1);
2967
+ valB = sortBy(b$1);
2968
+ } else {
2969
+ var objectSorterConfig = unpackObjectSorter(sortBy);
2970
+ return multiPropertySorter(objectSorterConfig.sortBy, sortByArr, depth$1, objectSorterConfig.order, objectSorterConfig.comparer || defaultComparer$1, a$1, b$1);
2971
+ }
2972
+ var equality = comparer(valA, valB, order);
2973
+ if ((equality === 0 || valA == null && valB == null) && sortByArr.length > depth$1) return multiPropertySorter(sortByArr[depth$1], sortByArr, depth$1 + 1, order, comparer, a$1, b$1);
2974
+ return equality;
2975
+ };
2976
+ };
2977
+ function getSortStrategy(sortBy, comparer, order) {
2978
+ if (sortBy === void 0 || sortBy === true) return function(a$1, b$1) {
2979
+ return comparer(a$1, b$1, order);
2980
+ };
2981
+ if (typeof sortBy === "string") {
2982
+ throwInvalidConfigErrorIfTrue(sortBy.includes("."), "String syntax not allowed for nested properties.");
2983
+ return function(a$1, b$1) {
2984
+ return comparer(a$1[sortBy], b$1[sortBy], order);
2985
+ };
2986
+ }
2987
+ if (typeof sortBy === "function") return function(a$1, b$1) {
2988
+ return comparer(sortBy(a$1), sortBy(b$1), order);
2989
+ };
2990
+ if (Array.isArray(sortBy)) {
2991
+ var multiPropSorter_1 = multiPropertySorterProvider(comparer);
2992
+ return function(a$1, b$1) {
2993
+ return multiPropSorter_1(sortBy[0], sortBy, 1, order, comparer, a$1, b$1);
2994
+ };
2995
+ }
2996
+ var objectSorterConfig = unpackObjectSorter(sortBy);
2997
+ return getSortStrategy(objectSorterConfig.sortBy, objectSorterConfig.comparer || comparer, objectSorterConfig.order);
2998
+ }
2999
+ var sortArray = function(order, ctx, sortBy, comparer) {
3000
+ var _a;
3001
+ if (!Array.isArray(ctx)) return ctx;
3002
+ if (Array.isArray(sortBy) && sortBy.length < 2) _a = sortBy, sortBy = _a[0];
3003
+ return ctx.sort(getSortStrategy(sortBy, comparer, order));
3004
+ };
3005
+ function createNewSortInstance(opts) {
3006
+ var comparer = castComparer(opts.comparer);
3007
+ return function(arrayToSort) {
3008
+ var ctx = Array.isArray(arrayToSort) && !opts.inPlaceSorting ? arrayToSort.slice() : arrayToSort;
3009
+ return {
3010
+ asc: function(sortBy) {
3011
+ return sortArray(1, ctx, sortBy, comparer);
3012
+ },
3013
+ desc: function(sortBy) {
3014
+ return sortArray(-1, ctx, sortBy, comparer);
3015
+ },
3016
+ by: function(sortBy) {
3017
+ return sortArray(1, ctx, sortBy, comparer);
3018
+ }
3019
+ };
3020
+ };
3021
+ }
3022
+ var defaultComparer = function(a$1, b$1, order) {
3023
+ if (a$1 == null) return order;
3024
+ if (b$1 == null) return -order;
3025
+ if (typeof a$1 !== typeof b$1) return typeof a$1 < typeof b$1 ? -1 : 1;
3026
+ if (a$1 < b$1) return -1;
3027
+ if (a$1 > b$1) return 1;
3028
+ return 0;
3029
+ };
3030
+ var sort = createNewSortInstance({ comparer: defaultComparer });
3031
+ var inPlaceSort = createNewSortInstance({
3032
+ comparer: defaultComparer,
3033
+ inPlaceSorting: true
3034
+ });
3035
+
2935
3036
  //#endregion
2936
3037
  //#region node_modules/fdir/dist/utils.js
2937
3038
  var require_utils$1 = __commonJS({ "node_modules/fdir/dist/utils.js"(exports) {
@@ -6042,11 +6143,7 @@ async function loadUsageData(options) {
6042
6143
  if (options.until && dateStr > options.until) return false;
6043
6144
  return true;
6044
6145
  });
6045
- return results.sort((a$1, b$1) => {
6046
- const dateA = new Date(a$1.date);
6047
- const dateB = new Date(b$1.date);
6048
- return dateB.getTime() - dateA.getTime();
6049
- });
6146
+ return sort(results).desc((item) => new Date(item.date).getTime());
6050
6147
  }
6051
6148
  async function loadSessionData(options) {
6052
6149
  const claudePath = options?.claudePath ?? getDefaultClaudePath();
@@ -6100,9 +6197,7 @@ async function loadSessionData(options) {
6100
6197
  if (options.until && dateStr > options.until) return false;
6101
6198
  return true;
6102
6199
  });
6103
- return results.sort((a$1, b$1) => {
6104
- return b$1.totalCost - a$1.totalCost;
6105
- });
6200
+ return sort(results).desc((item) => item.totalCost);
6106
6201
  }
6107
6202
 
6108
6203
  //#endregion
@@ -7068,7 +7163,7 @@ const consola = createConsola();
7068
7163
  //#endregion
7069
7164
  //#region package.json
7070
7165
  var name = "ccusage";
7071
- var version = "0.2.2";
7166
+ var version = "0.2.3";
7072
7167
  var description = "Usage analysis tool for Claude Code";
7073
7168
 
7074
7169
  //#endregion
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccusage",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "Usage analysis tool for Claude Code",
5
5
  "homepage": "https://github.com/ryoppippi/ccusage#readme",
6
6
  "bugs": {