@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
@@ -1,12 +1,9 @@
1
- import { DE } from './dpe.model';
1
+ // Alias des types générés depuis le XSD DPE (voir dpe-xsd.generated.ts). Les extensions propres
2
+ // à Open3CL se déclarent ici (hors fichier généré) pour survivre à la régénération.
3
+ import type {
4
+ XsdLogementEnveloppeEtsBaieEts,
5
+ XsdLogementEnveloppeEtsBaieEtsDonneeEntree
6
+ } from './dpe-xsd.generated.js';
2
7
 
3
- export interface BaieEts {
4
- donnee_entree?: BaieEtsDE;
5
- }
6
-
7
- export interface BaieEtsDE extends DE {
8
- enum_orientation_id?: number;
9
- enum_inclinaison_vitrage_id?: number; // ENUM inclinaison_vitrage
10
- surface_totale_baie?: number;
11
- nb_baie?: number;
12
- }
8
+ export type BaieEts = XsdLogementEnveloppeEtsBaieEts;
9
+ export type BaieEtsDE = XsdLogementEnveloppeEtsBaieEtsDonneeEntree;
@@ -1,97 +1,29 @@
1
- import { DE } from './dpe.model';
1
+ // Alias des types générés depuis le XSD DPE (voir dpe-xsd.generated.ts). Les extensions propres
2
+ // à Open3CL se déclarent ici (hors fichier généré) pour survivre à la régénération.
3
+ import type {
4
+ XsdLogementEnveloppeBaieVitree,
5
+ XsdLogementEnveloppeBaieVitreeBaieVitreeDoubleFenetre,
6
+ XsdLogementEnveloppeBaieVitreeBaieVitreeDoubleFenetreDonneeEntree,
7
+ XsdLogementEnveloppeBaieVitreeBaieVitreeDoubleFenetreDonneeIntermediaire,
8
+ XsdLogementEnveloppeBaieVitreeDonneeEntree,
9
+ XsdLogementEnveloppeBaieVitreeDonneeEntreeMasqueLointainNonHomogene,
10
+ XsdLogementEnveloppeBaieVitreeDonneeIntermediaire
11
+ } from './dpe-xsd.generated.js';
2
12
 
