@tricoteuses/senat 1.1.1 → 1.3.1

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 (259) hide show
  1. package/README.md +53 -15
  2. package/lib/aggregates.d.ts +4 -6
  3. package/lib/aggregates.mjs +908 -780
  4. package/lib/aggregates.ts +8 -122
  5. package/lib/data/legislatures.json +38 -0
  6. package/lib/databases.d.ts +9 -0
  7. package/lib/databases.js +41 -11
  8. package/lib/databases.mjs +32 -1
  9. package/lib/databases.ts +40 -1
  10. package/lib/fields.mjs +64 -18
  11. package/lib/index.d.ts +5 -6
  12. package/lib/index.js +8 -99
  13. package/lib/index.mjs +4 -6
  14. package/lib/index.ts +9 -26
  15. package/lib/inserters.d.ts +0 -4
  16. package/lib/inserters.mjs +461 -337
  17. package/lib/inserters.ts +0 -24
  18. package/lib/legislatures.json +38 -0
  19. package/lib/loaders.d.ts +64 -0
  20. package/lib/loaders.js +682 -0
  21. package/lib/loaders.mjs +158 -0
  22. package/lib/loaders.ts +271 -0
  23. package/lib/model/ameli.d.ts +105 -4
  24. package/lib/model/ameli.js +20 -160
  25. package/lib/model/ameli.mjs +84 -57
  26. package/lib/model/ameli.ts +94 -80
  27. package/lib/model/debats.d.ts +0 -4
  28. package/lib/model/debats.js +1 -122
  29. package/lib/model/debats.mjs +1 -43
  30. package/lib/model/debats.ts +0 -68
  31. package/lib/model/dosleg.d.ts +227 -29
  32. package/lib/model/dosleg.js +92 -832
  33. package/lib/model/dosleg.mjs +196 -337
  34. package/lib/model/dosleg.ts +213 -531
  35. package/lib/model/index.d.ts +4 -5
  36. package/lib/model/index.js +14 -15
  37. package/lib/model/index.mjs +4 -5
  38. package/lib/model/index.ts +8 -5
  39. package/lib/model/questions.d.ts +88 -2
  40. package/lib/model/questions.js +40 -45
  41. package/lib/model/questions.mjs +71 -8
  42. package/lib/model/questions.ts +90 -11
  43. package/lib/model/sens.d.ts +524 -2
  44. package/lib/model/sens.js +172 -49
  45. package/lib/model/sens.mjs +415 -9
  46. package/lib/model/sens.ts +514 -16
  47. package/lib/model/texte.d.ts +7 -0
  48. package/lib/model/texte.js +321 -0
  49. package/lib/model/texte.mjs +208 -0
  50. package/lib/model/texte.ts +229 -0
  51. package/lib/model/util.d.ts +7 -1
  52. package/lib/model/util.js +37 -53
  53. package/lib/model/util.mjs +19 -10
  54. package/lib/model/util.ts +30 -14
  55. package/lib/raw_types/ameli.d.ts +912 -538
  56. package/lib/raw_types/ameli.js +1 -39
  57. package/lib/raw_types/ameli.mjs +4 -1
  58. package/lib/raw_types/ameli.ts +947 -597
  59. package/lib/raw_types/debats.d.ts +204 -124
  60. package/lib/raw_types/debats.js +1 -18
  61. package/lib/raw_types/debats.mjs +4 -1
  62. package/lib/raw_types/debats.ts +218 -141
  63. package/lib/raw_types/dosleg.d.ts +3533 -2024
  64. package/lib/raw_types/dosleg.js +1 -92
  65. package/lib/raw_types/dosleg.mjs +4 -1
  66. package/lib/raw_types/dosleg.ts +3621 -2189
  67. package/lib/raw_types/questions.d.ts +404 -220
  68. package/lib/raw_types/questions.js +1 -18
  69. package/lib/raw_types/questions.mjs +4 -1
  70. package/lib/raw_types/questions.ts +404 -226
  71. package/lib/raw_types/sens.d.ts +4391 -2706
  72. package/lib/raw_types/sens.js +1 -108
  73. package/lib/raw_types/sens.mjs +4 -1
  74. package/lib/raw_types/sens.ts +4495 -2903
  75. package/lib/raw_types_kysely/ameli.d.ts +6 -0
  76. package/lib/raw_types_kysely/ameli.mjs +7 -0
  77. package/lib/raw_types_kysely/ameli.ts +6 -0
  78. package/lib/raw_types_kysely/debats.d.ts +6 -0
  79. package/lib/raw_types_kysely/debats.mjs +7 -0
  80. package/lib/raw_types_kysely/debats.ts +6 -0
  81. package/lib/raw_types_kysely/dosleg.d.ts +6 -0
  82. package/lib/raw_types_kysely/dosleg.mjs +7 -0
  83. package/lib/raw_types_kysely/dosleg.ts +6 -0
  84. package/lib/raw_types_kysely/questions.d.ts +6 -0
  85. package/lib/raw_types_kysely/questions.mjs +7 -0
  86. package/lib/raw_types_kysely/questions.ts +6 -0
  87. package/lib/raw_types_kysely/sens.d.ts +6 -0
  88. package/lib/raw_types_kysely/sens.mjs +7 -0
  89. package/lib/raw_types_kysely/sens.ts +6 -0
  90. package/lib/raw_types_kysely/texte.d.ts +45 -0
  91. package/lib/raw_types_kysely/texte.mjs +7 -0
  92. package/lib/raw_types_kysely/texte.ts +53 -0
  93. package/lib/raw_types_schemats/ameli.d.ts +541 -0
  94. package/lib/raw_types_schemats/ameli.js +45 -0
  95. package/lib/raw_types_schemats/ameli.mjs +2 -0
  96. package/lib/raw_types_schemats/ameli.ts +601 -0
  97. package/lib/raw_types_schemats/debats.d.ts +127 -0
  98. package/lib/raw_types_schemats/debats.js +24 -0
  99. package/lib/raw_types_schemats/debats.mjs +2 -0
  100. package/lib/raw_types_schemats/debats.ts +145 -0
  101. package/lib/raw_types_schemats/dosleg.d.ts +2029 -0
  102. package/lib/raw_types_schemats/dosleg.js +98 -0
  103. package/lib/raw_types_schemats/dosleg.mjs +2 -0
  104. package/lib/raw_types_schemats/dosleg.ts +2195 -0
  105. package/lib/raw_types_schemats/questions.d.ts +233 -0
  106. package/lib/raw_types_schemats/questions.js +24 -0
  107. package/lib/raw_types_schemats/questions.mjs +2 -0
  108. package/lib/raw_types_schemats/questions.ts +251 -0
  109. package/lib/raw_types_schemats/sens.d.ts +2709 -0
  110. package/lib/raw_types_schemats/sens.js +114 -0
  111. package/lib/raw_types_schemats/sens.mjs +2 -0
  112. package/lib/raw_types_schemats/sens.ts +2907 -0
  113. package/lib/scripts/convert_data.js +574 -215
  114. package/lib/scripts/convert_data.mjs +134 -99
  115. package/lib/scripts/convert_data.ts +173 -112
  116. package/lib/scripts/datautil.d.ts +5 -0
  117. package/lib/scripts/datautil.js +64 -0
  118. package/lib/scripts/datautil.mjs +16 -0
  119. package/lib/scripts/datautil.ts +19 -0
  120. package/lib/scripts/parse_textes.js +132 -0
  121. package/lib/scripts/parse_textes.mjs +46 -0
  122. package/lib/scripts/parse_textes.ts +65 -0
  123. package/lib/scripts/retrieve_documents.d.ts +1 -0
  124. package/lib/scripts/retrieve_documents.js +521 -0
  125. package/lib/scripts/retrieve_documents.mjs +249 -0
  126. package/lib/scripts/retrieve_documents.ts +298 -0
  127. package/lib/scripts/retrieve_open_data.js +77 -69
  128. package/lib/scripts/retrieve_open_data.mjs +48 -49
  129. package/lib/scripts/retrieve_open_data.ts +74 -58
  130. package/lib/scripts/retrieve_senateurs_photos.js +45 -63
  131. package/lib/scripts/retrieve_senateurs_photos.mjs +4 -21
  132. package/lib/scripts/retrieve_senateurs_photos.ts +6 -29
  133. package/lib/scripts/retrieve_textes.mjs +325 -74
  134. package/lib/scripts/retrieve_textes.ts +111 -63
  135. package/lib/scripts/shared/cli_helpers.d.ts +44 -0
  136. package/lib/scripts/shared/cli_helpers.js +35 -0
  137. package/lib/scripts/shared/cli_helpers.ts +36 -0
  138. package/lib/scripts/shared/util.d.ts +3 -0
  139. package/lib/scripts/shared/util.js +102 -0
  140. package/lib/scripts/shared/util.ts +33 -0
  141. package/lib/src/aggregates.d.ts +52 -0
  142. package/lib/src/aggregates.mjs +726 -0
  143. package/lib/src/config.d.ts +2 -0
  144. package/lib/src/config.mjs +16 -0
  145. package/lib/src/databases.d.ts +18 -0
  146. package/lib/src/databases.mjs +55 -0
  147. package/lib/src/datasets.d.ts +28 -0
  148. package/lib/src/datasets.mjs +78 -0
  149. package/lib/src/fields.d.ts +10 -0
  150. package/lib/src/fields.mjs +22 -0
  151. package/lib/src/index.d.ts +8 -0
  152. package/lib/src/index.mjs +7 -0
  153. package/lib/src/inserters.d.ts +98 -0
  154. package/lib/src/inserters.mjs +360 -0
  155. package/lib/src/loaders.d.ts +36 -0
  156. package/lib/src/loaders.mjs +107 -0
  157. package/lib/src/model/ameli.d.ts +4 -0
  158. package/lib/src/model/ameli.js +57 -0
  159. package/lib/src/model/debats.d.ts +4 -0
  160. package/lib/src/model/debats.js +43 -0
  161. package/lib/src/model/dosleg.d.ts +197 -0
  162. package/lib/src/model/dosleg.js +169 -0
  163. package/lib/src/model/index.d.ts +4 -0
  164. package/lib/src/model/index.js +4 -0
  165. package/lib/src/model/questions.d.ts +89 -0
  166. package/lib/src/model/questions.js +76 -0
  167. package/lib/src/model/sens.d.ts +390 -0
  168. package/lib/src/model/sens.js +339 -0
  169. package/lib/src/model/texte.d.ts +7 -0
  170. package/lib/src/model/texte.js +183 -0
  171. package/lib/src/raw_types_kysely/ameli.d.ts +915 -0
  172. package/lib/src/raw_types_kysely/ameli.js +5 -0
  173. package/lib/src/raw_types_kysely/debats.d.ts +207 -0
  174. package/lib/src/raw_types_kysely/debats.js +5 -0
  175. package/lib/src/raw_types_kysely/dosleg.d.ts +3532 -0
  176. package/lib/src/raw_types_kysely/dosleg.js +5 -0
  177. package/lib/src/raw_types_kysely/questions.d.ts +414 -0
  178. package/lib/src/raw_types_kysely/questions.js +5 -0
  179. package/lib/src/raw_types_kysely/sens.d.ts +4394 -0
  180. package/lib/src/raw_types_kysely/sens.js +5 -0
  181. package/lib/src/raw_types_schemats/ameli.d.ts +541 -0
  182. package/lib/src/raw_types_schemats/ameli.js +2 -0
  183. package/lib/src/raw_types_schemats/debats.d.ts +127 -0
  184. package/lib/src/raw_types_schemats/debats.js +2 -0
  185. package/lib/src/raw_types_schemats/dosleg.d.ts +2027 -0
  186. package/lib/src/raw_types_schemats/dosleg.js +2 -0
  187. package/lib/src/raw_types_schemats/questions.d.ts +231 -0
  188. package/lib/src/raw_types_schemats/questions.js +2 -0
  189. package/lib/src/raw_types_schemats/sens.d.ts +2709 -0
  190. package/lib/src/raw_types_schemats/sens.js +2 -0
  191. package/lib/src/scripts/convert_data.d.ts +1 -0
  192. package/lib/src/scripts/convert_data.js +95 -0
  193. package/lib/src/scripts/datautil.d.ts +5 -0
  194. package/lib/src/scripts/datautil.js +16 -0
  195. package/lib/src/scripts/parse_textes.d.ts +1 -0
  196. package/lib/src/scripts/parse_textes.js +47 -0
  197. package/lib/src/scripts/retrieve_documents.d.ts +1 -0
  198. package/lib/src/scripts/retrieve_documents.js +258 -0
  199. package/lib/src/scripts/retrieve_open_data.d.ts +1 -0
  200. package/lib/src/scripts/retrieve_open_data.js +214 -0
  201. package/lib/src/scripts/retrieve_senateurs_photos.d.ts +1 -0
  202. package/lib/src/scripts/retrieve_senateurs_photos.js +147 -0
  203. package/lib/src/scripts/shared/cli_helpers.d.ts +44 -0
  204. package/lib/src/scripts/shared/cli_helpers.js +32 -0
  205. package/lib/src/scripts/shared/util.d.ts +3 -0
  206. package/lib/src/scripts/shared/util.js +28 -0
  207. package/lib/src/strings.d.ts +1 -0
  208. package/lib/src/strings.mjs +18 -0
  209. package/lib/src/types/ameli.d.ts +10 -0
  210. package/lib/src/types/ameli.js +13 -0
  211. package/lib/src/types/debats.d.ts +4 -0
  212. package/lib/src/types/debats.js +2 -0
  213. package/lib/src/types/dosleg.d.ts +98 -0
  214. package/lib/src/types/dosleg.js +151 -0
  215. package/lib/src/types/questions.d.ts +2 -0
  216. package/lib/src/types/questions.js +1 -0
  217. package/lib/src/types/sens.d.ts +10 -0
  218. package/lib/src/types/sens.js +1 -0
  219. package/lib/src/types/sessions.d.ts +42 -0
  220. package/lib/src/types/sessions.js +43 -0
  221. package/lib/src/types/texte.d.ts +61 -0
  222. package/lib/src/types/texte.js +16 -0
  223. package/lib/src/validators/config.d.ts +1 -0
  224. package/lib/src/validators/config.js +54 -0
  225. package/lib/src/validators/senat.d.ts +0 -0
  226. package/lib/src/validators/senat.js +24 -0
  227. package/lib/types/ameli.d.ts +1 -1
  228. package/lib/types/ameli.js +2 -2
  229. package/lib/types/ameli.ts +1 -1
  230. package/lib/types/debats.d.ts +1 -1
  231. package/lib/types/debats.js +2 -2
  232. package/lib/types/debats.ts +1 -1
  233. package/lib/types/dosleg.d.ts +2 -2
  234. package/lib/types/dosleg.js +2 -2
  235. package/lib/types/dosleg.ts +2 -2
  236. package/lib/types/questions.d.ts +1 -1
  237. package/lib/types/questions.js +2 -2
  238. package/lib/types/questions.ts +1 -1
  239. package/lib/types/sens.d.ts +1 -3
  240. package/lib/types/sens.js +2 -5
  241. package/lib/types/sens.mjs +1 -23
  242. package/lib/types/sens.ts +1 -25
  243. package/lib/types/sessions.d.ts +42 -0
  244. package/lib/types/sessions.js +51 -0
  245. package/lib/types/sessions.mjs +43 -0
  246. package/lib/types/sessions.ts +42 -0
  247. package/lib/types/texte.d.ts +65 -0
  248. package/lib/types/texte.js +24 -0
  249. package/lib/types/texte.mjs +16 -0
  250. package/lib/types/texte.ts +76 -0
  251. package/package.json +35 -10
  252. package/lib/aggregates.js +0 -1122
  253. package/lib/fields.js +0 -68
  254. package/lib/inserters.js +0 -518
  255. package/lib/scripts/fix_db.js +0 -144
  256. package/lib/scripts/fix_db.mjs +0 -64
  257. package/lib/scripts/fix_db.ts +0 -75
  258. package/lib/scripts/retrieve_textes.js +0 -179
  259. /package/lib/scripts/{fix_db.d.ts → parse_textes.d.ts} +0 -0
