@open3cl/engine 1.11.2 → 1.11.4

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 (154) hide show
  1. package/10_besoin_fr.spec.js +1 -1
  2. package/10_clim.js +1 -1
  3. package/10_clim.spec.js +5 -9
  4. package/11_besoin_ecs.spec.js +1 -1
  5. package/11_ecs.js +2 -1
  6. package/11_ecs.spec.js +2 -2
  7. package/11_nadeq.js +1 -0
  8. package/11_nadeq.spec.js +1 -1
  9. package/11_rdim_ecs_individuelle_unique.js +78 -0
  10. package/11_rdim_ecs_individuelle_unique.spec.js +136 -0
  11. package/12.4_pac.js +5 -3
  12. package/12.4_pac.spec.js +10 -18
  13. package/13.2_generateur_combustion.js +19 -16
  14. package/13.2_generateur_combustion.spec.js +10 -10
  15. package/13.2_generateur_combustion_bouilleur.js +5 -2
  16. package/13.2_generateur_combustion_bouilleur.spec.js +1 -1
  17. package/13.2_generateur_combustion_ch.js +8 -7
  18. package/13.2_generateur_combustion_ch.spec.js +7 -7
  19. package/13.2_generateur_combustion_chaudiere.js +5 -2
  20. package/13.2_generateur_combustion_chaudiere.spec.js +2 -2
  21. package/13.2_generateur_combustion_pdim.js +6 -6
  22. package/13.2_generateur_combustion_pdim.spec.js +1 -1
  23. package/13.2_generateur_combustion_pn.spec.js +1 -1
  24. package/13.2_generateur_pac.js +4 -1
  25. package/13.2_generateur_pac.spec.js +1 -1
  26. package/13_rendement_distribution_ecs.spec.js +1 -1
  27. package/14_generateur_ecs.js +2 -1
  28. package/14_generateur_ecs.spec.js +4 -4
  29. package/15_conso_aux.js +19 -17
  30. package/15_conso_aux.spec.js +8 -8
  31. package/16.2_production_enr.js +4 -3
  32. package/16.2_production_enr.spec.js +1 -1
  33. package/16_conso_eclairage.spec.js +1 -1
  34. package/2021_04_13_confort_ete.spec.js +1 -1
  35. package/2021_04_13_qualite_isolation.js +1 -1
  36. package/2021_04_13_qualite_isolation.spec.js +2 -2
  37. package/3.1_b.spec.js +1 -1
  38. package/3.2.1_mur.js +10 -9
  39. package/3.2.1_mur.spec.js +11 -19
  40. package/3.2.2_plancher_bas.js +4 -3
  41. package/3.2.2_plancher_bas.spec.js +10 -20
  42. package/3.2.3_plancher_haut.js +1 -1
  43. package/3.2.3_plancher_haut.spec.js +2 -2
  44. package/3.3.1.4_porte.js +1 -1
  45. package/3.3.1.4_porte.spec.js +2 -2
  46. package/3.3_baie_vitree.js +2 -2
  47. package/3.3_baie_vitree.spec.js +3 -3
  48. package/3.4_pont_thermique.js +6 -4
  49. package/3.4_pont_thermique.spec.js +7 -7
  50. package/3_deperdition.js +1 -0
  51. package/3_deperdition.spec.js +3 -3
  52. package/4_ventilation.js +2 -2
  53. package/4_ventilation.spec.js +1 -1
  54. package/5_conso_ventilation.spec.js +1 -1
  55. package/6.1_apport_gratuit.spec.js +2 -2
  56. package/6.2_surface_sud_equivalente.js +12 -9
  57. package/6.2_surface_sud_equivalente.spec.js +3 -3
  58. package/7_inertie.js +7 -4
  59. package/7_inertie.spec.js +1 -1
  60. package/8_intermittence.spec.js +1 -1
  61. package/9_besoin_ch.js +5 -3
  62. package/9_besoin_ch.spec.js +3 -3
  63. package/9_chauffage.js +12 -11
  64. package/9_chauffage.spec.js +7 -7
  65. package/9_conso_ch.spec.js +3 -3
  66. package/9_emetteur_ch.js +5 -5
  67. package/9_emetteur_ch.spec.js +1 -1
  68. package/9_generateur_ch.js +16 -13
  69. package/9_generateur_ch.spec.js +6 -6
  70. package/README.md +19 -19
  71. package/apport_et_besoin.spec.js +1 -1
  72. package/conso.js +18 -14
  73. package/conso.spec.js +3 -3
  74. package/core/assets/domain/synchronize-assets.js +2 -0
  75. package/core/assets/domain/synchronize-c1-tables.js +2 -0
  76. package/core/assets/domain/synchronize-dpe-ges-limit-values-tables.js +2 -0
  77. package/core/assets/domain/synchronize-enum-tables.js +2 -0
  78. package/core/assets/domain/synchronize-solicitations-tables.js +2 -0
  79. package/core/assets/domain/synchronize-valeur-tables.js +6 -0
  80. package/core/file/infrastructure/adapter/csv-parser.store.js +2 -1
  81. package/dpe-sanitizer.service.js +1 -0
  82. package/engine.js +11 -2
  83. package/engine.spec.js +23 -2
  84. package/enums.d.ts +1257 -0
  85. package/features/dpe/domain/models/baie-ets.model.ts +8 -11
  86. package/features/dpe/domain/models/baie-vitree.model.ts +28 -96
  87. package/features/dpe/domain/models/climatisation.model.ts +13 -23
  88. package/features/dpe/domain/models/dpe-xsd.generated.ts +2797 -0
  89. package/features/dpe/domain/models/dpe.model.ts +105 -181
  90. package/features/dpe/domain/models/ets.model.ts +10 -18
  91. package/features/dpe/domain/models/installation-chauffage.model.ts +92 -99
  92. package/features/dpe/domain/models/installation-ecs.model.ts +45 -77
  93. package/features/dpe/domain/models/mur.model.ts +10 -38
  94. package/features/dpe/domain/models/plancher.model.ts +22 -63
  95. package/features/dpe/domain/models/pont-thermique.model.ts +10 -20
  96. package/features/dpe/domain/models/porte.model.ts +10 -30
  97. package/features/dpe/domain/models/production-elec-enr.model.ts +13 -27
  98. package/features/dpe/domain/models/sortie.model.ts +32 -176
  99. package/features/dpe/domain/models/type-generateur.model.js +4 -3
  100. package/features/dpe/domain/models/type-habitation.model.js +8 -6
  101. package/features/dpe/domain/models/type-stockage.model.js +4 -3
  102. package/features/dpe/domain/models/type-ventilation.model.js +4 -3
  103. package/features/dpe/domain/models/ventilation.model.ts +15 -25
  104. package/features/dpe/infrastructure/ch/chTv.store.js +2 -2
  105. package/features/dpe/infrastructure/ecs/ecsTv.store.js +3 -3
  106. package/features/dpe/infrastructure/enveloppe/baieVitreeTv.store.js +1 -1
  107. package/features/dpe/infrastructure/froid/frTv.store.js +3 -3
  108. package/features/dpe/infrastructure/froid/frTv.store.spec.js +1 -1
  109. package/features/dpe/infrastructure/tv.store.js +1 -1
  110. package/features/engine/domain/apport_et_besoin/apport-et-besoin.service.js +3 -0
  111. package/features/engine/domain/apport_et_besoin/apport_gratuit/apport-gratuit.service.js +3 -1
  112. package/features/engine/domain/apport_et_besoin/ch/besoin-ch.service.js +3 -1
  113. package/features/engine/domain/apport_et_besoin/ch/perte-ch-recup.service.js +9 -3
  114. package/features/engine/domain/apport_et_besoin/ch/perte-ch-recup.service.spec.js +1 -1
  115. package/features/engine/domain/apport_et_besoin/ecs/besoin-ecs.service.js +2 -1
  116. package/features/engine/domain/apport_et_besoin/ecs/perte-ecs-recup.service.js +4 -1
  117. package/features/engine/domain/apport_et_besoin/froid/besoin-froid.service.js +3 -1
  118. package/features/engine/domain/apport_et_besoin/surface-sud-equivalente.service.js +7 -2
  119. package/features/engine/domain/apport_et_besoin/surface-sud-equivalente.service.spec.js +1 -1
  120. package/features/engine/domain/ch/emetteur-ch.service.js +3 -1
  121. package/features/engine/domain/ch/emetteur-ch.service.spec.js +1 -1
  122. package/features/engine/domain/ch/generateur-ch.service.js +4 -1
  123. package/features/engine/domain/ch/generateur-ch.service.spec.js +3 -3
  124. package/features/engine/domain/ch/installation-ch.service.js +2 -0
  125. package/features/engine/domain/conso/conso.service.js +2 -0
  126. package/features/engine/domain/conso/froid/conso-froid.service.js +5 -1
  127. package/features/engine/domain/contexte.builder.js +2 -0
  128. package/features/engine/domain/ecs/generateur-ecs.service.js +1 -0
  129. package/features/engine/domain/ecs/installation-ecs.service.js +3 -0
  130. package/features/engine/domain/engine.service.js +1 -0
  131. package/features/engine/domain/enveloppe/baie_vitree/deperdition-baie-vitree.service.js +4 -1
  132. package/features/engine/domain/enveloppe/deperdition-enveloppe.service.js +3 -0
  133. package/features/engine/domain/enveloppe/deperdition.service.js +8 -4
  134. package/features/engine/domain/enveloppe/espace_tampon/espace-tampon.service.js +4 -1
  135. package/features/engine/domain/enveloppe/mur/deperdition-mur.service.js +3 -1
  136. package/features/engine/domain/enveloppe/plancher_bas/deperdition-plancher-bas.service.js +3 -1
  137. package/features/engine/domain/enveloppe/plancher_bas/deperdition-plancher-bas.service.spec.js +2 -2
  138. package/features/engine/domain/enveloppe/plancher_haut/deperdition-plancher-haut.service.js +4 -2
  139. package/features/engine/domain/enveloppe/pont_thermique/deperdition-pont-thermique.service.js +9 -1
  140. package/features/engine/domain/enveloppe/pont_thermique/deperdition-pont-thermique.service.spec.js +1 -1
  141. package/features/engine/domain/enveloppe/porte/deperdition-porte.service.js +3 -1
  142. package/features/engine/domain/enveloppe/ventilation/deperdition-ventilation.service.js +3 -1
  143. package/features/engine/domain/enveloppe/ventilation/deperdition-ventilation.service.spec.js +1 -1
  144. package/features/engine/domain/logement/nadeq.service.js +1 -1
  145. package/features/engine/domain/logement/nadeq.service.spec.js +1 -1
  146. package/features/engine/domain/models/contexte.model.ts +2 -2
  147. package/features/normalizer/domain/dpe-normalizer.service.js +1 -0
  148. package/ficheTechnique.js +4 -2
  149. package/globals.d.ts +14 -0
  150. package/package.json +3 -2
  151. package/preprocessor/index.js +1 -0
  152. package/tv.d.ts +759 -0
  153. package/tvs.d.ts +2 -7
  154. package/utils.js +8 -6