3
- export interface BaieVitree {
4
- donnee_entree?: BaieVitreeDE;
5
- donnee_intermediaire?: BaieVitreeDI;
6
- baie_vitree_double_fenetre?: BaieVitreeDoubleFenetre;
7
- }
8
-
9
- export interface BaieVitreeDE extends DE {
10
- reference_paroi?: string;
11
- reference_lnc?: string;
12
- tv_coef_reduction_deperdition_id?: string; // TV
13
- surface_aiu?: number;
14
- surface_aue?: number;
15
- enum_cfg_isolation_lnc_id?: string; // ENUM cfg_isolation_lnc
16
- enum_type_adjacence_id?: string; // ENUM type_adjacence
17
- surface_totale_baie?: number;
18
- nb_baie?: number;
19
- tv_ug_id?: string; // TV
20
- enum_type_vitrage_id?: string; // ENUM type_vitrage
21
- enum_inclinaison_vitrage_id?: string; // ENUM inclinaison_vitrage
22
- enum_type_gaz_lame_id?: string; // ENUM type_gaz_lame
23
- epaisseur_lame?: number;
24
- vitrage_vir?: boolean;
25
- enum_methode_saisie_perf_vitrage_id?: string; // ENUM methode_saisie_perf_vitrage
26
- ug_saisi?: number;
27
- tv_uw_id?: string;
28
- enum_type_materiaux_menuiserie_id?: string; // ENUM type_materiaux_menuiserie
29
- enum_type_baie_id?: string; // ENUM type_baie
30
- uw_saisi?: number;
31
- double_fenetre?: number;
32
- uw_1?: number;
33
- sw_1?: number;
34
- uw_2?: number;
35
- sw_2?: number;
36
- tv_deltar_id?: string;
37
- tv_ujn_id?: string;
38
- enum_type_fermeture_id?: string;
39
- presence_protection_solaire_hors_fermeture?: boolean;
40
- ujn_saisi?: number;
41
- presence_retour_isolation?: boolean;
42
- presence_joint?: boolean;
43
- largeur_dormant?: number;
44
- tv_sw_id?: string;
45
- sw_saisi?: number;
46
- enum_type_pose_id?: string; // ENUM type_pose
47
- enum_orientation_id?: string;
48
- tv_coef_masque_proche_id?: number;
49
- tv_coef_masque_lointain_homogene_id?: number;
50
- masque_lointain_non_homogene_collection: {
51
- masque_lointain_non_homogene: MasqueLointainNonHomogene;
52
- }[];
53
- }
54
-
55
- export interface BaieVitreeDI {
56
- b: number;
57
- ug?: number;
58
- uw: number;
59
- ujn?: number;
60
- u_menuiserie: number;
61
- sw: number;
62
- fe1: number;
63
- fe2: number;
64
- }
65
-
66
- export interface BaieVitreeDoubleFenetre {
67
- donnee_entree?: BaieVitreeDoubleFenetreDE;
68
- donnee_intermediaire?: BaieVitreeDoubleFenetreDI;
69
- }
70
-
71
- export interface BaieVitreeDoubleFenetreDE {
72
- tv_ug_id?: string;
73
- enum_type_vitrage_id: string;
74
- enum_inclinaison_vitrage_id: string;
75
- enum_type_gaz_lame_id?: string;
76
- epaisseur_lame?: number;
77
- vitrage_vir?: boolean;
78
- enum_methode_saisie_perf_vitrage_id: string;
79
- ug_saisi?: number;
80
- tv_uw_id?: string;
81
- enum_type_materiaux_menuiserie_id: string;
82
- enum_type_baie_id: string;
83
- uw_saisi?: number;
84
- tv_sw_id?: string;
85
- sw_saisi?: number;
86
- enum_type_pose_id: string;
87
- }
88
-
89
- export interface BaieVitreeDoubleFenetreDI {
90
- ug?: number;
91
- uw: number;
92
- sw: number;
93
- }
94
-
95
- export interface MasqueLointainNonHomogene {
96
- tv_coef_masque_lointain_non_homogene_id?: string;
97
- }
13
+ /** + `donnee_utilisateur` Open3CL hors XSD. */
14
+ export type BaieVitree = XsdLogementEnveloppeBaieVitree & {
15
+ donnee_utilisateur?: Record<string, any>;
16
+ };
17
+ export type BaieVitreeDE = XsdLogementEnveloppeBaieVitreeDonneeEntree;
18
+ /** + facteurs d'ensoleillement `fe1` / `fe2` (masques proches / lointains) calculés par le moteur hors XSD. */
19
+ export type BaieVitreeDI = XsdLogementEnveloppeBaieVitreeDonneeIntermediaire & {
20
+ fe1?: number;
21
+ fe2?: number;
22
+ };
23
+ export type BaieVitreeDoubleFenetre = XsdLogementEnveloppeBaieVitreeBaieVitreeDoubleFenetre;
24
+ export type BaieVitreeDoubleFenetreDE =
25
+ XsdLogementEnveloppeBaieVitreeBaieVitreeDoubleFenetreDonneeEntree;
26
+ export type BaieVitreeDoubleFenetreDI =
27
+ XsdLogementEnveloppeBaieVitreeBaieVitreeDoubleFenetreDonneeIntermediaire;
28
+ export type MasqueLointainNonHomogene =
29
+ XsdLogementEnveloppeBaieVitreeDonneeEntreeMasqueLointainNonHomogene;
@@ -1,26 +1,16 @@
1
- import { DE } from './dpe.model';
1
+ // Alias des types générés depuis le XSD DPE (voir dpe-xsd.generated.ts). Les extensions propres
2
+ // à Open3CL se déclarent ici (hors fichier généré) pour survivre à la régénération.
3
+ import type {
4
+ XsdLogementClimatisation,
5
+ XsdLogementClimatisationDonneeEntree,
6
+ XsdLogementClimatisationDonneeIntermediaire
7
+ } from './dpe-xsd.generated.js';
2
8
 
3
- export interface Climatisation {
4
- donnee_entree?: ClimatisationDE;
9
+ export interface Climatisation extends Omit<XsdLogementClimatisation, 'donnee_intermediaire'> {
5
10
  donnee_intermediaire?: ClimatisationDI;
6
11
  }
7
-
8
- export interface ClimatisationDE extends DE {
9
- tv_seer_id?: number;
10
- nombre_logement_echantillon?: number;
11
- surface_clim?: number;
12
- enum_methode_calcul_conso_id: number;
13
- enum_periode_installation_fr_id: number;
14
- cle_repartition_clim?: number;
15
- enum_type_generateur_fr_id: number;
16
- enum_type_energie_id?: number;
17
- enum_methode_saisie_carac_sys_id: number;
18
- ref_produit_fr?: string;
19
- }
20
-
21
- export interface ClimatisationDI {
22
- eer: number;
23
- besoin_fr: number;
24
- conso_fr: number;
25
- conso_fr_depensier: number;
26
- }
12
+ export type ClimatisationDE = XsdLogementClimatisationDonneeEntree;
13
+ /** + champ calculé Open3CL hors XSD. */
14
+ export type ClimatisationDI = XsdLogementClimatisationDonneeIntermediaire & {
15
+ besoin_fr_depensier?: number;
16
+ };