@actual-app/api 25.12.0-nightly.20251119 → 25.12.0-nightly.20251120

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.
@@ -1,11 +1,11 @@
1
1
  import type { IRuleOptions } from '@rschedule/core';
2
2
  import { Locale } from 'date-fns';
3
- import { type PayeeEntity, type ScheduleEntity } from '../types/models';
3
+ import { type PayeeEntity, type RecurConfig, type ScheduleEntity } from '../types/models';
4
4
  import { Condition } from '../server/rules';
5
5
  export declare function getStatus(nextDate: string, completed: boolean, hasTrans: boolean, upcomingLength?: string): "completed" | "paid" | "due" | "upcoming" | "missed" | "scheduled";
6
6
  export declare function getStatusLabel(status: string): string;
7
7
  export declare function getHasTransactionsQuery(schedules: any): import("./query").Query;
8
- export declare function getRecurringDescription(config: any, dateFormat: any, locale: Locale): string;
8
+ export declare function getRecurringDescription(config: RecurConfig, dateFormat: string, locale: Locale): string;
9
9
  export declare function recurConfigToRSchedule(config: any): IRuleOptions[];
10
10
  export declare function extractScheduleConds(conditions: any): {
11
11
  payee: any;
@@ -11,7 +11,7 @@ export interface RecurConfig {
11
11
  patterns?: RecurPattern[];
12
12
  skipWeekend?: boolean;
13
13
  start: string;
14
- endMode: 'never' | 'after_n_occurrences' | 'on_date';
14
+ endMode?: 'never' | 'after_n_occurrences' | 'on_date';
15
15
  endOccurrences?: number;
16
16
  endDate?: string;
17
17
  weekendSolveMode?: 'before' | 'after';
@@ -12643,7 +12643,7 @@ proto.SyncResponse.prototype.setMerkle = function (value) {
12643
12643
  };
12644
12644
  goog.object.extend(exports, proto);
12645
12645
  function emptyTrie() {
12646
- return { hash: 0 };
12646
+ return createTrieNode({ hash: 0 });
12647
12647
  }
12648
12648
  function isNumberTrieNodeKey(input) {
12649
12649
  return ["0", "1", "2"].includes(input);
@@ -12651,6 +12651,22 @@ function isNumberTrieNodeKey(input) {
12651
12651
  function getKeys(trie) {
12652
12652
  return Object.keys(trie).filter(isNumberTrieNodeKey);
12653
12653
  }
12654
+ function createTrieNode(props = {}) {
12655
+ const result = {};
12656
+ if (props["0"] !== void 0) {
12657
+ result["0"] = props["0"];
12658
+ }
12659
+ if (props["1"] !== void 0) {
12660
+ result["1"] = props["1"];
12661
+ }
12662
+ if (props["2"] !== void 0) {
12663
+ result["2"] = props["2"];
12664
+ }
12665
+ if (props.hash !== void 0) {
12666
+ result.hash = props.hash;
12667
+ }
12668
+ return result;
12669
+ }
12654
12670
  function keyToTimestamp(key) {
12655
12671
  const fullkey = key + "0".repeat(16 - key.length);
12656
12672
  return parseInt(fullkey, 3) * 1e3 * 60;
@@ -12658,7 +12674,12 @@ function keyToTimestamp(key) {
12658
12674
  function insert$1(trie, timestamp) {
12659
12675
  const hash = timestamp.hash();
12660
12676
  const key = Number(Math.floor(timestamp.millis() / 1e3 / 60)).toString(3);
12661
- trie = Object.assign({}, trie, { hash: (trie.hash || 0) ^ hash });
12677
+ trie = createTrieNode({
12678
+ "0": trie["0"],
12679
+ "1": trie["1"],
12680
+ "2": trie["2"],
12681
+ hash: (trie.hash || 0) ^ hash
12682
+ });
12662
12683
  return insertKey(trie, key, hash);
12663
12684
  }
12664
12685
  function insertKey(trie, key, hash) {
@@ -12668,10 +12689,18 @@ function insertKey(trie, key, hash) {
12668
12689
  const c = key[0];
12669
12690
  const t2 = isNumberTrieNodeKey(c) ? trie[c] : void 0;
12670
12691
  const n = t2 || {};
12671
- return Object.assign({}, trie, {
12672
- [c]: Object.assign({}, n, insertKey(n, key.slice(1), hash), {
12673
- hash: (n.hash || 0) ^ hash
12674
- })
12692
+ const childWithInserted = insertKey(n, key.slice(1), hash);
12693
+ const updatedChild = createTrieNode({
12694
+ "0": childWithInserted["0"],
12695
+ "1": childWithInserted["1"],
12696
+ "2": childWithInserted["2"],
12697
+ hash: (n.hash || 0) ^ hash
12698
+ });
12699
+ return createTrieNode({
12700
+ "0": c === "0" ? updatedChild : trie["0"],
12701
+ "1": c === "1" ? updatedChild : trie["1"],
12702
+ "2": c === "2" ? updatedChild : trie["2"],
12703
+ hash: trie.hash
12675
12704
  });
12676
12705
  }
12677
12706
  function diff(trie1, trie2) {
@@ -12713,15 +12742,20 @@ function prune(trie, n = 2) {
12713
12742
  }
12714
12743
  const keys2 = getKeys(trie);
12715
12744
  keys2.sort();
12716
- const next = { hash: trie.hash };
12745
+ const prunedChildren = {};
12717
12746
  for (const k of keys2.slice(-n)) {
12718
12747
  const node2 = trie[k];
12719
12748
  if (!node2) {
12720
12749
  throw new Error(`TrieNode for key ${k} could not be found`);
12721
12750
  }
12722
- next[k] = prune(node2, n);
12751
+ prunedChildren[k] = prune(node2, n);
12723
12752
  }
12724
- return next;
12753
+ return createTrieNode({
12754
+ "0": prunedChildren["0"],
12755
+ "1": prunedChildren["1"],
12756
+ "2": prunedChildren["2"],
12757
+ hash: trie.hash
12758
+ });
12725
12759
  }
12726
12760
  var murmurhash$1 = { exports: {} };
12727
12761
  var hasRequiredMurmurhash;
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actual-app/api",
3
- "version": "25.12.0-nightly.20251119",
3
+ "version": "25.12.0-nightly.20251120",
4
4
  "license": "MIT",
5
5
  "description": "An API for Actual",
6
6
  "engines": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actual-app/api",
3
- "version": "25.12.0-nightly.20251119",
3
+ "version": "25.12.0-nightly.20251120",
4
4
  "license": "MIT",
5
5
  "description": "An API for Actual",
6
6
  "engines": {