@tricoteuses/senat 0.3.1 → 1.0.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 (88) hide show
  1. package/README.md +52 -0
  2. package/lib/config.d.ts +2 -0
  3. package/lib/config.js +49 -0
  4. package/lib/config.mjs +16 -0
  5. package/lib/config.ts +26 -0
  6. package/lib/databases.d.ts +11 -0
  7. package/lib/databases.js +125 -0
  8. package/lib/databases.mjs +26 -0
  9. package/lib/databases.ts +32 -0
  10. package/lib/datasets.d.ts +27 -0
  11. package/lib/datasets.js +85 -0
  12. package/lib/datasets.mjs +68 -0
  13. package/lib/datasets.ts +107 -0
  14. package/lib/fields.d.ts +10 -0
  15. package/lib/fields.js +68 -0
  16. package/lib/fields.mjs +22 -0
  17. package/lib/fields.ts +29 -0
  18. package/lib/index.d.ts +6 -5
  19. package/lib/index.js +317 -86
  20. package/lib/index.mjs +6 -1
  21. package/lib/index.ts +59 -0
  22. package/lib/inserters.d.ts +1 -1
  23. package/lib/inserters.js +76 -182
  24. package/lib/inserters.ts +520 -0
  25. package/lib/raw_types/ameli.d.ts +416 -410
  26. package/lib/raw_types/ameli.js +28 -144
  27. package/lib/raw_types/ameli.ts +601 -0
  28. package/lib/raw_types/debats.d.ts +82 -80
  29. package/lib/raw_types/debats.js +10 -42
  30. package/lib/raw_types/debats.ts +145 -0
  31. package/lib/raw_types/dosleg.d.ts +936 -920
  32. package/lib/raw_types/dosleg.js +6 -344
  33. package/lib/raw_types/dosleg.ts +2193 -0
  34. package/lib/raw_types/questions.d.ts +2 -2
  35. package/lib/raw_types/questions.js +3 -3
  36. package/lib/raw_types/questions.mjs +2 -2
  37. package/lib/raw_types/questions.ts +9 -0
  38. package/lib/raw_types/sens.d.ts +1180 -1176
  39. package/lib/raw_types/sens.js +5 -397
  40. package/lib/raw_types/sens.ts +2907 -0
  41. package/lib/scripts/images/transparent_150x192.jpg +0 -0
  42. package/lib/scripts/images/transparent_155x225.jpg +0 -0
  43. package/lib/scripts/retrieve_open_data.d.ts +1 -0
  44. package/lib/scripts/retrieve_open_data.js +366 -0
  45. package/lib/scripts/retrieve_open_data.mjs +215 -0
  46. package/lib/scripts/retrieve_open_data.ts +254 -0
  47. package/lib/scripts/retrieve_senateurs_photos.d.ts +1 -0
  48. package/lib/scripts/retrieve_senateurs_photos.js +268 -0
  49. package/lib/scripts/retrieve_senateurs_photos.mjs +164 -0
  50. package/lib/scripts/retrieve_senateurs_photos.ts +200 -0
  51. package/lib/scripts/retrieve_textes.d.ts +1 -0
  52. package/lib/scripts/retrieve_textes.js +177 -0
  53. package/lib/scripts/retrieve_textes.mjs +75 -0
  54. package/lib/scripts/retrieve_textes.ts +93 -0
  55. package/lib/strings.d.ts +1 -0
  56. package/lib/strings.js +49 -0
  57. package/lib/strings.mjs +18 -0
  58. package/lib/strings.ts +26 -0
  59. package/lib/types/ameli.d.ts +5 -0
  60. package/lib/types/ameli.js +9 -2
  61. package/lib/types/ameli.mjs +13 -1
  62. package/lib/types/ameli.ts +21 -0
  63. package/lib/types/debats.d.ts +2 -0
  64. package/lib/types/debats.js +5 -2
  65. package/lib/types/debats.mjs +2 -1
  66. package/lib/types/debats.ts +6 -0
  67. package/lib/types/dosleg.d.ts +28 -0
  68. package/lib/types/dosleg.js +31 -2
  69. package/lib/types/dosleg.mjs +151 -1
  70. package/lib/types/dosleg.ts +284 -0
  71. package/lib/types/questions.js +1 -1
  72. package/lib/types/questions.ts +0 -0
  73. package/lib/types/sens.d.ts +2 -0
  74. package/lib/types/sens.js +5 -2
  75. package/lib/types/sens.mjs +23 -1
  76. package/lib/types/sens.ts +36 -0
  77. package/lib/typings/windows-1252.d.js +2 -0
  78. package/lib/typings/windows-1252.d.mjs +2 -0
  79. package/lib/typings/windows-1252.d.ts +11 -0
  80. package/lib/validators/config.d.ts +1 -0
  81. package/lib/validators/config.js +121 -0
  82. package/lib/validators/config.mjs +54 -0
  83. package/lib/validators/config.ts +79 -0
  84. package/lib/validators/senat.d.ts +0 -0
  85. package/lib/validators/senat.js +28 -0
  86. package/lib/validators/senat.mjs +24 -0
  87. package/lib/validators/senat.ts +26 -0
  88. package/package.json +36 -5
