splp-nodejs 1.0.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 (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +35 -0
  3. package/dist/config/index.d.ts +139 -0
  4. package/dist/config/index.d.ts.map +1 -0
  5. package/dist/config/index.js +258 -0
  6. package/dist/config/index.js.map +1 -0
  7. package/dist/lib/crypto/json-encryptor.d.ts +149 -0
  8. package/dist/lib/crypto/json-encryptor.d.ts.map +1 -0
  9. package/dist/lib/crypto/json-encryptor.js +568 -0
  10. package/dist/lib/crypto/json-encryptor.js.map +1 -0
  11. package/dist/lib/index.d.ts +18 -0
  12. package/dist/lib/index.d.ts.map +1 -0
  13. package/dist/lib/index.js +18 -0
  14. package/dist/lib/index.js.map +1 -0
  15. package/dist/lib/kafka/kafka-wrapper.d.ts +27 -0
  16. package/dist/lib/kafka/kafka-wrapper.d.ts.map +1 -0
  17. package/dist/lib/kafka/kafka-wrapper.js +206 -0
  18. package/dist/lib/kafka/kafka-wrapper.js.map +1 -0
  19. package/dist/lib/tracing/tracer.d.ts +19 -0
  20. package/dist/lib/tracing/tracer.d.ts.map +1 -0
  21. package/dist/lib/tracing/tracer.js +147 -0
  22. package/dist/lib/tracing/tracer.js.map +1 -0
  23. package/dist/lib/utils/circuit-breaker.d.ts +27 -0
  24. package/dist/lib/utils/circuit-breaker.d.ts.map +1 -0
  25. package/dist/lib/utils/circuit-breaker.js +56 -0
  26. package/dist/lib/utils/circuit-breaker.js.map +1 -0
  27. package/dist/lib/utils/request-id.d.ts +3 -0
  28. package/dist/lib/utils/request-id.d.ts.map +1 -0
  29. package/dist/lib/utils/request-id.js +9 -0
  30. package/dist/lib/utils/request-id.js.map +1 -0
  31. package/dist/lib/utils/retry-manager.d.ts +42 -0
  32. package/dist/lib/utils/retry-manager.d.ts.map +1 -0
  33. package/dist/lib/utils/retry-manager.js +69 -0
  34. package/dist/lib/utils/retry-manager.js.map +1 -0
  35. package/dist/lib/utils/sanitizer.d.ts +32 -0
  36. package/dist/lib/utils/sanitizer.d.ts.map +1 -0
  37. package/dist/lib/utils/sanitizer.js +235 -0
  38. package/dist/lib/utils/sanitizer.js.map +1 -0
  39. package/dist/types/index.d.ts +115 -0
  40. package/dist/types/index.d.ts.map +1 -0
  41. package/dist/types/index.js +2 -0
  42. package/dist/types/index.js.map +1 -0
  43. package/package.json +61 -0
@@ -0,0 +1,568 @@
1
+ /**
2
+ * JSON Encryptor Library
3
+ * Fully parameterized encryption library for JSON data
4
+ * Supports asymmetric encryption using Seal API with customizable configuration
5
+ */
6
+ import https from 'https';
7
+ import fs from 'fs';
8
+ /**
9
+ * JSON Encryptor Class
10
+ * Provides parameterized JSON encryption/decryption functionality
11
+ */
12
+ export class JsonEncryptor {
13
+ config;
14
+ httpsAgent;
15
+ constructor(config) {
16
+ // Set defaults
17
+ this.config = {
18
+ apiBaseUrl: config.apiBaseUrl.replace(/\/$/, ''),
19
+ apiTimeout: config.apiTimeout ?? 30000,
20
+ tlsConfig: config.tlsConfig ?? {},
21
+ publicKeys: config.publicKeys,
22
+ requestIdPrefix: config.requestIdPrefix ?? 'enc',
23
+ enableLogging: config.enableLogging ?? false,
24
+ };
25
+ // Validate configuration
26
+ this.validateConfig();
27
+ // Create HTTPS agent if TLS configuration is provided
28
+ if (this.config.tlsConfig?.clientCertPath || this.config.tlsConfig?.clientKeyPath) {
29
+ this.createHttpsAgent();
30
+ }
31
+ }
32
+ /**
33
+ * Validate configuration
34
+ */
35
+ validateConfig() {
36
+ if (!this.config.apiBaseUrl) {
37
+ throw new Error('apiBaseUrl is required');
38
+ }
39
+ if (!this.config.publicKeys || this.config.publicKeys.length === 0) {
40
+ throw new Error('At least one public key is required');
41
+ }
42
+ // Validate public keys format
43
+ this.config.publicKeys.forEach((key, index) => {
44
+ if (!key.includes('BEGIN PUBLIC KEY') && !key.includes('BEGIN CERTIFICATE')) {
45
+ throw new Error(`Invalid public key format at index ${index}`);
46
+ }
47
+ });
48
+ }
49
+ /**
50
+ * Create HTTPS agent with TLS configuration
51
+ */
52
+ createHttpsAgent() {
53
+ // Skip creating https agent if running in Bun (will use fetch instead)
54
+ const isBun = typeof globalThis.Bun !== 'undefined';
55
+ if (isBun) {
56
+ this.log('🔧 Running in Bun, will use fetch API instead of https module');
57
+ return;
58
+ }
59
+ const tlsOptions = {
60
+ rejectUnauthorized: this.config.tlsConfig?.rejectUnauthorized ?? false,
61
+ };
62
+ // Load client certificate if provided
63
+ if (this.config.tlsConfig?.clientCertPath) {
64
+ if (!fs.existsSync(this.config.tlsConfig.clientCertPath)) {
65
+ throw new Error(`Client certificate not found: ${this.config.tlsConfig.clientCertPath}`);
66
+ }
67
+ tlsOptions.cert = fs.readFileSync(this.config.tlsConfig.clientCertPath);
68
+ }
69
+ // Load client key if provided
70
+ if (this.config.tlsConfig?.clientKeyPath) {
71
+ if (!fs.existsSync(this.config.tlsConfig.clientKeyPath)) {
72
+ throw new Error(`Client key not found: ${this.config.tlsConfig.clientKeyPath}`);
73
+ }
74
+ tlsOptions.key = fs.readFileSync(this.config.tlsConfig.clientKeyPath);
75
+ }
76
+ // Load CA certificate if provided
77
+ if (this.config.tlsConfig?.caPath) {
78
+ if (fs.existsSync(this.config.tlsConfig.caPath)) {
79
+ tlsOptions.ca = fs.readFileSync(this.config.tlsConfig.caPath);
80
+ }
81
+ else {
82
+ this.log(`⚠️ CA certificate not found: ${this.config.tlsConfig.caPath}, skipping`);
83
+ }
84
+ }
85
+ this.httpsAgent = new https.Agent(tlsOptions);
86
+ }
87
+ /**
88
+ * Generate unique request ID
89
+ */
90
+ generateRequestId() {
91
+ const timestamp = Date.now();
92
+ const random = Math.random().toString(36).substring(2, 9);
93
+ return `${this.config.requestIdPrefix}-${timestamp}-${random}`;
94
+ }
95
+ /**
96
+ * Log message if logging is enabled
97
+ */
98
+ log(message, ...args) {
99
+ if (this.config.enableLogging) {
100
+ console.log(message, ...args);
101
+ }
102
+ }
103
+ /**
104
+ * Convert JSON object to base64 string
105
+ */
106
+ jsonToBase64(data) {
107
+ const jsonString = JSON.stringify(data);
108
+ const result = Buffer.from(jsonString, 'utf-8').toString('base64');
109
+ this.log('base64String', result);
110
+ return result;
111
+ }
112
+ /**
113
+ * Convert base64 string to JSON object
114
+ */
115
+ base64ToJson(base64String) {
116
+ const jsonString = Buffer.from(base64String, 'base64').toString('utf-8');
117
+ return JSON.parse(jsonString);
118
+ }
119
+ /**
120
+ * Make HTTPS request to Seal API
121
+ */
122
+ async makeHttpsRequest(endpoint, payload) {
123
+ const url = `${this.config.apiBaseUrl}${endpoint}`;
124
+ this.log(`📡 Making request to: ${url}`);
125
+ // Check if running in Bun runtime
126
+ const isBun = typeof globalThis.Bun !== 'undefined';
127
+ if (isBun) {
128
+ // Use Bun's native fetch API with TLS support
129
+ return this.makeFetchRequest(url, payload);
130
+ }
131
+ // Fallback to Node.js https module
132
+ return new Promise((resolve, reject) => {
133
+ const urlObj = new URL(url);
134
+ const bodyString = JSON.stringify(payload);
135
+ const options = {
136
+ hostname: urlObj.hostname,
137
+ port: urlObj.port || (urlObj.protocol === 'https:' ? 443 : 80),
138
+ path: urlObj.pathname + urlObj.search,
139
+ method: 'POST',
140
+ headers: {
141
+ 'Content-Type': 'application/json',
142
+ 'Content-Length': Buffer.byteLength(bodyString),
143
+ },
144
+ agent: this.httpsAgent,
145
+ timeout: this.config.apiTimeout,
146
+ };
147
+ // If no HTTPS agent, set rejectUnauthorized directly
148
+ if (!this.httpsAgent) {
149
+ options.rejectUnauthorized = this.config.tlsConfig?.rejectUnauthorized ?? false;
150
+ }
151
+ const req = https.request(options, (res) => {
152
+ let data = '';
153
+ res.on('data', (chunk) => {
154
+ data += chunk;
155
+ });
156
+ res.on('end', () => {
157
+ try {
158
+ this.log(`✅ Received response with status: ${res.statusCode}`);
159
+ if (res.statusCode && res.statusCode >= 400) {
160
+ reject(new Error(`HTTP ${res.statusCode}: ${res.statusMessage} - ${data}`));
161
+ return;
162
+ }
163
+ const responseData = JSON.parse(data);
164
+ // Check for API error response
165
+ if ('fault' in responseData) {
166
+ reject(new Error(`API Error: ${responseData.fault.details} (${responseData.fault.code})`));
167
+ return;
168
+ }
169
+ resolve(responseData);
170
+ }
171
+ catch (error) {
172
+ reject(new Error(`Failed to parse response: ${error instanceof Error ? error.message : String(error)}`));
173
+ }
174
+ });
175
+ });
176
+ req.on('error', (error) => {
177
+ this.log(`❌ Request error: ${error.message}`);
178
+ reject(new Error(`Network error: ${error.message}`));
179
+ });
180
+ req.on('timeout', () => {
181
+ req.destroy();
182
+ reject(new Error(`Request timeout after ${this.config.apiTimeout}ms`));
183
+ });
184
+ req.write(bodyString);
185
+ req.end();
186
+ });
187
+ }
188
+ /**
189
+ * Make HTTPS request using Bun's fetch API with TLS support
190
+ */
191
+ async makeFetchRequest(url, payload) {
192
+ try {
193
+ const Bun = globalThis.Bun;
194
+ // Prepare fetch options
195
+ const fetchOptions = {
196
+ method: 'POST',
197
+ headers: {
198
+ 'Content-Type': 'application/json',
199
+ },
200
+ body: JSON.stringify(payload),
201
+ };
202
+ // Add TLS configuration if certificates are provided
203
+ if (this.config.tlsConfig?.clientCertPath && this.config.tlsConfig?.clientKeyPath) {
204
+ // Load certificate files using Bun.file
205
+ const certFile = Bun.file(this.config.tlsConfig.clientCertPath);
206
+ const keyFile = Bun.file(this.config.tlsConfig.clientKeyPath);
207
+ // Check if files exist
208
+ if (!(await certFile.exists())) {
209
+ throw new Error(`Client certificate not found: ${this.config.tlsConfig.clientCertPath}`);
210
+ }
211
+ if (!(await keyFile.exists())) {
212
+ throw new Error(`Client key not found: ${this.config.tlsConfig.clientKeyPath}`);
213
+ }
214
+ fetchOptions.tls = {
215
+ cert: certFile,
216
+ key: keyFile,
217
+ rejectUnauthorized: false, // Hardcoded false like working broadcast.ts
218
+ };
219
+ // Add CA if provided
220
+ if (this.config.tlsConfig?.caPath) {
221
+ const caFile = Bun.file(this.config.tlsConfig.caPath);
222
+ if (await caFile.exists()) {
223
+ fetchOptions.tls.ca = caFile;
224
+ }
225
+ }
226
+ }
227
+ // Make request with timeout
228
+ const controller = new AbortController();
229
+ const timeoutId = setTimeout(() => controller.abort(), this.config.apiTimeout);
230
+ try {
231
+ const response = await fetch(url, {
232
+ ...fetchOptions,
233
+ signal: controller.signal,
234
+ });
235
+ clearTimeout(timeoutId);
236
+ this.log(`✅ Received response with status: ${response.status}`);
237
+ this.log(` Response headers: ${JSON.stringify(Object.fromEntries(response.headers.entries()))}`);
238
+ // Get raw response text first for logging
239
+ const rawResponseText = await response.text();
240
+ this.log(` Raw API response: ${rawResponseText}`);
241
+ if (!response.ok) {
242
+ throw new Error(`HTTP ${response.status}: ${response.statusText} - ${rawResponseText}`);
243
+ }
244
+ // Parse JSON from raw text
245
+ const responseData = JSON.parse(rawResponseText);
246
+ this.log(` Parsed response: ${JSON.stringify(responseData)}`);
247
+ // Check for API error response
248
+ if ('fault' in responseData) {
249
+ throw new Error(`API Error: ${responseData.fault.details} (${responseData.fault.code})`);
250
+ }
251
+ return responseData;
252
+ }
253
+ finally {
254
+ clearTimeout(timeoutId);
255
+ }
256
+ }
257
+ catch (error) {
258
+ if (error instanceof Error) {
259
+ if (error.name === 'AbortError') {
260
+ throw new Error(`Request timeout after ${this.config.apiTimeout}ms`);
261
+ }
262
+ this.log(`❌ Request error: ${error.message}`);
263
+ throw new Error(`Network error: ${error.message}`);
264
+ }
265
+ throw error;
266
+ }
267
+ }
268
+ /**
269
+ * Encrypt JSON data
270
+ *
271
+ * @param data - JSON data to encrypt (any serializable object)
272
+ * @param options - Optional encryption options
273
+ * @returns Promise<EncryptedJson> - Encrypted data with metadata
274
+ *
275
+ * @example
276
+ * const encrypted = await encryptor.encrypt({ message: 'Hello', value: 123 });
277
+ * console.log(encrypted.ciphertext);
278
+ */
279
+ async encrypt(data, options) {
280
+ const requestId = options?.requestId ?? this.generateRequestId();
281
+ const publicKeys = options?.publicKeys ?? this.config.publicKeys;
282
+ this.log(`🔐 Encrypting data with request ID: ${requestId}`);
283
+ this.log(` Using ${publicKeys.length} public key(s)`);
284
+ this.log(` Public keys: ${publicKeys.join(', ')}`);
285
+ this.log(`data: ${JSON.stringify(data)}`);
286
+ try {
287
+ // Convert data to base64
288
+ const dataBase64 = this.jsonToBase64(data);
289
+ this.log(` Data converted to base64 (${dataBase64.length} chars)`);
290
+ const request = {
291
+ Plaintext: [{ Text: dataBase64 }],
292
+ PublicKeyBroadcast: publicKeys,
293
+ };
294
+ // Log full request payload
295
+ this.log(` Seal API Request (full):`);
296
+ this.log(JSON.stringify(request, null, 2));
297
+ // Call Seal API
298
+ const response = await this.makeHttpsRequest('/broadcast/asymmetric/seal/base64', request);
299
+ if (!response.Ciphertext || response.Ciphertext.length === 0) {
300
+ throw new Error('API returned empty ciphertext');
301
+ }
302
+ this.log(`response: ${JSON.stringify(response)}`);
303
+ const dataResponse = response.Ciphertext[0].text;
304
+ this.log(`✅ Encryption successful (${dataResponse.length} chars)`);
305
+ return {
306
+ requestId,
307
+ data: dataResponse,
308
+ encryptionMethod: 'seal-api',
309
+ };
310
+ }
311
+ catch (error) {
312
+ this.log(`❌ Encryption failed: ${error instanceof Error ? error.message : String(error)}`);
313
+ throw new Error(`Encryption failed: ${error instanceof Error ? error.message : String(error)}`);
314
+ }
315
+ }
316
+ /**
317
+ * Decrypt encrypted JSON data
318
+ *
319
+ * @param encryptedData - Encrypted data from encrypt() method or ciphertext string
320
+ * @returns Promise<DecryptedJson<T>> - Decrypted data with metadata
321
+ *
322
+ * @example
323
+ * const decrypted = await encryptor.decrypt(encrypted);
324
+ * console.log(decrypted.data);
325
+ */
326
+ async decrypt(encryptedData) {
327
+ // Handle both EncryptedJson object and raw ciphertext string
328
+ const ciphertext = typeof encryptedData === 'string'
329
+ ? encryptedData
330
+ : encryptedData.data;
331
+ const requestId = typeof encryptedData === 'object'
332
+ ? encryptedData.requestId
333
+ : undefined;
334
+ const timestamp = typeof encryptedData === 'object'
335
+ ? encryptedData.timestamp
336
+ : Date.now();
337
+ this.log(`🔓 Decrypting data${requestId ? ` with request ID: ${requestId}` : ''}`);
338
+ this.log(` Ciphertext length: ${ciphertext.length} characters`);
339
+ this.log(` Ciphertext preview (first 100): ${ciphertext.substring(0, 100)}...`);
340
+ this.log(` Ciphertext preview (last 100): ...${ciphertext.substring(ciphertext.length - 100)}`);
341
+ // Validate ciphertext format
342
+ const base64Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=:';
343
+ let validChars = 0;
344
+ let invalidChars = [];
345
+ const hasBroadcastSeparator = ciphertext.includes(':');
346
+ for (let i = 0; i < Math.min(1000, ciphertext.length); i++) {
347
+ const char = ciphertext[i];
348
+ if (base64Chars.includes(char) || (hasBroadcastSeparator && char === ':')) {
349
+ validChars++;
350
+ }
351
+ else {
352
+ invalidChars.push(`'${char}' (0x${char.charCodeAt(0).toString(16)})`);
353
+ }
354
+ }
355
+ if (invalidChars.length > 0) {
356
+ this.log(` ⚠️ WARNING: Found ${invalidChars.length} non-base64 characters in first 1000 chars`);
357
+ this.log(` Invalid chars: ${invalidChars.slice(0, 5).join(', ')}`);
358
+ }
359
+ else {
360
+ this.log(` ✓ Ciphertext contains only valid base64 characters (checked first 1000 chars)`);
361
+ }
362
+ // Test base64 decode
363
+ if (hasBroadcastSeparator) {
364
+ const parts = ciphertext.split(':');
365
+ let allPartsValid = true;
366
+ for (const part of parts) {
367
+ try {
368
+ const decoded = Buffer.from(part, 'base64');
369
+ if (decoded.length === 0) {
370
+ allPartsValid = false;
371
+ break;
372
+ }
373
+ }
374
+ catch {
375
+ allPartsValid = false;
376
+ break;
377
+ }
378
+ }
379
+ if (allPartsValid) {
380
+ this.log(` ✓ Broadcast base64 decode test: SUCCESS (all ${parts.length} parts valid)`);
381
+ }
382
+ else {
383
+ this.log(` ⚠️ WARNING: Broadcast base64 decode test: FAILED (some parts invalid)`);
384
+ }
385
+ }
386
+ else {
387
+ try {
388
+ const decoded = Buffer.from(ciphertext, 'base64');
389
+ if (decoded.length > 0) {
390
+ this.log(` ✓ Single base64 decode test: SUCCESS (${decoded.length} bytes decoded)`);
391
+ }
392
+ else {
393
+ this.log(` ⚠️ WARNING: Single base64 decode test: FAILED (empty result)`);
394
+ }
395
+ }
396
+ catch (e) {
397
+ this.log(` ⚠️ WARNING: Single base64 decode test: FAILED (${e instanceof Error ? e.message : String(e)})`);
398
+ }
399
+ }
400
+ try {
401
+ // PENDEKATAN BERBEDA: Auto-detect format ciphertext
402
+ // Jika ciphertext tidak mengandung ':' separator, kemungkinan single key encryption
403
+ // Coba unseal dulu, jika gagal baru coba broadcast_unseal
404
+ const isBroadcastFormat = ciphertext.includes(':');
405
+ this.log(` Ciphertext format: ${isBroadcastFormat ? 'Broadcast (contains :)' : 'Single (no :)'}`);
406
+ let plaintextBase64;
407
+ if (!isBroadcastFormat) {
408
+ // Single key encryption - coba unseal endpoint dulu
409
+ this.log(` Trying /asymmetric/unseal/base64 endpoint for single key...`);
410
+ try {
411
+ const unsealRequest = {
412
+ Ciphertext: [{ text: ciphertext }],
413
+ };
414
+ // Debug: Log full request payload
415
+ this.log(` Request payload: Ciphertext array with 1 item, length: ${ciphertext.length} chars`);
416
+ this.log(` Single Unseal API Request (full):`);
417
+ this.log(JSON.stringify(unsealRequest, null, 2));
418
+ const unsealResponse = await this.makeHttpsRequest('/asymmetric/unseal/base64', unsealRequest);
419
+ if (unsealResponse.Plaintext && unsealResponse.Plaintext.length > 0) {
420
+ plaintextBase64 = unsealResponse.Plaintext[0].text;
421
+ this.log(` ✓ Single unseal successful`);
422
+ }
423
+ else {
424
+ throw new Error('API returned empty plaintext');
425
+ }
426
+ }
427
+ catch (unsealError) {
428
+ // Jika unseal gagal, fallback ke broadcast_unseal
429
+ this.log(` ⚠️ Single unseal failed, trying broadcast_unseal...`);
430
+ const errorMsg = unsealError instanceof Error ? unsealError.message : String(unsealError);
431
+ this.log(` Error: ${errorMsg}`);
432
+ // Fallback ke broadcast_unseal
433
+ const request = {
434
+ Ciphertext: [{ text: ciphertext }],
435
+ };
436
+ // Debug: Log full request payload
437
+ this.log(` Fallback request payload: Ciphertext array with 1 item, length: ${ciphertext.length} chars`);
438
+ this.log(` Fallback Unseal API Request (full):`);
439
+ this.log(JSON.stringify(request, null, 2));
440
+ const response = await this.makeHttpsRequest('/broadcast/asymmetric/unseal/base64', request);
441
+ if (!response.Plaintext || response.Plaintext.length === 0) {
442
+ throw new Error('API returned empty plaintext');
443
+ }
444
+ plaintextBase64 = response.Plaintext[0].text;
445
+ this.log(` ✓ Broadcast unseal successful (fallback)`);
446
+ }
447
+ }
448
+ else {
449
+ // Broadcast format - gunakan broadcast_unseal
450
+ this.log(` Using /broadcast/asymmetric/unseal/base64 endpoint for broadcast format...`);
451
+ const request = {
452
+ Ciphertext: [{ text: ciphertext }],
453
+ };
454
+ // Debug: Log full request payload
455
+ this.log(` Request payload: Ciphertext array with 1 item, length: ${ciphertext.length} chars`);
456
+ const parts = ciphertext.split(':');
457
+ this.log(` Broadcast format: ${parts.length} parts`);
458
+ this.log(` Unseal API Request (full):`);
459
+ this.log(JSON.stringify(request, null, 2));
460
+ const response = await this.makeHttpsRequest('/broadcast/asymmetric/unseal/base64', request);
461
+ if (!response.Plaintext || response.Plaintext.length === 0) {
462
+ throw new Error('API returned empty plaintext');
463
+ }
464
+ plaintextBase64 = response.Plaintext[0].text;
465
+ this.log(` ✓ Broadcast unseal successful`);
466
+ }
467
+ this.log(` Plaintext received (${plaintextBase64.length} chars)`);
468
+ // Convert from base64 to JSON
469
+ const data = this.base64ToJson(plaintextBase64);
470
+ this.log(`✅ Decryption successful`);
471
+ return {
472
+ data,
473
+ requestId,
474
+ timestamp: timestamp ?? Date.now(),
475
+ };
476
+ }
477
+ catch (error) {
478
+ this.log(`❌ Decryption failed: ${error instanceof Error ? error.message : String(error)}`);
479
+ throw new Error(`Decryption failed: ${error instanceof Error ? error.message : String(error)}`);
480
+ }
481
+ }
482
+ /**
483
+ * Encrypt multiple JSON objects in batch
484
+ *
485
+ * @param dataArray - Array of JSON objects to encrypt
486
+ * @param options - Optional encryption options
487
+ * @returns Promise<EncryptedJson[]> - Array of encrypted data
488
+ */
489
+ async encryptBatch(dataArray, options) {
490
+ this.log(`🔐 Batch encrypting ${dataArray.length} items`);
491
+ const publicKeys = options?.publicKeys ?? this.config.publicKeys;
492
+ const requestIdPrefix = options?.requestIdPrefix ?? this.config.requestIdPrefix;
493
+ // Convert all data to base64
494
+ const dataBase64Array = dataArray.map((data) => this.jsonToBase64(data));
495
+ const request = {
496
+ Plaintext: dataBase64Array.map((text) => ({ Text: text })),
497
+ PublicKeyBroadcast: publicKeys,
498
+ };
499
+ // Call Seal API
500
+ const response = await this.makeHttpsRequest('/broadcast/asymmetric/seal/base64', request);
501
+ if (!response.Ciphertext || response.Ciphertext.length !== dataArray.length) {
502
+ throw new Error('API returned invalid number of ciphertexts');
503
+ }
504
+ // Map ciphertexts to EncryptedJson objects
505
+ return response.Ciphertext.map((item, index) => ({
506
+ requestId: `${requestIdPrefix}-batch-${Date.now()}-${index}`,
507
+ data: item.text,
508
+ timestamp: Date.now(),
509
+ encryptionMethod: 'seal-api',
510
+ }));
511
+ }
512
+ /**
513
+ * Update configuration
514
+ */
515
+ updateConfig(config) {
516
+ if (config.apiBaseUrl) {
517
+ this.config.apiBaseUrl = config.apiBaseUrl.replace(/\/$/, '');
518
+ }
519
+ if (config.apiTimeout !== undefined) {
520
+ this.config.apiTimeout = config.apiTimeout;
521
+ }
522
+ if (config.tlsConfig !== undefined) {
523
+ this.config.tlsConfig = { ...this.config.tlsConfig, ...config.tlsConfig };
524
+ this.createHttpsAgent();
525
+ }
526
+ if (config.publicKeys) {
527
+ this.config.publicKeys = config.publicKeys;
528
+ this.validateConfig();
529
+ }
530
+ if (config.requestIdPrefix !== undefined) {
531
+ this.config.requestIdPrefix = config.requestIdPrefix;
532
+ }
533
+ if (config.enableLogging !== undefined) {
534
+ this.config.enableLogging = config.enableLogging;
535
+ }
536
+ }
537
+ /**
538
+ * Get current configuration (read-only)
539
+ */
540
+ getConfig() {
541
+ return { ...this.config };
542
+ }
543
+ }
544
+ /**
545
+ * Create a JsonEncryptor instance with configuration
546
+ *
547
+ * @param config - Configuration object
548
+ * @returns JsonEncryptor instance
549
+ *
550
+ * @example
551
+ * const encryptor = createJsonEncryptor({
552
+ * apiBaseUrl: 'https://192.168.112.153:2798',
553
+ * publicKeys: [publicKey1, publicKey2],
554
+ * tlsConfig: {
555
+ * clientCertPath: './client.crt',
556
+ * clientKeyPath: './client.key',
557
+ * rejectUnauthorized: false,
558
+ * },
559
+ * enableLogging: true,
560
+ * });
561
+ *
562
+ * const encrypted = await encryptor.encrypt({ message: 'Hello World' });
563
+ * const decrypted = await encryptor.decrypt(encrypted);
564
+ */
565
+ export function createJsonEncryptor(config) {
566
+ return new JsonEncryptor(config);
567
+ }
568
+ //# sourceMappingURL=json-encryptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-encryptor.js","sourceRoot":"","sources":["../../../lib/crypto/json-encryptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * SPLP Library Exports
3
+ * All utilities and classes available for use in your application
4
+ */
5
+ export { KafkaWrapper } from './kafka/kafka-wrapper.js';
6
+ export { JsonEncryptor, createJsonEncryptor, } from './crypto/json-encryptor.js';
7
+ export type { JsonEncryptorConfig, EncryptedJson, DecryptedJson, } from './crypto/json-encryptor.js';
8
+ export { sanitizeXSS, sanitizeInjection, validateRequestId, validateIdentifier, sanitizeObject, parseJSONSafely, validateEncryptedMessage, RateLimiter, SecurityError, } from './utils/sanitizer.js';
9
+ export type { SanitizerOptions } from './utils/sanitizer.js';
10
+ export { generateRequestId, isValidRequestId } from './utils/request-id.js';
11
+ export { CircuitBreaker, CircuitState } from './utils/circuit-breaker.js';
12
+ export type { CircuitBreakerConfig } from './utils/circuit-breaker.js';
13
+ export { RetryManager, RetryConfigs } from './utils/retry-manager.js';
14
+ export type { RetryConfig } from './utils/retry-manager.js';
15
+ export { initTracing, shutdownTracing, getTracer, withSpan, addSpanAttributes, addSpanEvent, injectTraceContext, extractTraceContext, createChildSpan, requestIdToTraceId, setCustomTraceId, } from './tracing/tracer.js';
16
+ export type { TracingConfig } from './tracing/tracer.js';
17
+ export type { KafkaConfig, EncryptionConfig, RequestMessage, ResponseMessage, EncryptedMessage, LogEntry, RequestHandler, HandlerRegistry, BaseVerificationResult, DukcapilResult, BPJSTKResult, BPJSKesehatanResult, BankIndonesiaResult, VerificationResult, } from '../types/index.js';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,aAAa,GACd,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,WAAW,EACX,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1E,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EACL,WAAW,EACX,eAAe,EACf,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * SPLP Library Exports
3
+ * All utilities and classes available for use in your application
4
+ */
5
+ // Kafka
6
+ export { KafkaWrapper } from './kafka/kafka-wrapper.js';
7
+ // Crypto / Encryption
8
+ export { JsonEncryptor, createJsonEncryptor, } from './crypto/json-encryptor.js';
9
+ // Security & Sanitization
10
+ export { sanitizeXSS, sanitizeInjection, validateRequestId, validateIdentifier, sanitizeObject, parseJSONSafely, validateEncryptedMessage, RateLimiter, SecurityError, } from './utils/sanitizer.js';
11
+ // Request ID
12
+ export { generateRequestId, isValidRequestId } from './utils/request-id.js';
13
+ // Resilience & Error Handling
14
+ export { CircuitBreaker, CircuitState } from './utils/circuit-breaker.js';
15
+ export { RetryManager, RetryConfigs } from './utils/retry-manager.js';
16
+ // Tracing
17
+ export { initTracing, shutdownTracing, getTracer, withSpan, addSpanAttributes, addSpanEvent, injectTraceContext, extractTraceContext, createChildSpan, requestIdToTraceId, setCustomTraceId, } from './tracing/tracer.js';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,sBAAsB;AACtB,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAOpC,0BAA0B;AAC1B,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,WAAW,EACX,aAAa,GACd,MAAM,sBAAsB,CAAC;AAG9B,aAAa;AACb,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE5E,8BAA8B;AAC9B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGtE,UAAU;AACV,OAAO,EACL,WAAW,EACX,eAAe,EACf,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC"}