dgii-ts 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +192 -0
  3. package/README.md +196 -0
  4. package/dist/bulk.cjs +11 -0
  5. package/dist/bulk.d.cts +30 -0
  6. package/dist/bulk.d.ts +30 -0
  7. package/dist/bulk.js +11 -0
  8. package/dist/chunk-2ST6QKHA.cjs +1 -0
  9. package/dist/chunk-4OYLCOUL.cjs +201 -0
  10. package/dist/chunk-4TKAQ4WV.js +198 -0
  11. package/dist/chunk-53A7IG4Y.js +23 -0
  12. package/dist/chunk-6CIP7YH6.cjs +198 -0
  13. package/dist/chunk-7RJWFPCZ.cjs +44 -0
  14. package/dist/chunk-D26S6EXD.js +12 -0
  15. package/dist/chunk-DMGDJEUY.js +44 -0
  16. package/dist/chunk-ERBXSS64.js +0 -0
  17. package/dist/chunk-EZKSB553.js +0 -0
  18. package/dist/chunk-FZ6QDTC4.cjs +98 -0
  19. package/dist/chunk-HGE4QZ3H.js +281 -0
  20. package/dist/chunk-HR4DCHH7.js +201 -0
  21. package/dist/chunk-KIS7MVIW.js +98 -0
  22. package/dist/chunk-QH4BK5X3.cjs +12 -0
  23. package/dist/chunk-QOSGH7F5.cjs +1 -0
  24. package/dist/chunk-SUSDEKID.cjs +784 -0
  25. package/dist/chunk-TZC6RSWL.js +784 -0
  26. package/dist/chunk-VJ4ZQQIQ.cjs +281 -0
  27. package/dist/chunk-WY6V4Y7S.cjs +23 -0
  28. package/dist/client.cjs +17 -0
  29. package/dist/client.d.cts +95 -0
  30. package/dist/client.d.ts +95 -0
  31. package/dist/client.js +17 -0
  32. package/dist/errors.cjs +14 -0
  33. package/dist/errors.d.cts +40 -0
  34. package/dist/errors.d.ts +40 -0
  35. package/dist/errors.js +14 -0
  36. package/dist/index-CS-7YY2y.d.cts +58 -0
  37. package/dist/index-CS-7YY2y.d.ts +58 -0
  38. package/dist/index.cjs +66 -0
  39. package/dist/index.d.cts +7 -0
  40. package/dist/index.d.ts +7 -0
  41. package/dist/index.js +66 -0
  42. package/dist/scraping.cjs +16 -0
  43. package/dist/scraping.d.cts +47 -0
  44. package/dist/scraping.d.ts +47 -0
  45. package/dist/scraping.js +16 -0
  46. package/dist/soap.cjs +23 -0
  47. package/dist/soap.d.cts +38 -0
  48. package/dist/soap.d.ts +38 -0
  49. package/dist/soap.js +23 -0
  50. package/dist/validators.cjs +17 -0
  51. package/dist/validators.d.cts +55 -0
  52. package/dist/validators.d.ts +55 -0
  53. package/dist/validators.js +17 -0
  54. package/package.json +109 -0