@@ -6,7 +6,7 @@ import { DeperditionPontThermiqueService } from './deperdition-pont-thermique.se
6
6
  *
7
7
  * Le store des tables de valeurs et les services de déperdition des parois sont remplacés par des
8
8
  * doubles de test : seule la logique propre au service (exclusions de ponts thermiques) est vérifiée.
9
- * @see : Methode_de_calcul_3CL_DPE_2021-338.pdf - §3.4
9
+ * @see Methode_de_calcul_3CL_DPE_2021-338.pdf - §3.4
10
10
  */
11
11
 
12
12
  let tvStore;
@@ -1,3 +1,5 @@
1
+ /** @import { PorteDE, PorteDI } from '../../../../dpe/domain/models/porte.model.js' */
2
+ /** @import { Contexte } from '../../models/contexte.model.js' */
1
3
  import { inject } from 'dioma';
2
4
  import { DeperditionService } from '../deperdition.service.js';
3
5
  import { TvStore } from '../../../../dpe/infrastructure/tv.store.js';
@@ -8,7 +10,7 @@ import { TvStore } from '../../../../dpe/infrastructure/tv.store.js';
8
10
  *
9
11
  * Méthode de calcul 3CL-DPE 2021
10
12
  * Octobre 2021
11
- * @see consolide_anne…arrete_du_31_03_2021_relatif_aux_methodes_et_procedures_applicables.pdf
13
+ * @see consolide_annexe_arrete_du_31_03_2021_relatif_aux_methodes_et_procedures_applicables.pdf
12
14
  *
