@firela/api-types 0.0.0-canary.7cd70834 → 0.0.0-canary.7f2ecc16

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.
package/dist/index.mjs CHANGED
@@ -452,7 +452,7 @@ var BeanAccountsService = class {
452
452
  * @param data.type Filter by account type
453
453
  * @param data.status Filter by status
454
454
  * @param data.isCustom Filter by custom (user-created) accounts only
455
- * @param data.search Search term for path or i18nKey
455
+ * @param data.search Search term for account path
456
456
  * @param data.limit Maximum number of results
457
457
  * @param data.offset Number of results to skip
458
458
  * @returns AccountListResponseDto Accounts retrieved successfully
@@ -524,7 +524,7 @@ var BeanAccountsService = class {
524
524
  }
525
525
  /**
526
526
  * Delete account
527
- * Deletes an account (only if no transactions)
527
+ * Deletes an account (only if no active transactions; voided/superseded residual postings are cleaned up)
528
528
  * @param data The data for the request.
529
529
  * @param data.id Account UUID
530
530
  * @param data.region Region code for tenant context
@@ -541,7 +541,7 @@ var BeanAccountsService = class {
541
541
  },
542
542
  errors: {
543
543
  404: "Account not found",
544
- 409: "Account has transactions and cannot be deleted"
544
+ 409: "Account has active transactions and cannot be deleted"
545
545
  }
546
546
  });
547
547
  }
@@ -597,6 +597,32 @@ var BeanAccountsService = class {
597
597
  }
598
598
  });
599
599
  }
600
+ /**
601
+ * Post an opening-balance transaction
602
+ * Posts a double-entry opening-balance transaction against Equity:Opening-Balances for an existing Assets/Liabilities account. At most one active opening balance per account.
603
+ * @param data The data for the request.
604
+ * @param data.id Account UUID
605
+ * @param data.region Region code for tenant context
606
+ * @param data.requestBody
607
+ * @returns OpeningBalanceResultDto Opening-balance transaction created
608
+ * @throws ApiError
609
+ */
610
+ static accountControllerAddOpeningBalance(data) {
611
+ return request(OpenAPI, {
612
+ method: "POST",
613
+ url: "/api/v1/{region}/bean/accounts/{id}/opening-balance",
614
+ path: {
615
+ id: data.id,
616
+ region: data.region
617
+ },
618
+ body: data.requestBody,
619
+ mediaType: "application/json",
620
+ errors: {
621
+ 404: "Account not found",
622
+ 409: "An opening balance already exists for this account"
623
+ }
624
+ });
625
+ }
600
626
  };
601
627
  var BeanTransactionsService = class {
602
628
  /**
@@ -638,6 +664,7 @@ var BeanTransactionsService = class {
638
664
  * @param data.status Filter by transaction status
639
665
  * @param data.search Search in narration and payee fields (max 200 chars)
640
666
  * @param data.accountId Filter by account ID (transactions with postings to this account)
667
+ * @param data.category Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
641
668
  * @returns TransactionListResponseDto Transaction list
642
669
  * @throws ApiError
643
670
  */
@@ -655,25 +682,93 @@ var BeanTransactionsService = class {
655
682
  dateTo: data.dateTo,
656
683
  status: data.status,
657
684
  search: data.search,
658
- accountId: data.accountId
685
+ accountId: data.accountId,
686
+ category: data.category
659
687
  },
660
688
  errors: {
689
+ 400: "Validation failed",
661
690
  401: "Authentication required"
662
691
  }
663
692
  });
664
693
  }
665
694
  /**
695
+ * @deprecated
696
+ * Batch create transactions (DEPRECATED)
697
+ * DEPRECATED: Use POST /:region/bean/import/provider/:name/sync instead. This endpoint skips dedup, rule matching, and review branching.
666
698
  * @param data The data for the request.
667
699
  * @param data.region Region code for tenant context
668
- * @returns unknown
700
+ * @param data.requestBody
701
+ * @returns BatchTransactionResponseDto Transactions processed
669
702
  * @throws ApiError
670
703
  */