package/lib/aggregates.ts CHANGED
@@ -2,8 +2,8 @@ import {
2
2
  Ses,
3
3
  Sub,
4
4
  TxtAmeli,
5
- } from './types/ameli'
6
- import { Debat } from './types/debats'
5
+ } from "./types/ameli"
6
+ import { Debat } from "./types/debats"
7
7
  import {
8
8
  Ass,
9
9
  Aud,
@@ -29,48 +29,13 @@ import {
29
29
  TypLoi,
30
30
  TypTxt,
31
31
  TypUrl,
32
- } from './types/dosleg'
33
- import { Question } from './types/questions'
34
- import { Sen } from './types/sens'
35
- import {
36
- getSessFromAnns,
37
- getSubsFromTxtids,
38
- getTxtsAmeliBySesannNumJoins,
39
- } from './model/ameli'
32
+ } from "./types/dosleg"
33
+ import { Question } from "./types/questions"
40
34
  import {
41
35
  getDebats,
42
36
  getDebatsFromLecassidts,
43
37
  getLecAssDebsFromDatseas,
44
- } from './model/debats'
45
- import {
46
- getAsss,
47
- getAudsFromLecassidts,
48
- getAuteurs,
49
- getDatesSeancesFromLecassidts,
50
- getDeccocs,
51
- getDenraps,
52
- getDocattsFromRapcods,
53
- getEcrsFromRapcods,
54
- getEcrsFromTexcods,
55
- getEtalois,
56
- getLecassrapsFromLecassidts,
57
- getLecasssFromLecidts,
58
- getLecturesFromLoicods,
59
- getLois,
60
- getOrgs,
61
- getOrgsFromRapcods,
62
- getOritxts,
63
- getQuas,
64
- getRaporgsFromOrgcods,
65
- getRaps,
66
- getScrsFromCodes,
67
- getTextesFromLecassidts,
68
- getTypatts,
69
- getTyplecs,
70
- getTyplois,
71
- getTyptxts,
72
- getTypurls,
73
- } from './model/dosleg'
38
+ } from "./model/debats"
74
39
 
