@tricoteuses/senat 1.1.2 → 1.3.2

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 (155) hide show
  1. package/README.md +53 -15
  2. package/lib/config.d.ts +1 -0
  3. package/lib/config.js +14 -45
  4. package/lib/databases.d.ts +9 -0
  5. package/lib/databases.js +90 -117
  6. package/lib/datasets.js +78 -83
  7. package/lib/index.d.ts +8 -7
  8. package/lib/index.js +42 -523
  9. package/lib/legislatures.json +38 -0
  10. package/lib/loaders.d.ts +64 -0
  11. package/lib/loaders.js +177 -0
  12. package/lib/model/ameli.d.ts +105 -4
  13. package/lib/model/ameli.js +88 -166
  14. package/lib/model/debats.d.ts +0 -4
  15. package/lib/model/debats.js +0 -122
  16. package/lib/model/dosleg.d.ts +227 -29
  17. package/lib/model/dosleg.js +205 -839
  18. package/lib/model/index.d.ts +4 -5
  19. package/lib/model/index.js +12 -47
  20. package/lib/model/questions.d.ts +88 -2
  21. package/lib/model/questions.js +75 -51
  22. package/lib/model/sens.d.ts +524 -2
  23. package/lib/model/sens.js +449 -56
  24. package/lib/model/texte.d.ts +7 -0
  25. package/lib/model/texte.js +251 -0
  26. package/lib/model/util.d.ts +7 -1
  27. package/lib/model/util.js +26 -59
  28. package/lib/raw_types/ameli.d.ts +912 -538
  29. package/lib/raw_types/ameli.js +3 -42
  30. package/lib/raw_types/debats.d.ts +204 -124
  31. package/lib/raw_types/debats.js +3 -21
  32. package/lib/raw_types/dosleg.d.ts +3533 -2024
  33. package/lib/raw_types/dosleg.js +3 -95
  34. package/lib/raw_types/questions.d.ts +404 -220
  35. package/lib/raw_types/questions.js +3 -21
  36. package/lib/raw_types/sens.d.ts +4391 -2706
  37. package/lib/raw_types/sens.js +3 -111
  38. package/lib/raw_types_schemats/ameli.d.ts +541 -0
  39. package/lib/raw_types_schemats/ameli.js +3 -0
  40. package/lib/raw_types_schemats/debats.d.ts +127 -0
  41. package/lib/raw_types_schemats/debats.js +3 -0
  42. package/lib/raw_types_schemats/dosleg.d.ts +2029 -0
  43. package/lib/raw_types_schemats/dosleg.js +3 -0
  44. package/lib/raw_types_schemats/questions.d.ts +233 -0
  45. package/lib/raw_types_schemats/questions.js +3 -0
  46. package/lib/raw_types_schemats/sens.d.ts +2709 -0
  47. package/lib/raw_types_schemats/sens.js +3 -0
  48. package/lib/scripts/convert_data.js +184 -275
  49. package/lib/scripts/datautil.d.ts +5 -0
  50. package/lib/scripts/datautil.js +21 -0
  51. package/lib/scripts/parse_textes.js +49 -0
  52. package/lib/scripts/retrieve_documents.js +255 -0
  53. package/lib/scripts/retrieve_open_data.js +211 -360
  54. package/lib/scripts/retrieve_senateurs_photos.js +144 -257
  55. package/lib/scripts/shared/cli_helpers.d.ts +44 -0
  56. package/lib/scripts/shared/cli_helpers.js +35 -0
  57. package/lib/scripts/shared/util.d.ts +3 -0
  58. package/lib/scripts/shared/util.js +36 -0
  59. package/lib/strings.js +20 -45
  60. package/lib/types/ameli.d.ts +2 -2
  61. package/lib/types/ameli.js +14 -25
  62. package/lib/types/debats.d.ts +2 -2
  63. package/lib/types/debats.js +3 -21
  64. package/lib/types/dosleg.d.ts +3 -3
  65. package/lib/types/dosleg.js +152 -119
  66. package/lib/types/questions.d.ts +2 -2
  67. package/lib/types/questions.js +1 -13
  68. package/lib/types/sens.d.ts +2 -4
  69. package/lib/types/sens.js +1 -16
  70. package/lib/types/sessions.d.ts +42 -0
  71. package/lib/types/sessions.js +46 -0
  72. package/lib/types/texte.d.ts +65 -0
  73. package/lib/types/texte.js +19 -0
  74. package/lib/validators/config.js +47 -111
  75. package/lib/validators/senat.js +1 -5
  76. package/package.json +35 -32
  77. package/lib/aggregates.d.ts +0 -54
  78. package/lib/aggregates.js +0 -1122
  79. package/lib/aggregates.mjs +0 -802
  80. package/lib/aggregates.ts +0 -947
  81. package/lib/config.mjs +0 -16
  82. package/lib/config.ts +0 -26
  83. package/lib/databases.mjs +0 -26
  84. package/lib/databases.ts +0 -32
  85. package/lib/datasets.mjs +0 -78
  86. package/lib/datasets.ts +0 -118
  87. package/lib/fields.d.ts +0 -10
  88. package/lib/fields.js +0 -68
  89. package/lib/fields.mjs +0 -22
  90. package/lib/fields.ts +0 -29
  91. package/lib/index.mjs +0 -7
  92. package/lib/index.ts +0 -63
  93. package/lib/inserters.d.ts +0 -102
  94. package/lib/inserters.js +0 -518
  95. package/lib/inserters.mjs +0 -376
  96. package/lib/inserters.ts +0 -545
  97. package/lib/model/ameli.mjs +0 -57
  98. package/lib/model/ameli.ts +0 -86
  99. package/lib/model/debats.mjs +0 -43
  100. package/lib/model/debats.ts +0 -68
  101. package/lib/model/dosleg.mjs +0 -337
  102. package/lib/model/dosleg.ts +0 -558
  103. package/lib/model/index.mjs +0 -5
  104. package/lib/model/index.ts +0 -11
  105. package/lib/model/questions.mjs +0 -8
  106. package/lib/model/questions.ts +0 -14
  107. package/lib/model/sens.mjs +0 -9
  108. package/lib/model/sens.ts +0 -18
  109. package/lib/model/util.mjs +0 -10
  110. package/lib/model/util.ts +0 -16
  111. package/lib/raw_types/ameli.mjs +0 -2
  112. package/lib/raw_types/ameli.ts +0 -601
  113. package/lib/raw_types/debats.mjs +0 -2
  114. package/lib/raw_types/debats.ts +0 -145
  115. package/lib/raw_types/dosleg.mjs +0 -2
  116. package/lib/raw_types/dosleg.ts +0 -2193
  117. package/lib/raw_types/questions.mjs +0 -2
  118. package/lib/raw_types/questions.ts +0 -249
  119. package/lib/raw_types/sens.mjs +0 -2
  120. package/lib/raw_types/sens.ts +0 -2907
  121. package/lib/scripts/convert_data.mjs +0 -146
  122. package/lib/scripts/convert_data.ts +0 -182
  123. package/lib/scripts/fix_db.js +0 -144
  124. package/lib/scripts/fix_db.mjs +0 -64
  125. package/lib/scripts/fix_db.ts +0 -75
  126. package/lib/scripts/images/transparent_150x192.jpg +0 -0
  127. package/lib/scripts/images/transparent_155x225.jpg +0 -0
  128. package/lib/scripts/retrieve_open_data.mjs +0 -218
  129. package/lib/scripts/retrieve_open_data.ts +0 -258
  130. package/lib/scripts/retrieve_senateurs_photos.mjs +0 -164
  131. package/lib/scripts/retrieve_senateurs_photos.ts +0 -200
  132. package/lib/scripts/retrieve_textes.js +0 -179
  133. package/lib/scripts/retrieve_textes.mjs +0 -77
  134. package/lib/scripts/retrieve_textes.ts +0 -95
  135. package/lib/strings.mjs +0 -18
  136. package/lib/strings.ts +0 -26
  137. package/lib/types/ameli.mjs +0 -13
  138. package/lib/types/ameli.ts +0 -21
  139. package/lib/types/debats.mjs +0 -2
  140. package/lib/types/debats.ts +0 -6
  141. package/lib/types/dosleg.mjs +0 -151
  142. package/lib/types/dosleg.ts +0 -284
  143. package/lib/types/questions.mjs +0 -1
  144. package/lib/types/questions.ts +0 -3
  145. package/lib/types/sens.mjs +0 -23
  146. package/lib/types/sens.ts +0 -36
  147. package/lib/typings/windows-1252.d.js +0 -2
  148. package/lib/typings/windows-1252.d.mjs +0 -2
  149. package/lib/typings/windows-1252.d.ts +0 -11
  150. package/lib/validators/config.mjs +0 -54
  151. package/lib/validators/config.ts +0 -79
  152. package/lib/validators/senat.mjs +0 -24
  153. package/lib/validators/senat.ts +0 -26
  154. /package/lib/scripts/{fix_db.d.ts → parse_textes.d.ts} +0 -0
  155. /package/lib/scripts/{retrieve_textes.d.ts → retrieve_documents.d.ts} +0 -0
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Session = void 0;
4
+ var Session;
5
+ (function (Session) {
6
+ Session[Session["2012-2013"] = 2012] = "2012-2013";
7
+ Session[Session["2013-2014"] = 2013] = "2013-2014";
8
+ Session[Session["2014-2015"] = 2014] = "2014-2015";
9
+ Session[Session["2015-2016"] = 2015] = "2015-2016";
10
+ Session[Session["2016-2017"] = 2016] = "2016-2017";
11
+ Session[Session["2017-2018"] = 2017] = "2017-2018";
12
+ Session[Session["2018-2019"] = 2018] = "2018-2019";
13
+ Session[Session["2019-2020"] = 2019] = "2019-2020";
14
+ Session[Session["2020-2021"] = 2020] = "2020-2021";
15
+ Session[Session["2021-2022"] = 2021] = "2021-2022";
16
+ Session[Session["2022-2023"] = 2022] = "2022-2023";
17
+ Session[Session["2023-2024"] = 2023] = "2023-2024";
18
+ Session[Session["2024-2025"] = 2024] = "2024-2025";
19
+ Session[Session["2025-2026"] = 2025] = "2025-2026";
20
+ Session[Session["2026-2027"] = 2026] = "2026-2027";
21
+ Session[Session["2027-2028"] = 2027] = "2027-2028";
22
+ Session[Session["2028-2029"] = 2028] = "2028-2029";
23
+ Session[Session["2029-2030"] = 2029] = "2029-2030";
24
+ Session[Session["2030-2031"] = 2030] = "2030-2031";
25
+ Session[Session["2031-2032"] = 2031] = "2031-2032";
26
+ Session[Session["2032-2033"] = 2032] = "2032-2033";
27
+ Session[Session["2033-2034"] = 2033] = "2033-2034";
28
+ Session[Session["2034-2035"] = 2034] = "2034-2035";
29
+ Session[Session["2035-2036"] = 2035] = "2035-2036";
30
+ Session[Session["2036-2037"] = 2036] = "2036-2037";
31
+ Session[Session["2037-2038"] = 2037] = "2037-2038";
32
+ Session[Session["2038-2039"] = 2038] = "2038-2039";
33
+ Session[Session["2039-2040"] = 2039] = "2039-2040";
34
+ Session[Session["2040-2041"] = 2040] = "2040-2041";
35
+ Session[Session["2041-2042"] = 2041] = "2041-2042";
36
+ Session[Session["2042-2043"] = 2042] = "2042-2043";
37
+ Session[Session["2043-2044"] = 2043] = "2043-2044";
38
+ Session[Session["2044-2045"] = 2044] = "2044-2045";
39
+ Session[Session["2045-2046"] = 2045] = "2045-2046";
40
+ Session[Session["2046-2047"] = 2046] = "2046-2047";
41
+ Session[Session["2047-2048"] = 2047] = "2047-2048";
42
+ Session[Session["2048-2049"] = 2048] = "2048-2049";
43
+ Session[Session["2049-2050"] = 2049] = "2049-2050";
44
+ Session[Session["2050-2051"] = 2050] = "2050-2051";
45
+ Session[Session["All"] = 0] = "All";
46
+ })(Session || (exports.Session = Session = {}));
@@ -0,0 +1,65 @@
1
+ export declare enum DivisionType {
2
+ tome = 1,
3
+ part = 2,
4
+ book = 3,
5
+ title = 4,
6
+ subtitle = 5,
7
+ chapter = 6,
8
+ section = 7,
9
+ subsection = 8,
10
+ paragraph = 9,
11
+ article = 10,
12
+ alinea = 11,
13
+ division = 12
14
+ }
15
+ export type DivisionTag = keyof typeof DivisionType;
16
+ export interface FlatTexte {
17
+ titre: string | null;
18
+ titreCourt: string | null;
19
+ signetDossier: string | null;
20
+ urlDossierSenat: string | null;
21
+ urlDossierAssemblee: string | null;
22
+ type: string | null;
23
+ session: string | null;
24
+ numero: number | null;
25
+ datePresentation: Date | null;
26
+ dateDepot: Date | null;
27
+ datePublicationXml: Date | null;
28
+ version: Version | null;
29
+ workflow: Step[];
30
+ divisions: Division[];
31
+ exposeDesMotifs?: ExposeDesMotifs | null;
32
+ }
33
+ export type Version = "RECT" | "RECT_BIS" | "RECT_TER" | "RECT_QUATER" | "RECT_QUINQUIES";
34
+ export interface Step {
35
+ eId: string;
36
+ date: Date | null;
37
+ type: string | null;
38
+ session: string | null;
39
+ numero: string | null;
40
+ version: Version | null;
41
+ outcome: string | null;
42
+ }
43
+ export interface Division {
44
+ index: number;
45
+ eId: string;
46
+ tag: DivisionTag;
47
+ level: number;
48
+ headings: DivisionContent[];
49
+ }
50
+ export interface Article extends Division {
51
+ alineas: Alinea[];
52
+ }
53
+ export interface DivisionContent {
54
+ text: string | null;
55
+ html?: string | null;
56
+ }
57
+ export interface Alinea extends DivisionContent {
58
+ eId: string;
59
+ heading: DivisionContent;
60
+ pastille: string | null;
61
+ }
62
+ export interface ExposeDesMotifs {
63
+ text: string | null;
64
+ html: string | null;
65
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /* eslint no-use-before-define: 0 */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DivisionType = void 0;
5
+ var DivisionType;
6
+ (function (DivisionType) {
7
+ DivisionType[DivisionType["tome"] = 1] = "tome";
8
+ DivisionType[DivisionType["part"] = 2] = "part";
9
+ DivisionType[DivisionType["book"] = 3] = "book";
10
+ DivisionType[DivisionType["title"] = 4] = "title";
11
+ DivisionType[DivisionType["subtitle"] = 5] = "subtitle";
12
+ DivisionType[DivisionType["chapter"] = 6] = "chapter";
13
+ DivisionType[DivisionType["section"] = 7] = "section";
14
+ DivisionType[DivisionType["subsection"] = 8] = "subsection";
15
+ DivisionType[DivisionType["paragraph"] = 9] = "paragraph";
16
+ DivisionType[DivisionType["article"] = 10] = "article";
17
+ DivisionType[DivisionType["alinea"] = 11] = "alinea";
18
+ DivisionType[DivisionType["division"] = 12] = "division";
19
+ })(DivisionType || (exports.DivisionType = DivisionType = {}));
@@ -1,121 +1,57 @@
1
1
  "use strict";
2
-
3
- require("core-js/modules/es.symbol.to-primitive.js");
4
- require("core-js/modules/es.array.filter.js");
5
- require("core-js/modules/es.array.for-each.js");
6
- require("core-js/modules/es.array.from.js");
7
- require("core-js/modules/es.array.is-array.js");
8
- require("core-js/modules/es.array.slice.js");
9
- require("core-js/modules/es.date.to-primitive.js");
10
- require("core-js/modules/es.date.to-string.js");
11
- require("core-js/modules/es.function.name.js");
12
- require("core-js/modules/es.number.constructor.js");
13
- require("core-js/modules/es.object.define-properties.js");
14
- require("core-js/modules/es.object.define-property.js");
15
- require("core-js/modules/es.object.get-own-property-descriptor.js");
16
- require("core-js/modules/es.object.get-own-property-descriptors.js");
17
- require("core-js/modules/es.regexp.exec.js");
18
- require("core-js/modules/es.regexp.to-string.js");
19
- require("core-js/modules/web.dom-collections.for-each.js");
20
- Object.defineProperty(exports, "__esModule", {
21
- value: true
22
- });
2
+ Object.defineProperty(exports, "__esModule", { value: true });
23
3
  exports.validateConfig = validateConfig;
24
- require("core-js/modules/es.symbol.js");
25
- require("core-js/modules/es.symbol.description.js");
26
- require("core-js/modules/es.symbol.iterator.js");
27
- require("core-js/modules/es.array.iterator.js");
28
- require("core-js/modules/es.object.keys.js");
29
- require("core-js/modules/es.object.to-string.js");
30
- require("core-js/modules/es.set.js");
31
- require("core-js/modules/es.string.iterator.js");
32
- require("core-js/modules/web.dom-collections.iterator.js");
33
- var _core = require("@biryani/core");
34
- 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; } } }; }
35
- function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
36
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
37
- 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; } }
38
- 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; }
39
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
40
- function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
41
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
42
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
43
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
44
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
45
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
46
- 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
+ const core_1 = require("@biryani/core");
47
5
  function validateDb(data) {
48
- if (data === null || data === undefined) {
49
- return [data, "Missing value"];
50
- }
51
- if (_typeof(data) !== "object") {
52
- return [data, "Expected an object got \"".concat(_typeof(data), "\"")];
53
- }
54
- data = _objectSpread({}, data);
55
- var errors = {};
56
- var remainingKeys = new Set(Object.keys(data));
57
- for (var _i = 0, _arr = ["host", "password", "user"]; _i < _arr.length; _i++) {
58
- var key = _arr[_i];
59
- remainingKeys["delete"](key);
60
- var _validateNonEmptyTrim = (0, _core.validateNonEmptyTrimmedString)(data[key]),
61
- _validateNonEmptyTrim2 = _slicedToArray(_validateNonEmptyTrim, 2),
62
- value = _validateNonEmptyTrim2[0],
63
- error = _validateNonEmptyTrim2[1];
64
- data[key] = value;
65
- if (error !== null) {
66
- errors[key] = error;
6
+ if (data === null || data === undefined) {
7
+ return [data, "Missing value"];
67
8
  }
68
- }
69
- {
70
- var _key = "port";
71
- remainingKeys["delete"](_key);
72
- var _validateChain = (0, _core.validateChain)((0, _core.validateOption)([_core.validateString, _core.validateStringToNumber], _core.validateNumber), _core.validateInteger, (0, _core.validateTest)(function (value) {
73
- return 0 <= value && value <= 65535;
74
- }, "Must be an integer between 0 and 65535"))(data[_key]),
75
- _validateChain2 = _slicedToArray(_validateChain, 2),
76
- _value = _validateChain2[0],
77
- _error = _validateChain2[1];
78
- data[_key] = _value;
79
- if (_error !== null) {
80
- errors[_key] = _error;
9
+ if (typeof data !== "object") {
10
+ return [data, `Expected an object got "${typeof data}"`];
81
11
  }
82
- }
83
- var _iterator = _createForOfIteratorHelper(remainingKeys),
84
- _step;
85
- try {
86
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
87
- var _key2 = _step.value;
88
- errors[_key2] = "Unexpected item";
12
+ data = { ...data };
13
+ const errors = {};
14
+ const remainingKeys = new Set(Object.keys(data));
15
+ for (const key of ["host", "password", "user"]) {
16
+ remainingKeys.delete(key);
17
+ const [value, error] = (0, core_1.validateNonEmptyTrimmedString)(data[key]);
18
+ data[key] = value;
19
+ if (error !== null) {
20
+ errors[key] = error;
21
+ }
89
22
  }
90
- } catch (err) {
91
- _iterator.e(err);
92
- } finally {
93
- _iterator.f();
94
- }
95
- return [data, Object.keys(errors).length === 0 ? null : errors];
23
+ {
24
+ const key = "port";
25
+ remainingKeys.delete(key);
26
+ const [value, error] = (0, core_1.validateChain)((0, core_1.validateOption)([core_1.validateString, core_1.validateStringToNumber], core_1.validateNumber), core_1.validateInteger, (0, core_1.validateTest)((value) => 0 <= value && value <= 65535, "Must be an integer between 0 and 65535"))(data[key]);
27
+ data[key] = value;
28
+ if (error !== null) {
29
+ errors[key] = error;
30
+ }
31
+ }
32
+ for (const key of remainingKeys) {
33
+ errors[key] = "Unexpected item";
34
+ }
35
+ return [data, Object.keys(errors).length === 0 ? null : errors];
96
36
  }
97
37
  function validateConfig(data) {
98
- if (data === null || data === undefined) {
99
- return [data, "Missing value"];
100
- }
101
- if (_typeof(data) !== "object") {
102
- return [data, "Expected an object got \"".concat(_typeof(data), "\"")];
103
- }
104
- data = _objectSpread({}, data);
105
- var errors = {};
106
- var remainingKeys = new Set(Object.keys(data));
107
- {
108
- var key = "db";
109
- remainingKeys["delete"](key);
110
- var _validateDb = validateDb(data[key]),
111
- _validateDb2 = _slicedToArray(_validateDb, 2),
112
- value = _validateDb2[0],
113
- error = _validateDb2[1];
114
- data[key] = value;
115
- if (error !== null) {
116
- errors[key] = error;
38
+ if (data === null || data === undefined) {
39
+ return [data, "Missing value"];
40
+ }
41
+ if (typeof data !== "object") {
42
+ return [data, `Expected an object got "${typeof data}"`];
43
+ }
44
+ data = { ...data };
45
+ const errors = {};
46
+ const remainingKeys = new Set(Object.keys(data));
47
+ {
48
+ const key = "db";
49
+ remainingKeys.delete(key);
50
+ const [value, error] = validateDb(data[key]);
51
+ data[key] = value;
52
+ if (error !== null) {
53
+ errors[key] = error;
54
+ }
117
55
  }
118
- }
119
- return [data, Object.keys(errors).length === 0 ? null : errors];
56
+ return [data, Object.keys(errors).length === 0 ? null : errors];
120
57
  }
121
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInIiLCJlIiwidCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwibyIsImEiLCJ1IiwiY2FsbCIsIm5leHQiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsImwiLCJpIiwiT2JqZWN0IiwicHVzaCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl90b1ByaW1pdGl2ZSIsIl90eXBlb2YiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsInByb3RvdHlwZSIsInZhbGlkYXRlRGIiLCJkYXRhIiwidW5kZWZpbmVkIiwiY29uY2F0IiwiZXJyb3JzIiwicmVtYWluaW5nS2V5cyIsIlNldCIsIl9pIiwiX2FyciIsImtleSIsIl92YWxpZGF0ZU5vbkVtcHR5VHJpbSIsInZhbGlkYXRlTm9uRW1wdHlUcmltbWVkU3RyaW5nIiwiX3ZhbGlkYXRlTm9uRW1wdHlUcmltMiIsImVycm9yIiwiX3ZhbGlkYXRlQ2hhaW4iLCJ2YWxpZGF0ZUNoYWluIiwidmFsaWRhdGVPcHRpb24iLCJ2YWxpZGF0ZVN0cmluZyIsInZhbGlkYXRlU3RyaW5nVG9OdW1iZXIiLCJ2YWxpZGF0ZU51bWJlciIsInZhbGlkYXRlSW50ZWdlciIsInZhbGlkYXRlVGVzdCIsIl92YWxpZGF0ZUNoYWluMiIsIl9pdGVyYXRvciIsIl9zdGVwIiwiZXJyIiwidmFsaWRhdGVDb25maWciLCJfdmFsaWRhdGVEYiIsIl92YWxpZGF0ZURiMiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0b3JzL2NvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB2YWxpZGF0ZUNoYWluLFxuICB2YWxpZGF0ZUludGVnZXIsXG4gIHZhbGlkYXRlTm9uRW1wdHlUcmltbWVkU3RyaW5nLFxuICB2YWxpZGF0ZU51bWJlcixcbiAgdmFsaWRhdGVPcHRpb24sXG4gIHZhbGlkYXRlU3RyaW5nLFxuICB2YWxpZGF0ZVN0cmluZ1RvTnVtYmVyLFxuICB2YWxpZGF0ZVRlc3QsXG59IGZyb20gXCJAYmlyeWFuaS9jb3JlXCJcblxuZnVuY3Rpb24gdmFsaWRhdGVEYihkYXRhOiBhbnkpOiBbYW55LCBhbnldIHtcbiAgaWYgKGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFtkYXRhLCBcIk1pc3NpbmcgdmFsdWVcIl1cbiAgfVxuICBpZiAodHlwZW9mIGRhdGEgIT09IFwib2JqZWN0XCIpIHtcbiAgICByZXR1cm4gW2RhdGEsIGBFeHBlY3RlZCBhbiBvYmplY3QgZ290IFwiJHt0eXBlb2YgZGF0YX1cImBdXG4gIH1cblxuICBkYXRhID0geyAuLi5kYXRhIH1cbiAgY29uc3QgZXJyb3JzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cbiAgY29uc3QgcmVtYWluaW5nS2V5cyA9IG5ldyBTZXQoT2JqZWN0LmtleXMoZGF0YSkpXG5cbiAgZm9yIChjb25zdCBrZXkgb2YgW1wiaG9zdFwiLCBcInBhc3N3b3JkXCIsIFwidXNlclwiXSkge1xuICAgIHJlbWFpbmluZ0tleXMuZGVsZXRlKGtleSlcbiAgICBjb25zdCBbdmFsdWUsIGVycm9yXSA9IHZhbGlkYXRlTm9uRW1wdHlUcmltbWVkU3RyaW5nKGRhdGFba2V5XSlcbiAgICBkYXRhW2tleV0gPSB2YWx1ZVxuICAgIGlmIChlcnJvciAhPT0gbnVsbCkge1xuICAgICAgZXJyb3JzW2tleV0gPSBlcnJvclxuICAgIH1cbiAgfVxuXG4gIHtcbiAgICBjb25zdCBrZXkgPSBcInBvcnRcIlxuICAgIHJlbWFpbmluZ0tleXMuZGVsZXRlKGtleSlcbiAgICBjb25zdCBbdmFsdWUsIGVycm9yXSA9IHZhbGlkYXRlQ2hhaW4oXG4gICAgICB2YWxpZGF0ZU9wdGlvbihbdmFsaWRhdGVTdHJpbmcsIHZhbGlkYXRlU3RyaW5nVG9OdW1iZXJdLCB2YWxpZGF0ZU51bWJlciksXG4gICAgICB2YWxpZGF0ZUludGVnZXIsXG4gICAgICB2YWxpZGF0ZVRlc3QoXG4gICAgICAgICh2YWx1ZTogYW55KSA9PiAwIDw9IHZhbHVlICYmIHZhbHVlIDw9IDY1NTM1LFxuICAgICAgICBcIk11c3QgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDY1NTM1XCIsXG4gICAgICApLFxuICAgICkoZGF0YVtrZXldKVxuICAgIGRhdGFba2V5XSA9IHZhbHVlXG4gICAgaWYgKGVycm9yICE9PSBudWxsKSB7XG4gICAgICBlcnJvcnNba2V5XSA9IGVycm9yXG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgcmVtYWluaW5nS2V5cykge1xuICAgIGVycm9yc1trZXldID0gXCJVbmV4cGVjdGVkIGl0ZW1cIlxuICB9XG4gIHJldHVybiBbZGF0YSwgT2JqZWN0LmtleXMoZXJyb3JzKS5sZW5ndGggPT09IDAgPyBudWxsIDogZXJyb3JzXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVDb25maWcoZGF0YTogYW55KTogW2FueSwgYW55XSB7XG4gIGlmIChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBbZGF0YSwgXCJNaXNzaW5nIHZhbHVlXCJdXG4gIH1cbiAgaWYgKHR5cGVvZiBkYXRhICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIFtkYXRhLCBgRXhwZWN0ZWQgYW4gb2JqZWN0IGdvdCBcIiR7dHlwZW9mIGRhdGF9XCJgXVxuICB9XG5cbiAgZGF0YSA9IHsgLi4uZGF0YSB9XG4gIGNvbnN0IGVycm9yczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG4gIGNvbnN0IHJlbWFpbmluZ0tleXMgPSBuZXcgU2V0KE9iamVjdC5rZXlzKGRhdGEpKVxuXG4gIHtcbiAgICBjb25zdCBrZXkgPSBcImRiXCJcbiAgICByZW1haW5pbmdLZXlzLmRlbGV0ZShrZXkpXG4gICAgY29uc3QgW3ZhbHVlLCBlcnJvcl0gPSB2YWxpZGF0ZURiKGRhdGFba2V5XSlcbiAgICBkYXRhW2tleV0gPSB2YWx1ZVxuICAgIGlmIChlcnJvciAhPT0gbnVsbCkge1xuICAgICAgZXJyb3JzW2tleV0gPSBlcnJvclxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBbZGF0YSwgT2JqZWN0LmtleXMoZXJyb3JzKS5sZW5ndGggPT09IDAgPyBudWxsIDogZXJyb3JzXVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsT0FBQTtBQVNzQixTQUFBQywyQkFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEseUJBQUFDLE1BQUEsSUFBQUgsQ0FBQSxDQUFBRyxNQUFBLENBQUFDLFFBQUEsS0FBQUosQ0FBQSxxQkFBQUUsQ0FBQSxRQUFBRyxLQUFBLENBQUFDLE9BQUEsQ0FBQU4sQ0FBQSxNQUFBRSxDQUFBLEdBQUFLLDJCQUFBLENBQUFQLENBQUEsTUFBQUMsQ0FBQSxJQUFBRCxDQUFBLHVCQUFBQSxDQUFBLENBQUFRLE1BQUEsSUFB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TUFBQSxJQUF0QndELEtBQUcsR0FBQWUsS0FBQSxDQUFBdEUsS0FBQTtNQUNaa0QsTUFBTSxDQUFDSyxLQUFHLENBQUMsR0FBRyxpQkFBaUI7SUFDakM7RUFBQyxTQUFBZ0IsR0FBQTtJQUFBRixTQUFBLENBQUFsRixDQUFBLENBQUFvRixHQUFBO0VBQUE7SUFBQUYsU0FBQSxDQUFBcEUsQ0FBQTtFQUFBO0VBQ0QsT0FBTyxDQUFDOEMsSUFBSSxFQUFFMUIsTUFBTSxDQUFDRyxJQUFJLENBQUMwQixNQUFNLENBQUMsQ0FBQ3hELE1BQU0sS0FBSyxDQUFDLEdBQUcsSUFBSSxHQUFHd0QsTUFBTSxDQUFDO0FBQ2pFO0FBRU8sU0FBU3NCLGNBQWNBLENBQUN6QixJQUFTLEVBQWM7RUFDcEQsSUFBSUEsSUFBSSxLQUFLLElBQUksSUFBSUEsSUFBSSxLQUFLQyxTQUFTLEVBQUU7SUFDdkMsT0FBTyxDQUFDRCxJQUFJLEVBQUUsZUFBZSxDQUFDO0VBQ2hDO0VBQ0EsSUFBSU4sT0FBQSxDQUFPTSxJQUFJLE1BQUssUUFBUSxFQUFFO0lBQzVCLE9BQU8sQ0FBQ0EsSUFBSSw4QkFBQUUsTUFBQSxDQUFBUixPQUFBLENBQW9DTSxJQUFJLFNBQUk7RUFDMUQ7RUFFQUEsSUFBSSxHQUFBakIsYUFBQSxLQUFRaUIsSUFBSSxDQUFFO0VBQ2xCLElBQU1HLE1BQThCLEdBQUcsQ0FBQyxDQUFDO0VBQ3pDLElBQU1DLGFBQWEsR0FBRyxJQUFJQyxHQUFHLENBQUMvQixNQUFNLENBQUNHLElBQUksQ0FBQ3VCLElBQUksQ0FBQyxDQUFDO0VBRWhEO0lBQ0UsSUFBTVEsR0FBRyxHQUFHLElBQUk7SUFDaEJKLGFBQWEsVUFBTyxDQUFDSSxHQUFHLENBQUM7SUFDekIsSUFBQWtCLFdBQUEsR0FBdUIzQixVQUFVLENBQUNDLElBQUksQ0FBQ1EsR0FBRyxDQUFDLENBQUM7TUFBQW1CLFlBQUEsR0FBQWxFLGNBQUEsQ0FBQWlFLFdBQUE7TUFBckN6RSxLQUFLLEdBQUEwRSxZQUFBO01BQUVmLEtBQUssR0FBQWUsWUFBQTtJQUNuQjNCLElBQUksQ0FBQ1EsR0FBRyxDQUFDLEdBQUd2RCxLQUFLO0lBQ2pCLElBQUkyRCxLQUFLLEtBQUssSUFBSSxFQUFFO01BQ2xCVCxNQUFNLENBQUNLLEdBQUcsQ0FBQyxHQUFHSSxLQUFLO0lBQ3JCO0VBQ0Y7RUFFQSxPQUFPLENBQUNaLElBQUksRUFBRTFCLE1BQU0sQ0FBQ0csSUFBSSxDQUFDMEIsTUFBTSxDQUFDLENBQUN4RCxNQUFNLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBR3dELE1BQU0sQ0FBQztBQUNqRSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,8 +1,7 @@
1
+ "use strict";
1
2
  // import { validateNonEmptyTrimmedString } from "@biryani/core"
2
-
3
3
  // const acteurUidRegExp = /^PA\d+$/
4
4
  // const organeUidRegExp = /^PO\d+$/
5
-
6
5
  // export function validateSenateurUid(input: any): [any, any] {
7
6
  // const [value, error] = validateNonEmptyTrimmedString(input)
8
7
  // if (error !== null) {
@@ -13,7 +12,6 @@
13
12
  // }
14
13
  // return [value, null]
15
14
  // }
16
-
17
15
  // export function validateOrganeUid(input: any): [any, any] {
18
16
  // const [value, error] = validateNonEmptyTrimmedString(input)
19
17
  // if (error !== null) {
@@ -24,5 +22,3 @@
24
22
  // }
25
23
  // return [value, null]
26
24
  // }
27
- "use strict";
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRvcnMvc2VuYXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHsgdmFsaWRhdGVOb25FbXB0eVRyaW1tZWRTdHJpbmcgfSBmcm9tIFwiQGJpcnlhbmkvY29yZVwiXG5cbi8vIGNvbnN0IGFjdGV1clVpZFJlZ0V4cCA9IC9eUEFcXGQrJC9cbi8vIGNvbnN0IG9yZ2FuZVVpZFJlZ0V4cCA9IC9eUE9cXGQrJC9cblxuLy8gZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU2VuYXRldXJVaWQoaW5wdXQ6IGFueSk6IFthbnksIGFueV0ge1xuLy8gICBjb25zdCBbdmFsdWUsIGVycm9yXSA9IHZhbGlkYXRlTm9uRW1wdHlUcmltbWVkU3RyaW5nKGlucHV0KVxuLy8gICBpZiAoZXJyb3IgIT09IG51bGwpIHtcbi8vICAgICByZXR1cm4gW3ZhbHVlLCBlcnJvcl1cbi8vICAgfVxuLy8gICBpZiAoIWFjdGV1clVpZFJlZ0V4cC50ZXN0KHZhbHVlKSkge1xuLy8gICAgIHJldHVybiBbdmFsdWUsICdJbnZhbGlkIFwiYWN0ZXVyXCIgdW5pcXVlIElEJ11cbi8vICAgfVxuLy8gICByZXR1cm4gW3ZhbHVlLCBudWxsXVxuLy8gfVxuXG4vLyBleHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVPcmdhbmVVaWQoaW5wdXQ6IGFueSk6IFthbnksIGFueV0ge1xuLy8gICBjb25zdCBbdmFsdWUsIGVycm9yXSA9IHZhbGlkYXRlTm9uRW1wdHlUcmltbWVkU3RyaW5nKGlucHV0KVxuLy8gICBpZiAoZXJyb3IgIT09IG51bGwpIHtcbi8vICAgICByZXR1cm4gW3ZhbHVlLCBlcnJvcl1cbi8vICAgfVxuLy8gICBpZiAoIW9yZ2FuZVVpZFJlZ0V4cC50ZXN0KHZhbHVlKSkge1xuLy8gICAgIHJldHVybiBbdmFsdWUsICdJbnZhbGlkIFwib3JnYW5lXCIgdW5pcXVlIElEJ11cbi8vICAgfVxuLy8gICByZXR1cm4gW3ZhbHVlLCBudWxsXVxuLy8gfVxuIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tricoteuses/senat",
3
- "version": "1.1.2",
3
+ "version": "1.3.2",
4
4
  "description": "Handle French Sénat's open data",
5
5
  "keywords": [
6
6
  "France",
@@ -18,36 +18,38 @@
18
18
  "type": "git",
19
19
  "url": "https://git.en-root.org/tricoteuses/tricoteuses-senat.git"
20
20
  },
21
- "main": "lib/index.js",
22
- "types": "lib/index.d.ts",
21
+ "type": "module",
22
+ "engines": {
23
+ "node": ">=22"
24
+ },
23
25
  "files": [
24
26
  "lib"
25
27
  ],
26
28
  "exports": {
27
29
  ".": {
28
- "import": "./lib/index.mjs",
29
30
  "require": "./lib/index.js",
30
31
  "types": "./lib/index.d.ts"
31
32
  },
33
+ "./lib/loaders": {
34
+ "require": "./lib/loaders.js",
35
+ "types": "./lib/loaders.d.ts"
36
+ },
32
37
  "./package.json": "./package.json"
33
38
  },
34
- "typesVersions": {
35
- "*": {
36
- ".": [
37
- "./lib/index.d.ts"
38
- ]
39
- }
40
- },
41
39
  "publishConfig": {
42
40
  "access": "public"
43
41
  },
44
42
  "scripts": {
45
- "build": "npm run build:types && npm run build:js && npm run build:mjs && npm run build:cjs && npm run build:static",
46
- "build:js": "npx babel src --out-dir lib --extensions \".ts\" --source-maps inline",
47
- "build:cjs": "babel src --out-dir lib --extensions \".ts\" --source-maps inline",
48
- "build:mjs": "tsc && for file in lib/*.js lib/**/*.js; do new_file=`echo $file | sed 's/.js/.mjs/'`; mv $file $new_file; done",
43
+ "build": "tsc",
49
44
  "build:types": "tsc --emitDeclarationOnly",
50
- "build:static": "npx babel src --out-dir lib --copy-files",
45
+ "data:convert_data": "tsx src/scripts/convert_data.ts",
46
+ "data:download": "bash -c 'npm run data:retrieve_open_data -- $@ && npm run data:convert_data -- $@' bash",
47
+ "data:generate_schemas": "tsx src/scripts/retrieve_open_data.ts --schema",
48
+ "data:retrieve_open_data": "tsx src/scripts/retrieve_open_data.ts --all",
49
+ "data:retrieve_senateurs_photos": "tsx src/scripts/retrieve_senateurs_photos.ts --fetch",
50
+ "data:retrieve_documents": "tsx src/scripts/retrieve_documents.ts",
51
+ "data:parse_textes_lois": "tsx src/scripts/parse_textes.ts",
52
+ "prepare": "npm run build",
51
53
  "prepublishOnly": "npm run build",
52
54
  "prettier": "prettier --write 'src/**/*.ts' 'tests/**/*.test.ts'",
53
55
  "type-check": "tsc --noEmit",
@@ -56,36 +58,37 @@
56
58
  "dependencies": {
57
59
  "@biryani/core": "^0.2.1",
58
60
  "command-line-args": "^5.1.1",
59
- "cross-fetch": "^3.0.4",
60
61
  "dotenv": "^8.2.0",
61
62
  "fs-extra": "^9.1.0",
63
+ "jsdom": "^26.0.0",
64
+ "kysely": "^0.27.4",
65
+ "luxon": "^3.5.0",
62
66
  "node-stream-zip": "^1.8.2",
67
+ "pg": "^8.13.1",
68
+ "pg-cursor": "^2.12.1",
63
69
  "pg-promise": "^10.9.2",
64
70
  "slug": "^4.0.2",
71
+ "tsx": "^4.19.4",
65
72
  "windows-1252": "^1.0.0"
66
73
  },
67
74
  "devDependencies": {
68
- "@babel/cli": "^7.11.6",
69
- "@babel/core": "^7.11.6",
70
- "@babel/node": "^7.10.5",
71
- "@babel/plugin-proposal-class-properties": "^7.10.4",
72
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
73
- "@babel/preset-env": "^7.11.5",
74
- "@babel/preset-typescript": "^7.10.4",
75
75
  "@typed-code/schemats": "^5.0.1",
76
76
  "@types/command-line-args": "^5.0.0",
77
77
  "@types/fs-extra": "^9.0.7",
78
- "@types/node": "^14.14.28",
78
+ "@types/jsdom": "^21.1.7",
79
+ "@types/luxon": "^3.4.2",
80
+ "@types/node": "^20.17.6",
81
+ "@types/pg": "^8.11.10",
82
+ "@types/pg-cursor": "^2.7.2",
79
83
  "@types/slug": "^0.9.1",
80
- "babel-eslint": "^10.1.0",
84
+ "@typescript-eslint/eslint-plugin": "^8.13.0",
85
+ "@typescript-eslint/parser": "^8.13.0",
81
86
  "core-js": "^3.3.2",
82
- "eslint": "^8.22.0",
83
- "prettier": "^2.2.1",
87
+ "eslint": "^8.57.1",
88
+ "kysely-codegen": "^0.18.0",
89
+ "prettier": "^3.5.3",
84
90
  "regenerator-runtime": "^0.13.3",
85
91
  "tslib": "^2.1.0",
86
- "typescript": "^4.1.5"
87
- },
88
- "engines": {
89
- "node": ">=16"
92
+ "typescript": "^5.8.3"
90
93
  }
91
94
  }
@@ -1,54 +0,0 @@
1
- import { Ses, Sub, TxtAmeli } from './types/ameli';
2
- import { Debat } from './types/debats';
3
- import { Ass, Aud, Auteur, DateSeance, DecCoc, DenRap, DocAtt, Ecr, EtaLoi, LecAss, LecAssRap, Lecture, Loi, Org, OriTxt, Qua, Rap, Scr, Texte, TypAtt, TypLec, TypLoi, TypTxt, TypUrl } from './types/dosleg';
4
- import { Question } from './types/questions';
5
- import { Sen } from './types/sens';
6
- export declare const allFollows: string[];
7
- export declare class Aggregator {
8
- follow: Set<string>;
9
- objectByIdByTableName: {
10
- [name: string]: {
11
- [id: string]: object;
12
- };
13
- };
14
- requestedIdsByTableName: {
15
- [name: string]: Set<string>;
16
- };
17
- visitedIdsByTableName: {
18
- [name: string]: Set<string>;
19
- };
20
- constructor(follow: Set<string>);
21
- addAss(ass: Ass): void;
22
- addAud(aud: Aud): void;
23
- addAuteur(auteur: Auteur): void;
24
- addDateSeance(dateSeance: DateSeance): void;
25
- addDebat(debat: Debat): void;
26
- addDeccoc(deccoc: DecCoc): void;
27
- addDenrap(denrap: DenRap): void;
28
- addDocatt(docatt: DocAtt): void;
29
- addEcr(ecr: Ecr): void;
30
- addEtaloi(etaloi: EtaLoi): void;
31
- addLecass(lecass: LecAss): void;
32
- addLecassrap(lecassrap: LecAssRap): void;
33
- addLecture(lecture: Lecture): void;
34
- addLoi(loi: Loi): void;
35
- addOrg(org: Org): void;
36
- addOritxt(oritxt: OriTxt): void;
37
- addQua(qua: Qua): void;
38
- addQuestion(question: Question): void;
39
- addRap(rap: Rap): void;
40
- addScr(scr: Scr): void;
41
- addSen(sen: Sen): void;
42
- addSes(ses: Ses): void;
43
- addSub(sub: Sub): void;
44
- addTexte(texte: Texte): void;
45
- addTxtAmeli(txtAmeli: TxtAmeli): void;
46
- addTypatt(typatt: TypAtt): void;
47
- addTyplec(typlec: TypLec): void;
48
- addTyploi(typloi: TypLoi): void;
49
- addTyptxt(typtxt: TypTxt): void;
50
- addTypurl(typurl: TypUrl): void;
51
- getAll(): Promise<void>;
52
- request(tableName: string, id: string): void;
53
- toJson(): any;
54
- }