@develit-services/bank 0.8.20 → 1.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.
Files changed (37) hide show
  1. package/README.md +33 -0
  2. package/dist/database/schema.cjs +1 -1
  3. package/dist/database/schema.d.cts +2 -1
  4. package/dist/database/schema.d.mts +2 -1
  5. package/dist/database/schema.d.ts +2 -1
  6. package/dist/database/schema.mjs +1 -1
  7. package/dist/export/worker.cjs +6 -6
  8. package/dist/export/worker.d.cts +2083 -939
  9. package/dist/export/worker.d.mts +2083 -939
  10. package/dist/export/worker.d.ts +2083 -939
  11. package/dist/export/worker.mjs +7 -7
  12. package/dist/export/workflows.cjs +5 -5
  13. package/dist/export/workflows.mjs +5 -5
  14. package/dist/export/wrangler.d.cts +2 -1
  15. package/dist/export/wrangler.d.mts +2 -1
  16. package/dist/export/wrangler.d.ts +2 -1
  17. package/dist/shared/{bank.jRGa7MKk.d.mts → bank.5WIfKLgm.d.ts} +890 -17
  18. package/dist/shared/{bank.o95cOH_P.cjs → bank.B5nOIsGC.cjs} +10 -4
  19. package/dist/shared/{bank.BOY6AI1t.d.cts → bank.BECp1kh0.d.cts} +1789 -1627
  20. package/dist/shared/{bank.BOY6AI1t.d.mts → bank.BECp1kh0.d.mts} +1789 -1627
  21. package/dist/shared/{bank.BOY6AI1t.d.ts → bank.BECp1kh0.d.ts} +1789 -1627
  22. package/dist/shared/{bank.DWsHTK_n.cjs → bank.BMLgGhBY.cjs} +44 -8
  23. package/dist/shared/{bank.DMjtitKo.d.cts → bank.CVJosema.d.cts} +1 -0
  24. package/dist/shared/{bank.DMjtitKo.d.mts → bank.CVJosema.d.mts} +1 -0
  25. package/dist/shared/{bank.DMjtitKo.d.ts → bank.CVJosema.d.ts} +1 -0
  26. package/dist/shared/{bank.DfTdMAi9.d.ts → bank.CX7-ohgB.d.mts} +890 -17
  27. package/dist/shared/{bank.ESTBT4J6.mjs → bank.DMsXwzJn.mjs} +11 -5
  28. package/dist/shared/{bank.Cwg6oHMM.mjs → bank.DTnA4eC9.mjs} +44 -8
  29. package/dist/shared/{bank.vGCuP898.cjs → bank.f7ykgYdD.cjs} +7 -3
  30. package/dist/shared/{bank.CPLR0Ul7.mjs → bank.rcoRRywt.mjs} +7 -3
  31. package/dist/shared/{bank.Bo01T_MM.d.cts → bank.yUQZ6PWV.d.cts} +890 -17
  32. package/dist/types.cjs +2 -2
  33. package/dist/types.d.cts +13 -8
  34. package/dist/types.d.mts +13 -8
  35. package/dist/types.d.ts +13 -8
  36. package/dist/types.mjs +2 -2
  37. package/package.json +1 -1