75
40
  export const allFollows = [
76
41
  "aud.org",
@@ -384,14 +349,6 @@ export class Aggregator {
384
349
  // TODO
385
350
  }
386
351
 
387
- addSen(sen: Sen): void {
388
- let objectById = this.objectByIdByTableName.sen
389
- if (objectById === undefined) {
390
- objectById = this.objectByIdByTableName.sen = {}
391
- }
392
- objectById[sen.senmat] = sen
393
- }
394
-
395
352
  addSes(ses: Ses): void {
396
353
  let objectById = this.objectByIdByTableName.ses
397
354
  if (objectById === undefined) {
@@ -512,157 +469,97 @@ export class Aggregator {
512
469
  delete this.requestedIdsByTableName[tableName]
513
470
  switch (tableName) {
514
471
  case "ass": {
515
- ;(await getAsss(requestedIds)).map(this.addAss.bind(this))
516
472
  break
517
473
  }
518
474
  case "aud_by_lecassidt": {
519
- ;(await getAudsFromLecassidts(requestedIds)).map(
520
- this.addAud.bind(this),
521
- )
522
475
  break
523
476
  }
524
477
  case "auteur": {
525
- ;(await getAuteurs(requestedIds)).map(this.addAuteur.bind(this))
526
478
  break
527
479
  }
528
480
  case "date_seance_by_lecassidt": {
529
- ;(await getDatesSeancesFromLecassidts(requestedIds)).map(
530
- this.addDateSeance.bind(this),
531
- )
532
481
  break
533
482
  }
534
483
  case "debat_by_lecassidt": {
535
- ;(await getDebatsFromLecassidts(requestedIds)).map(
484
+ (await getDebatsFromLecassidts(requestedIds)).map(
536
485
  this.addDebat.bind(this),
537
486
  )
538
487
  break
539
488
  }
540
489
  case "debats": {
541
- ;(await getDebats(requestedIds)).map(this.addDebat.bind(this))
490
+ (await getDebats(requestedIds)).map(this.addDebat.bind(this))
542
491
  break
543
492
  }
544
493
  case "deccoc": {
545
- ;(await getDeccocs(requestedIds)).map(this.addDeccoc.bind(this))
546
494
  break
547
495
  }
548
496
  case "denrap": {
549
- ;(await getDenraps(requestedIds)).map(this.addDenrap.bind(this))
550
497
  break
551
498
  }
552
499
  case "docatt_by_rapcod": {
553
- ;(await getDocattsFromRapcods(requestedIds)).map(
554
- this.addDocatt.bind(this),
555
- )
556
500
  break
557
501
  }
558
502
  case "ecr_by_rapcod": {
559
- ;(await getEcrsFromRapcods(requestedIds)).map(
560
- this.addEcr.bind(this),
561
- )
562
503
  break
563
504
  }
564
505
  case "ecr_by_texcod": {
565
- ;(await getEcrsFromTexcods(requestedIds)).map(
566
- this.addEcr.bind(this),
567
- )
568
506
  break
569
507
  }
570
508
  case "etaloi": {
571
- ;(await getEtalois(requestedIds)).map(this.addEtaloi.bind(this))
572
509
  break
573
510
  }
574
511
  case "lecasss_by_lecidt": {
575
- ;(await getLecasssFromLecidts(requestedIds)).map(
576
- this.addLecass.bind(this),
577
- )
578
512
  break
579
513
  }
580
514
  case "lecassrap_by_lecassidt": {
581
- ;(await getLecassrapsFromLecassidts(requestedIds)).map(
582
- this.addLecassrap.bind(this),
583
- )
584
515
  break
585
516
  }
586
517
  case "lectures_by_loicod": {
587
- ;(await getLecturesFromLoicods(requestedIds)).map(
588
- this.addLecture.bind(this),
589
- )
590
518
  break
591
519
  }
592
520
  case "loi": {
593
- ;(await getLois(requestedIds)).map(this.addLoi.bind(this))
594
521
  break
595
522
  }
596
523
  case "org": {
597
- ;(await getOrgs(requestedIds)).map(this.addOrg.bind(this))
598
524
  break
599
525
  }
600
526
  case "org_by_rapcod": {
601
- ;(await getOrgsFromRapcods(requestedIds)).map(
602
- this.addOrg.bind(this),
603
- )
604
527
  break
605
528
  }
606
529
  case "oritxt": {
607
- ;(await getOritxts(requestedIds)).map(this.addOritxt.bind(this))
608
530
  break
609
531
  }
610
532
  case "qua": {
611
- ;(await getQuas(requestedIds)).map(this.addQua.bind(this))
612
533
  break
613
534
  }
614
535
  case "rap": {
615
- ;(await getRaps(requestedIds)).map(this.addRap.bind(this))
616
536
  break
617
537
  }
618
538
  case "scr_by_code": {
619
- ;(await getScrsFromCodes(requestedIds)).map(this.addScr.bind(this))
620
- break
621
- }
622
- case "ses_by_ann": {
623
- ;(await getSessFromAnns(requestedIds)).map(this.addSes.bind(this))
624
- break
625
- }
626
- case "sub_by_txtid": {
627
- ;(await getSubsFromTxtids(requestedIds)).map(this.addSub.bind(this))
628
539
  break
629
540
  }
630
541
  case "texte_by_lecassidt": {
631
- ;(await getTextesFromLecassidts(requestedIds)).map(
632
- this.addTexte.bind(this),
633
- )
634
- break
635
- }
636
- case "txt_ameli_by_sesann_num": {
637
- ;(await getTxtsAmeliBySesannNumJoins(requestedIds)).map(
638
- this.addTxtAmeli.bind(this),
639
- )
640
542
  break
641
543
  }
642
544
  case "typatt": {
643
- ;(await getTypatts(requestedIds)).map(this.addTypatt.bind(this))
644
545
  break
645
546
  }
646
547
  case "typlec": {
647
- ;(await getTyplecs(requestedIds)).map(this.addTyplec.bind(this))
648
548
  break
649
549
  }
650
550
  case "typloi": {
651
- ;(await getTyplois(requestedIds)).map(this.addTyploi.bind(this))
652
551
  break
653
552
  }
654
553
  case "typtxt": {
655
- ;(await getTyptxts(requestedIds)).map(this.addTyptxt.bind(this))
656
554
  break
657
555
  }
658
556
  case "typurl": {
659
- ;(await getTypurls(requestedIds)).map(this.addTypurl.bind(this))
660
557
  break
661
558
  }
662
559
  default:
663
560
  throw new Error(`Unhandled table: ${tableName}`)
664
561
  }
665
- let visitedIds = this.visitedIdsByTableName[tableName]
562
+ const visitedIds = this.visitedIdsByTableName[tableName]
666
563
  this.visitedIdsByTableName[tableName] =
667
564
  visitedIds === undefined
668
565
  ? new Set(requestedIds)
@@ -854,17 +751,6 @@ export class Aggregator {
854
751
  const orgByOrgcod = this.objectByIdByTableName.org
855
752
  const rapById = this.objectByIdByTableName.rap
856
753
  if (orgByOrgcod !== undefined && rapById !== undefined) {
857
- const raporgs = await getRaporgsFromOrgcods(Object.keys(orgByOrgcod))
858
- for (const raporg of raporgs) {
859
- const rap = rapById[raporg.rapcod.toString()] as Rap
860
- if (rap !== undefined) {
861
- let orgcods = rap.orgcods
862
- if (orgcods === undefined) {
863
- orgcods = rap.orgcods = []
864
- }
865
- orgcods.push(raporg.orgcod)
866
- }
867
- }
868
754
  }
869
755
  }
870
756
  if (this.follow.has("texte.ecrs")) {
@@ -0,0 +1,38 @@
1
+ [
2
+ {
3
+ "numero": 12,
4
+ "numero_republique": 5,
5
+ "date_debut": "2002-06-19",
6
+ "date_fin": "2007-06-19"
7
+ },
8
+ {
9
+ "numero": 13,
10
+ "numero_republique": 5,
11
+ "date_debut": "2007-06-20",
12
+ "date_fin": "2012-06-19"
13
+ },
14
+ {
15
+ "numero": 14,
16
+ "numero_republique": 5,
17
+ "date_debut": "2012-06-20",
18
+ "date_fin": "2017-06-20"
19
+ },
20
+ {
21
+ "numero": 15,
22
+ "numero_republique": 5,
23
+ "date_debut": "2017-06-21",
24
+ "date_fin": "2022-06-21"
25
+ },
26
+ {
27
+ "numero": 16,
28
+ "numero_republique": 5,
29
+ "date_debut": "2022-06-22",
30
+ "date_fin": "2024-06-09"
31
+ },
32
+ {
33
+ "numero": 17,
34
+ "numero_republique": 5,
35
+ "date_debut": "2024-07-18",
36
+ "date_fin": null
37
+ }
38
+ ]
@@ -1,9 +1,18 @@
1
+ import { Kysely } from "kysely";
1
2
  import PgPromise from "pg-promise";
3
+ import { DB as AmeliDatabase } from "./raw_types/ameli";
4
+ import { DB as DoslegDatabase } from "./raw_types/dosleg";
5
+ import { DB as QuestionsDatabase } from "./raw_types/questions";
6
+ import { DB as SensDatabase } from "./raw_types/sens";
2
7
  export declare const pgPromise: PgPromise.IMain<{}, import("pg-promise/typescript/pg-subset").IClient>;
3
8
  export declare const dbNames: string[];
4
9
  export declare const dbByName: {
5
10
  [name: string]: any;
6
11
  };
12
+ export declare const dbAmeli: Kysely<AmeliDatabase>;
13
+ export declare const dbDosleg: Kysely<DoslegDatabase>;
14
+ export declare const dbQuestions: Kysely<QuestionsDatabase>;
15
+ export declare const dbSens: Kysely<SensDatabase>;
7
16
  export declare let dbSharedConnectionObjectByName: {
8
17
  [name: string]: PgPromise.IConnected<unknown, any>;
9
18
  };
package/lib/databases.js CHANGED
@@ -3,26 +3,25 @@
3
3
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
4
  require("core-js/modules/es.symbol.js");
5
5
  require("core-js/modules/es.symbol.description.js");
6
- require("core-js/modules/es.symbol.async-iterator.js");
7
6
  require("core-js/modules/es.symbol.iterator.js");
8
- require("core-js/modules/es.symbol.to-string-tag.js");
9
7
  require("core-js/modules/es.array.for-each.js");
10
8
  require("core-js/modules/es.array.from.js");
11
9
  require("core-js/modules/es.array.is-array.js");
12
10
  require("core-js/modules/es.array.iterator.js");
13
- require("core-js/modules/es.array.reverse.js");
14
11
  require("core-js/modules/es.array.slice.js");
15
12
  require("core-js/modules/es.date.to-string.js");
16
13
  require("core-js/modules/es.function.name.js");
17
- require("core-js/modules/es.json.to-string-tag.js");
18
- require("core-js/modules/es.math.to-string-tag.js");
19
14
  require("core-js/modules/es.object.create.js");
20
15
  require("core-js/modules/es.object.define-property.js");
16
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
21
17
  require("core-js/modules/es.object.get-prototype-of.js");
22
18
  require("core-js/modules/es.object.set-prototype-of.js");
19
+ require("core-js/modules/es.object.to-string.js");
20
+ require("core-js/modules/es.promise.js");
23
21
  require("core-js/modules/es.regexp.exec.js");
24
22
  require("core-js/modules/es.regexp.to-string.js");
25
23
  require("core-js/modules/es.string.iterator.js");
24
+ require("core-js/modules/es.weak-map.js");
26
25
  require("core-js/modules/web.dom-collections.for-each.js");
27
26
  require("core-js/modules/web.dom-collections.iterator.js");
28
27
  Object.defineProperty(exports, "__esModule", {
@@ -30,20 +29,30 @@ Object.defineProperty(exports, "__esModule", {
30
29
  });
31
30
  exports.checkDatabase = checkDatabase;
32
31
  exports.checkDatabases = checkDatabases;
33
- exports.pgPromise = exports.dbSharedConnectionObjectByName = exports.dbNames = exports.dbByName = void 0;
34
- require("core-js/modules/es.object.to-string.js");
35
- require("core-js/modules/es.promise.js");
32
+ exports.pgPromise = exports.dbSharedConnectionObjectByName = exports.dbSens = exports.dbQuestions = exports.dbNames = exports.dbDosleg = exports.dbByName = exports.dbAmeli = void 0;
33
+ require("core-js/modules/es.parse-int.js");
34
+ var _kysely = require("kysely");
35
+ var _pg = _interopRequireWildcard(require("pg"));
36
+ var pg = _pg;
37
+ var _pgCursor = _interopRequireDefault(require("pg-cursor"));
36
38
  var _pgPromise = _interopRequireDefault(require("pg-promise"));
37
39
  var _config = _interopRequireDefault(require("./config"));
40
+ var _datasets = require("./datasets");
38
41
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
42
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
39
43
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
40
44
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
41
45
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
42
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
46
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return r; }; var t, r = {}, e = Object.prototype, n = e.hasOwnProperty, o = "function" == typeof Symbol ? Symbol : {}, i = o.iterator || "@@iterator", a = o.asyncIterator || "@@asyncIterator", u = o.toStringTag || "@@toStringTag"; function c(t, r, e, n) { Object.defineProperty(t, r, { value: e, enumerable: !n, configurable: !n, writable: !n }); } try { c({}, ""); } catch (t) { c = function c(t, r, e) { return t[r] = e; }; } function h(r, e, n, o) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype); return c(a, "_invoke", function (r, e, n) { var o = 1; return function (i, a) { if (3 === o) throw Error("Generator is already running"); if (4 === o) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var u = n.delegate; if (u) { var c = d(u, n); if (c) { if (c === f) continue; return c; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (1 === o) throw o = 4, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = 3; var h = s(r, e, n); if ("normal" === h.type) { if (o = n.done ? 4 : 2, h.arg === f) continue; return { value: h.arg, done: n.done }; } "throw" === h.type && (o = 4, n.method = "throw", n.arg = h.arg); } }; }(r, n, new Context(o || [])), !0), a; } function s(t, r, e) { try { return { type: "normal", arg: t.call(r, e) }; } catch (t) { return { type: "throw", arg: t }; } } r.wrap = h; var f = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var l = {}; c(l, i, function () { return this; }); var p = Object.getPrototypeOf, y = p && p(p(x([]))); y && y !== e && n.call(y, i) && (l = y); var v = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(l); function g(t) { ["next", "throw", "return"].forEach(function (r) { c(t, r, function (t) { return this._invoke(r, t); }); }); } function AsyncIterator(t, r) { function e(o, i, a, u) { var c = s(t[o], t, i); if ("throw" !== c.type) { var h = c.arg, f = h.value; return f && "object" == _typeof(f) && n.call(f, "__await") ? r.resolve(f.__await).then(function (t) { e("next", t, a, u); }, function (t) { e("throw", t, a, u); }) : r.resolve(f).then(function (t) { h.value = t, a(h); }, function (t) { return e("throw", t, a, u); }); } u(c.arg); } var o; c(this, "_invoke", function (t, n) { function i() { return new r(function (r, o) { e(t, n, r, o); }); } return o = o ? o.then(i, i) : i(); }, !0); } function d(r, e) { var n = e.method, o = r.i[n]; if (o === t) return e.delegate = null, "throw" === n && r.i["return"] && (e.method = "return", e.arg = t, d(r, e), "throw" === e.method) || "return" !== n && (e.method = "throw", e.arg = new TypeError("The iterator does not provide a '" + n + "' method")), f; var i = s(o, r.i, e.arg); if ("throw" === i.type) return e.method = "throw", e.arg = i.arg, e.delegate = null, f; var a = i.arg; return a ? a.done ? (e[r.r] = a.value, e.next = r.n, "return" !== e.method && (e.method = "next", e.arg = t), e.delegate = null, f) : a : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, f); } function w(t) { this.tryEntries.push(t); } function m(r) { var e = r[4] || {}; e.type = "normal", e.arg = t, r[4] = e; } function Context(t) { this.tryEntries = [[-1]], t.forEach(w, this), this.reset(!0); } function x(r) { if (null != r) { var e = r[i]; if (e) return e.call(r); if ("function" == typeof r.next) return r; if (!isNaN(r.length)) { var o = -1, a = function e() { for (; ++o < r.length;) if (n.call(r, o)) return e.value = r[o], e.done = !1, e; return e.value = t, e.done = !0, e; }; return a.next = a; } } throw new TypeError(_typeof(r) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, c(v, "constructor", GeneratorFunctionPrototype), c(GeneratorFunctionPrototype, "constructor", GeneratorFunction), c(GeneratorFunctionPrototype, u, GeneratorFunction.displayName = "GeneratorFunction"), r.isGeneratorFunction = function (t) { var r = "function" == typeof t && t.constructor; return !!r && (r === GeneratorFunction || "GeneratorFunction" === (r.displayName || r.name)); }, r.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, c(t, u, "GeneratorFunction")), t.prototype = Object.create(v), t; }, r.awrap = function (t) { return { __await: t }; }, g(AsyncIterator.prototype), c(AsyncIterator.prototype, a, function () { return this; }), r.AsyncIterator = AsyncIterator, r.async = function (t, e, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(h(t, e, n, o), i); return r.isGeneratorFunction(e) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, g(v), c(v, u, "Generator"), c(v, i, function () { return this; }), c(v, "toString", function () { return "[object Generator]"; }), r.keys = function (t) { var r = Object(t), e = []; for (var n in r) e.unshift(n); return function t() { for (; e.length;) if ((n = e.pop()) in r) return t.value = n, t.done = !1, t; return t.done = !0, t; }; }, r.values = x, Context.prototype = { constructor: Context, reset: function reset(r) { if (this.prev = this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(m), !r) for (var e in this) "t" === e.charAt(0) && n.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0][4]; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(r) { if (this.done) throw r; var e = this; function n(t) { a.type = "throw", a.arg = r, e.next = t; } for (var o = e.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i[4], u = this.prev, c = i[1], h = i[2]; if (-1 === i[0]) return n("end"), !1; if (!c && !h) throw Error("try statement without catch or finally"); if (null != i[0] && i[0] <= u) { if (u < c) return this.method = "next", this.arg = t, n(c), !0; if (u < h) return n(h), !1; } } }, abrupt: function abrupt(t, r) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var n = this.tryEntries[e]; if (n[0] > -1 && n[0] <= this.prev && this.prev < n[2]) { var o = n; break; } } o && ("break" === t || "continue" === t) && o[0] <= r && r <= o[2] && (o = null); var i = o ? o[4] : {}; return i.type = t, i.arg = r, o ? (this.method = "next", this.next = o[2], f) : this.complete(i); }, complete: function complete(t, r) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && r && (this.next = r), f; }, finish: function finish(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[2] === t) return this.complete(e[4], e[3]), m(e), f; } }, "catch": function _catch(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[0] === t) { var n = e[4]; if ("throw" === n.type) { var o = n.arg; m(e); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(r, e, n) { return this.delegate = { i: x(r), r: e, n: n }, "next" === this.method && (this.arg = t), f; } }, r; }
43
47
  function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
44
48
  function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
49
+ // Map int8 to number instead of string
50
+ // https://github.com/brianc/node-pg-types#use
51
+ pg.types.setTypeParser(_pg.types.builtins.INT8, function (val) {
52
+ return parseInt(val, 10);
53
+ });
45
54
  var pgPromise = exports.pgPromise = (0, _pgPromise["default"])();
46
- var dbNames = exports.dbNames = ["ameli", "debats", "dosleg", "questions", "sens"];
55
+ var dbNames = exports.dbNames = ["ameli", "debats", "dosleg"];
47
56
  var dbByName = exports.dbByName = {};
48
57
  for (var _i = 0, _dbNames = dbNames; _i < _dbNames.length; _i++) {
49
58
  var name = _dbNames[_i];
@@ -55,6 +64,27 @@ for (var _i = 0, _dbNames = dbNames; _i < _dbNames.length; _i++) {
55
64
  user: _config["default"].db.user
56
65
  });
57
66
  }
67
+ function createDb(database, schema) {
68
+ var dialect = new _kysely.PostgresDialect({
69
+ pool: new pg.Pool({
70
+ database: database,
71
+ host: _config["default"].db.host,
72
+ user: _config["default"].db.user,
73
+ password: _config["default"].db.password,
74
+ port: _config["default"].db.port,
75
+ max: 10
76
+ }),
77
+ cursor: _pgCursor["default"]
78
+ });
79
+ return new _kysely.Kysely({
80
+ log: ["error"],
81
+ dialect: dialect
82
+ }).withSchema(schema);
83
+ }
84
+ var dbAmeli = exports.dbAmeli = createDb(_datasets.datasets.ameli.database, _datasets.datasets.ameli.schema);
85
+ var dbDosleg = exports.dbDosleg = createDb(_datasets.datasets.dosleg.database, _datasets.datasets.dosleg.schema);
86
+ var dbQuestions = exports.dbQuestions = createDb(_datasets.datasets.questions.database, _datasets.datasets.questions.schema);
87
+ var dbSens = exports.dbSens = createDb(_datasets.datasets.sens.database, _datasets.datasets.sens.schema);
58
88
  var dbSharedConnectionObjectByName = exports.dbSharedConnectionObjectByName = {};
59
89
  function checkDatabase(_x) {
60
90
  return _checkDatabase.apply(this, arguments);
@@ -122,4 +152,4 @@ function _checkDatabases() {
122
152
  }));