671
- static transactionController(data) {
704
+ static transactionControllerCreateBatch(data) {
672
705
  return request(OpenAPI, {
673
706
  method: "POST",
674
707
  url: "/api/v1/{region}/bean/transactions/batch",
675
708
  path: {
676
709
  region: data.region
710
+ },
711
+ body: data.requestBody,
712
+ mediaType: "application/json",
713
+ errors: {
714
+ 400: "Invalid input",
715
+ 401: "Authentication required"
716
+ }
717
+ });
718
+ }
719
+ /**
720
+ * Correct (supersede) a transaction
721
+ * Atomically voids the original (SUPERSEDED) and creates a replacement through the full validation pipeline.
722
+ * @param data The data for the request.
723
+ * @param data.id Original transaction ID to correct
724
+ * @param data.region Region code for tenant context
725
+ * @param data.requestBody
726
+ * @returns TransactionDetailDto Corrected transaction created
727
+ * @throws ApiError
728
+ */
729
+ static transactionControllerCorrect(data) {
730
+ return request(OpenAPI, {
731
+ method: "POST",
732
+ url: "/api/v1/{region}/bean/transactions/{id}/correct",
733
+ path: {
734
+ id: data.id,
735
+ region: data.region
736
+ },
737
+ body: data.requestBody,
738
+ mediaType: "application/json",
739
+ errors: {
740
+ 404: "Original transaction not found",
741
+ 409: "Original no longer ACTIVE (concurrent modification)",
742
+ 422: "Pipeline validation failed (does not balance, invalid accounts)"
743
+ }
744
+ });
745
+ }
746
+ /**
747
+ * Suggest transaction tags
748
+ * Returns distinct tags from the user ACTIVE transactions, sorted by usage, for autocomplete. Optional q performs a case-insensitive prefix match.
749
+ * @param data The data for the request.
750
+ * @param data.region Region code for tenant context
751
+ * @param data.q Prefix match, case-insensitive (max 50 chars)
752
+ * @param data.sort usage (default) or name
753
+ * @param data.limit Max suggestions (1-100, default 10)
754
+ * @returns TagSuggestionsResponseDto Tag suggestions
755
+ * @throws ApiError
756
+ */
757
+ static transactionControllerSuggestTags(data) {
758
+ return request(OpenAPI, {
759
+ method: "GET",
760
+ url: "/api/v1/{region}/bean/transactions/tags",
761
+ path: {
762
+ region: data.region
763
+ },
764
+ query: {
765
+ q: data.q,
766
+ sort: data.sort,
767
+ limit: data.limit
768
+ },
769
+ errors: {
770
+ 400: "Validation failed",
771
+ 401: "Authentication required"
677
772
  }
678
773
  });
679
774
  }
@@ -728,17 +823,26 @@ var BeanTransactionsService = class {
728
823
  });
729
824
  }
730
825
  /**
826
+ * Void transaction
827
+ * Soft-deletes a transaction by marking it as VOIDED
731
828
  * @param data The data for the request.
829
+ * @param data.id Transaction ID
732
830
  * @param data.region Region code for tenant context
733
- * @returns void
831
+ * @returns void Transaction voided successfully
734
832
  * @throws ApiError
735
833
  */