@@ -0,0 +1,784 @@
1
+ import {
2
+ stripNonDigits
3
+ } from "./chunk-D26S6EXD.js";
4
+
5
+ // src/validators/rnc-whitelist.ts
6
+ var RNC_WHITELIST = /* @__PURE__ */ new Set([
7
+ "101581601",
8
+ "101582245",
9
+ "101595422",
10
+ "101595785",
11
+ "10233317",
12
+ "131188691",
13
+ "401007374",
14
+ "501341601",
15
+ "501378067",
16
+ "501620371",
17
+ "501651319",
18
+ "501651823",
19
+ "501651845",
20
+ "501651926",
21
+ "501656006",
22
+ "501658167",
23
+ "501670785",
24
+ "501676936",
25
+ "501680158",
26
+ "504654542",
27
+ "504680029",
28
+ "504681442",
29
+ "505038691"
30
+ ]);
31
+
32
+ // src/validators/rnc.ts
33
+ var WEIGHTS = [7, 9, 8, 6, 5, 4, 3, 2];
34
+ function validateRnc(value) {
35
+ if (typeof value !== "string") return { valid: false };
36
+ const digits = stripNonDigits(value);
37
+ if (RNC_WHITELIST.has(digits)) {
38
+ if (digits.length === 9) {
39
+ const formatted2 = `${digits[0]}-${digits.slice(1, 3)}-${digits.slice(3, 8)}-${digits[8]}`;
40
+ return { valid: true, formatted: formatted2 };
41
+ }
42
+ return { valid: true, formatted: digits };
43
+ }
44
+ if (digits.length !== 9) {
45
+ return { valid: false };
46
+ }
47
+ if (digits[0] === "0") {
48
+ return { valid: false };
49
+ }
50
+ let sum = 0;
51
+ for (let i = 0; i < 8; i++) {
52
+ sum += Number(digits[i]) * WEIGHTS[i];
53
+ }
54
+ const remainder = sum % 11;
55
+ let expectedCheckDigit;
56
+ if (remainder === 0) {
57
+ expectedCheckDigit = 2;
58
+ } else if (remainder === 1) {
59
+ expectedCheckDigit = 1;
60
+ } else {
61
+ expectedCheckDigit = 11 - remainder;
62
+ }
63
+ const actualCheckDigit = Number(digits[8]);
64
+ if (actualCheckDigit !== expectedCheckDigit) {
65
+ return { valid: false };
66
+ }
67
+ const formatted = `${digits[0]}-${digits.slice(1, 3)}-${digits.slice(3, 8)}-${digits[8]}`;
68
+ return { valid: true, formatted };
69
+ }
70
+
71
+ // src/validators/cedula-whitelist.ts
72
+ var CEDULA_WHITELIST = /* @__PURE__ */ new Set([
73
+ "00000021249",
74
+ "00000031417",
75
+ "00000035692",
76
+ "00000045342",
77
+ "00000058035",
78
+ "00000065377",
79
+ "00000078587",
80
+ "00000111941",
81
+ "00000126295",
82
+ "00000129963",
83
+ "00000140874",
84
+ "00000144491",
85
+ "00000155482",
86
+ "00000195576",
87
+ "00000236621",
88
+ "00000292212",
89
+ "00000302347",
90
+ "00000404655",
91
+ "00000547495",
92
+ "00000564933",
93
+ "00000669773",
94
+ "00000719400",
95
+ "00001965804",
96
+ "00004110056",
97
+ "00006747587",
98
+ "00010130085",
99
+ "00010628559",
100
+ "00077584000",
101
+ "00100000169",
102
+ "00100012146",
103
+ "00100013114",
104
+ "00100016495",
105
+ "00100053841",
106
+ "00100061611",
107
+ "00100061945",
108
+ "00100074627",
109
+ "00100083860",
110
+ "00100101767",
111
+ "00100126468",
112
+ "00100145737",
113
+ "00100165504",
114
+ "00100169706",
115
+ "00100172940",
116
+ "00100174666",
117
+ "00100181057",
118
+ "00100228718",
119
+ "00100231017",
120
+ "00100238382",
121
+ "00100239662",
122
+ "00100255349",
123
+ "00100288143",
124
+ "00100288929",
125
+ "00100322649",
126
+ "00100336027",
127
+ "00100350928",
128
+ "00100378440",
129
+ "00100384268",
130
+ "00100384523",
131
+ "00100415853",
132
+ "00100430989",
133
+ "00100523399",
134
+ "00100524531",
135
+ "00100530588",
136
+ "00100531007",
137
+ "00100587320",
138
+ "00100590683",
139
+ "00100593378",
140
+ "00100622461",
141
+ "00100664086",
142
+ "00100709215",
143
+ "00100728113",
144
+ "00100729795",
145
+ "00100756082",
146
+ "00100759932",
147
+ "00101118022",
148
+ "00101166065",
149
+ "00101234090",
150
+ "00101527366",
151
+ "00101541404",
152
+ "00101621981",
153
+ "00101659661",
154
+ "00101684656",
155
+ "00101686299",
156
+ "00101821735",
157
+ "00101961125",
158
+ "00102025201",
159
+ "00102398239",
160
+ "00102577448",
161
+ "00102630192",
162
+ "00103266558",
163
+ "00103436936",
164
+ "00103443802",
165
+ "00103754365",
166
+ "00103766231",
167
+ "00103822440",
168
+ "00103983004",
169
+ "00104486903",
170
+ "00104532086",
171
+ "00104662561",
172
+ "00104727362",
173
+ "00104785104",
174
+ "00104862525",
175
+ "00104966313",
176
+ "00105263314",
177
+ "00105328185",
178
+ "00105512386",
179
+ "00105530894",
180
+ "00105606543",
181
+ "00105832408",
182
+ "00106190966",
183
+ "00106284933",
184
+ "00106418989",
185
+ "00106442522",
186
+ "00106479922",
187
+ "00106916538",
188
+ "00107045499",
189
+ "00107075090",
190
+ "00107184305",
191
+ "00107445493",
192
+ "00107602067",
193
+ "00107665688",
194
+ "00107687383",
195
+ "00107691942",
196
+ "00108113363",
197
+ "00108132448",
198
+ "00108184024",
199
+ "00108264871",
200
+ "00108286792",
201
+ "00108384121",
202
+ "00108413431",
203
+ "00108497822",
204
+ "00108784684",
205
+ "00108796883",
206
+ "00108940225",
207
+ "00109183462",
208
+ "00109229090",
209
+ "00109402756",
210
+ "00109785951",
211
+ "00109987435",
212
+ "00110047715",
213
+ "00110071113",
214
+ "00110111536",
215
+ "00110490843",
216
+ "00110578459",
217
+ "00110646203",
218
+ "00111014782",
219
+ "00111150559",
220
+ "00113453700",
221
+ "00114272360",
222
+ "00114532330",
223
+ "00114532355",
224
+ "00114687216",
225
+ "00115039795",
226
+ "00115343847",
227
+ "00116256005",
228
+ "00116448241",
229
+ "00116508511",
230
+ "00117582001",
231
+ "00119161853",
232
+ "00121344165",
233
+ "00121581750",
234
+ "00121581800",
235
+ "00129737056",
236
+ "00130610001",
237
+ "00131257003",
238
+ "00133987848",
239
+ "00134588056",
240
+ "00142864013",
241
+ "00143072001",
242
+ "00144435001",
243
+ "00146965001",
244
+ "00147485003",
245
+ "00149657590",
246
+ "00155144906",
247
+ "00160405001",
248
+ "00161884001",
249
+ "00162906003",
250
+ "00163540003",
251
+ "00163549012",
252
+ "00163709018",
253
+ "00166457056",
254
+ "00166533003",
255
+ "00167311001",
256
+ "00170009162",
257
+ "00170115579",
258
+ "00171404771",
259
+ "00174729003",
260
+ "00174940001",
261
+ "00181880003",
262
+ "00184129003",
263
+ "00189213001",
264
+ "00189405093",
265
+ "00190002567",
266
+ "00196714003",
267
+ "00200021994",
268
+ "00200028716",
269
+ "00200040516",
270
+ "00200063601",
271
+ "00200123640",
272
+ "00200291381",
273
+ "00200409772",
274
+ "00200435544",
275
+ "00200969260",
276
+ "00201023001",
277
+ "00202110760",
278
+ "00202744522",
279
+ "00207327056",
280
+ "00208430205",
281
+ "00208832003",
282
+ "00218507031",
283
+ "00222017001",
284
+ "00235482001",
285
+ "00236245013",
286
+ "00241997013",
287
+ "00246160013",
288
+ "00261011013",
289
+ "00270764013",
290
+ "00274652001",
291
+ "00278005023",
292
+ "00289931003",
293
+ "00291431001",
294
+ "00291549003",
295
+ "00297018001",
296
+ "00298109001",
297
+ "00299724003",
298
+ "00300001538",
299
+ "00300011700",
300
+ "00300013835",
301
+ "00300015531",
302
+ "00300017875",
303
+ "00300019575",
304
+ "00300020806",
305
+ "00300025568",
306
+ "00300040413",
307
+ "00300052890",
308
+ "00300169535",
309
+ "00300244009",
310
+ "00300636564",
311
+ "00301200901",
312
+ "00305535206",
313
+ "00345425001",
314
+ "00352861001",
315
+ "00356533003",
316
+ "00362684023",
317
+ "00376023023",
318
+ "00388338093",
319
+ "00400001552",
320
+ "00400001614",
321
+ "00400012957",
322
+ "00400189811",
323
+ "00409169001",
324
+ "00425759001",
325
+ "00435518003",
326
+ "00475916056",
327
+ "00481106001",
328
+ "00481595003",
329
+ "00493593003",
330
+ "00500335596",
331
+ "00516077003",
332
+ "00520207699",
333
+ "00524571001",
334
+ "00539342005",
335
+ "00540077717",
336
+ "00544657001",
337
+ "00561269169",
338
+ "00572030001",
339
+ "00574599001",
340
+ "00599408003",
341
+ "00633126023",
342
+ "00644236001",
343
+ "00648496171",
344
+ "00651322001",
345
+ "00686904003",
346
+ "00701067521",
347
+ "00720758056",
348
+ "00731054054",
349
+ "00741721056",
350
+ "00757398001",
351
+ "00800106971",
352
+ "00848583056",
353
+ "00857630012",
354
+ "0094662667",
355
+ "00971815056",
356
+ "01000005580",
357
+ "01000250733",
358
+ "01000268998",
359
+ "01000728704",
360
+ "01000855890",
361
+ "01038813907",
362
+ "01094560111",
363
+ "01100014261",
364
+ "01100620962",
365
+ "01103552230",
366
+ "01133025660",
367
+ "01154421047",
368
+ "01200004166",
369
+ "01200008613",
370
+ "01200011252",
371
+ "01200014133",
372
+ "01200027863",
373
+ "01200033420",
374
+ "01200038298",
375
+ "01200771767",
376
+ "01300001142",
377
+ "01300005424",
378
+ "01300020331",
379
+ "01400000282",
380
+ "01400074875",
381
+ "01600009531",
382
+ "01600019983",
383
+ "01600026316",
384
+ "01600027894",
385
+ "01650257001",
386
+ "01700052445",
387
+ "01700200811",
388
+ "01800022457",
389
+ "01800058439",
390
+ "01800527104",
391
+ "01810035037",
392
+ "02038569001",
393
+ "02100061022",
394
+ "02300003061",
395
+ "02300023225",
396
+ "02300031758",
397
+ "02300037618",
398
+ "02300047220",
399
+ "02300052220",
400
+ "02300054193",
401
+ "02300062066",
402
+ "02300085158",
403
+ "02400229955",
404
+ "02500045676",
405
+ "02600036132",
406
+ "02600094954",
407
+ "02700029905",
408
+ "02755972001",
409
+ "02800000129",
410
+ "02800021761",
411
+ "02800025877",
412
+ "02800029588",
413
+ "02831146001",
414
+ "03000411295",
415
+ "03100001162",
416
+ "03100018730",
417
+ "03100034839",
418
+ "03100083297",
419
+ "03100109611",
420
+ "03100156525",
421
+ "03100195659",
422
+ "03100231390",
423
+ "03100232921",
424
+ "03100277078",
425
+ "03100304632",
426
+ "03100332296",
427
+ "03100398552",
428
+ "03100442457",
429
+ "03100486248",
430
+ "03100488033",
431
+ "03100620176",
432
+ "03100654224",
433
+ "03100668294",
434
+ "03100673050",
435
+ "03100771674",
436
+ "03100789636",
437
+ "03100831768",
438
+ "03100963776",
439
+ "03100984652",
440
+ "03101014877",
441
+ "03101070888",
442
+ "03101105802",
443
+ "03101162278",
444
+ "03101409196",
445
+ "03101456639",
446
+ "03101477254",
447
+ "03101577963",
448
+ "03101713684",
449
+ "03101977306",
450
+ "03102342076",
451
+ "03102399233",
452
+ "03102678700",
453
+ "03102805428",
454
+ "03102828522",
455
+ "03102936385",
456
+ "03103202719",
457
+ "03103315310",
458
+ "03103317617",
459
+ "03103749672",
460
+ "03104354892",
461
+ "03107049671",
462
+ "03108309308",
463
+ "03111670001",
464
+ "03121982479",
465
+ "03131503831",
466
+ "03170483480",
467
+ "03200023002",
468
+ "03200066940",
469
+ "03300023841",
470
+ "03400058730",
471
+ "03400157849",
472
+ "03401709701",
473
+ "03500037890",
474
+ "03600046116",
475
+ "03600127038",
476
+ "03600180637",
477
+ "03700663589",
478
+ "03800032522",
479
+ "03807240010",
480
+ "03852380001",
481
+ "03900069856",
482
+ "03900192284",
483
+ "04022130495",
484
+ "04200012900",
485
+ "04400002002",
486
+ "04400627868",
487
+ "04600198229",
488
+ "04700004024",
489
+ "04700020933",
490
+ "04700027064",
491
+ "04700061076",
492
+ "04700070460",
493
+ "04700074827",
494
+ "04700211635",
495
+ "04700221469",
496
+ "04700728184",
497
+ "04701174268",
498
+ "04800019561",
499
+ "04800034846",
500
+ "04800046910",
501
+ "04800956889",
502
+ "04801245892",
503
+ "04900009932",
504
+ "04900011690",
505
+ "04900013913",
506
+ "04900014592",
507
+ "04900026260",
508
+ "04900028443",
509
+ "04900448230",
510
+ "04902549001",
511
+ "04941042001",
512
+ "05100085656",
513
+ "05300013029",
514
+ "05300013204",
515
+ "05300123494",
516
+ "05400016031",
517
+ "05400021759",
518
+ "05400022042",
519
+ "05400028496",
520
+ "05400033166",
521
+ "05400034790",
522
+ "05400037495",
523
+ "05400038776",
524
+ "05400040523",
525
+ "05400047674",
526
+ "05400048248",
527
+ "05400049237",
528
+ "05400049834",
529
+ "05400050196",
530
+ "05400050304",
531
+ "05400052300",
532
+ "05400053627",
533
+ "05400054156",
534
+ "05400055485",
535
+ "05400055770",
536
+ "05400057300",
537
+ "05400057684",
538
+ "05400058964",
539
+ "05400059956",
540
+ "05400060743",
541
+ "05400062459",
542
+ "05400065376",
543
+ "05400067703",
544
+ "05400072273",
545
+ "05400076481",
546
+ "05400216948",
547
+ "05400878578",
548
+ "05500003079",
549
+ "05500006796",
550
+ "05500008806",
551
+ "05500012039",
552
+ "05500014375",
553
+ "05500017761",
554
+ "05500021118",
555
+ "05500022399",
556
+ "05500023407",
557
+ "05500024135",
558
+ "05500024190",
559
+ "05500027749",
560
+ "05500028350",
561
+ "05500032681",
562
+ "05500173451",
563
+ "05500303477",
564
+ "05600037761",
565
+ "05600038251",
566
+ "05600038964",
567
+ "05600051191",
568
+ "05600063115",
569
+ "05600166034",
570
+ "05600267737",
571
+ "05600553831",
572
+ "05700004693",
573
+ "05700064077",
574
+ "05700071202",
575
+ "05900072869",
576
+ "05900105969",
577
+ "06100007818",
578
+ "06100009131",
579
+ "06100011935",
580
+ "06100013662",
581
+ "06100016486",
582
+ "06100017058",
583
+ "06337850001",
584
+ "06400007916",
585
+ "06400011981",
586
+ "06400014372",
587
+ "06400069279",
588
+ "06486186001",
589
+ "06500162568",
590
+ "06800008448",
591
+ "06800245196",
592
+ "06843739551",
593
+ "06900069184",
594
+ "07000007872",
595
+ "07100018031",
596
+ "07100063262",
597
+ "0710208838",
598
+ "07400001254",
599
+ "07401860112",
600
+ "07600000691",
601
+ "07700009346",
602
+ "07800000968",
603
+ "07800002361",
604
+ "08000213172",
605
+ "08016809001",
606
+ "08100002398",
607
+ "08400068380",
608
+ "08498619001",
609
+ "08800002823",
610
+ "08800003986",
611
+ "08800005068",
612
+ "08900001310",
613
+ "08900004344",
614
+ "08900004849",
615
+ "08900005064",
616
+ "08952698001",
617
+ "09000117963",
618
+ "09000169133",
619
+ "09010011235",
620
+ "09022066011",
621
+ "09200533048",
622
+ "09300006239",
623
+ "09300035357",
624
+ "09400022178",
625
+ "09421581768",
626
+ "09500001177",
627
+ "09500003211",
628
+ "09500008222",
629
+ "09700003030",
630
+ "09700179110",
631
+ "09900017864",
632
+ "10061805811",
633
+ "10100178199",
634
+ "10201116357",
635
+ "10462157001",
636
+ "10491297001",
637
+ "10621581792",
638
+ "10983439110",
639
+ "11700000658",
640
+ "12019831001",
641
+ "12300074628",
642
+ "21000000000",
643
+ "22321581834",
644
+ "22721581818",
645
+ "40200401324",
646
+ "40200452735",
647
+ "40200639953",
648
+ "40200700675",
649
+ "58005174058",
650
+ "90001200901"
651
+ ]);
652
+
653
+ // src/validators/cedula.ts
654
+ function validateCedula(value) {
655
+ if (typeof value !== "string") return { valid: false };
656
+ const digits = stripNonDigits(value);
657
+ if (CEDULA_WHITELIST.has(digits)) {
658
+ const formatted2 = digits.length === 11 ? `${digits.slice(0, 3)}-${digits.slice(3, 10)}-${digits[10]}` : digits;
659
+ return { valid: true, formatted: formatted2 };
660
+ }
661
+ if (digits.length !== 11) {
662
+ return { valid: false };
663
+ }
664
+ if (digits.slice(0, 3) === "000") {
665
+ return { valid: false };
666
+ }
667
+ let sum = 0;
668
+ for (let i = 0; i < 10; i++) {
669
+ const weight = i % 2 === 0 ? 1 : 2;
670
+ let product = Number(digits[i]) * weight;
671
+ if (product >= 10) {
672
+ product -= 9;
673
+ }
674
+ sum += product;
675
+ }
676
+ const expectedCheckDigit = (10 - sum % 10) % 10;
677
+ const actualCheckDigit = Number(digits[10]);
678
+ if (actualCheckDigit !== expectedCheckDigit) {
679
+ return { valid: false };
680
+ }
681
+ const formatted = `${digits.slice(0, 3)}-${digits.slice(3, 10)}-${digits[10]}`;
682
+ return { valid: true, formatted };
683
+ }
684
+
685
+ // src/validators/ncf.ts
686
+ var NCF_TYPES = /* @__PURE__ */ Object.freeze({
687
+ "01": "CREDITO_FISCAL",
688
+ "02": "CONSUMO",
689
+ "03": "NOTA_DE_DEBITO",
690
+ "04": "NOTA_DE_CREDITO",
691
+ "11": "COMPRAS",
692
+ "12": "REGISTRO_UNICO_DE_INGRESOS",
693
+ "13": "GASTOS_MENORES",
694
+ "14": "REGIMENES_ESPECIALES",
695
+ "15": "GUBERNAMENTAL",
696
+ "16": "EXPORTACIONES",
697
+ "17": "PAGOS_AL_EXTERIOR"
698
+ });
699
+ var NCF_TYPE_NAMES = /* @__PURE__ */ Object.freeze({
700
+ "01": "Factura de cr\xE9dito fiscal",
701
+ "02": "Factura de consumo",
702
+ "03": "Nota de d\xE9bito",
703
+ "04": "Nota de cr\xE9dito",
704
+ "11": "Comprobante de compras",
705
+ "12": "Registro \xFAnico de ingresos",
706
+ "13": "Comprobante para gastos menores",
707
+ "14": "Comprobante para reg\xEDmenes especiales",
708
+ "15": "Comprobante gubernamental",
709
+ "16": "Comprobante para exportaciones",
710
+ "17": "Comprobante para pagos al exterior"
711
+ });
712
+ var NCF_PATTERN = /^B(\d{2})(\d{8})$/;
713
+ function validateNcf(value) {
714
+ if (typeof value !== "string") return { valid: false };
715
+ const normalized = value.toUpperCase().trim();
716
+ const match = NCF_PATTERN.exec(normalized);
717
+ if (!match) {
718
+ return { valid: false };
719
+ }
720
+ const typeCode = match[1];
721
+ const type = NCF_TYPES[typeCode];
722
+ if (!type) {
723
+ return { valid: false };
724
+ }
725
+ return {
726
+ valid: true,
727
+ type,
728
+ serie: `B${typeCode}`
729
+ };
730
+ }
731
+
732
+ // src/validators/ecf.ts
733
+ var ECF_TYPES = /* @__PURE__ */ Object.freeze({
734
+ "31": "CREDITO_FISCAL_ELECTRONICA",
735
+ "32": "CONSUMO_ELECTRONICA",
736
+ "33": "NOTA_DE_DEBITO_ELECTRONICA",
737
+ "34": "NOTA_DE_CREDITO_ELECTRONICA",
738
+ "41": "COMPRAS_ELECTRONICO",
739
+ "43": "GASTOS_MENORES_ELECTRONICO",
740
+ "44": "REGIMENES_ESPECIALES_ELECTRONICO",
741
+ "45": "GUBERNAMENTAL_ELECTRONICO",
742
+ "46": "EXPORTACIONES_ELECTRONICO",
743
+ "47": "PAGOS_AL_EXTERIOR_ELECTRONICO"
744
+ });
745
+ var ECF_TYPE_NAMES = /* @__PURE__ */ Object.freeze({
746
+ "31": "Factura de cr\xE9dito fiscal electr\xF3nica",
747
+ "32": "Factura de consumo electr\xF3nica",
748
+ "33": "Nota de d\xE9bito electr\xF3nica",
749
+ "34": "Nota de cr\xE9dito electr\xF3nica",
750
+ "41": "Comprobante electr\xF3nico de compras",
751
+ "43": "Comprobante electr\xF3nico para gastos menores",
752
+ "44": "Comprobante electr\xF3nico para reg\xEDmenes especiales",
753
+ "45": "Comprobante electr\xF3nico gubernamental",
754
+ "46": "Comprobante electr\xF3nico para exportaciones",
755
+ "47": "Comprobante electr\xF3nico para pagos al exterior"
756
+ });
757
+ var ECF_PATTERN = /^E(\d{2})(\d{10})$/;
758
+ function validateEcf(value) {
759
+ if (typeof value !== "string") return { valid: false };
760
+ const normalized = value.toUpperCase().trim();
761
+ const match = ECF_PATTERN.exec(normalized);
762
+ if (!match) {
763
+ return { valid: false };
764
+ }
765
+ const typeCode = match[1];
766
+ const type = ECF_TYPES[typeCode];
767
+ if (!type) {
768
+ return { valid: false };
769
+ }
770
+ return {
771
+ valid: true,
772
+ type,
773
+ serie: `E${typeCode}`
774
+ };
775
+ }
776
+
777
+ export {
778
+ validateRnc,
779
+ validateCedula,
780
+ NCF_TYPE_NAMES,
781
+ validateNcf,
782
+ ECF_TYPE_NAMES,
783
+ validateEcf
784
+ };