123
153
  return _checkDatabases.apply(this, arguments);
124
154
  }
125
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGdQcm9taXNlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29uZmlnIiwiZSIsIl9fZXNNb2R1bGUiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInIiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImYiLCJUeXBlRXJyb3IiLCJvIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiZGVmaW5lUHJvcGVydHkiLCJpIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImgiLCJsIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsIm1ldGhvZCIsImRlbGVnYXRlIiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwicmVzdWx0TmFtZSIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzdG9wIiwicnZhbCIsImhhbmRsZSIsImNvbXBsZXRlIiwiZmluaXNoIiwiX2NhdGNoIiwiZGVsZWdhdGVZaWVsZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJfbmV4dCIsIl90aHJvdyIsInBnUHJvbWlzZSIsImV4cG9ydHMiLCJQZ1Byb21pc2UiLCJkYk5hbWVzIiwiZGJCeU5hbWUiLCJfaSIsIl9kYk5hbWVzIiwiZGF0YWJhc2UiLCJob3N0IiwiY29uZmlnIiwiZGIiLCJwYXNzd29yZCIsInBvcnQiLCJ1c2VyIiwiZGJTaGFyZWRDb25uZWN0aW9uT2JqZWN0QnlOYW1lIiwiY2hlY2tEYXRhYmFzZSIsIl94IiwiX2NoZWNrRGF0YWJhc2UiLCJfY2FsbGVlIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImNvbm5lY3QiLCJjaGVja0RhdGFiYXNlcyIsIl9jaGVja0RhdGFiYXNlcyIsIl9jYWxsZWUyIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJfbmFtZSIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsInQwIl0sInNvdXJjZXMiOlsiLi4vc3JjL2RhdGFiYXNlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUGdQcm9taXNlIGZyb20gXCJwZy1wcm9taXNlXCJcblxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi9jb25maWdcIlxuXG5leHBvcnQgY29uc3QgcGdQcm9taXNlID0gUGdQcm9taXNlKClcbmV4cG9ydCBjb25zdCBkYk5hbWVzID0gW1wiYW1lbGlcIiwgXCJkZWJhdHNcIiwgXCJkb3NsZWdcIiwgXCJxdWVzdGlvbnNcIiwgXCJzZW5zXCJdXG5leHBvcnQgY29uc3QgZGJCeU5hbWU6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge31cbmZvciAoY29uc3QgbmFtZSBvZiBkYk5hbWVzKSB7XG4gIGRiQnlOYW1lW25hbWVdID0gcGdQcm9taXNlKHtcbiAgICBkYXRhYmFzZTogbmFtZSxcbiAgICBob3N0OiBjb25maWcuZGIuaG9zdCxcbiAgICBwYXNzd29yZDogY29uZmlnLmRiLnBhc3N3b3JkLFxuICAgIHBvcnQ6IGNvbmZpZy5kYi5wb3J0LFxuICAgIHVzZXI6IGNvbmZpZy5kYi51c2VyLFxuICB9KVxufVxuZXhwb3J0IGxldCBkYlNoYXJlZENvbm5lY3Rpb25PYmplY3RCeU5hbWU6IHtcbiAgW25hbWU6IHN0cmluZ106IFBnUHJvbWlzZS5JQ29ubmVjdGVkPHVua25vd24sIGFueT5cbn0gPSB7fVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tEYXRhYmFzZShuYW1lOiBzdHJpbmcpIHtcbiAgLy8gQ2hlY2sgdGhhdCBkYXRhYmFzZSBleGlzdHMuXG4gIGNvbnN0IGRiID0gZGJCeU5hbWVbbmFtZV1cbiAgZGJTaGFyZWRDb25uZWN0aW9uT2JqZWN0QnlOYW1lW25hbWVdID0gYXdhaXQgZGIuY29ubmVjdCgpXG4gIHJldHVybiBkYlxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tEYXRhYmFzZXMoKSB7XG4gIGZvciAoY29uc3QgbmFtZSBvZiBkYk5hbWVzKSB7XG4gICAgYXdhaXQgY2hlY2tEYXRhYmFzZShuYW1lKVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFB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
155
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfa3lzZWx5IiwicmVxdWlyZSIsIl9wZyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicGciLCJfcGdDdXJzb3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3BnUHJvbWlzZSIsIl9jb25maWciLCJfZGF0YXNldHMiLCJlIiwiX19lc01vZHVsZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwiZG9uZSIsInZhbHVlIiwiVHlwZUVycm9yIiwiYSIsInUiLCJuZXh0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwicHJvdG90eXBlIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnIiwiYyIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImgiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJFcnJvciIsIm1ldGhvZCIsImFyZyIsImRlbGVnYXRlIiwiZCIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwidHlwZSIsIkNvbnRleHQiLCJ3cmFwIiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsImwiLCJwIiwiZ2V0UHJvdG90eXBlT2YiLCJ5IiwieCIsInYiLCJnIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwidyIsInRyeUVudHJpZXMiLCJwdXNoIiwibSIsInJlc2V0IiwiaXNOYU4iLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJ1bnNoaWZ0IiwicG9wIiwidmFsdWVzIiwicHJldiIsImNoYXJBdCIsInN0b3AiLCJydmFsIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9uZXh0IiwiX3Rocm93IiwidHlwZXMiLCJzZXRUeXBlUGFyc2VyIiwiYnVpbHRpbnMiLCJJTlQ4IiwidmFsIiwicGFyc2VJbnQiLCJwZ1Byb21pc2UiLCJleHBvcnRzIiwiUGdQcm9taXNlIiwiZGJOYW1lcyIsImRiQnlOYW1lIiwiX2kiLCJfZGJOYW1lcyIsImRhdGFiYXNlIiwiaG9zdCIsImNvbmZpZyIsImRiIiwicGFzc3dvcmQiLCJwb3J0IiwidXNlciIsImNyZWF0ZURiIiwic2NoZW1hIiwiZGlhbGVjdCIsIlBvc3RncmVzRGlhbGVjdCIsInBvb2wiLCJQb29sIiwibWF4IiwiY3Vyc29yIiwiQ3Vyc29yIiwiS3lzZWx5IiwibG9nIiwid2l0aFNjaGVtYSIsImRiQW1lbGkiLCJkYXRhc2V0cyIsImFtZWxpIiwiZGJEb3NsZWciLCJkb3NsZWciLCJkYlF1ZXN0aW9ucyIsInF1ZXN0aW9ucyIsImRiU2VucyIsInNlbnMiLCJkYlNoYXJlZENvbm5lY3Rpb25PYmplY3RCeU5hbWUiLCJjaGVja0RhdGFiYXNlIiwiX3giLCJfY2hlY2tEYXRhYmFzZSIsIl9jYWxsZWUiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwiY29ubmVjdCIsImNoZWNrRGF0YWJhc2VzIiwiX2NoZWNrRGF0YWJhc2VzIiwiX2NhbGxlZTIiLCJfaXRlcmF0b3IiLCJfc3RlcCIsIl9uYW1lIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwidDAiXSwic291cmNlcyI6WyIuLi9zcmMvZGF0YWJhc2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEt5c2VseSwgUG9zdGdyZXNEaWFsZWN0IH0gZnJvbSBcImt5c2VseVwiXG5pbXBvcnQgKiBhcyBwZyBmcm9tIFwicGdcIlxuaW1wb3J0IHsgdHlwZXMgfSBmcm9tIFwicGdcIlxuaW1wb3J0IEN1cnNvciBmcm9tIFwicGctY3Vyc29yXCJcbmltcG9ydCBQZ1Byb21pc2UgZnJvbSBcInBnLXByb21pc2VcIlxuXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuL2NvbmZpZ1wiXG5pbXBvcnQgeyBkYXRhc2V0cyB9IGZyb20gXCIuL2RhdGFzZXRzXCJcbmltcG9ydCB7IERCIGFzIEFtZWxpRGF0YWJhc2UgfSBmcm9tIFwiLi9yYXdfdHlwZXMvYW1lbGlcIlxuaW1wb3J0IHsgREIgYXMgRG9zbGVnRGF0YWJhc2UgfSBmcm9tIFwiLi9yYXdfdHlwZXMvZG9zbGVnXCJcbmltcG9ydCB7IERCIGFzIFF1ZXN0aW9uc0RhdGFiYXNlIH0gZnJvbSBcIi4vcmF3X3R5cGVzL3F1ZXN0aW9uc1wiXG5pbXBvcnQgeyBEQiBhcyBTZW5zRGF0YWJhc2UgfSBmcm9tIFwiLi9yYXdfdHlwZXMvc2Vuc1wiXG5cbi8vIE1hcCBpbnQ4IHRvIG51bWJlciBpbnN0ZWFkIG9mIHN0cmluZ1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL2JyaWFuYy9ub2RlLXBnLXR5cGVzI3VzZVxucGcudHlwZXMuc2V0VHlwZVBhcnNlcih0eXBlcy5idWlsdGlucy5JTlQ4LCAodmFsKSA9PiB7XG4gIHJldHVybiBwYXJzZUludCh2YWwsIDEwKVxufSlcblxuZXhwb3J0IGNvbnN0IHBnUHJvbWlzZSA9IFBnUHJvbWlzZSgpXG5leHBvcnQgY29uc3QgZGJOYW1lcyA9IFtcImFtZWxpXCIsIFwiZGViYXRzXCIsIFwiZG9zbGVnXCJdXG5leHBvcnQgY29uc3QgZGJCeU5hbWU6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge31cbmZvciAoY29uc3QgbmFtZSBvZiBkYk5hbWVzKSB7XG4gIGRiQnlOYW1lW25hbWVdID0gcGdQcm9taXNlKHtcbiAgICBkYXRhYmFzZTogbmFtZSxcbiAgICBob3N0OiBjb25maWcuZGIuaG9zdCxcbiAgICBwYXNzd29yZDogY29uZmlnLmRiLnBhc3N3b3JkLFxuICAgIHBvcnQ6IGNvbmZpZy5kYi5wb3J0LFxuICAgIHVzZXI6IGNvbmZpZy5kYi51c2VyLFxuICB9KVxufVxuXG5mdW5jdGlvbiBjcmVhdGVEYjxUPiAoZGF0YWJhc2U6IHN0cmluZywgc2NoZW1hOiBzdHJpbmcpIHtcbiAgY29uc3QgZGlhbGVjdCA9IG5ldyBQb3N0Z3Jlc0RpYWxlY3Qoe1xuICAgIHBvb2w6IG5ldyBwZy5Qb29sKHtcbiAgICAgIGRhdGFiYXNlOiBkYXRhYmFzZSxcbiAgICAgIGhvc3Q6IGNvbmZpZy5kYi5ob3N0LFxuICAgICAgdXNlcjogY29uZmlnLmRiLnVzZXIsXG4gICAgICBwYXNzd29yZDogY29uZmlnLmRiLnBhc3N3b3JkLFxuICAgICAgcG9ydDogY29uZmlnLmRiLnBvcnQsXG4gICAgICBtYXg6IDEwLFxuICAgIH0pLFxuICAgIGN1cnNvcjogQ3Vyc29yLFxuICB9KVxuICByZXR1cm4gbmV3IEt5c2VseTxUPih7XG4gICAgbG9nOiBbXCJlcnJvclwiXSxcbiAgICBkaWFsZWN0OiBkaWFsZWN0LFxuICB9KS53aXRoU2NoZW1hKHNjaGVtYSlcbn1cblxuZXhwb3J0IGNvbnN0IGRiQW1lbGkgPSBjcmVhdGVEYjxBbWVsaURhdGFiYXNlPihkYXRhc2V0cy5hbWVsaS5kYXRhYmFzZSwgZGF0YXNldHMuYW1lbGkuc2NoZW1hKVxuZXhwb3J0IGNvbnN0IGRiRG9zbGVnID0gY3JlYXRlRGI8RG9zbGVnRGF0YWJhc2U+KGRhdGFzZXRzLmRvc2xlZy5kYXRhYmFzZSwgZGF0YXNldHMuZG9zbGVnLnNjaGVtYSlcbmV4cG9ydCBjb25zdCBkYlF1ZXN0aW9ucyA9IGNyZWF0ZURiPFF1ZXN0aW9uc0RhdGFiYXNlPihkYXRhc2V0cy5xdWVzdGlvbnMuZGF0YWJhc2UsIGRhdGFzZXRzLnF1ZXN0aW9ucy5zY2hlbWEpXG5leHBvcnQgY29uc3QgZGJTZW5zID0gY3JlYXRlRGI8U2Vuc0RhdGFiYXNlPihkYXRhc2V0cy5zZW5zLmRhdGFiYXNlLCBkYXRhc2V0cy5zZW5zLnNjaGVtYSlcblxuZXhwb3J0IGxldCBkYlNoYXJlZENvbm5lY3Rpb25PYmplY3RCeU5hbWU6IHtcbiAgW25hbWU6IHN0cmluZ106IFBnUHJvbWlzZS5JQ29ubmVjdGVkPHVua25vd24sIGFueT5cbn0gPSB7fVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tEYXRhYmFzZShuYW1lOiBzdHJpbmcpIHtcbiAgLy8gQ2hlY2sgdGhhdCBkYXRhYmFzZSBleGlzdHMuXG4gIGNvbnN0IGRiID0gZGJCeU5hbWVbbmFtZV1cbiAgZGJTaGFyZWRDb25uZWN0aW9uT2JqZWN0QnlOYW1lW25hbWVdID0gYXdhaXQgZGIuY29ubmVjdCgpXG4gIHJldHVybiBkYlxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tEYXRhYmFzZXMoKSB7XG4gIGZvciAoY29uc3QgbmFtZSBvZiBkYk5hbWVzKSB7XG4gICAgYXdhaXQgY2hlY2tEYXRhYmFzZShuYW1lKVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLEdBQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUF3QixJQUFBRyxFQUFBLEdBQUFGLEdBQUE7QUFFeEIsSUFBQUcsU0FBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBRCxzQkFBQSxDQUFBTCxPQUFBO0FBRUEsSUFBQU8sT0FBQSxHQUFBRixzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQVEsU0FBQSxH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
package/lib/databases.mjs CHANGED
@@ -1,7 +1,17 @@
1
+ import { Kysely, PostgresDialect } from "kysely";
2
+ import * as pg from "pg";
3
+ import { types } from "pg";
4
+ import Cursor from "pg-cursor";
1
5
  import PgPromise from "pg-promise";
