@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.
Files changed (30) hide show
  1. package/dist/database/schema.cjs +1 -1
  2. package/dist/database/schema.d.cts +1 -1
  3. package/dist/database/schema.d.mts +1 -1
  4. package/dist/database/schema.d.ts +1 -1
  5. package/dist/database/schema.mjs +1 -1
  6. package/dist/export/worker.cjs +7 -124
  7. package/dist/export/worker.d.cts +6 -9
  8. package/dist/export/worker.d.mts +6 -9
  9. package/dist/export/worker.d.ts +6 -9
  10. package/dist/export/worker.mjs +7 -124
  11. package/dist/export/workflows.cjs +27 -20
  12. package/dist/export/workflows.mjs +27 -20
  13. package/dist/shared/{bank.DCTBX1dp.d.ts → bank.2BgwPCw_.d.ts} +8 -8
  14. package/dist/shared/{bank.B_nwGY5X.mjs → bank.B6xe3pyX.mjs} +4 -8
  15. package/dist/shared/{bank.BFGDv0oC.d.cts → bank.BGZYksmV.d.cts} +8 -4
  16. package/dist/shared/{bank.BFGDv0oC.d.mts → bank.BGZYksmV.d.mts} +8 -4
  17. package/dist/shared/{bank.BFGDv0oC.d.ts → bank.BGZYksmV.d.ts} +8 -4
  18. package/dist/shared/{bank.DSVzOCrh.d.cts → bank.BOe_Qmuw.d.mts} +8 -8
  19. package/dist/shared/{bank.DHj3MnQJ.mjs → bank.BTcR2cZW.mjs} +16 -7
  20. package/dist/shared/{bank.DulU-rr_.mjs → bank.BgD9dJ3A.mjs} +1 -1
  21. package/dist/shared/{bank.DrMnskU2.cjs → bank.DCUsXXjG.cjs} +15 -6
  22. package/dist/shared/{bank.YNS7gdPU.cjs → bank.Dp5YErpd.cjs} +1 -1
  23. package/dist/shared/{bank.CrRs_x0N.d.mts → bank.RD4xwHFf.d.cts} +8 -8
  24. package/dist/shared/{bank.pT49Hbb4.cjs → bank.U_QWeuG5.cjs} +2 -7
  25. package/dist/types.cjs +2 -2
  26. package/dist/types.d.cts +8 -8
  27. package/dist/types.d.mts +8 -8
  28. package/dist/types.d.ts +8 -8
  29. package/dist/types.mjs +2 -2
  30. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const database_schema = require('../shared/bank.DrMnskU2.cjs');
3
+ const database_schema = require('../shared/bank.DCUsXXjG.cjs');
4
4
  require('@develit-io/backend-sdk');
5
5
  require('drizzle-orm/sqlite-core');
6
6
  require('date-fns');
@@ -1,4 +1,4 @@
1
- export { f as account, g as accountCredentials, c as batch, o as ott, d as payment, e as paymentRelations } from '../shared/bank.BFGDv0oC.cjs';
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 { f as account, g as accountCredentials, c as batch, o as ott, d as payment, e as paymentRelations } from '../shared/bank.BFGDv0oC.mjs';
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 { f as account, g as accountCredentials, c as batch, o as ott, d as payment, e as paymentRelations } from '../shared/bank.BFGDv0oC.js';
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';
@@ -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.DHj3MnQJ.mjs';
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';
@@ -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.DrMnskU2.cjs');
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.pT49Hbb4.cjs');
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.YNS7gdPU.cjs');
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(options) {
507
+ async syncAccounts() {
604
508
  return this.handleAction(
605
509
  null,
606
510
  { successMessage: "Accounts synchronized successfully" },
607
511
  async () => {
608
- const accountsToSync = [];
609
- let accounts = options?.accounts || [];
610
- if (!accounts.length) {
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
@@ -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.BFGDv0oC.cjs';
6
- import { A as AccountSelectType, C as ConfigEnvironmentBank, I as IBankConnector, a as ConnectorKey } from '../shared/bank.DSVzOCrh.cjs';
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: string;
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: [string, ...string[]];
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: string;
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(options?: {
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, }: {
@@ -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.BFGDv0oC.mjs';
6
- import { A as AccountSelectType, C as ConfigEnvironmentBank, I as IBankConnector, a as ConnectorKey } from '../shared/bank.CrRs_x0N.mjs';
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: string;
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: [string, ...string[]];
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: string;
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(options?: {
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, }: {
@@ -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.BFGDv0oC.js';
6
- import { A as AccountSelectType, C as ConfigEnvironmentBank, I as IBankConnector, a as ConnectorKey } from '../shared/bank.DCTBX1dp.js';
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: string;
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: [string, ...string[]];
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: string;
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(options?: {
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, }: {
@@ -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, v as getPaymentDirection, M as MockConnector, F as FinbricksConnector, E as ErsteConnector } from '../shared/bank.DHj3MnQJ.mjs';
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 { a as getPaymentsByBankRefIdsQuery, u as updatePaymentCommand, c as createPaymentCommand, b as updateAccountLastSyncCommand, g as getCredentialsByAccountId, i as initiateConnector } from '../shared/bank.B_nwGY5X.mjs';
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.DulU-rr_.mjs';
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(options) {
505
+ async syncAccounts() {
602
506
  return this.handleAction(
603
507
  null,
604
508
  { successMessage: "Accounts synchronized successfully" },
605
509
  async () => {
606
- const accountsToSync = [];
607
- let accounts = options?.accounts || [];
608
- if (!accounts.length) {
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