@@ -0,0 +1,107 @@
1
+ import fs from "fs-extra"
2
+ import path from "path"
3
+ import assert from "assert"
4
+
5
+ export interface Dataset {
6
+ database: string
7
+ repairEncoding: boolean
8
+ repairZip?: (dataset: Dataset, dataDir: string) => void
9
+ schema: string
10
+ title: string
11
+ url: string
12
+ }
13
+
14
+ export interface Datasets {
15
+ ameli: Dataset
16
+ debats: Dataset
17
+ dosleg: Dataset
18
+ questions: Dataset
19
+ sens: Dataset
20
+ }
21
+
22
+ export enum EnabledDatasets {
23
+ None = 0,
24
+ Ameli = 1 << 0,
25
+ Debats = 1 << 1,
26
+ DosLeg = 1 << 2,
27
+ Questions = 1 << 3,
28
+ Sens = 1 << 4,
29
+ PhotosSenateurs = 1 << 5,
30
+ All = Ameli | Debats | DosLeg | Questions | Sens | PhotosSenateurs,
31
+ }
32
+
33
+ export const datasets: Datasets = {
34
+ ameli: {
35
+ database: "ameli",
36
+ repairEncoding: false,
37
+ repairZip: (dataset: Dataset, dataDir: string) => {
38
+ const sqlFilename = `${dataset.database}.sql`
39
+ const sqlFilePath = path.join(dataDir, sqlFilename)
40
+ fs.removeSync(sqlFilePath)
41
+ fs.moveSync(
42
+ path.join(dataDir, "var", "opt", "opendata", sqlFilename),
43
+ sqlFilePath,
44
+ )
45
+ },
46
+ schema: "public",
47
+ title: "Amendements",
48
+ url: "https://data.senat.fr/data/ameli/ameli.zip",
49
+ },
50
+ debats: {
51
+ database: "debats",
52
+ repairEncoding: true,
53
+ schema: "public",
54
+ title:
55
+ "Informations relatives aux comptes rendus intégraux de la séance publique",
56
+ url: "https://data.senat.fr/data/debats/debats.zip",
57
+ },
58
+ dosleg: {
59
+ database: "dosleg",
60
+ repairEncoding: true,
61
+ schema: "public",
62
+ title: "Dossiers législatifs",
63
+ url: "https://data.senat.fr/data/dosleg/dosleg.zip",
64
+ },
65
+ questions: {
66
+ database: "questions",
67
+ repairEncoding: true,
68
+ schema: "questions",
69
+ title:
70
+ "Questions écrites et orales posées par les sénateurs au Gouvernement",
71
+ url: "https://data.senat.fr/data/questions/questions.zip",
72
+ },
73
+ sens: {
74
+ database: "sens",
75
+ repairEncoding: true,
76
+ repairZip: (dataset: Dataset, dataDir: string) => {
77
+ const sqlFilename = `${dataset.database}.sql`
78
+ const sqlFilePath = path.join(dataDir, sqlFilename)
79
+ fs.removeSync(sqlFilePath)
80
+ fs.moveSync(path.join(dataDir, "export_sens.sql"), sqlFilePath)
81
+ },
82
+ schema: "public",
83
+ title: "Sénateurs (y compris organes et présence)",
84
+ url: "https://data.senat.fr/data/senateurs/export_sens.zip",
85
+ },
86
+ }
87
+
88
+ export function getEnabledDatasets(categories: any): EnabledDatasets {
89
+ categories.map((datasetName: string) =>
90
+ assert.notStrictEqual(
91
+ (EnabledDatasets as any as { [name: string]: EnabledDatasets })[
92
+ datasetName
93
+ ],
94
+ undefined,
95
+ `Unknown name of dataset: ${datasetName}`,
96
+ ),
97
+ )
98
+
99
+ return categories.reduce(
100
+ (enabledDatasets: EnabledDatasets, datasetName: string): EnabledDatasets =>
101
+ enabledDatasets |
102
+ (EnabledDatasets as any as { [name: string]: EnabledDatasets })[
103
+ datasetName
104
+ ],
105
+ EnabledDatasets.None,
106
+ )
107
+ }
@@ -0,0 +1,10 @@
1
+ export declare function parseIntFields(fieldsNames: string[], entry: {
2
+ [fieldName: string]: any;
3
+ } | null): {
4
+ [fieldName: string]: any;
5
+ } | null;
6
+ export declare function trimFieldsRight(fieldsNames: string[], entry: {
7
+ [fieldName: string]: any;
8
+ } | null): {
9
+ [fieldName: string]: any;
10
+ } | null;
package/lib/fields.js ADDED
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.symbol.description.js");
5
+ require("core-js/modules/es.symbol.iterator.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.iterator.js");
9
+ require("core-js/modules/es.array.slice.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.object.define-property.js");
13
+ require("core-js/modules/es.object.to-string.js");
14
+ require("core-js/modules/es.regexp.exec.js");
15
+ require("core-js/modules/es.regexp.to-string.js");
16
+ require("core-js/modules/es.string.iterator.js");
17
+ require("core-js/modules/web.dom-collections.iterator.js");
18
+ Object.defineProperty(exports, "__esModule", {
19
+ value: true
20
+ });
21
+ exports.parseIntFields = parseIntFields;
22
+ exports.trimFieldsRight = trimFieldsRight;
23
+ require("core-js/modules/es.parse-int.js");
24
+ require("core-js/modules/es.string.trim-end.js");
25
+ 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; } } }; }
26
+ 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; } }
27
+ 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; }
28
+ function parseIntFields(fieldsNames, entry) {
29
+ if (entry === null) {
30
+ return null;
31
+ }
32
+ var _iterator = _createForOfIteratorHelper(fieldsNames),
33
+ _step;
34
+ try {
35
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
36
+ var fieldName = _step.value;
37
+ if (entry[fieldName] !== null) {
38
+ entry[fieldName] = parseInt(entry[fieldName]);
39
+ }
40
+ }
41
+ } catch (err) {
42
+ _iterator.e(err);
43
+ } finally {
44
+ _iterator.f();
45
+ }
46
+ return entry;
47
+ }
48
+ function trimFieldsRight(fieldsNames, entry) {
49
+ if (entry === null) {
50
+ return null;
51
+ }
52
+ var _iterator2 = _createForOfIteratorHelper(fieldsNames),
53
+ _step2;
54
+ try {
55
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
56
+ var fieldName = _step2.value;
57
+ if (entry[fieldName] != null) {
58
+ entry[fieldName] = entry[fieldName].trimEnd();
59
+ }
60
+ }
61
+ } catch (err) {
62
+ _iterator2.e(err);
63
+ } finally {
64
+ _iterator2.f();
65
+ }
66
+ return entry;
67
+ }
68
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJzZUludEZpZWxkcyIsImZpZWxkc05hbWVzIiwiZW50cnkiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwiZmllbGROYW1lIiwidmFsdWUiLCJwYXJzZUludCIsImVyciIsImUiLCJmIiwidHJpbUZpZWxkc1JpZ2h0IiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsInRyaW1FbmQiXSwic291cmNlcyI6WyIuLi9zcmMvZmllbGRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBwYXJzZUludEZpZWxkcyhcbiAgZmllbGRzTmFtZXM6IHN0cmluZ1tdLFxuICBlbnRyeTogeyBbZmllbGROYW1lOiBzdHJpbmddOiBhbnkgfSB8IG51bGwsXG4pOiB7IFtmaWVsZE5hbWU6IHN0cmluZ106IGFueSB9IHwgbnVsbCB7XG4gIGlmIChlbnRyeSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgZm9yIChjb25zdCBmaWVsZE5hbWUgb2YgZmllbGRzTmFtZXMpIHtcbiAgICBpZiAoZW50cnlbZmllbGROYW1lXSAhPT0gbnVsbCkge1xuICAgICAgZW50cnlbZmllbGROYW1lXSA9IHBhcnNlSW50KGVudHJ5W2ZpZWxkTmFtZV0pXG4gICAgfVxuICB9XG4gIHJldHVybiBlbnRyeVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJpbUZpZWxkc1JpZ2h0KFxuICBmaWVsZHNOYW1lczogc3RyaW5nW10sXG4gIGVudHJ5OiB7IFtmaWVsZE5hbWU6IHN0cmluZ106IGFueSB9IHwgbnVsbCxcbik6IHsgW2ZpZWxkTmFtZTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcbiAgaWYgKGVudHJ5ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBmb3IgKGNvbnN0IGZpZWxkTmFtZSBvZiBmaWVsZHNOYW1lcykge1xuICAgIGlmIChlbnRyeVtmaWVsZE5hbWVdICE9IG51bGwpIHtcbiAgICAgIGVudHJ5W2ZpZWxkTmFtZV0gPSBlbnRyeVtmaWVsZE5hbWVdLnRyaW1FbmQoKVxuICAgIH1cbiAgfVxuICByZXR1cm4gZW50cnlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQU8sU0FBU0EsY0FBY0EsQ0FDNUJDLFdBQXFCLEVBQ3JCQyxLQUEwQyxFQUNMO0VBQ3JDLElBQUlBLEtBQUssS0FBSyxJQUFJLEVBQUU7SUFDbEIsT0FBTyxJQUFJO0VBQ2I7RUFBQyxJQUFBQyxTQUFBLEdBQUFDLDBCQUFBLENBQ3VCSCxXQUFXO0lBQUFJLEtBQUE7RUFBQTtJQUFuQyxLQUFBRixTQUFBLENBQUFHLENBQUEsTUFBQUQsS0FBQSxHQUFBRixTQUFBLENBQUFJLENBQUEsSUFBQUMsSUFBQSxHQUFxQztNQUFBLElBQTFCQyxTQUFTLEdBQUFKLEtBQUEsQ0FBQUssS0FBQTtNQUNsQixJQUFJUixLQUFLLENBQUNPLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUM3QlAsS0FBSyxDQUFDTyxTQUFTLENBQUMsR0FBR0UsUUFBUSxDQUFDVCxLQUFLLENBQUNPLFNBQVMsQ0FBQyxDQUFDO01BQy9DO0lBQ0Y7RUFBQyxTQUFBRyxHQUFBO0lBQUFULFNBQUEsQ0FBQVUsQ0FBQSxDQUFBRCxHQUFBO0VBQUE7SUFBQVQsU0FBQSxDQUFBVyxDQUFBO0VBQUE7RUFDRCxPQUFPWixLQUFLO0FBQ2Q7QUFFTyxTQUFTYSxlQUFlQSxDQUM3QmQsV0FBcUIsRUFDckJDLEtBQTBDLEVBQ0w7RUFDckMsSUFBSUEsS0FBSyxLQUFLLElBQUksRUFBRTtJQUNsQixPQUFPLElBQUk7RUFDYjtFQUFDLElBQUFjLFVBQUEsR0FBQVosMEJBQUEsQ0FDdUJILFdBQVc7SUFBQWdCLE1BQUE7RUFBQTtJQUFuQyxLQUFBRCxVQUFBLENBQUFWLENBQUEsTUFBQVcsTUFBQSxHQUFBRCxVQUFBLENBQUFULENBQUEsSUFBQUMsSUFBQSxHQUFxQztNQUFBLElBQTFCQyxTQUFTLEdBQUFRLE1BQUEsQ0FBQVAsS0FBQTtNQUNsQixJQUFJUixLQUFLLENBQUNPLFNBQVMsQ0FBQyxJQUFJLElBQUksRUFBRTtRQUM1QlAsS0FBSyxDQUFDTyxTQUFTLENBQUMsR0FBR1AsS0FBSyxDQUFDTyxTQUFTLENBQUMsQ0FBQ1MsT0FBTyxDQUFDLENBQUM7TUFDL0M7SUFDRjtFQUFDLFNBQUFOLEdBQUE7SUFBQUksVUFBQSxDQUFBSCxDQUFBLENBQUFELEdBQUE7RUFBQTtJQUFBSSxVQUFBLENBQUFGLENBQUE7RUFBQTtFQUNELE9BQU9aLEtBQUs7QUFDZCIsImlnbm9yZUxpc3QiOltdfQ==
package/lib/fields.mjs ADDED
@@ -0,0 +1,22 @@
1
+ export function parseIntFields(fieldsNames, entry) {
2
+ if (entry === null) {
3
+ return null;
4
+ }
5
+ for (const fieldName of fieldsNames) {
6
+ if (entry[fieldName] !== null) {
7
+ entry[fieldName] = parseInt(entry[fieldName]);
8
+ }
9
+ }
10
+ return entry;
11
+ }
12
+ export function trimFieldsRight(fieldsNames, entry) {
13
+ if (entry === null) {
14
+ return null;
15
+ }
16
+ for (const fieldName of fieldsNames) {
17
+ if (entry[fieldName] != null) {
18
+ entry[fieldName] = entry[fieldName].trimEnd();
19
+ }
20
+ }
21
+ return entry;
22
+ }
package/lib/fields.ts ADDED
@@ -0,0 +1,29 @@
1
+ export function parseIntFields(
2
+ fieldsNames: string[],
3
+ entry: { [fieldName: string]: any } | null,
4
+ ): { [fieldName: string]: any } | null {
5
+ if (entry === null) {
6
+ return null
7
+ }
8
+ for (const fieldName of fieldsNames) {
9
+ if (entry[fieldName] !== null) {
10
+ entry[fieldName] = parseInt(entry[fieldName])
11
+ }
12
+ }
13
+ return entry
14
+ }
15
+
16
+ export function trimFieldsRight(
17
+ fieldsNames: string[],
18
+ entry: { [fieldName: string]: any } | null,
19
+ ): { [fieldName: string]: any } | null {
20
+ if (entry === null) {
21
+ return null
22
+ }
23
+ for (const fieldName of fieldsNames) {
24
+ if (entry[fieldName] != null) {
25
+ entry[fieldName] = entry[fieldName].trimEnd()
26
+ }
27
+ }
28
+ return entry
29
+ }
package/lib/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- export { insertAudReferences, insertDateSeanceReferences, insertAuteurReferences, insertDocAttReferences, insertEcrReferences, insertLecassReferences, insertLecassrapReferences, insertLectureReferences, insertLoiReferences, insertRapReferences, insertTexteReferences, OutputData, } from "./inserters";
2
- export { Ses, Sub, TxtAmeli } from "./types/ameli";
3
- export { Debat, LecAssDeb } from "./types/debats";
4
- export { Ass, Aud, Auteur, DateSeance, DecCoc, DenRap, DocAtt, Ecr, EtaLoi, LecAss, LecAssRap, Lecture, Loi, Org, OriTxt, Qua, Rap, RapOrg, Scr, Texte, TypAtt, TypLec, TypLoi, TypTxt, TypUrl, } from "./types/dosleg";
5
- export { Photo, Sen } from "./types/sens";
1
+ export { insertAudReferences, insertDateSeanceReferences, insertAuteurReferences, insertDocAttReferences, insertEcrReferences, insertLecassReferences, insertLecassrapReferences, insertLectureReferences, insertLoiReferences, insertRapReferences, insertTexteReferences, OutputData, } from './inserters';
2
+ export { Ses, sesFieldsToParseInt, sesFieldsToTrim, Sub, subFieldsToParseInt, subFieldsToTrim, TxtAmeli, txtAmeliFieldsToTrim } from './types/ameli';
3
+ export { Debat, debatsFieldsToTrim, LecAssDeb, lecassdebFieldsToTrim } from './types/debats';
4
+ export { Ass, assFieldsToTrim, Aud, audFieldsToTrim, Auteur, auteurFieldsToTrim, DateSeance, dateSeanceFieldsToTrim, DecCoc, deccocFieldsToTrim, DenRap, denrapFieldsToTrim, DocAtt, docattFieldsToParseInt, docattFieldsToTrim, Ecr, ecrFieldsToTrim, EtaLoi, etaloiFieldsToTrim, LecAss, lecassFieldsToTrim, LecAssRap, lecassrapFieldsToTrim, Lecture, lectureFieldsToTrim, Loi, loiFieldsToTrim, Org, orgFieldsToTrim, OriTxt, oritxtFieldsToTrim, Qua, quaFieldsToTrim, Rap, rapFieldsToParseInt, rapFieldsToTrim, RapOrg, raporgFieldsToTrim, Scr, scrFieldsToTrim, Texte, texteFieldsToParseInt, texteFieldsToTrim, TypAtt, typattFieldsToTrim, TypLec, typlecFieldsToTrim, TypLoi, typloiFieldsToTrim, TypTxt, typtxtFieldsToTrim, TypUrl, typurlFieldsToTrim } from './types/dosleg';
5
+ export { Photo, Sen, senFieldsToParseInt, senFieldsToTrim } from './types/sens';
6
+ export { parseIntFields, trimFieldsRight } from './fields';