2
6
  import config from "./config";
7
+ import { datasets } from "./datasets";
8
+ // Map int8 to number instead of string
9
+ // https://github.com/brianc/node-pg-types#use
10
+ pg.types.setTypeParser(types.builtins.INT8, (val) => {
11
+ return parseInt(val, 10);
12
+ });
3
13
  export const pgPromise = PgPromise();
4
- export const dbNames = ["ameli", "debats", "dosleg", "questions", "sens"];
14
+ export const dbNames = ["ameli", "debats", "dosleg"];
5
15
  export const dbByName = {};
6
16
  for (const name of dbNames) {
7
17
  dbByName[name] = pgPromise({
@@ -12,6 +22,27 @@ for (const name of dbNames) {
12
22
  user: config.db.user,
13
23
  });
14
24
  }
25
+ function createDb(database, schema) {
26
+ const dialect = new PostgresDialect({
27
+ pool: new pg.Pool({
28
+ database: database,
29
+ host: config.db.host,
30
+ user: config.db.user,
31
+ password: config.db.password,
32
+ port: config.db.port,
33
+ max: 10,
34
+ }),
35
+ cursor: Cursor,
36
+ });
37
+ return new Kysely({
38
+ log: ["error"],
39
+ dialect: dialect,
40
+ }).withSchema(schema);
41
+ }
42
+ export const dbAmeli = createDb(datasets.ameli.database, datasets.ameli.schema);
43
+ export const dbDosleg = createDb(datasets.dosleg.database, datasets.dosleg.schema);
44
+ export const dbQuestions = createDb(datasets.questions.database, datasets.questions.schema);
45
+ export const dbSens = createDb(datasets.sens.database, datasets.sens.schema);
15
46
  export let dbSharedConnectionObjectByName = {};
16
47
  export async function checkDatabase(name) {
17
48
  // Check that database exists.