package/README.md CHANGED
@@ -337,6 +337,39 @@ Sifrovane bankovni tokeny (AES). Typy: `AUTH_TOKEN`, `REFRESH_TOKEN`, `CLIENT_ID
337
337
 
338
338
  Jednorazove tokeny pro autorizacni flow uctu.
339
339
 
340
+ ## Secrets Store — encryption key
341
+
342
+ Bankovni credentials (`account_credentials`) jsou sifrovane pomoci **AES-256-GCM** (Web Crypto API). Sifrovaci klic je ulozen v Secrets Store jako `BANK_SERVICE_ENCRYPTION_KEY`.
343
+
344
+ ### Jak klic funguje
345
+
346
+ - **Algoritmus**: AES-GCM (256-bit)
347
+ - **IV**: 12 bytu, nahodne generovany pro kazdou sifrovaci operaci
348
+ - **Format ulozeni**: base64(IV + ciphertext) v sloupci `account_credentials.value`
349
+ - **Sifrovana data**: `AUTH_TOKEN`, `REFRESH_TOKEN`, `CLIENT_ID`, `API_KEY` bankovnich konektoru
350
+
351
+ ### Jak vygenerovat klic
352
+
353
+ ```bash
354
+ # Vygeneruje 256-bit AES klic a vypise jako base64
355
+ node -e "crypto.subtle.generateKey({name:'AES-GCM',length:256},true,['encrypt','decrypt']).then(k=>crypto.subtle.exportKey('raw',k)).then(b=>console.log(Buffer.from(b).toString('base64')))"
356
+ ```
357
+
358
+ Alternativne:
359
+
360
+ ```bash
361
+ # 32 nahodnych bytu = 256 bitu, zakodovano jako base64
362
+ openssl rand -base64 32
363
+ ```
364
+
365
+ Vysledny base64 retezec ulozit do Secrets Store pod nazvem `BANK_SERVICE_ENCRYPTION_KEY`.
366
+
367
+ ### Bezpecnostni doporuceni
368
+
369
+ - Pouzijte **jiny klic pro kazde prostredi** (local, dev, staging, production)
370
+ - Pri rotaci klice je nutne **re-encryptovat** vsechny existujici credentials — zmena klice bez migrace zpusobi neschopnost desifrovat stavajici tokeny
371
+ - Klic nikdy neukladejte do kodu, env souboru ani git repozitare
372
+
340
373
  ## Error Codes
341
374
 
342
375
  Format: `{CATEGORY}-B-{NUMBER}`
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const database_schema = require('../shared/bank.o95cOH_P.cjs');
3
+ const database_schema = require('../shared/bank.B5nOIsGC.cjs');
4
4
  require('@develit-io/backend-sdk');
5
5
  require('drizzle-orm/sqlite-core');
6
6
  require('date-fns');
@@ -1,7 +1,8 @@
1
- export { az as account, aA as accountCredentials, aB as batch, aC as ott, aD as payment, aE as paymentRelations, aF as paymentRequest, aG as paymentRequestRelations } from '../shared/bank.BOY6AI1t.cjs';
1
+ export { az as account, aA as accountCredentials, aB as batch, aC as ott, aD as payment, aE as paymentRelations, aF as paymentRequest, aG as paymentRequestRelations } from '../shared/bank.BECp1kh0.cjs';
2
2
  import 'drizzle-orm/sqlite-core';
3
3
  import 'drizzle-orm';
4
4
  import '@develit-io/backend-sdk';
5
5
  import '@develit-io/general-codes';
6
6
  import 'zod';
7
7
  import 'drizzle-zod';
8
+ import 'zod/v4/core';
@@ -1,7 +1,8 @@
1
- export { az as account, aA as accountCredentials, aB as batch, aC as ott, aD as payment, aE as paymentRelations, aF as paymentRequest, aG as paymentRequestRelations } from '../shared/bank.BOY6AI1t.mjs';
1
+ export { az as account, aA as accountCredentials, aB as batch, aC as ott, aD as payment, aE as paymentRelations, aF as paymentRequest, aG as paymentRequestRelations } from '../shared/bank.BECp1kh0.mjs';
2
2
  import 'drizzle-orm/sqlite-core';
3
3
  import 'drizzle-orm';
4
4
  import '@develit-io/backend-sdk';
5
5
  import '@develit-io/general-codes';
6
6
  import 'zod';
7
7
  import 'drizzle-zod';
8
+ import 'zod/v4/core';
@@ -1,7 +1,8 @@
1
- export { az as account, aA as accountCredentials, aB as batch, aC as ott, aD as payment, aE as paymentRelations, aF as paymentRequest, aG as paymentRequestRelations } from '../shared/bank.BOY6AI1t.js';
1
+ export { az as account, aA as accountCredentials, aB as batch, aC as ott, aD as payment, aE as paymentRelations, aF as paymentRequest, aG as paymentRequestRelations } from '../shared/bank.BECp1kh0.js';
2
2
  import 'drizzle-orm/sqlite-core';
3
3
  import 'drizzle-orm';
4
4
  import '@develit-io/backend-sdk';
5
5
  import '@develit-io/general-codes';
6
6
  import 'zod';
7
7
  import 'drizzle-zod';
8
+ import 'zod/v4/core';
@@ -1,4 +1,4 @@
1
- export { x as account, y as accountCredentials, z as batch, D as ott, E as payment, F as paymentRelations, G as paymentRequest, H as paymentRequestRelations } from '../shared/bank.ESTBT4J6.mjs';
1
+ export { x as account, y as accountCredentials, z as batch, D as ott, E as payment, F as paymentRelations, G as paymentRequest, H as paymentRequestRelations } from '../shared/bank.DMsXwzJn.mjs';
2
2
  import '@develit-io/backend-sdk';
3
3
  import 'drizzle-orm/sqlite-core';
4
4
  import 'date-fns';
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
3
  const backendSdk = require('@develit-io/backend-sdk');
4
- const database_schema = require('../shared/bank.o95cOH_P.cjs');
4
+ const database_schema = require('../shared/bank.B5nOIsGC.cjs');
5
5
  const drizzleOrm = require('drizzle-orm');
6
6
  const cloudflare_workers = require('cloudflare:workers');
7
7
  const d1 = require('drizzle-orm/d1');
8
- const mock_connector = require('../shared/bank.DWsHTK_n.cjs');
8
+ const mock_connector = require('../shared/bank.BMLgGhBY.cjs');
9
9
  require('jose');
10
10
  const zod = require('zod');
11
11
  const generalCodes = require('@develit-io/general-codes');
12
12
  require('date-fns');
13
13
  require('node:crypto');
14
- const credentialsResolver = require('../shared/bank.vGCuP898.cjs');
14
+ const credentialsResolver = require('../shared/bank.f7ykgYdD.cjs');
15
15
  require('drizzle-orm/sqlite-core');
16
16
  require('drizzle-orm/relations');
17
17
  require('drizzle-zod');
@@ -353,7 +353,7 @@ function buildPaymentRequestEvent(pr) {
353
353
  metadata: {
354
354
  correlationId: pr.correlationId,
355
355
  entityId: pr.id,
356
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
356
+ timestamp: /* @__PURE__ */ new Date()
357
357
  }
358
358
  };
359
359
  }
@@ -389,7 +389,7 @@ const authorizeAccountInputSchema = zod.z.object({
389
389
  syncIntervalS: zod.z.number().int().positive().optional(),
390
390
  startSync: zod.z.boolean().optional(),
391
391
  lastSyncAt: zod.z.date().optional(),
392
- address: zod.z.string().optional()
392
+ address: backendSdk.structuredAddressSchema.optional()
393
393
  });
394
394
 
395
395
  const simulateDepositInputSchema = zod.z.object({
@@ -1189,7 +1189,7 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
1189
1189
  metadata: {
1190
1190
  correlationId: createdPayment.correlationId,
1191
1191
  entityId: createdPayment.id,
1192
- timestamp: (/* @__PURE__ */ new Date()).toDateString()
1192
+ timestamp: /* @__PURE__ */ new Date()
1193
1193
  }
1194
1194
  });
1195
1195
  return createdPayment;