736
- static transactionController1(data) {
834
+ static transactionControllerDelete(data) {
737
835
  return request(OpenAPI, {
738
836
  method: "DELETE",
739
837
  url: "/api/v1/{region}/bean/transactions/{id}",
740
838
  path: {
839
+ id: data.id,
741
840
  region: data.region
841
+ },
842
+ errors: {
843
+ 400: "Transaction already voided",
844
+ 401: "Authentication required",
845
+ 404: "Transaction not found"
742
846
  }
743
847
  });
744
848
  }
@@ -748,7 +852,8 @@ var BeanBalancesService = class {
748
852
  * Query account balance
749
853
  * Calculate account balance at a specific date for a single currency
750
854
  * @param data The data for the request.
751
- * @param data.account Account name (e.g., "Assets:Bank:Checking")
855
+ * @param data.account Account name (e.g., "Assets:Checking")
856
+ * @param data.region Region code for tenant context
752
857
  * @param data.date Date to calculate balance at (ISO 8601 format)
753
858
  * @param data.currency Currency to query (e.g., "USD", "CNY")
754
859
  * @returns BalanceResponseDto Balance calculated successfully
@@ -758,6 +863,9 @@ var BeanBalancesService = class {
758
863
  return request(OpenAPI, {
759
864
  method: "GET",
760
865
  url: "/api/v1/{region}/bean/balances",
866
+ path: {
867
+ region: data.region
868
+ },
761
869
  query: {
762
870
  account: data.account,
763
871
  date: data.date,
@@ -772,13 +880,18 @@ var BeanBalancesService = class {
772
880
  /**
773
881
  * Query multi-currency account balance
774
882
  * Calculate account balances for all currencies at a specific date
883
+ * @param data The data for the request.
884
+ * @param data.region Region code for tenant context
775
885
  * @returns MultiCurrencyBalanceResponseDto Balances calculated successfully
776
886
  * @throws ApiError
777
887
  */
778
- static balanceControllerGetMultiCurrencyBalance() {
888
+ static balanceControllerGetMultiCurrencyBalance(data) {
779
889
  return request(OpenAPI, {
780
890
  method: "GET",
781
891
  url: "/api/v1/{region}/bean/balances/multi-currency",
892
+ path: {
893
+ region: data.region
894
+ },
782
895
  errors: {
783
896
  400: "Invalid query parameters",
784
897
  401: "User not authenticated"
@@ -788,17 +901,26 @@ var BeanBalancesService = class {
788
901
  };
789
902
  var BeanCommoditiesService = class {
790
903
  /**
904
+ * Create a new commodity
905
+ * Creates a new commodity definition for the authenticated user
791
906
  * @param data The data for the request.
792
907
  * @param data.region Region code for tenant context
793
- * @returns unknown
908
+ * @param data.requestBody
909
+ * @returns CommodityResponseDto Commodity created successfully
794
910
  * @throws ApiError
795
911
  */
796
- static commodityController(data) {
912
+ static commodityControllerCreate(data) {
797
913
  return request(OpenAPI, {
798
914
  method: "POST",
799
915
  url: "/api/v1/{region}/bean/commodities",
800
916
  path: {
801
917
  region: data.region
918
+ },
919
+ body: data.requestBody,
920
+ mediaType: "application/json",
921
+ errors: {
922
+ 400: "Invalid input data",
923
+ 409: "Commodity already exists"
802
924
  }
803
925
  });
804
926
  }
@@ -848,57 +970,81 @@ var BeanCommoditiesService = class {
848
970
  });
849
971
  }
850
972
  /**
973
+ * Update commodity
974
+ * Updates an existing commodity definition. Symbol cannot be changed.
851
975
  * @param data The data for the request.
976
+ * @param data.symbol Commodity symbol
852
977
  * @param data.region Region code for tenant context
853
- * @returns unknown
978
+ * @param data.requestBody
979
+ * @returns CommodityResponseDto Commodity updated successfully
854
980
  * @throws ApiError
855
981
  */
856
- static commodityController1(data) {
982
+ static commodityControllerUpdate(data) {
857
983
  return request(OpenAPI, {
858
984
  method: "PUT",
859
985
  url: "/api/v1/{region}/bean/commodities/{symbol}",
860
986
  path: {
987
+ symbol: data.symbol,
861
988
  region: data.region
989
+ },
990
+ body: data.requestBody,
991
+ mediaType: "application/json",
992
+ errors: {
993
+ 400: "Invalid input data",
994
+ 404: "Commodity not found"
862
995
  }
863
996
  });
864
997
  }
865
998
  /**
999
+ * Delete commodity
1000
+ * Deletes a commodity definition
866
1001
  * @param data The data for the request.
1002
+ * @param data.symbol Commodity symbol
867
1003
  * @param data.region Region code for tenant context
868
- * @returns void
1004
+ * @returns void Commodity deleted successfully
869
1005
  * @throws ApiError
870
1006
  */
871
- static commodityController2(data) {
1007
+ static commodityControllerDelete(data) {
872
1008
  return request(OpenAPI, {
873
1009
  method: "DELETE",
874
1010
  url: "/api/v1/{region}/bean/commodities/{symbol}",
875
1011
  path: {
1012
+ symbol: data.symbol,
876
1013
  region: data.region
1014
+ },
1015
+ errors: {
1016
+ 404: "Commodity not found"
877
1017
  }
878
1018
  });
879
1019
  }
880
1020
  /**
1021
+ * Ensure commodity exists
1022
+ * Gets existing commodity or creates it with automatic initialization from OpenBB
881
1023
  * @param data The data for the request.
1024
+ * @param data.symbol Commodity symbol
882
1025
  * @param data.region Region code for tenant context
883
- * @returns unknown
1026
+ * @returns CommodityResponseDto Commodity retrieved or created
884
1027
  * @throws ApiError
885
1028
  */
886
- static commodityController3(data) {
1029
+ static commodityControllerGetOrCreate(data) {
887
1030
  return request(OpenAPI, {
888
1031
  method: "POST",
889
1032
  url: "/api/v1/{region}/bean/commodities/{symbol}/ensure",
890
1033
  path: {
1034
+ symbol: data.symbol,
891
1035
  region: data.region
892
1036
  }
893
1037
  });
894
1038
  }
895
1039
  /**
1040
+ * Bulk create commodities
1041
+ * Creates multiple commodities from a list of symbols, useful for initialization
896
1042
  * @param data The data for the request.
897
1043
  * @param data.region Region code for tenant context
898
- * @returns unknown
1044
+ * @returns CommodityResponseDto Commodities created successfully
899
1045
  * @throws ApiError
900
1046
  */
901
- static commodityController4(data) {
1047
+ static commodityControllerBulkCreate(data) {
902
1048
  return request(OpenAPI, {
903
1049
  method: "POST",
904
1050
  url: "/api/v1/{region}/bean/commodities/bulk",
@@ -934,7 +1080,7 @@ var ProviderSyncService = class {
934
1080
  *
935
1081
  * @param data The data for the request.
936
1082
  * @param data.providerName Provider name
937
- * @param data.region Region code
1083
+ * @param data.region Region code for tenant context
938
1084
  * @param data.requestBody
939
1085
  * @returns ProviderSyncResponseDto Sync completed successfully
940
1086
  * @throws ApiError
@@ -959,13 +1105,18 @@ var ProviderSyncService = class {
959
1105
  /**
960
1106
  * Get supported providers
961
1107
  * Returns a list of all providers supported by the sync endpoint.
1108
+ * @param data The data for the request.
1109
+ * @param data.region Region code for tenant context
962
1110
  * @returns SupportedProvidersResponseDto List of supported providers
963
1111
  * @throws ApiError
964
1112
  */
965
- static providerSyncControllerGetSupportedProviders() {
1113
+ static providerSyncControllerGetSupportedProviders(data) {
966
1114
  return request(OpenAPI, {
967
1115
  method: "GET",
968
1116
  url: "/api/v1/{region}/bean/import/provider/supported",
1117
+ path: {
1118
+ region: data.region
1119
+ },
969
1120
  errors: {
970
1121
  401: "Missing or invalid authentication"
971
1122
  }
@@ -976,6 +1127,7 @@ var ProviderSyncService = class {
976
1127
  * Returns whether a specific provider is supported.
977
1128
  * @param data The data for the request.
978
1129
  * @param data.providerName Provider name to check
1130
+ * @param data.region Region code for tenant context
979
1131
  * @returns unknown Provider support status
980
1132
  * @throws ApiError
981
1133
  */
@@ -984,7 +1136,8 @@ var ProviderSyncService = class {
984
1136
  method: "GET",
985
1137
  url: "/api/v1/{region}/bean/import/provider/{providerName}/supported",
986
1138
  path: {
987
- providerName: data.providerName
1139
+ providerName: data.providerName,
1140
+ region: data.region
988
1141
  },
989
1142
  errors: {
990
1143
  401: "Missing or invalid authentication"
@@ -1021,6 +1174,20 @@ var HealthService = class {
1021
1174
  }
1022
1175
  });
1023
1176
  }
1177
+ /**
1178
+ * Check OpenBB schema status
1179
+ * @returns unknown OpenBB status
1180
+ * @throws ApiError
1181
+ */
1182
+ static healthControllerCheckOpenBb() {
1183
+ return request(OpenAPI, {
1184
+ method: "GET",
1185
+ url: "/api/v1/health/openbb",
1186
+ errors: {
1187
+ 503: "OpenBB unavailable"
1188
+ }
1189
+ });
1190
+ }
1024
1191
  /**
1025
1192
  * Check Redis connection health
1026
1193
  * @returns unknown Redis is healthy
@@ -1084,62 +1251,6 @@ var HealthService = class {
1084
1251
  }
1085
1252
  });
1086
1253
  }
1087
- /**
1088
- * Check health of a specific data enhancer
1089
- * @param data The data for the request.
1090
- * @param data.name Data enhancer name
1091
- * @returns unknown Data enhancer is healthy
1092
- * @throws ApiError
1093
- */
1094
- static healthControllerGetHealthOfDataEnhancer(data) {
1095
- return request(OpenAPI, {
1096
- method: "GET",
1097
- url: "/api/v1/health/data-enhancer/{name}",
1098
- path: {
1099
- name: data.name
1100
- },
1101
- errors: {
1102
- 401: "Unauthorized",
1103
- 503: "Data enhancer unavailable"
1104
- }
1105
- });
1106
- }
1107
- /**
1108
- * Check health of all data providers
1109
- * @returns unknown Data providers health status
1110
- * @throws ApiError
1111
- */
1112
- static healthControllerCheckDataProviders() {
1113
- return request(OpenAPI, {
1114
- method: "GET",
1115
- url: "/api/v1/health/data-providers",
1116
- errors: {
1117
- 401: "Unauthorized",
1118
- 503: "Data providers check failed"
1119
- }
1120
- });
1121
- }
1122
- /**
1123
- * Check health of a specific data provider
1124
- * @param data The data for the request.
1125
- * @param data.dataSource Data source identifier
1126
- * @returns unknown Data provider is healthy
1127
- * @throws ApiError
1128
- */
1129
- static healthControllerGetHealthOfDataProvider(data) {
1130
- return request(OpenAPI, {
1131
- method: "GET",
1132
- url: "/api/v1/health/data-provider/{dataSource}",
1133
- path: {
1134
- dataSource: data.dataSource
1135
- },
1136
- errors: {
1137
- 400: "Invalid data source",
1138
- 401: "Unauthorized",
1139
- 503: "Data provider unavailable"
1140
- }
1141
- });
1142
- }
1143
1254
  };
1144
1255
  export {
1145
1256
  BeanAccountsService,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firela/api-types",
3
- "version": "0.0.0-canary.7cd70834",
3
+ "version": "0.0.0-canary.7f2ecc16",
4
4
  "description": "TypeScript types generated from IGN OpenAPI specification",
5
5
  "license": "MIT",
6
6
  "author": "FireLa Team",
@@ -24,8 +24,7 @@
24
24
  "src"
25
25
  ],
26
26
  "scripts": {
27
- "sync": "npx ts-node scripts/sync-spec.ts",
28
- "generate": "npm run sync && openapi-ts",
27
+ "generate": "openapi-ts",
29
28
  "build": "tsup src/index.ts --format cjs,esm --dts --clean",
30
29
  "lint": "spectral lint openapi.yaml",
31
30
  "prepublishOnly": "npm run generate && npm run build"