@develit-services/bank 0.1.8 → 0.2.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/dist/database/schema.cjs +1 -1
- package/dist/database/schema.d.cts +1 -1
- package/dist/database/schema.d.mts +1 -1
- package/dist/database/schema.d.ts +1 -1
- package/dist/database/schema.mjs +1 -1
- package/dist/export/worker.cjs +7 -124
- package/dist/export/worker.d.cts +6 -9
- package/dist/export/worker.d.mts +6 -9
- package/dist/export/worker.d.ts +6 -9
- package/dist/export/worker.mjs +7 -124
- package/dist/export/workflows.cjs +27 -20
- package/dist/export/workflows.mjs +27 -20
- package/dist/shared/{bank.DCTBX1dp.d.ts → bank.2BgwPCw_.d.ts} +8 -8
- package/dist/shared/{bank.B_nwGY5X.mjs → bank.B6xe3pyX.mjs} +4 -8
- package/dist/shared/{bank.BFGDv0oC.d.cts → bank.BGZYksmV.d.cts} +8 -4
- package/dist/shared/{bank.BFGDv0oC.d.mts → bank.BGZYksmV.d.mts} +8 -4
- package/dist/shared/{bank.BFGDv0oC.d.ts → bank.BGZYksmV.d.ts} +8 -4
- package/dist/shared/{bank.DSVzOCrh.d.cts → bank.BOe_Qmuw.d.mts} +8 -8
- package/dist/shared/{bank.DHj3MnQJ.mjs → bank.BTcR2cZW.mjs} +16 -7
- package/dist/shared/{bank.DulU-rr_.mjs → bank.BgD9dJ3A.mjs} +1 -1
- package/dist/shared/{bank.DrMnskU2.cjs → bank.DCUsXXjG.cjs} +15 -6
- package/dist/shared/{bank.YNS7gdPU.cjs → bank.Dp5YErpd.cjs} +1 -1
- package/dist/shared/{bank.CrRs_x0N.d.mts → bank.RD4xwHFf.d.cts} +8 -8
- package/dist/shared/{bank.pT49Hbb4.cjs → bank.U_QWeuG5.cjs} +2 -7
- package/dist/types.cjs +2 -2
- package/dist/types.d.cts +8 -8
- package/dist/types.d.mts +8 -8
- package/dist/types.d.ts +8 -8
- package/dist/types.mjs +2 -2
- package/package.json +1 -1
package/dist/database/schema.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { g as account, h as accountCredentials, d as batch, o as ott, e as payment, f as paymentRelations } from '../shared/bank.BGZYksmV.cjs';
|
|
2
2
|
import 'drizzle-orm/sqlite-core';
|
|
3
3
|
import 'drizzle-orm';
|
|
4
4
|
import 'zod';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { g as account, h as accountCredentials, d as batch, o as ott, e as payment, f as paymentRelations } from '../shared/bank.BGZYksmV.mjs';
|
|
2
2
|
import 'drizzle-orm/sqlite-core';
|
|
3
3
|
import 'drizzle-orm';
|
|
4
4
|
import 'zod';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { g as account, h as accountCredentials, d as batch, o as ott, e as payment, f as paymentRelations } from '../shared/bank.BGZYksmV.js';
|
|
2
2
|
import 'drizzle-orm/sqlite-core';
|
|
3
3
|
import 'drizzle-orm';
|
|
4
4
|
import 'zod';
|
package/dist/database/schema.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { D as account, G as accountCredentials, w as batch, z as ott, x as payment, y as paymentRelations } from '../shared/bank.
|
|
1
|
+
export { D as account, G as accountCredentials, w as batch, z as ott, x as payment, y as paymentRelations } from '../shared/bank.BTcR2cZW.mjs';
|
|
2
2
|
import '@develit-io/backend-sdk';
|
|
3
3
|
import 'drizzle-orm/sqlite-core';
|
|
4
4
|
import 'date-fns';
|
package/dist/export/worker.cjs
CHANGED
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
const backendSdk = require('@develit-io/backend-sdk');
|
|
4
4
|
const cloudflare_workers = require('cloudflare:workers');
|
|
5
5
|
const d1 = require('drizzle-orm/d1');
|
|
6
|
-
const database_schema = require('../shared/bank.
|
|
6
|
+
const database_schema = require('../shared/bank.DCUsXXjG.cjs');
|
|
7
7
|
require('jose');
|
|
8
8
|
const generalCodes = require('@develit-io/general-codes');
|
|
9
9
|
const zod = require('zod');
|
|
10
|
-
const bank = require('../shared/bank.
|
|
10
|
+
const bank = require('../shared/bank.U_QWeuG5.cjs');
|
|
11
11
|
const drizzleOrm = require('drizzle-orm');
|
|
12
12
|
require('drizzle-orm/sqlite-core');
|
|
13
13
|
require('date-fns');
|
|
14
14
|
require('drizzle-zod');
|
|
15
15
|
require('drizzle-orm/relations');
|
|
16
|
-
require('../shared/bank.
|
|
16
|
+
require('../shared/bank.Dp5YErpd.cjs');
|
|
17
17
|
|
|
18
18
|
const upsertAccountCommand = (db, { account }) => {
|
|
19
19
|
const id = account.id || backendSdk.uuidv4();
|
|
@@ -385,102 +385,6 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
|
|
|
385
385
|
async _getAccounts() {
|
|
386
386
|
return await getAllAccountsQuery(this.db);
|
|
387
387
|
}
|
|
388
|
-
async _saveOrUpdatePayments(accounts) {
|
|
389
|
-
const allFetchedPayments = [];
|
|
390
|
-
const connectorKeys = new Set(
|
|
391
|
-
accounts.map(({ connectorKey }) => connectorKey)
|
|
392
|
-
);
|
|
393
|
-
for (const connectorKey of connectorKeys) {
|
|
394
|
-
await this._initiateBankConnector({ connectorKey });
|
|
395
|
-
for (const account of accounts.filter(
|
|
396
|
-
(acc) => acc.connectorKey === connectorKey
|
|
397
|
-
)) {
|
|
398
|
-
if (!account.lastSyncedAt) {
|
|
399
|
-
this.log({
|
|
400
|
-
message: `Skipping account ${account.id} as it has no lastSyncedAt date.`
|
|
401
|
-
});
|
|
402
|
-
continue;
|
|
403
|
-
}
|
|
404
|
-
const payments = await this.bankConnector.getAllAccountPayments({
|
|
405
|
-
db: this.db,
|
|
406
|
-
environment: this.env.ENVIRONMENT,
|
|
407
|
-
account,
|
|
408
|
-
filter: {
|
|
409
|
-
dateFrom: account.lastSyncedAt
|
|
410
|
-
}
|
|
411
|
-
});
|
|
412
|
-
if (!payments || payments.length === 0) continue;
|
|
413
|
-
payments.forEach((payment) => {
|
|
414
|
-
payment.direction = database_schema.getPaymentDirection(payment, account.iban);
|
|
415
|
-
});
|
|
416
|
-
allFetchedPayments.push(...payments);
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
if (allFetchedPayments.length < 1) return;
|
|
420
|
-
const bankRefIds = allFetchedPayments.map((payment) => payment.bankRefId).filter(Boolean);
|
|
421
|
-
const alreadyExistingPayments = await bank.getPaymentsByBankRefIdsQuery(
|
|
422
|
-
this.db,
|
|
423
|
-
{
|
|
424
|
-
ids: bankRefIds
|
|
425
|
-
}
|
|
426
|
-
);
|
|
427
|
-
const eventsToPush = [];
|
|
428
|
-
const paymentsCommands = allFetchedPayments.map((payment) => {
|
|
429
|
-
const isAlreadyExisting = alreadyExistingPayments.some(
|
|
430
|
-
(existingPayment) => existingPayment.bankRefId === payment.bankRefId
|
|
431
|
-
);
|
|
432
|
-
if (isAlreadyExisting) {
|
|
433
|
-
eventsToPush.push({
|
|
434
|
-
eventType: "BANK_PAYMENT",
|
|
435
|
-
eventSignal: "paymentUpdated",
|
|
436
|
-
bankPayment: payment,
|
|
437
|
-
metadata: {
|
|
438
|
-
correlationId: payment.correlationId,
|
|
439
|
-
entityId: payment.id,
|
|
440
|
-
idempotencySuffix: payment.status,
|
|
441
|
-
timestamp: (/* @__PURE__ */ new Date()).toDateString()
|
|
442
|
-
}
|
|
443
|
-
});
|
|
444
|
-
return bank.updatePaymentCommand(this.db, { payment }).command;
|
|
445
|
-
}
|
|
446
|
-
eventsToPush.push({
|
|
447
|
-
eventType: "BANK_PAYMENT",
|
|
448
|
-
eventSignal: "paymentCreated",
|
|
449
|
-
bankPayment: payment,
|
|
450
|
-
metadata: {
|
|
451
|
-
correlationId: payment.correlationId,
|
|
452
|
-
entityId: payment.id,
|
|
453
|
-
timestamp: (/* @__PURE__ */ new Date()).toDateString()
|
|
454
|
-
}
|
|
455
|
-
});
|
|
456
|
-
return bank.createPaymentCommand(this.db, { payment }).command;
|
|
457
|
-
});
|
|
458
|
-
await this.db.batch([paymentsCommands[0], ...paymentsCommands.slice(1)]);
|
|
459
|
-
await this.pushToQueue(
|
|
460
|
-
this.env.QUEUE_BUS_QUEUE,
|
|
461
|
-
eventsToPush
|
|
462
|
-
);
|
|
463
|
-
for (const account of accounts) {
|
|
464
|
-
const paymentsForAccount = allFetchedPayments.filter(
|
|
465
|
-
(payment) => (payment.direction === "OUTGOING" ? payment.debtorIban : payment.creditorIban) === account.iban
|
|
466
|
-
);
|
|
467
|
-
let lastSyncPayment;
|
|
468
|
-
lastSyncPayment = paymentsForAccount.filter(({ status }) => status !== "COMPLETED").sort(
|
|
469
|
-
(a, b) => (a.createdAt?.getTime() || 0) - (b.createdAt?.getTime() || 0)
|
|
470
|
-
)[0];
|
|
471
|
-
if (!lastSyncPayment) {
|
|
472
|
-
lastSyncPayment = paymentsForAccount.sort(
|
|
473
|
-
(a, b) => (b.createdAt?.getTime() || 0) - (a.createdAt?.getTime() || 0)
|
|
474
|
-
)[0];
|
|
475
|
-
}
|
|
476
|
-
if (lastSyncPayment.createdAt) {
|
|
477
|
-
await bank.updateAccountLastSyncCommand(this.db, {
|
|
478
|
-
accountId: account.id,
|
|
479
|
-
lastSyncedAt: lastSyncPayment.createdAt
|
|
480
|
-
}).command.execute();
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
}
|
|
484
388
|
async _initiateBankConnector({
|
|
485
389
|
connectorKey,
|
|
486
390
|
withAuth
|
|
@@ -600,34 +504,14 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
|
|
|
600
504
|
}
|
|
601
505
|
);
|
|
602
506
|
}
|
|
603
|
-
async syncAccounts(
|
|
507
|
+
async syncAccounts() {
|
|
604
508
|
return this.handleAction(
|
|
605
509
|
null,
|
|
606
510
|
{ successMessage: "Accounts synchronized successfully" },
|
|
607
511
|
async () => {
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
accounts = await this._getAccounts();
|
|
612
|
-
}
|
|
613
|
-
for (const account of accounts.filter(
|
|
614
|
-
(acc) => !!!acc.connectorKey.includes("MOCK")
|
|
615
|
-
)) {
|
|
616
|
-
const accountFetchInterval = this._accountFetchInterval(
|
|
617
|
-
account.connectorKey
|
|
618
|
-
);
|
|
619
|
-
const now = Date.now();
|
|
620
|
-
const lastSyncTime = account.lastSyncedAt.getTime();
|
|
621
|
-
const intervalMs = accountFetchInterval * 1e3;
|
|
622
|
-
const shouldFetch = now - lastSyncTime >= intervalMs;
|
|
623
|
-
if (!shouldFetch) continue;
|
|
624
|
-
accountsToSync.push({
|
|
625
|
-
...account
|
|
626
|
-
});
|
|
627
|
-
}
|
|
628
|
-
console.log("ACCS TO SYNC", accountsToSync.length);
|
|
629
|
-
if (accountsToSync.length <= 0) return;
|
|
630
|
-
await this._saveOrUpdatePayments(accounts);
|
|
512
|
+
throw backendSdk.createInternalError(null, {
|
|
513
|
+
message: "Not implemented yet"
|
|
514
|
+
});
|
|
631
515
|
}
|
|
632
516
|
);
|
|
633
517
|
}
|
|
@@ -1113,7 +997,6 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
|
|
|
1113
997
|
}
|
|
1114
998
|
return {
|
|
1115
999
|
...a,
|
|
1116
|
-
bankCode: a.bankCode,
|
|
1117
1000
|
workflow: status ? {
|
|
1118
1001
|
instanceId: a.id,
|
|
1119
1002
|
details: status
|
package/dist/export/worker.d.cts
CHANGED
|
@@ -2,8 +2,8 @@ import * as _develit_io_backend_sdk from '@develit-io/backend-sdk';
|
|
|
2
2
|
import { WorkflowInstanceStatus, IRPCResponse } from '@develit-io/backend-sdk';
|
|
3
3
|
import { WorkerEntrypoint } from 'cloudflare:workers';
|
|
4
4
|
import { DrizzleD1Database } from 'drizzle-orm/d1';
|
|
5
|
-
import { P as PaymentSelectType, B as BatchSelectType, t as tables, a as PaymentInsertType } from '../shared/bank.
|
|
6
|
-
import { A as AccountSelectType, C as ConfigEnvironmentBank, I as IBankConnector, a as ConnectorKey } from '../shared/bank.
|
|
5
|
+
import { P as PaymentSelectType, B as BatchSelectType, t as tables, a as PaymentInsertType } from '../shared/bank.BGZYksmV.cjs';
|
|
6
|
+
import { A as AccountSelectType, C as ConfigEnvironmentBank, I as IBankConnector, a as ConnectorKey } from '../shared/bank.RD4xwHFf.cjs';
|
|
7
7
|
import { z } from 'zod';
|
|
8
8
|
import * as drizzle_zod from 'drizzle-zod';
|
|
9
9
|
import * as drizzle_orm_sqlite_core from 'drizzle-orm/sqlite-core';
|
|
@@ -1862,14 +1862,14 @@ declare const updateAccountInputSchema: z.ZodObject<{
|
|
|
1862
1862
|
tableName: "account";
|
|
1863
1863
|
dataType: "string";
|
|
1864
1864
|
columnType: "SQLiteText";
|
|
1865
|
-
data:
|
|
1865
|
+
data: "5051" | "0100" | "0300" | "0600" | "0710" | "0800" | "2010" | "2060" | "2070" | "2100" | "2200" | "2220" | "2250" | "2260" | "2600" | "2700" | "3030" | "3060" | "3500" | "4300" | "5500" | "5800" | "6000" | "6200" | "6210" | "6300" | "6363" | "6700" | "6800" | "7910" | "7950" | "7960" | "7970" | "7990" | "8030" | "8040" | "8060" | "8090" | "8150" | "8190" | "8198" | "8220" | "8250" | "8255" | "8265" | "8500";
|
|
1866
1866
|
driverParam: string;
|
|
1867
1867
|
notNull: true;
|
|
1868
1868
|
hasDefault: false;
|
|
1869
1869
|
isPrimaryKey: false;
|
|
1870
1870
|
isAutoincrement: false;
|
|
1871
1871
|
hasRuntimeDefault: false;
|
|
1872
|
-
enumValues: [
|
|
1872
|
+
enumValues: ["5051" | "0100" | "0300" | "0600" | "0710" | "0800" | "2010" | "2060" | "2070" | "2100" | "2200" | "2220" | "2250" | "2260" | "2600" | "2700" | "3030" | "3060" | "3500" | "4300" | "5500" | "5800" | "6000" | "6200" | "6210" | "6300" | "6363" | "6700" | "6800" | "7910" | "7950" | "7960" | "7970" | "7990" | "8030" | "8040" | "8060" | "8090" | "8150" | "8190" | "8198" | "8220" | "8250" | "8255" | "8265" | "8500", ...("5051" | "0100" | "0300" | "0600" | "0710" | "0800" | "2010" | "2060" | "2070" | "2100" | "2200" | "2220" | "2250" | "2260" | "2600" | "2700" | "3030" | "3060" | "3500" | "4300" | "5500" | "5800" | "6000" | "6200" | "6210" | "6300" | "6363" | "6700" | "6800" | "7910" | "7950" | "7960" | "7970" | "7990" | "8030" | "8040" | "8060" | "8090" | "8150" | "8190" | "8198" | "8220" | "8250" | "8255" | "8265" | "8500")[]];
|
|
1873
1873
|
baseColumn: never;
|
|
1874
1874
|
identity: undefined;
|
|
1875
1875
|
generated: undefined;
|
|
@@ -2291,7 +2291,7 @@ declare class BankServiceBase extends BankServiceBase_base {
|
|
|
2291
2291
|
expiresAt: Date | undefined;
|
|
2292
2292
|
number: string;
|
|
2293
2293
|
iban: string;
|
|
2294
|
-
bankCode:
|
|
2294
|
+
bankCode: "5051" | "0100" | "0300" | "0600" | "0710" | "0800" | "2010" | "2060" | "2070" | "2100" | "2200" | "2220" | "2250" | "2260" | "2600" | "2700" | "3030" | "3060" | "3500" | "4300" | "5500" | "5800" | "6000" | "6200" | "6210" | "6300" | "6363" | "6700" | "6800" | "7910" | "7950" | "7960" | "7970" | "7990" | "8030" | "8040" | "8060" | "8090" | "8150" | "8190" | "8198" | "8220" | "8250" | "8255" | "8265" | "8500";
|
|
2295
2295
|
connectorKey: "ERSTE" | "FINBRICKS" | "MOCK" | "CREDITAS" | "MOCK_COBS" | "FIO" | "MONETA";
|
|
2296
2296
|
status: "AUTHORIZED" | "DISABLED" | "EXPIRED";
|
|
2297
2297
|
bankRefId: string;
|
|
@@ -2314,7 +2314,6 @@ declare class BankServiceBase extends BankServiceBase_base {
|
|
|
2314
2314
|
updatedAt: Date | null;
|
|
2315
2315
|
deletedAt: Date | null;
|
|
2316
2316
|
}[]>;
|
|
2317
|
-
_saveOrUpdatePayments(accounts: AccountSelectType[]): Promise<void>;
|
|
2318
2317
|
_initiateBankConnector({ connectorKey, withAuth, }: {
|
|
2319
2318
|
connectorKey: ConnectorKey;
|
|
2320
2319
|
withAuth?: boolean;
|
|
@@ -2325,9 +2324,7 @@ declare class BankServiceBase extends BankServiceBase_base {
|
|
|
2325
2324
|
syncAccountStatus(input: SyncAccountStatusInput): Promise<IRPCResponse<SyncAccountStatusOutput>>;
|
|
2326
2325
|
syncAccountRestart(input: SyncAccountRestartInput): Promise<IRPCResponse<SyncAccountRestartOutput>>;
|
|
2327
2326
|
syncAccountTerminate(input: SyncAccountTerminateInput): Promise<IRPCResponse<SyncAccountTerminateOutput>>;
|
|
2328
|
-
syncAccounts(
|
|
2329
|
-
accounts?: AccountSelectType[];
|
|
2330
|
-
}): Promise<IRPCResponse<void>>;
|
|
2327
|
+
syncAccounts(): Promise<IRPCResponse<never>>;
|
|
2331
2328
|
scheduled(controller: ScheduledController): Promise<void>;
|
|
2332
2329
|
updateBatchStatuses(): Promise<void>;
|
|
2333
2330
|
addPaymentsToBatch({ paymentsToBatch, }: {
|
package/dist/export/worker.d.mts
CHANGED
|
@@ -2,8 +2,8 @@ import * as _develit_io_backend_sdk from '@develit-io/backend-sdk';
|
|
|
2
2
|
import { WorkflowInstanceStatus, IRPCResponse } from '@develit-io/backend-sdk';
|
|
3
3
|
import { WorkerEntrypoint } from 'cloudflare:workers';
|
|
4
4
|
import { DrizzleD1Database } from 'drizzle-orm/d1';
|
|
5
|
-
import { P as PaymentSelectType, B as BatchSelectType, t as tables, a as PaymentInsertType } from '../shared/bank.
|
|
6
|
-
import { A as AccountSelectType, C as ConfigEnvironmentBank, I as IBankConnector, a as ConnectorKey } from '../shared/bank.
|
|
5
|
+
import { P as PaymentSelectType, B as BatchSelectType, t as tables, a as PaymentInsertType } from '../shared/bank.BGZYksmV.mjs';
|
|
6
|
+
import { A as AccountSelectType, C as ConfigEnvironmentBank, I as IBankConnector, a as ConnectorKey } from '../shared/bank.BOe_Qmuw.mjs';
|
|
7
7
|
import { z } from 'zod';
|
|
8
8
|
import * as drizzle_zod from 'drizzle-zod';
|
|
9
9
|
import * as drizzle_orm_sqlite_core from 'drizzle-orm/sqlite-core';
|
|
@@ -1862,14 +1862,14 @@ declare const updateAccountInputSchema: z.ZodObject<{
|
|
|
1862
1862
|
tableName: "account";
|
|
1863
1863
|
dataType: "string";
|
|
1864
1864
|
columnType: "SQLiteText";
|
|
1865
|
-
data:
|
|
1865
|
+
data: "5051" | "0100" | "0300" | "0600" | "0710" | "0800" | "2010" | "2060" | "2070" | "2100" | "2200" | "2220" | "2250" | "2260" | "2600" | "2700" | "3030" | "3060" | "3500" | "4300" | "5500" | "5800" | "6000" | "6200" | "6210" | "6300" | "6363" | "6700" | "6800" | "7910" | "7950" | "7960" | "7970" | "7990" | "8030" | "8040" | "8060" | "8090" | "8150" | "8190" | "8198" | "8220" | "8250" | "8255" | "8265" | "8500";
|
|
1866
1866
|
driverParam: string;
|
|
1867
1867
|
notNull: true;
|
|
1868
1868
|
hasDefault: false;
|
|
1869
1869
|
isPrimaryKey: false;
|
|
1870
1870
|
isAutoincrement: false;
|
|
1871
1871
|
hasRuntimeDefault: false;
|
|
1872
|
-
enumValues: [
|
|
1872
|
+
enumValues: ["5051" | "0100" | "0300" | "0600" | "0710" | "0800" | "2010" | "2060" | "2070" | "2100" | "2200" | "2220" | "2250" | "2260" | "2600" | "2700" | "3030" | "3060" | "3500" | "4300" | "5500" | "5800" | "6000" | "6200" | "6210" | "6300" | "6363" | "6700" | "6800" | "7910" | "7950" | "7960" | "7970" | "7990" | "8030" | "8040" | "8060" | "8090" | "8150" | "8190" | "8198" | "8220" | "8250" | "8255" | "8265" | "8500", ...("5051" | "0100" | "0300" | "0600" | "0710" | "0800" | "2010" | "2060" | "2070" | "2100" | "2200" | "2220" | "2250" | "2260" | "2600" | "2700" | "3030" | "3060" | "3500" | "4300" | "5500" | "5800" | "6000" | "6200" | "6210" | "6300" | "6363" | "6700" | "6800" | "7910" | "7950" | "7960" | "7970" | "7990" | "8030" | "8040" | "8060" | "8090" | "8150" | "8190" | "8198" | "8220" | "8250" | "8255" | "8265" | "8500")[]];
|
|
1873
1873
|
baseColumn: never;
|
|
1874
1874
|
identity: undefined;
|
|
1875
1875
|
generated: undefined;
|
|
@@ -2291,7 +2291,7 @@ declare class BankServiceBase extends BankServiceBase_base {
|
|
|
2291
2291
|
expiresAt: Date | undefined;
|
|
2292
2292
|
number: string;
|
|
2293
2293
|
iban: string;
|
|
2294
|
-
bankCode:
|
|
2294
|
+
bankCode: "5051" | "0100" | "0300" | "0600" | "0710" | "0800" | "2010" | "2060" | "2070" | "2100" | "2200" | "2220" | "2250" | "2260" | "2600" | "2700" | "3030" | "3060" | "3500" | "4300" | "5500" | "5800" | "6000" | "6200" | "6210" | "6300" | "6363" | "6700" | "6800" | "7910" | "7950" | "7960" | "7970" | "7990" | "8030" | "8040" | "8060" | "8090" | "8150" | "8190" | "8198" | "8220" | "8250" | "8255" | "8265" | "8500";
|
|
2295
2295
|
connectorKey: "ERSTE" | "FINBRICKS" | "MOCK" | "CREDITAS" | "MOCK_COBS" | "FIO" | "MONETA";
|
|
2296
2296
|
status: "AUTHORIZED" | "DISABLED" | "EXPIRED";
|
|
2297
2297
|
bankRefId: string;
|
|
@@ -2314,7 +2314,6 @@ declare class BankServiceBase extends BankServiceBase_base {
|
|
|
2314
2314
|
updatedAt: Date | null;
|
|
2315
2315
|
deletedAt: Date | null;
|
|
2316
2316
|
}[]>;
|
|
2317
|
-
_saveOrUpdatePayments(accounts: AccountSelectType[]): Promise<void>;
|
|
2318
2317
|
_initiateBankConnector({ connectorKey, withAuth, }: {
|
|
2319
2318
|
connectorKey: ConnectorKey;
|
|
2320
2319
|
withAuth?: boolean;
|
|
@@ -2325,9 +2324,7 @@ declare class BankServiceBase extends BankServiceBase_base {
|
|
|
2325
2324
|
syncAccountStatus(input: SyncAccountStatusInput): Promise<IRPCResponse<SyncAccountStatusOutput>>;
|
|
2326
2325
|
syncAccountRestart(input: SyncAccountRestartInput): Promise<IRPCResponse<SyncAccountRestartOutput>>;
|
|
2327
2326
|
syncAccountTerminate(input: SyncAccountTerminateInput): Promise<IRPCResponse<SyncAccountTerminateOutput>>;
|
|
2328
|
-
syncAccounts(
|
|
2329
|
-
accounts?: AccountSelectType[];
|
|
2330
|
-
}): Promise<IRPCResponse<void>>;
|
|
2327
|
+
syncAccounts(): Promise<IRPCResponse<never>>;
|
|
2331
2328
|
scheduled(controller: ScheduledController): Promise<void>;
|
|
2332
2329
|
updateBatchStatuses(): Promise<void>;
|
|
2333
2330
|
addPaymentsToBatch({ paymentsToBatch, }: {
|
package/dist/export/worker.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import * as _develit_io_backend_sdk from '@develit-io/backend-sdk';
|
|
|
2
2
|
import { WorkflowInstanceStatus, IRPCResponse } from '@develit-io/backend-sdk';
|
|
3
3
|
import { WorkerEntrypoint } from 'cloudflare:workers';
|
|
4
4
|
import { DrizzleD1Database } from 'drizzle-orm/d1';
|
|
5
|
-
import { P as PaymentSelectType, B as BatchSelectType, t as tables, a as PaymentInsertType } from '../shared/bank.
|
|
6
|
-
import { A as AccountSelectType, C as ConfigEnvironmentBank, I as IBankConnector, a as ConnectorKey } from '../shared/bank.
|
|
5
|
+
import { P as PaymentSelectType, B as BatchSelectType, t as tables, a as PaymentInsertType } from '../shared/bank.BGZYksmV.js';
|
|
6
|
+
import { A as AccountSelectType, C as ConfigEnvironmentBank, I as IBankConnector, a as ConnectorKey } from '../shared/bank.2BgwPCw_.js';
|
|
7
7
|
import { z } from 'zod';
|
|
8
8
|
import * as drizzle_zod from 'drizzle-zod';
|
|
9
9
|
import * as drizzle_orm_sqlite_core from 'drizzle-orm/sqlite-core';
|
|
@@ -1862,14 +1862,14 @@ declare const updateAccountInputSchema: z.ZodObject<{
|
|
|
1862
1862
|
tableName: "account";
|
|
1863
1863
|
dataType: "string";
|
|
1864
1864
|
columnType: "SQLiteText";
|
|
1865
|
-
data:
|
|
1865
|
+
data: "5051" | "0100" | "0300" | "0600" | "0710" | "0800" | "2010" | "2060" | "2070" | "2100" | "2200" | "2220" | "2250" | "2260" | "2600" | "2700" | "3030" | "3060" | "3500" | "4300" | "5500" | "5800" | "6000" | "6200" | "6210" | "6300" | "6363" | "6700" | "6800" | "7910" | "7950" | "7960" | "7970" | "7990" | "8030" | "8040" | "8060" | "8090" | "8150" | "8190" | "8198" | "8220" | "8250" | "8255" | "8265" | "8500";
|
|
1866
1866
|
driverParam: string;
|
|
1867
1867
|
notNull: true;
|
|
1868
1868
|
hasDefault: false;
|
|
1869
1869
|
isPrimaryKey: false;
|
|
1870
1870
|
isAutoincrement: false;
|
|
1871
1871
|
hasRuntimeDefault: false;
|
|
1872
|
-
enumValues: [
|
|
1872
|
+
enumValues: ["5051" | "0100" | "0300" | "0600" | "0710" | "0800" | "2010" | "2060" | "2070" | "2100" | "2200" | "2220" | "2250" | "2260" | "2600" | "2700" | "3030" | "3060" | "3500" | "4300" | "5500" | "5800" | "6000" | "6200" | "6210" | "6300" | "6363" | "6700" | "6800" | "7910" | "7950" | "7960" | "7970" | "7990" | "8030" | "8040" | "8060" | "8090" | "8150" | "8190" | "8198" | "8220" | "8250" | "8255" | "8265" | "8500", ...("5051" | "0100" | "0300" | "0600" | "0710" | "0800" | "2010" | "2060" | "2070" | "2100" | "2200" | "2220" | "2250" | "2260" | "2600" | "2700" | "3030" | "3060" | "3500" | "4300" | "5500" | "5800" | "6000" | "6200" | "6210" | "6300" | "6363" | "6700" | "6800" | "7910" | "7950" | "7960" | "7970" | "7990" | "8030" | "8040" | "8060" | "8090" | "8150" | "8190" | "8198" | "8220" | "8250" | "8255" | "8265" | "8500")[]];
|
|
1873
1873
|
baseColumn: never;
|
|
1874
1874
|
identity: undefined;
|
|
1875
1875
|
generated: undefined;
|
|
@@ -2291,7 +2291,7 @@ declare class BankServiceBase extends BankServiceBase_base {
|
|
|
2291
2291
|
expiresAt: Date | undefined;
|
|
2292
2292
|
number: string;
|
|
2293
2293
|
iban: string;
|
|
2294
|
-
bankCode:
|
|
2294
|
+
bankCode: "5051" | "0100" | "0300" | "0600" | "0710" | "0800" | "2010" | "2060" | "2070" | "2100" | "2200" | "2220" | "2250" | "2260" | "2600" | "2700" | "3030" | "3060" | "3500" | "4300" | "5500" | "5800" | "6000" | "6200" | "6210" | "6300" | "6363" | "6700" | "6800" | "7910" | "7950" | "7960" | "7970" | "7990" | "8030" | "8040" | "8060" | "8090" | "8150" | "8190" | "8198" | "8220" | "8250" | "8255" | "8265" | "8500";
|
|
2295
2295
|
connectorKey: "ERSTE" | "FINBRICKS" | "MOCK" | "CREDITAS" | "MOCK_COBS" | "FIO" | "MONETA";
|
|
2296
2296
|
status: "AUTHORIZED" | "DISABLED" | "EXPIRED";
|
|
2297
2297
|
bankRefId: string;
|
|
@@ -2314,7 +2314,6 @@ declare class BankServiceBase extends BankServiceBase_base {
|
|
|
2314
2314
|
updatedAt: Date | null;
|
|
2315
2315
|
deletedAt: Date | null;
|
|
2316
2316
|
}[]>;
|
|
2317
|
-
_saveOrUpdatePayments(accounts: AccountSelectType[]): Promise<void>;
|
|
2318
2317
|
_initiateBankConnector({ connectorKey, withAuth, }: {
|
|
2319
2318
|
connectorKey: ConnectorKey;
|
|
2320
2319
|
withAuth?: boolean;
|
|
@@ -2325,9 +2324,7 @@ declare class BankServiceBase extends BankServiceBase_base {
|
|
|
2325
2324
|
syncAccountStatus(input: SyncAccountStatusInput): Promise<IRPCResponse<SyncAccountStatusOutput>>;
|
|
2326
2325
|
syncAccountRestart(input: SyncAccountRestartInput): Promise<IRPCResponse<SyncAccountRestartOutput>>;
|
|
2327
2326
|
syncAccountTerminate(input: SyncAccountTerminateInput): Promise<IRPCResponse<SyncAccountTerminateOutput>>;
|
|
2328
|
-
syncAccounts(
|
|
2329
|
-
accounts?: AccountSelectType[];
|
|
2330
|
-
}): Promise<IRPCResponse<void>>;
|
|
2327
|
+
syncAccounts(): Promise<IRPCResponse<never>>;
|
|
2331
2328
|
scheduled(controller: ScheduledController): Promise<void>;
|
|
2332
2329
|
updateBatchStatuses(): Promise<void>;
|
|
2333
2330
|
addPaymentsToBatch({ paymentsToBatch, }: {
|
package/dist/export/worker.mjs
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { uuidv4, bankAccountMetadataSchema, workflowInstanceStatusSchema, develitWorker, createInternalError, first, action, service } from '@develit-io/backend-sdk';
|
|
2
2
|
import { WorkerEntrypoint } from 'cloudflare:workers';
|
|
3
3
|
import { drizzle } from 'drizzle-orm/d1';
|
|
4
|
-
import { t as tables, c as INSTRUCTION_PRIORITIES, C as CHARGE_BEARERS, P as PAYMENT_TYPES, g as CONNECTOR_KEYS, B as BATCH_STATUSES, d as PAYMENT_STATUSES, e as PAYMENT_DIRECTIONS, i as accountInsertSchema,
|
|
4
|
+
import { t as tables, c as INSTRUCTION_PRIORITIES, C as CHARGE_BEARERS, P as PAYMENT_TYPES, g as CONNECTOR_KEYS, B as BATCH_STATUSES, d as PAYMENT_STATUSES, e as PAYMENT_DIRECTIONS, i as accountInsertSchema, M as MockConnector, F as FinbricksConnector, E as ErsteConnector } from '../shared/bank.BTcR2cZW.mjs';
|
|
5
5
|
import 'jose';
|
|
6
6
|
import { CURRENCY_CODES } from '@develit-io/general-codes';
|
|
7
7
|
import { z } from 'zod';
|
|
8
|
-
import {
|
|
8
|
+
import { g as getCredentialsByAccountId, i as initiateConnector, c as createPaymentCommand, u as updatePaymentCommand, a as updateAccountLastSyncCommand } from '../shared/bank.B6xe3pyX.mjs';
|
|
9
9
|
import { eq, inArray, and, sql, asc, desc, gte, lte } from 'drizzle-orm';
|
|
10
10
|
import 'drizzle-orm/sqlite-core';
|
|
11
11
|
import 'date-fns';
|
|
12
12
|
import 'drizzle-zod';
|
|
13
13
|
import 'drizzle-orm/relations';
|
|
14
|
-
import '../shared/bank.
|
|
14
|
+
import '../shared/bank.BgD9dJ3A.mjs';
|
|
15
15
|
|
|
16
16
|
const upsertAccountCommand = (db, { account }) => {
|
|
17
17
|
const id = account.id || uuidv4();
|
|
@@ -383,102 +383,6 @@ let BankServiceBase = class extends develitWorker(WorkerEntrypoint) {
|
|
|
383
383
|
async _getAccounts() {
|
|
384
384
|
return await getAllAccountsQuery(this.db);
|
|
385
385
|
}
|
|
386
|
-
async _saveOrUpdatePayments(accounts) {
|
|
387
|
-
const allFetchedPayments = [];
|
|
388
|
-
const connectorKeys = new Set(
|
|
389
|
-
accounts.map(({ connectorKey }) => connectorKey)
|
|
390
|
-
);
|
|
391
|
-
for (const connectorKey of connectorKeys) {
|
|
392
|
-
await this._initiateBankConnector({ connectorKey });
|
|
393
|
-
for (const account of accounts.filter(
|
|
394
|
-
(acc) => acc.connectorKey === connectorKey
|
|
395
|
-
)) {
|
|
396
|
-
if (!account.lastSyncedAt) {
|
|
397
|
-
this.log({
|
|
398
|
-
message: `Skipping account ${account.id} as it has no lastSyncedAt date.`
|
|
399
|
-
});
|
|
400
|
-
continue;
|
|
401
|
-
}
|
|
402
|
-
const payments = await this.bankConnector.getAllAccountPayments({
|
|
403
|
-
db: this.db,
|
|
404
|
-
environment: this.env.ENVIRONMENT,
|
|
405
|
-
account,
|
|
406
|
-
filter: {
|
|
407
|
-
dateFrom: account.lastSyncedAt
|
|
408
|
-
}
|
|
409
|
-
});
|
|
410
|
-
if (!payments || payments.length === 0) continue;
|
|
411
|
-
payments.forEach((payment) => {
|
|
412
|
-
payment.direction = getPaymentDirection(payment, account.iban);
|
|
413
|
-
});
|
|
414
|
-
allFetchedPayments.push(...payments);
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
if (allFetchedPayments.length < 1) return;
|
|
418
|
-
const bankRefIds = allFetchedPayments.map((payment) => payment.bankRefId).filter(Boolean);
|
|
419
|
-
const alreadyExistingPayments = await getPaymentsByBankRefIdsQuery(
|
|
420
|
-
this.db,
|
|
421
|
-
{
|
|
422
|
-
ids: bankRefIds
|
|
423
|
-
}
|
|
424
|
-
);
|
|
425
|
-
const eventsToPush = [];
|
|
426
|
-
const paymentsCommands = allFetchedPayments.map((payment) => {
|
|
427
|
-
const isAlreadyExisting = alreadyExistingPayments.some(
|
|
428
|
-
(existingPayment) => existingPayment.bankRefId === payment.bankRefId
|
|
429
|
-
);
|
|
430
|
-
if (isAlreadyExisting) {
|
|
431
|
-
eventsToPush.push({
|
|
432
|
-
eventType: "BANK_PAYMENT",
|
|
433
|
-
eventSignal: "paymentUpdated",
|
|
434
|
-
bankPayment: payment,
|
|
435
|
-
metadata: {
|
|
436
|
-
correlationId: payment.correlationId,
|
|
437
|
-
entityId: payment.id,
|
|
438
|
-
idempotencySuffix: payment.status,
|
|
439
|
-
timestamp: (/* @__PURE__ */ new Date()).toDateString()
|
|
440
|
-
}
|
|
441
|
-
});
|
|
442
|
-
return updatePaymentCommand(this.db, { payment }).command;
|
|
443
|
-
}
|
|
444
|
-
eventsToPush.push({
|
|
445
|
-
eventType: "BANK_PAYMENT",
|
|
446
|
-
eventSignal: "paymentCreated",
|
|
447
|
-
bankPayment: payment,
|
|
448
|
-
metadata: {
|
|
449
|
-
correlationId: payment.correlationId,
|
|
450
|
-
entityId: payment.id,
|
|
451
|
-
timestamp: (/* @__PURE__ */ new Date()).toDateString()
|
|
452
|
-
}
|
|
453
|
-
});
|
|
454
|
-
return createPaymentCommand(this.db, { payment }).command;
|
|
455
|
-
});
|
|
456
|
-
await this.db.batch([paymentsCommands[0], ...paymentsCommands.slice(1)]);
|
|
457
|
-
await this.pushToQueue(
|
|
458
|
-
this.env.QUEUE_BUS_QUEUE,
|
|
459
|
-
eventsToPush
|
|
460
|
-
);
|
|
461
|
-
for (const account of accounts) {
|
|
462
|
-
const paymentsForAccount = allFetchedPayments.filter(
|
|
463
|
-
(payment) => (payment.direction === "OUTGOING" ? payment.debtorIban : payment.creditorIban) === account.iban
|
|
464
|
-
);
|
|
465
|
-
let lastSyncPayment;
|
|
466
|
-
lastSyncPayment = paymentsForAccount.filter(({ status }) => status !== "COMPLETED").sort(
|
|
467
|
-
(a, b) => (a.createdAt?.getTime() || 0) - (b.createdAt?.getTime() || 0)
|
|
468
|
-
)[0];
|
|
469
|
-
if (!lastSyncPayment) {
|
|
470
|
-
lastSyncPayment = paymentsForAccount.sort(
|
|
471
|
-
(a, b) => (b.createdAt?.getTime() || 0) - (a.createdAt?.getTime() || 0)
|
|
472
|
-
)[0];
|
|
473
|
-
}
|
|
474
|
-
if (lastSyncPayment.createdAt) {
|
|
475
|
-
await updateAccountLastSyncCommand(this.db, {
|
|
476
|
-
accountId: account.id,
|
|
477
|
-
lastSyncedAt: lastSyncPayment.createdAt
|
|
478
|
-
}).command.execute();
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
386
|
async _initiateBankConnector({
|
|
483
387
|
connectorKey,
|
|
484
388
|
withAuth
|
|
@@ -598,34 +502,14 @@ let BankServiceBase = class extends develitWorker(WorkerEntrypoint) {
|
|
|
598
502
|
}
|
|
599
503
|
);
|
|
600
504
|
}
|
|
601
|
-
async syncAccounts(
|
|
505
|
+
async syncAccounts() {
|
|
602
506
|
return this.handleAction(
|
|
603
507
|
null,
|
|
604
508
|
{ successMessage: "Accounts synchronized successfully" },
|
|
605
509
|
async () => {
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
accounts = await this._getAccounts();
|
|
610
|
-
}
|
|
611
|
-
for (const account of accounts.filter(
|
|
612
|
-
(acc) => !!!acc.connectorKey.includes("MOCK")
|
|
613
|
-
)) {
|
|
614
|
-
const accountFetchInterval = this._accountFetchInterval(
|
|
615
|
-
account.connectorKey
|
|
616
|
-
);
|
|
617
|
-
const now = Date.now();
|
|
618
|
-
const lastSyncTime = account.lastSyncedAt.getTime();
|
|
619
|
-
const intervalMs = accountFetchInterval * 1e3;
|
|
620
|
-
const shouldFetch = now - lastSyncTime >= intervalMs;
|
|
621
|
-
if (!shouldFetch) continue;
|
|
622
|
-
accountsToSync.push({
|
|
623
|
-
...account
|
|
624
|
-
});
|
|
625
|
-
}
|
|
626
|
-
console.log("ACCS TO SYNC", accountsToSync.length);
|
|
627
|
-
if (accountsToSync.length <= 0) return;
|
|
628
|
-
await this._saveOrUpdatePayments(accounts);
|
|
510
|
+
throw createInternalError(null, {
|
|
511
|
+
message: "Not implemented yet"
|
|
512
|
+
});
|
|
629
513
|
}
|
|
630
514
|
);
|
|
631
515
|
}
|
|
@@ -1111,7 +995,6 @@ let BankServiceBase = class extends develitWorker(WorkerEntrypoint) {
|
|
|
1111
995
|
}
|
|
1112
996
|
return {
|
|
1113
997
|
...a,
|
|
1114
|
-
bankCode: a.bankCode,
|
|
1115
998
|
workflow: status ? {
|
|
1116
999
|
instanceId: a.id,
|
|
1117
1000
|
details: status
|