13
15
  * Si le coefficient U des portes est connu et justifié, le saisir directement. Sinon, prendre les valeurs tabulées
14
16
  */
@@ -1,3 +1,5 @@
1
+ /** @import { VentilationDE, VentilationDI } from '../../../../dpe/domain/models/ventilation.model.js' */
2
+ /** @import { Contexte } from '../../models/contexte.model.js' */
1
3
  import { DeperditionService } from '../deperdition.service.js';
2
4
 
3
5
  import { logger } from '../../../../../core/util/logger/log-service.js';
@@ -11,7 +13,7 @@ import { TypeVentilation } from '../../../../dpe/domain/models/type-ventilation.
11
13
  *
12
14
  * Méthode de calcul 3CL-DPE 2021
13
15
  * Octobre 2021
14
- * @see consolide_anne…arrete_du_31_03_2021_relatif_aux_methodes_et_procedures_applicables.pdf
16
+ * @see consolide_annexe_arrete_du_31_03_2021_relatif_aux_methodes_et_procedures_applicables.pdf
15
17
  */
16
18
  export class DeperditionVentilationService extends DeperditionService {
17
19
  /**
@@ -18,7 +18,7 @@ const { DeperditionVentilationService } = await import('./deperdition-ventilatio
18
18
  * Tests unitaires isolés du calcul de Q4Paconv (`DeperditionVentilationService.q4paConv`).
19
19
  * Le store des tables de valeurs est remplacé par un double de test.
20
20
  *
21
- * @see : Methode_de_calcul_3CL_DPE_2021-338.pdf - §4
21
+ * @see Methode_de_calcul_3CL_DPE_2021-338.pdf - §4
22
22
  */
23
23
 
24
24
  /** @type {DeperditionVentilationService} */
@@ -6,7 +6,7 @@ import { TypeDpe } from '../../../dpe/domain/models/type-habitation.model.js';
6
6
  *
7
7
  * Methode_de_calcul_3CL_DPE_2021 - Page 70
8
8
  * Octobre 2021
9
- * @see consolide_anne…arrete_du_31_03_2021_relatif_aux_methodes_et_procedures_applicables.pdf
9
+ * @see consolide_annexe_arrete_du_31_03_2021_relatif_aux_methodes_et_procedures_applicables.pdf
10
10
  */
11
11
  export class NadeqService {
12
12
  /**
@@ -4,7 +4,7 @@ import { TypeDpe } from '../../../dpe/domain/models/type-habitation.model.js';
4
4
 
5
5
  describe('Nadeq unit tests', () => {
6
6
  /**
7
- * @see : Methode_de_calcul_3CL_DPE_2021-338.pdf Page 70
7
+ * @see Methode_de_calcul_3CL_DPE_2021-338.pdf Page 70
8
8
  */
9
9
  const service = new NadeqService();
10
10
 
@@ -1,9 +1,9 @@
1
- import { TypeDpe, TypeHabitation } from '../../../dpe/domain/models/dpe.model';
1
+ import type { TypeDpe, TypeHabitation } from '../../../dpe/domain/models/type-habitation.model.js';
2
2
 
3
3
  export interface Contexte {
4
4
  typeHabitation: TypeHabitation;
5
5
  typeDpe: TypeDpe;
6
- enumPeriodeConstructionId: number;
6
+ enumPeriodeConstructionId: string;
7
7
  anneeConstruction: number;
8
8
  surfaceHabitable: number;
9
9
  hauteurSousPlafond: number;
@@ -1,3 +1,4 @@
1
+ /** @import { Dpe } from '../../dpe/domain/models/dpe.model.js' */
1
2
  import { DpePreProcessor } from '../../../preprocessor/index.js';
2
3
 
3
4
  /**
package/ficheTechnique.js CHANGED
@@ -1,3 +1,5 @@
1
+ /** @import { XsdFicheTechnique } from './features/dpe/domain/models/dpe-xsd.generated.js' */
2
+ /** @import { FullDpe } from './features/dpe/domain/models/dpe.model.js' */
1
3
  /**
2
4
  * Recherche dans les fiches techniques d'un DPE.
3
5
  *
@@ -29,7 +31,7 @@ const indexParDpe = new WeakMap();
29
31
  function indexerFichesTechniques(dpe) {
30
32
  const parCategorie = new Map();
31
33
 
32
- /** @type {FicheTechniqueItem[]} */
34
+ /** @type {XsdFicheTechnique[]} */
33
35
  let fichesTechniques = dpe.fiche_technique_collection?.fiche_technique || [];
34
36
  if (!Array.isArray(fichesTechniques)) {
35
37
  fichesTechniques = [fichesTechniques];
@@ -87,7 +89,7 @@ function champEnMinuscules(groupe, field) {
87
89
  * @param dpe {FullDpe}
88
90
  * @param categoryFicheTechiqueId {string}
89
91
  * @param description {string}
90
- * @param classifications {[string]}
92
+ * @param classifications {string[]}
91
93
  * @param field {'description' | 'valeur'}
92
94
  */
93
95
  export default function getFicheTechnique(
package/globals.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Compléments aux typings globaux de TypeScript.
3
+ *
4
+ * `parseInt` / `parseFloat` sont appelés dans le moteur avec des nombres (conversion implicite
5
+ * en chaîne, comportement JS standard) : on déclare ces surcharges plutôt que de modifier
6
+ * chaque appel.
7
+ */
8
+ declare function parseInt(value: string | number, radix?: number): number;
9
+ declare function parseFloat(value: string | number): number;
10
+
11
+ interface NumberConstructor {
12
+ parseInt(value: string | number, radix?: number): number;
13
+ parseFloat(value: string | number): number;
14
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open3cl/engine",
3
- "version": "1.11.2",
3
+ "version": "1.11.4",
4
4
  "description": "Open Source 3CL-DPE engine",
5
5
  "main": "index.js",
6
6
  "directories": {
@@ -27,7 +27,8 @@
27
27
  "release": "semantic-release",
28
28
  "release:dry": "semantic-release --dry-run",
29
29
  "prepare": "husky",
30
- "assets:sync": "node scripts/synchronize_assets.js",
30
+ "types:generate": "node scripts/generate_types_from_xsd.js && node scripts/generate_tables_types.js && prettier --write src/features/dpe/domain/models/dpe-xsd.generated.ts src/enums.d.ts src/tv.d.ts",
31
+ "assets:sync": "node scripts/synchronize_assets.js && node scripts/generate_tables_types.js && prettier --write src/enums.d.ts src/tv.d.ts",
31
32
  "version:update": "node scripts/update_version.js",
32
33
  "reports:preview": "npm run http-server dist/reports/corpus -o",
33
34
  "reports:clean": "node scripts/clean_corpus_reports.js",
@@ -1,3 +1,4 @@
1
+ /** @import { Dpe } from '../features/dpe/domain/models/dpe.model.js' */
1
2
  /**
2
3
  * Pré-traitement du DPE d'entrée.
3
4
  *