xfingine 0.0.2 → 0.1.0

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/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "xfingine",
3
3
  "type": "module",
4
4
  "description": "WebAssembly bindings for xfingine — pure computation engines for personal finance",
5
- "version": "0.0.2",
5
+ "version": "0.1.0",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
8
8
  "type": "git",
package/xfingine.d.ts CHANGED
@@ -91,6 +91,58 @@ export interface EmiResult {
91
91
 
92
92
 
93
93
 
94
+ export interface CategoryRule {
95
+ pattern: string;
96
+ category: string;
97
+ merchant: string;
98
+ }
99
+
100
+ export interface MapInput {
101
+ narration: string;
102
+ }
103
+
104
+ export interface MapOutput {
105
+ category: string;
106
+ merchant: string;
107
+ }
108
+
109
+ export interface CategorizeRequest {
110
+ data: MapInput[];
111
+ rules: CategoryRule[];
112
+ }
113
+
114
+ export interface CategorizeResponse {
115
+ data: (MapOutput | null)[];
116
+ }
117
+
118
+ export interface DeriveInput {
119
+ narration: string;
120
+ category: string;
121
+ merchant: string;
122
+ }
123
+
124
+ export interface DeriveRulesRequest {
125
+ data: DeriveInput[];
126
+ }
127
+
128
+ export interface DeriveRulesResponse {
129
+ rules: CategoryRule[];
130
+ }
131
+
132
+
133
+
134
+ /**
135
+ * Run the engine over a plain JavaScript object, returning a plain
136
+ * JavaScript object.
137
+ */
138
+ export function categorize_transactions(request: CategorizeRequest): CategorizeResponse;
139
+
140
+ /**
141
+ * Run the engine over a JSON request string, returning a JSON result
142
+ * string.
143
+ */
144
+ export function categorize_transactions_json(request_json: string): string;
145
+
94
146
  /**
95
147
  * Run the engine over a plain JavaScript object, returning a plain
96
148
  * JavaScript object.
@@ -103,6 +155,18 @@ export function compute_emi(request: EmiRequest): EmiResult;
103
155
  */
104
156
  export function compute_emi_json(request_json: string): string;
105
157
 
158
+ /**
159
+ * Run the engine over a plain JavaScript object, returning a plain
160
+ * JavaScript object.
161
+ */
162
+ export function derive_rules(request: DeriveRulesRequest): DeriveRulesResponse;
163
+
164
+ /**
165
+ * Run the engine over a JSON request string, returning a JSON result
166
+ * string.
167
+ */
168
+ export function derive_rules_json(request_json: string): string;
169
+
106
170
  /**
107
171
  * The version of the `xfingine` engine this bundle was built from.
108
172
  */
@@ -112,6 +176,10 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
112
176
 
113
177
  export interface InitOutput {
114
178
  readonly memory: WebAssembly.Memory;
179
+ readonly categorize_transactions: (a: any) => [number, number, number];
180
+ readonly categorize_transactions_json: (a: number, b: number) => [number, number, number, number];
181
+ readonly derive_rules: (a: any) => [number, number, number];
182
+ readonly derive_rules_json: (a: number, b: number) => [number, number, number, number];
115
183
  readonly compute_emi: (a: any) => [number, number, number];
116
184
  readonly compute_emi_json: (a: number, b: number) => [number, number, number, number];
117
185
  readonly version: () => [number, number];
package/xfingine.js CHANGED
@@ -1,5 +1,46 @@
1
1
  /* @ts-self-types="./xfingine.d.ts" */
2
2
 
3
+ /**
4
+ * Run the engine over a plain JavaScript object, returning a plain
5
+ * JavaScript object.
6
+ * @param {CategorizeRequest} request
7
+ * @returns {CategorizeResponse}
8
+ */
9
+ export function categorize_transactions(request) {
10
+ const ret = wasm.categorize_transactions(request);
11
+ if (ret[2]) {
12
+ throw takeFromExternrefTable0(ret[1]);
13
+ }
14
+ return takeFromExternrefTable0(ret[0]);
15
+ }
16
+
17
+ /**
18
+ * Run the engine over a JSON request string, returning a JSON result
19
+ * string.
20
+ * @param {string} request_json
21
+ * @returns {string}
22
+ */
23
+ export function categorize_transactions_json(request_json) {
24
+ let deferred3_0;
25
+ let deferred3_1;
26
+ try {
27
+ const ptr0 = passStringToWasm0(request_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
28
+ const len0 = WASM_VECTOR_LEN;
29
+ const ret = wasm.categorize_transactions_json(ptr0, len0);
30
+ var ptr2 = ret[0];
31
+ var len2 = ret[1];
32
+ if (ret[3]) {
33
+ ptr2 = 0; len2 = 0;
34
+ throw takeFromExternrefTable0(ret[2]);
35
+ }
36
+ deferred3_0 = ptr2;
37
+ deferred3_1 = len2;
38
+ return getStringFromWasm0(ptr2, len2);
39
+ } finally {
40
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
41
+ }
42
+ }
43
+
3
44
  /**
4
45
  * Run the engine over a plain JavaScript object, returning a plain
5
46
  * JavaScript object.
@@ -41,6 +82,47 @@ export function compute_emi_json(request_json) {
41
82
  }
42
83
  }
43
84
 
85
+ /**
86
+ * Run the engine over a plain JavaScript object, returning a plain
87
+ * JavaScript object.
88
+ * @param {DeriveRulesRequest} request
89
+ * @returns {DeriveRulesResponse}
90
+ */
91
+ export function derive_rules(request) {
92
+ const ret = wasm.derive_rules(request);
93
+ if (ret[2]) {
94
+ throw takeFromExternrefTable0(ret[1]);
95
+ }
96
+ return takeFromExternrefTable0(ret[0]);
97
+ }
98
+
99
+ /**
100
+ * Run the engine over a JSON request string, returning a JSON result
101
+ * string.
102
+ * @param {string} request_json
103
+ * @returns {string}
104
+ */
105
+ export function derive_rules_json(request_json) {
106
+ let deferred3_0;
107
+ let deferred3_1;
108
+ try {
109
+ const ptr0 = passStringToWasm0(request_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
110
+ const len0 = WASM_VECTOR_LEN;
111
+ const ret = wasm.derive_rules_json(ptr0, len0);
112
+ var ptr2 = ret[0];
113
+ var len2 = ret[1];
114
+ if (ret[3]) {
115
+ ptr2 = 0; len2 = 0;
116
+ throw takeFromExternrefTable0(ret[2]);
117
+ }
118
+ deferred3_0 = ptr2;
119
+ deferred3_1 = len2;
120
+ return getStringFromWasm0(ptr2, len2);
121
+ } finally {
122
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
123
+ }
124
+ }
125
+
44
126
  /**
45
127
  * The version of the `xfingine` engine this bundle was built from.
46
128
  * @returns {string}
package/xfingine_bg.wasm CHANGED
Binary file