From 8df11d6a3640d5dd9796ac8ead8efb8151c0f4b4 Mon Sep 17 00:00:00 2001
From: build-token <build-token>
Date: Wed, 29 Nov 2023 09:36:35 +0000
Subject: [PATCH] publish: Merge branch 'dev' into 'main'

generated from commit 2ed6ff02f5b9db5daf2039a253f1c1670744e2f9
---
 index.js           | 458 ++++++++++++++++-----------------------------
 manifest.konnector |   2 +-
 onDeleteAccount.js |  64 +++----
 package.json       |   2 +-
 4 files changed, 190 insertions(+), 336 deletions(-)

diff --git a/index.js b/index.js
index 8c60c73..b2ef68e 100644
--- a/index.js
+++ b/index.js
@@ -39,26 +39,24 @@ const {
   activateContract,
   verifyContract,
   terminateContract,
-  getContractStartDate,
 } = __webpack_require__(1719)
-const { getAccount, saveAccountData } = __webpack_require__(1730)
-const { isLocal, isDev } = __webpack_require__(1731)
+const { getAccount, saveAccountData } = __webpack_require__(1729)
+const { isLocal, isDev } = __webpack_require__(1730)
 const Sentry = __webpack_require__(1600)
 // eslint-disable-next-line
-const Tracing = __webpack_require__(1732) // Needed for tracking performance in Sentry
-const { version } = __webpack_require__(1769)
+const Tracing = __webpack_require__(1731) // Needed for tracking performance in Sentry
+const { version } = __webpack_require__(1768)
 
 moment.locale('fr') // set the language
 moment.tz.setDefault('Europe/Paris') // set the timezone
 
 /** Connector Constants **/
-const manualExecution =
-  process.env.COZY_JOB_MANUAL_EXECUTION === 'true' ? true : false
-let startDailyDate = manualExecution
+const manualExecution = process.env.COZY_JOB_MANUAL_EXECUTION === 'true'
+let startDate = manualExecution
   ? moment().subtract(12, 'month')
-  : moment().subtract(6, 'month')
-let startDailyDateString = startDailyDate.format('YYYY-MM-DD')
-const startLoadDate = moment().subtract(7, 'day')
+  : moment().subtract(36, 'month')
+let startDateString = startDate.format('YYYY-MM-DD')
+const startHalfHourDate = moment().subtract(7, 'day')
 const endDate = moment()
 const endDateString = endDate.format('YYYY-MM-DD')
 const ACCOUNT_ID = isLocal() ? 'default_account_id' : 'enedissgegrandlyon'
@@ -177,20 +175,9 @@ async function start(fields, cozyParameters) {
         user.postalCode,
         user.inseeCode,
         user.city,
-        user.hasBeenThroughtSafetyOnBoarding
+        user.hasBeenThroughSafetyOnBoarding
       )
 
-      // handle user contract start date in order to properly request data
-      const userContractStartDate = await getContractStartDate(
-        baseUrl,
-        apiAuthKey,
-        sgeLogin,
-        pointId
-      )
-
-      startDailyDate = moment(userContractStartDate, 'YYYY-MM-DD')
-      startDailyDateString = startDailyDate.format('YYYY-MM-DD')
-
       const contractStartDate = moment().format('YYYY-MM-DD')
       const contractEndDate = moment()
         .add(1, 'year') // SGE force 1 year duration
@@ -362,16 +349,6 @@ async function deleteConsent(
  */
 async function gatherData(baseUrl, apiAuthKey, sgeLogin, pointId) {
   log('info', 'Querying data...')
-  const userContractStartDate = await getContractStartDate(
-    baseUrl,
-    apiAuthKey,
-    sgeLogin,
-    pointId
-  )
-
-  startDailyDate = moment(userContractStartDate, 'YYYY-MM-DD')
-  startDailyDateString = startDailyDate.format('YYYY-MM-DD')
-
   await getData(
     `${baseUrl}/enedis_SGE_ConsultationMesuresDetaillees_v3/1.0`,
     apiAuthKey,
@@ -407,15 +384,13 @@ async function getData(url, apiAuthKey, userLogin, pointId) {
     apikey: apiAuthKey,
   }
 
-  limitStartDate()
-
   const { response } = await soapRequest({
     url: url,
     headers: sgeHeaders,
     xml: consultationMesuresDetaillees(
       pointId,
       userLogin,
-      startDailyDateString,
+      startDateString,
       endDateString,
       'ENERGIE',
       'EA'
@@ -454,15 +429,13 @@ async function getMaxPowerData(url, apiAuthKey, userLogin, pointId) {
     apikey: apiAuthKey,
   }
 
-  limitStartDate()
-
   const { response } = await soapRequest({
     url: url,
     headers: sgeHeaders,
     xml: consultationMesuresDetailleesMaxPower(
       pointId,
       userLogin,
-      startDailyDateString,
+      startDateString,
       endDateString
     ),
   }).catch(err => {
@@ -485,27 +458,6 @@ async function getMaxPowerData(url, apiAuthKey, userLogin, pointId) {
   )
 }
 
-/**
- * If start date exceed the maximum amount of data we can get with one query
- * get only 36 month. Or 12 month if manual execution
- * On manual execution, set the start date to one year ago.
- */
-function limitStartDate() {
-  const livingDuration = moment(endDate).diff(startDailyDate, 'months', true)
-  // We need to prevent case that there is less than 12 month data
-  if (manualExecution && livingDuration > 12) {
-    startDailyDate = moment(endDate).subtract(12, 'month')
-    startDailyDateString = startDailyDate.format('YYYY-MM-DD')
-  } else if (livingDuration > 36) {
-    log(
-      'info',
-      'Start date exceed 36 month, setting start date to current date minus 36 month'
-    )
-    startDailyDate = moment(endDate).subtract(36, 'month')
-    startDailyDateString = startDailyDate.format('YYYY-MM-DD')
-  }
-}
-
 /**
  * Get half-hour data
  * @param {string} url
@@ -525,7 +477,7 @@ async function getDataHalfHour(url, apiAuthKey, userLogin, pointId) {
 
   for (let i = 0; i < MAX_HISTO; i++) {
     log('info', 'launch process with history')
-    const incrementedStartDateString = moment(startLoadDate)
+    const incrementedStartDateString = moment(startHalfHourDate)
       .subtract(7 * i, 'day')
       .format('YYYY-MM-DD')
     const incrementedEndDateString = moment(endDate)
@@ -662,7 +614,7 @@ async function aggregateMonthAndYearData(data) {
  * @returns {boolean}
  */
 function isFirstStart(account) {
-  if (account && account.data && account.data.consentId) {
+  if (account?.data?.consentId) {
     log('info', 'Konnector not first start')
     return false
   }
@@ -153789,7 +153741,7 @@ const fs = __webpack_require__(149);
 
 const path = __webpack_require__(142);
 
-let manifest = typeof {"version":"1.3.4","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"} === 'undefined' ? {} : {"version":"1.3.4","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"};
+let manifest = typeof {"version":"1.3.5","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"} === 'undefined' ? {} : {"version":"1.3.5","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"};
 
 if (process.env.NODE_ENV !== undefined && process.env.NODE_ENV !== 'none' && process.env.NODE_ENV !== 'production') {
   try {
@@ -229128,20 +229080,6 @@ function parseUserPdl(result) {
   ]['point']['$'].id
 }
 
-/**
- * Return User contract start date
- * @param {string} result
- * @returns {string}
- */
-function parseContractStartDate(result) {
-  log('info', 'Parsing contract start date')
-  const json = JSON.stringify(result)
-  return JSON.parse(json)['Envelope']['Body'][
-    'consulterDonneesTechniquesContractuellesResponse'
-  ]['point']['donneesGenerales'][
-    'dateDerniereModificationFormuleTarifaireAcheminement'
-  ]
-}
 /**
  * Return User address
  * @param {string} result
@@ -229200,7 +229138,7 @@ function parseSgeXmlData(result) {
  * @returns {Promise<EnedisKonnectorData[]>} Parsed timestamp array
  */
 async function formateDataForDoctype(data) {
-  log('info', 'Formating data')
+  log('info', 'Formatting data')
   return data.map(record => {
     const date = moment(record.d, 'YYYY/MM/DD h:mm:ss')
     return {
@@ -229340,7 +229278,6 @@ module.exports = {
   checkContractExists,
   formateDataForDoctype,
   parseContracts,
-  parseContractStartDate,
   parsePointId,
   parseServiceId,
   parseSgeXmlData,
@@ -242999,7 +242936,7 @@ async function updateBoConsent(url, token, consent, serviceId) {
 
   let consentId = ''
   if (consent.ID) {
-    consentId = consent.ID.toString()
+    consentId = consent.ID
   }
   try {
     const { data } = await axios.put(
@@ -243027,7 +242964,7 @@ async function updateBoConsent(url, token, consent, serviceId) {
 }
 
 /**
- * @param {number} consentId
+ * @param {string} consentId
  * @returns {Promise<Consent>}
  */
 async function getBoConsent(url, token, consentId) {
@@ -243051,6 +242988,9 @@ async function getBoConsent(url, token, consentId) {
         consentId: consentId,
       },
     })
+    if (err.response?.status === 404) {
+      throw new Error(errors.LOGIN_FAILED)
+    }
     throw new Error(errors.MAINTENANCE)
   }
 }
@@ -243059,7 +242999,7 @@ async function getBoConsent(url, token, consentId) {
  * Delete BO consent
  * @param {string} url
  * @param {string} token
- * @param {number} consentId
+ * @param {string} consentId
  * @returns
  */
 async function deleteBoConsent(url, token, consentId) {
@@ -247012,16 +246952,14 @@ module.exports = function isAxiosError(payload) {
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 const { activateContract } = __webpack_require__(1720)
-const { getContractStartDate } = __webpack_require__(1721)
-const { terminateContract } = __webpack_require__(1722)
-const { verifyContract } = __webpack_require__(1723)
-const { findUserPdl } = __webpack_require__(1725)
-const { verifyUserIdentity } = __webpack_require__(1726)
-const { findUserAddress } = __webpack_require__(1728)
+const { terminateContract } = __webpack_require__(1721)
+const { verifyContract } = __webpack_require__(1722)
+const { findUserPdl } = __webpack_require__(1724)
+const { verifyUserIdentity } = __webpack_require__(1725)
+const { findUserAddress } = __webpack_require__(1727)
 
 module.exports = {
   activateContract,
-  getContractStartDate,
   terminateContract,
   verifyContract,
   findUserPdl,
@@ -247127,79 +247065,6 @@ module.exports = { activateContract }
 /* 1721 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-// @ts-check
-const { log, errors } = __webpack_require__(1)
-const soapRequest = __webpack_require__(1375)
-const {
-  parseTags,
-  parseValue,
-  parseContractStartDate,
-} = __webpack_require__(1599)
-const xml2js = __webpack_require__(1557)
-const { consulterDonneesTechniquesContractuelles } = __webpack_require__(1680)
-const Sentry = __webpack_require__(1600)
-
-/**
- * Get user contract start date
- * @param {string} url
- * @param {string} apiAuthKey
- * @param {string} userLogin
- * @param {string} pointId
- * @returns {Promise<string>}
- */
-async function getContractStartDate(url, apiAuthKey, userLogin, pointId) {
-  log('info', 'Fetching data start date')
-  const sgeHeaders = {
-    'Content-Type': 'text/xml;charset=UTF-8',
-    apikey: apiAuthKey,
-  }
-
-  const { response } = await soapRequest({
-    url: `${url}/enedis_SGE_ConsultationDonneesTechniquesContractuelles/1.0`,
-    headers: sgeHeaders,
-    xml: consulterDonneesTechniquesContractuelles(pointId, userLogin),
-  }).catch(err => {
-    const errorMessage =
-      'Error while fetching contract start date : ' + err.message
-    log('error', errorMessage)
-    Sentry.captureException(errorMessage, {
-      tags: {
-        section: 'getContractStartDate',
-      },
-      extra: {
-        pointId: pointId,
-      },
-    })
-    throw new Error(errors.VENDOR_DOWN)
-  })
-
-  const result = await xml2js.parseStringPromise(response.body, {
-    tagNameProcessors: [parseTags],
-    valueProcessors: [parseValue],
-    explicitArray: false,
-  })
-  try {
-    return parseContractStartDate(result)
-  } catch (error) {
-    const errorMessage =
-      'Error while processing contract start date: ' + error.message
-    log('error', errorMessage)
-    Sentry.captureException(errorMessage)
-    log(
-      'error',
-      `Enedis issue ${result.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${result.Envelope.Body.Fault.faultstring}`
-    )
-    throw new Error(errors.NOT_EXISTING_DIRECTORY)
-  }
-}
-
-module.exports = { getContractStartDate }
-
-
-/***/ }),
-/* 1722 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
 // @ts-check
 const { log, errors } = __webpack_require__(1)
 const soapRequest = __webpack_require__(1375)
@@ -247291,7 +247156,7 @@ module.exports = { terminateContract }
 
 
 /***/ }),
-/* 1723 */
+/* 1722 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // @ts-check
@@ -247305,7 +247170,7 @@ const {
 } = __webpack_require__(1599)
 const { rechercherServicesSouscritsMesures } = __webpack_require__(1680)
 const xml2js = __webpack_require__(1557)
-const { contractState } = __webpack_require__(1724)
+const { contractState } = __webpack_require__(1723)
 const Sentry = __webpack_require__(1600)
 
 /**
@@ -247393,7 +247258,7 @@ module.exports = { verifyContract }
 
 
 /***/ }),
-/* 1724 */
+/* 1723 */
 /***/ ((module) => {
 
 /**
@@ -247411,7 +247276,7 @@ module.exports = { contractState }
 
 
 /***/ }),
-/* 1725 */
+/* 1724 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // @ts-check
@@ -247509,21 +247374,21 @@ module.exports = { findUserPdl }
 
 
 /***/ }),
-/* 1726 */
+/* 1725 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // @ts-check
 const { log, errors } = __webpack_require__(1)
-const { findUserPdl } = __webpack_require__(1725)
-const { getInseeCode } = __webpack_require__(1727)
-const { findUserAddress } = __webpack_require__(1728)
+const { findUserPdl } = __webpack_require__(1724)
+const { getInseeCode } = __webpack_require__(1726)
+const { findUserAddress } = __webpack_require__(1727)
 const {
   removeMultipleSpaces,
   removeDots,
   removeAddressNumber,
 } = __webpack_require__(1599)
 const Sentry = __webpack_require__(1600)
-const { sanitizeLastname } = __webpack_require__(1729)
+const { sanitizeLastname } = __webpack_require__(1728)
 
 /**
  * Verify user identity
@@ -247667,7 +247532,7 @@ async function verifyUserIdentity(
     inseeCode,
     postalCode: fields.postalCode,
     address: fields.address,
-    hasBeenThroughtSafetyOnBoarding: userSafetyOnBoarding,
+    hasBeenThroughSafetyOnBoarding: userSafetyOnBoarding,
     city: fields.city,
   }
 }
@@ -247676,7 +247541,7 @@ module.exports = { verifyUserIdentity }
 
 
 /***/ }),
-/* 1727 */
+/* 1726 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // @ts-check
@@ -247772,7 +247637,7 @@ module.exports = {
 
 
 /***/ }),
-/* 1728 */
+/* 1727 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // @ts-check
@@ -247848,7 +247713,7 @@ module.exports = { findUserAddress }
 
 
 /***/ }),
-/* 1729 */
+/* 1728 */
 /***/ ((module) => {
 
 const REPLACE_CHARS = {
@@ -247884,11 +247749,11 @@ module.exports = { sanitizeLastname }
 
 
 /***/ }),
-/* 1730 */
+/* 1729 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 const { log, updateOrCreate } = __webpack_require__(1)
-const { isLocal } = __webpack_require__(1731)
+const { isLocal } = __webpack_require__(1730)
 const cozyClient = __webpack_require__(485)
 
 async function saveAccountData(accountId, accountData) {
@@ -247928,6 +247793,7 @@ async function saveAccountData(accountId, accountData) {
 async function getAccount(accountId) {
   log('info', `getAccount: ${accountId}`)
   const accounts = await cozyClient.data.findAll('io.cozy.accounts')
+  log('info', `getAccount data: ${JSON.stringify(accounts)}`)
   return accounts.filter(account =>
     isLocal() ? account._id === accountId : account.account_type === accountId
   )[0]
@@ -247948,7 +247814,7 @@ module.exports = { getAccount, saveAccountData, getAccountForDelete }
 
 
 /***/ }),
-/* 1731 */
+/* 1730 */
 /***/ ((module) => {
 
 function isLocal() {
@@ -247974,7 +247840,7 @@ module.exports = { isLocal, isDev }
 
 
 /***/ }),
-/* 1732 */
+/* 1731 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -247998,15 +247864,15 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */   "extractTraceparentData": () => (/* reexport safe */ _sentry_utils__WEBPACK_IMPORTED_MODULE_9__.extractTraceparentData),
 /* harmony export */   "stripUrlQueryAndFragment": () => (/* reexport safe */ _sentry_utils__WEBPACK_IMPORTED_MODULE_10__.stripUrlQueryAndFragment)
 /* harmony export */ });
-/* harmony import */ var _hubextensions_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1733);
-/* harmony import */ var _integrations_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1741);
-/* harmony import */ var _span_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1736);
-/* harmony import */ var _spanstatus_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1768);
-/* harmony import */ var _transaction_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1735);
-/* harmony import */ var _idletransaction_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1737);
-/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1734);
-/* harmony import */ var _browser_browsertracing_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1750);
-/* harmony import */ var _browser_request_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1753);
+/* harmony import */ var _hubextensions_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1732);
+/* harmony import */ var _integrations_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1740);
+/* harmony import */ var _span_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1735);
+/* harmony import */ var _spanstatus_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1767);
+/* harmony import */ var _transaction_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1734);
+/* harmony import */ var _idletransaction_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1736);
+/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1733);
+/* harmony import */ var _browser_browsertracing_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1749);
+/* harmony import */ var _browser_request_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1752);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1678);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1668);
 
@@ -248037,7 +247903,7 @@ if (typeof __SENTRY_TRACING__ === 'undefined' || __SENTRY_TRACING__) {
 
 
 /***/ }),
-/* 1733 */
+/* 1732 */
 /***/ ((module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -248051,10 +247917,10 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1610);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1606);
-/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1738);
-/* harmony import */ var _idletransaction_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1737);
-/* harmony import */ var _transaction_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1735);
-/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1734);
+/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1737);
+/* harmony import */ var _idletransaction_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1736);
+/* harmony import */ var _transaction_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1734);
+/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1733);
 /* module decorator */ module = __webpack_require__.hmd(module);
 
 
@@ -248355,7 +248221,7 @@ function addExtensionMethods() {
 
 
 /***/ }),
-/* 1734 */
+/* 1733 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -248416,7 +248282,7 @@ function secToMs(time) {
 
 
 /***/ }),
-/* 1735 */
+/* 1734 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -248429,7 +248295,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1604);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1611);
-/* harmony import */ var _span_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1736);
+/* harmony import */ var _span_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1735);
 
 
 
@@ -248710,7 +248576,7 @@ class Transaction extends _span_js__WEBPACK_IMPORTED_MODULE_0__.Span  {
 
 
 /***/ }),
-/* 1736 */
+/* 1735 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -249108,7 +248974,7 @@ function spanStatusfromHttpCode(httpStatus) {
 
 
 /***/ }),
-/* 1737 */
+/* 1736 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -249122,8 +248988,8 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ });
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1604);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1614);
-/* harmony import */ var _span_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1736);
-/* harmony import */ var _transaction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1735);
+/* harmony import */ var _span_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1735);
+/* harmony import */ var _transaction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1734);
 
 
 
@@ -249428,7 +249294,7 @@ function clearActiveTransaction(hub) {
 
 
 /***/ }),
-/* 1738 */
+/* 1737 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -249436,9 +249302,9 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "registerErrorInstrumentation": () => (/* binding */ registerErrorInstrumentation)
 /* harmony export */ });
-/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1739);
+/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1738);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1614);
-/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1734);
+/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1733);
 
 
 
@@ -249467,7 +249333,7 @@ function errorCallback() {
 
 
 /***/ }),
-/* 1739 */
+/* 1738 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -249479,7 +249345,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1614);
 /* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1611);
 /* harmony import */ var _stacktrace_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1623);
-/* harmony import */ var _supports_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1740);
+/* harmony import */ var _supports_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1739);
 /* harmony import */ var _worldwide_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1605);
 
 
@@ -250058,7 +249924,7 @@ function instrumentUnhandledRejection() {
 
 
 /***/ }),
-/* 1740 */
+/* 1739 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -250260,7 +250126,7 @@ function supportsHistory() {
 
 
 /***/ }),
-/* 1741 */
+/* 1740 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -250275,14 +250141,14 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */   "Apollo": () => (/* reexport safe */ _node_apollo_js__WEBPACK_IMPORTED_MODULE_6__.Apollo),
 /* harmony export */   "BrowserTracing": () => (/* reexport safe */ _browser_browsertracing_js__WEBPACK_IMPORTED_MODULE_7__.BrowserTracing)
 /* harmony export */ });
-/* harmony import */ var _node_express_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1742);
-/* harmony import */ var _node_postgres_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1744);
-/* harmony import */ var _node_mysql_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1745);
-/* harmony import */ var _node_mongo_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1746);
-/* harmony import */ var _node_prisma_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1747);
-/* harmony import */ var _node_graphql_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1748);
-/* harmony import */ var _node_apollo_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1749);
-/* harmony import */ var _browser_browsertracing_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1750);
+/* harmony import */ var _node_express_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1741);
+/* harmony import */ var _node_postgres_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1743);
+/* harmony import */ var _node_mysql_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1744);
+/* harmony import */ var _node_mongo_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1745);
+/* harmony import */ var _node_prisma_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1746);
+/* harmony import */ var _node_graphql_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1747);
+/* harmony import */ var _node_apollo_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1748);
+/* harmony import */ var _browser_browsertracing_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1749);
 
 
 
@@ -250296,7 +250162,7 @@ __webpack_require__.r(__webpack_exports__);
 
 
 /***/ }),
-/* 1742 */
+/* 1741 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -250309,7 +250175,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1668);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1669);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1610);
-/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1743);
+/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1742);
 
 
 
@@ -250651,7 +250517,7 @@ function getLayerRoutePathString(isArray, lrp) {
 
 
 /***/ }),
-/* 1743 */
+/* 1742 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -250680,7 +250546,7 @@ function shouldDisableAutoInstrumentation(getCurrentHub) {
 
 
 /***/ }),
-/* 1744 */
+/* 1743 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -250693,7 +250559,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1611);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1610);
-/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1743);
+/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1742);
 
 
 
@@ -250788,7 +250654,7 @@ class Postgres  {
 
 
 /***/ }),
-/* 1745 */
+/* 1744 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -250800,7 +250666,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1606);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1611);
-/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1743);
+/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1742);
 
 
 
@@ -250871,7 +250737,7 @@ class Mysql  {constructor() { Mysql.prototype.__init.call(this); }
 
 
 /***/ }),
-/* 1746 */
+/* 1745 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -250884,7 +250750,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1611);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1610);
-/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1743);
+/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1742);
 
 
 
@@ -251102,7 +250968,7 @@ class Mongo  {
 
 
 /***/ }),
-/* 1747 */
+/* 1746 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -251113,7 +250979,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils_esm_buildPolyfills__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1624);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1610);
-/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1743);
+/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1742);
 
 
 
@@ -251198,7 +251064,7 @@ class Prisma  {
 
 
 /***/ }),
-/* 1748 */
+/* 1747 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -251211,7 +251077,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1611);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1610);
-/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1743);
+/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1742);
 
 
 
@@ -251282,7 +251148,7 @@ class GraphQL  {constructor() { GraphQL.prototype.__init.call(this); }
 
 
 /***/ }),
-/* 1749 */
+/* 1748 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -251296,7 +251162,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1611);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1608);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1610);
-/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1743);
+/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1742);
 
 
 
@@ -251415,7 +251281,7 @@ function wrapResolver(
 
 
 /***/ }),
-/* 1750 */
+/* 1749 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -251430,13 +251296,13 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1678);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1656);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(1612);
-/* harmony import */ var _hubextensions_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1733);
-/* harmony import */ var _idletransaction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1737);
-/* harmony import */ var _backgroundtab_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1767);
-/* harmony import */ var _metrics_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1754);
-/* harmony import */ var _request_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1753);
-/* harmony import */ var _router_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1751);
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1752);
+/* harmony import */ var _hubextensions_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1732);
+/* harmony import */ var _idletransaction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1736);
+/* harmony import */ var _backgroundtab_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1766);
+/* harmony import */ var _metrics_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1753);
+/* harmony import */ var _request_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1752);
+/* harmony import */ var _router_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1750);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1751);
 
 
 
@@ -251627,7 +251493,7 @@ function getMetaContent(metaName) {
 
 
 /***/ }),
-/* 1751 */
+/* 1750 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -251636,8 +251502,8 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */   "instrumentRoutingWithDefaults": () => (/* binding */ instrumentRoutingWithDefaults)
 /* harmony export */ });
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1614);
-/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1739);
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1752);
+/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1738);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1751);
 
 
 
@@ -251703,7 +251569,7 @@ function instrumentRoutingWithDefaults(
 
 
 /***/ }),
-/* 1752 */
+/* 1751 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -251721,7 +251587,7 @@ const WINDOW = _sentry_utils__WEBPACK_IMPORTED_MODULE_0__.GLOBAL_OBJ ;
 
 
 /***/ }),
-/* 1753 */
+/* 1752 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -251734,11 +251600,11 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */   "shouldAttachHeaders": () => (/* binding */ shouldAttachHeaders),
 /* harmony export */   "xhrCallback": () => (/* binding */ xhrCallback)
 /* harmony export */ });
-/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1739);
+/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1738);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1609);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1656);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1610);
-/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1734);
+/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1733);
 
 
 
@@ -252004,7 +251870,7 @@ function xhrCallback(
 
 
 /***/ }),
-/* 1754 */
+/* 1753 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252020,14 +251886,14 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1604);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(1612);
-/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1734);
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1752);
-/* harmony import */ var _web_vitals_getCLS_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1756);
-/* harmony import */ var _web_vitals_getFID_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1765);
-/* harmony import */ var _web_vitals_getLCP_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1763);
-/* harmony import */ var _web_vitals_lib_getVisibilityWatcher_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1764);
-/* harmony import */ var _web_vitals_lib_observe_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1755);
-/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1766);
+/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1733);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1751);
+/* harmony import */ var _web_vitals_getCLS_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1755);
+/* harmony import */ var _web_vitals_getFID_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1764);
+/* harmony import */ var _web_vitals_getLCP_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1762);
+/* harmony import */ var _web_vitals_lib_getVisibilityWatcher_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1763);
+/* harmony import */ var _web_vitals_lib_observe_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1754);
+/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1765);
 
 
 
@@ -252466,7 +252332,7 @@ function _tagMetricInfo(transaction) {
 
 
 /***/ }),
-/* 1755 */
+/* 1754 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252514,7 +252380,7 @@ const observe = (
 
 
 /***/ }),
-/* 1756 */
+/* 1755 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252522,10 +252388,10 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "onCLS": () => (/* binding */ onCLS)
 /* harmony export */ });
-/* harmony import */ var _lib_bindReporter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1761);
-/* harmony import */ var _lib_initMetric_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1757);
-/* harmony import */ var _lib_observe_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1755);
-/* harmony import */ var _lib_onHidden_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1762);
+/* harmony import */ var _lib_bindReporter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1760);
+/* harmony import */ var _lib_initMetric_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1756);
+/* harmony import */ var _lib_observe_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1754);
+/* harmony import */ var _lib_onHidden_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1761);
 
 
 
@@ -252628,7 +252494,7 @@ const onCLS = (onReport, opts = {}) => {
 
 
 /***/ }),
-/* 1757 */
+/* 1756 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252636,10 +252502,10 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "initMetric": () => (/* binding */ initMetric)
 /* harmony export */ });
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1752);
-/* harmony import */ var _generateUniqueID_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1760);
-/* harmony import */ var _getActivationStart_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1759);
-/* harmony import */ var _getNavigationEntry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1758);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1751);
+/* harmony import */ var _generateUniqueID_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1759);
+/* harmony import */ var _getActivationStart_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1758);
+/* harmony import */ var _getNavigationEntry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1757);
 
 
 
@@ -252689,7 +252555,7 @@ const initMetric = (name, value) => {
 
 
 /***/ }),
-/* 1758 */
+/* 1757 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252697,7 +252563,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "getNavigationEntry": () => (/* binding */ getNavigationEntry)
 /* harmony export */ });
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1752);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1751);
 
 
 /*
@@ -252753,7 +252619,7 @@ const getNavigationEntry = () => {
 
 
 /***/ }),
-/* 1759 */
+/* 1758 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252761,7 +252627,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "getActivationStart": () => (/* binding */ getActivationStart)
 /* harmony export */ });
-/* harmony import */ var _getNavigationEntry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1758);
+/* harmony import */ var _getNavigationEntry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1757);
 
 
 /*
@@ -252790,7 +252656,7 @@ const getActivationStart = () => {
 
 
 /***/ }),
-/* 1760 */
+/* 1759 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252828,7 +252694,7 @@ const generateUniqueID = () => {
 
 
 /***/ }),
-/* 1761 */
+/* 1760 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252867,7 +252733,7 @@ const bindReporter = (
 
 
 /***/ }),
-/* 1762 */
+/* 1761 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252875,7 +252741,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "onHidden": () => (/* binding */ onHidden)
 /* harmony export */ });
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1752);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1751);
 
 
 /*
@@ -252915,7 +252781,7 @@ const onHidden = (cb, once) => {
 
 
 /***/ }),
-/* 1763 */
+/* 1762 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252923,12 +252789,12 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "onLCP": () => (/* binding */ onLCP)
 /* harmony export */ });
-/* harmony import */ var _lib_bindReporter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1761);
-/* harmony import */ var _lib_getActivationStart_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1759);
-/* harmony import */ var _lib_getVisibilityWatcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1764);
-/* harmony import */ var _lib_initMetric_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1757);
-/* harmony import */ var _lib_observe_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1755);
-/* harmony import */ var _lib_onHidden_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1762);
+/* harmony import */ var _lib_bindReporter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1760);
+/* harmony import */ var _lib_getActivationStart_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1758);
+/* harmony import */ var _lib_getVisibilityWatcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1763);
+/* harmony import */ var _lib_initMetric_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1756);
+/* harmony import */ var _lib_observe_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1754);
+/* harmony import */ var _lib_onHidden_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1761);
 
 
 
@@ -253018,7 +252884,7 @@ const onLCP = (onReport, opts = {}) => {
 
 
 /***/ }),
-/* 1764 */
+/* 1763 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -253026,8 +252892,8 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "getVisibilityWatcher": () => (/* binding */ getVisibilityWatcher)
 /* harmony export */ });
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1752);
-/* harmony import */ var _onHidden_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1762);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1751);
+/* harmony import */ var _onHidden_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1761);
 
 
 
@@ -253085,7 +252951,7 @@ const getVisibilityWatcher = (
 
 
 /***/ }),
-/* 1765 */
+/* 1764 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -253093,11 +252959,11 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "onFID": () => (/* binding */ onFID)
 /* harmony export */ });
-/* harmony import */ var _lib_bindReporter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1761);
-/* harmony import */ var _lib_getVisibilityWatcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1764);
-/* harmony import */ var _lib_initMetric_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1757);
-/* harmony import */ var _lib_observe_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1755);
-/* harmony import */ var _lib_onHidden_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1762);
+/* harmony import */ var _lib_bindReporter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1760);
+/* harmony import */ var _lib_getVisibilityWatcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1763);
+/* harmony import */ var _lib_initMetric_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1756);
+/* harmony import */ var _lib_observe_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1754);
+/* harmony import */ var _lib_onHidden_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1761);
 
 
 
@@ -253164,7 +253030,7 @@ const onFID = (onReport, opts = {}) => {
 
 
 /***/ }),
-/* 1766 */
+/* 1765 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -253201,7 +253067,7 @@ function _startChild(transaction, { startTimestamp, ...ctx }) {
 
 
 /***/ }),
-/* 1767 */
+/* 1766 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -253210,8 +253076,8 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */   "registerBackgroundTabDetection": () => (/* binding */ registerBackgroundTabDetection)
 /* harmony export */ });
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1614);
-/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1734);
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1752);
+/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1733);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1751);
 
 
 
@@ -253251,7 +253117,7 @@ function registerBackgroundTabDetection() {
 
 
 /***/ }),
-/* 1768 */
+/* 1767 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -253306,11 +253172,11 @@ var SpanStatus; (function (SpanStatus) {
 
 
 /***/ }),
-/* 1769 */
+/* 1768 */
 /***/ ((module) => {
 
 "use strict";
-module.exports = JSON.parse('{"name":"enedissgegrandlyon","version":"1.3.4","description":"","repository":{"type":"https","url":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector"},"keywords":[],"main":"./src/index.js","author":"Cozy Cloud","license":"AGPL-3.0","eslintConfig":{"extends":["cozy-app"]},"eslintIgnore":["build","data"],"husky":{"hooks":{"pre-commit":"yarn lint"}},"jest":{"setupFiles":["./setupTests.js"]},"scripts":{"build":"webpack","clean":"rm -rf ./data","cozyPublish":"cozy-app-publish --token $REGISTRY_TOKEN --build-commit $(git rev-parse ${DEPLOY_BRANCH:-build})","deploy":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build}","deploy-dev":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build-dev}","dev":"cozy-konnector-dev","lint":"eslint --fix .","onDeleteAccount:standalone":"cozy-konnector-standalone src/onDeleteAccount.js","onDeleteAccount":"cozy-konnector-dev src/onDeleteAccount.js","pretest":"npm run clean","release":"standard-version --no-verify","standalone":"cozy-konnector-standalone","standalone-no-data":"NO_DATA=true cozy-konnector-standalone src/index.js","start":"node ./src/index.js","test:cov":"jest --coverage","test":"jest","travisDeployKey":"./bin/generate_travis_deploy_key"},"dependencies":{"@sentry/node":"^7.23.0","@sentry/tracing":"^7.23.0","axios":"^0.27.2","cozy-konnector-libs":"5.0.0","easy-soap-request":"^4.7.0","jest":"^28.1.3","moment":"^2.29.3","moment-timezone":"^0.5.34","xml2js":"^0.4.23"},"devDependencies":{"cozy-jobs-cli":"2.0.0","cozy-konnector-build":"1.4.5","eslint-config-cozy-app":"5.5.0","eslint-plugin-prettier":"^4.2.1","git-directory-deploy":"1.5.1","jest-junit":"^14.0.0","standard-version":"^9.5.0"}}');
+module.exports = JSON.parse('{"name":"enedissgegrandlyon","version":"1.3.5","description":"","repository":{"type":"https","url":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector"},"keywords":[],"main":"./src/index.js","author":"Cozy Cloud","license":"AGPL-3.0","eslintConfig":{"extends":["cozy-app"]},"eslintIgnore":["build","data"],"husky":{"hooks":{"pre-commit":"yarn lint"}},"jest":{"setupFiles":["./setupTests.js"]},"scripts":{"build":"webpack","clean":"rm -rf ./data","cozyPublish":"cozy-app-publish --token $REGISTRY_TOKEN --build-commit $(git rev-parse ${DEPLOY_BRANCH:-build})","deploy":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build}","deploy-dev":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build-dev}","dev":"cozy-konnector-dev","lint":"eslint --fix .","onDeleteAccount:standalone":"cozy-konnector-standalone src/onDeleteAccount.js","onDeleteAccount":"cozy-konnector-dev src/onDeleteAccount.js","pretest":"npm run clean","release":"standard-version --no-verify","standalone":"cozy-konnector-standalone","standalone-no-data":"NO_DATA=true cozy-konnector-standalone src/index.js","start":"node ./src/index.js","test:cov":"jest --coverage","test":"jest","travisDeployKey":"./bin/generate_travis_deploy_key"},"dependencies":{"@sentry/node":"^7.23.0","@sentry/tracing":"^7.23.0","axios":"^0.27.2","cozy-konnector-libs":"5.0.0","easy-soap-request":"^4.7.0","jest":"^28.1.3","moment":"^2.29.3","moment-timezone":"^0.5.34","xml2js":"^0.4.23"},"devDependencies":{"cozy-jobs-cli":"2.0.0","cozy-konnector-build":"1.4.5","eslint-config-cozy-app":"5.5.0","eslint-plugin-prettier":"^4.2.1","git-directory-deploy":"1.5.1","jest-junit":"^14.0.0","standard-version":"^9.5.0"}}');
 
 /***/ })
 /******/ 	]);
diff --git a/manifest.konnector b/manifest.konnector
index 7037c7b..e9252c6 100644
--- a/manifest.konnector
+++ b/manifest.konnector
@@ -1,5 +1,5 @@
 {
-  "version": "1.3.4",
+  "version": "1.3.5",
   "name": "Enedis SGE",
   "type": "konnector",
   "language": "node",
diff --git a/onDeleteAccount.js b/onDeleteAccount.js
index 4a9738d..db81f44 100644
--- a/onDeleteAccount.js
+++ b/onDeleteAccount.js
@@ -153102,7 +153102,7 @@ const fs = __webpack_require__(149);
 
 const path = __webpack_require__(142);
 
-let manifest = typeof {"version":"1.3.4","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"} === 'undefined' ? {} : {"version":"1.3.4","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"};
+let manifest = typeof {"version":"1.3.5","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"} === 'undefined' ? {} : {"version":"1.3.5","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"};
 
 if (process.env.NODE_ENV !== undefined && process.env.NODE_ENV !== 'none' && process.env.NODE_ENV !== 'production') {
   try {
@@ -228332,20 +228332,6 @@ function parseUserPdl(result) {
   ]['point']['$'].id
 }
 
-/**
- * Return User contract start date
- * @param {string} result
- * @returns {string}
- */
-function parseContractStartDate(result) {
-  log('info', 'Parsing contract start date')
-  const json = JSON.stringify(result)
-  return JSON.parse(json)['Envelope']['Body'][
-    'consulterDonneesTechniquesContractuellesResponse'
-  ]['point']['donneesGenerales'][
-    'dateDerniereModificationFormuleTarifaireAcheminement'
-  ]
-}
 /**
  * Return User address
  * @param {string} result
@@ -228404,7 +228390,7 @@ function parseSgeXmlData(result) {
  * @returns {Promise<EnedisKonnectorData[]>} Parsed timestamp array
  */
 async function formateDataForDoctype(data) {
-  log('info', 'Formating data')
+  log('info', 'Formatting data')
   return data.map(record => {
     const date = moment(record.d, 'YYYY/MM/DD h:mm:ss')
     return {
@@ -228544,7 +228530,6 @@ module.exports = {
   checkContractExists,
   formateDataForDoctype,
   parseContracts,
-  parseContractStartDate,
   parsePointId,
   parseServiceId,
   parseSgeXmlData,
@@ -242203,7 +242188,7 @@ async function updateBoConsent(url, token, consent, serviceId) {
 
   let consentId = ''
   if (consent.ID) {
-    consentId = consent.ID.toString()
+    consentId = consent.ID
   }
   try {
     const { data } = await axios.put(
@@ -242231,7 +242216,7 @@ async function updateBoConsent(url, token, consent, serviceId) {
 }
 
 /**
- * @param {number} consentId
+ * @param {string} consentId
  * @returns {Promise<Consent>}
  */
 async function getBoConsent(url, token, consentId) {
@@ -242255,6 +242240,9 @@ async function getBoConsent(url, token, consentId) {
         consentId: consentId,
       },
     })
+    if (err.response?.status === 404) {
+      throw new Error(errors.LOGIN_FAILED)
+    }
     throw new Error(errors.MAINTENANCE)
   }
 }
@@ -242263,7 +242251,7 @@ async function getBoConsent(url, token, consentId) {
  * Delete BO consent
  * @param {string} url
  * @param {string} token
- * @param {number} consentId
+ * @param {string} consentId
  * @returns
  */
 async function deleteBoConsent(url, token, consentId) {
@@ -246214,8 +246202,7 @@ module.exports = function isAxiosError(payload) {
 /***/ }),
 /* 1719 */,
 /* 1720 */,
-/* 1721 */,
-/* 1722 */
+/* 1721 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // @ts-check
@@ -246309,18 +246296,18 @@ module.exports = { terminateContract }
 
 
 /***/ }),
+/* 1722 */,
 /* 1723 */,
 /* 1724 */,
 /* 1725 */,
 /* 1726 */,
 /* 1727 */,
 /* 1728 */,
-/* 1729 */,
-/* 1730 */
+/* 1729 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 const { log, updateOrCreate } = __webpack_require__(1)
-const { isLocal } = __webpack_require__(1731)
+const { isLocal } = __webpack_require__(1730)
 const cozyClient = __webpack_require__(485)
 
 async function saveAccountData(accountId, accountData) {
@@ -246360,6 +246347,7 @@ async function saveAccountData(accountId, accountData) {
 async function getAccount(accountId) {
   log('info', `getAccount: ${accountId}`)
   const accounts = await cozyClient.data.findAll('io.cozy.accounts')
+  log('info', `getAccount data: ${JSON.stringify(accounts)}`)
   return accounts.filter(account =>
     isLocal() ? account._id === accountId : account.account_type === accountId
   )[0]
@@ -246380,7 +246368,7 @@ module.exports = { getAccount, saveAccountData, getAccountForDelete }
 
 
 /***/ }),
-/* 1731 */
+/* 1730 */
 /***/ ((module) => {
 
 function isLocal() {
@@ -246406,6 +246394,7 @@ module.exports = { isLocal, isDev }
 
 
 /***/ }),
+/* 1731 */,
 /* 1732 */,
 /* 1733 */,
 /* 1734 */,
@@ -246442,15 +246431,14 @@ module.exports = { isLocal, isDev }
 /* 1765 */,
 /* 1766 */,
 /* 1767 */,
-/* 1768 */,
-/* 1769 */
+/* 1768 */
 /***/ ((module) => {
 
 "use strict";
-module.exports = JSON.parse('{"name":"enedissgegrandlyon","version":"1.3.4","description":"","repository":{"type":"https","url":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector"},"keywords":[],"main":"./src/index.js","author":"Cozy Cloud","license":"AGPL-3.0","eslintConfig":{"extends":["cozy-app"]},"eslintIgnore":["build","data"],"husky":{"hooks":{"pre-commit":"yarn lint"}},"jest":{"setupFiles":["./setupTests.js"]},"scripts":{"build":"webpack","clean":"rm -rf ./data","cozyPublish":"cozy-app-publish --token $REGISTRY_TOKEN --build-commit $(git rev-parse ${DEPLOY_BRANCH:-build})","deploy":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build}","deploy-dev":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build-dev}","dev":"cozy-konnector-dev","lint":"eslint --fix .","onDeleteAccount:standalone":"cozy-konnector-standalone src/onDeleteAccount.js","onDeleteAccount":"cozy-konnector-dev src/onDeleteAccount.js","pretest":"npm run clean","release":"standard-version --no-verify","standalone":"cozy-konnector-standalone","standalone-no-data":"NO_DATA=true cozy-konnector-standalone src/index.js","start":"node ./src/index.js","test:cov":"jest --coverage","test":"jest","travisDeployKey":"./bin/generate_travis_deploy_key"},"dependencies":{"@sentry/node":"^7.23.0","@sentry/tracing":"^7.23.0","axios":"^0.27.2","cozy-konnector-libs":"5.0.0","easy-soap-request":"^4.7.0","jest":"^28.1.3","moment":"^2.29.3","moment-timezone":"^0.5.34","xml2js":"^0.4.23"},"devDependencies":{"cozy-jobs-cli":"2.0.0","cozy-konnector-build":"1.4.5","eslint-config-cozy-app":"5.5.0","eslint-plugin-prettier":"^4.2.1","git-directory-deploy":"1.5.1","jest-junit":"^14.0.0","standard-version":"^9.5.0"}}');
+module.exports = JSON.parse('{"name":"enedissgegrandlyon","version":"1.3.5","description":"","repository":{"type":"https","url":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector"},"keywords":[],"main":"./src/index.js","author":"Cozy Cloud","license":"AGPL-3.0","eslintConfig":{"extends":["cozy-app"]},"eslintIgnore":["build","data"],"husky":{"hooks":{"pre-commit":"yarn lint"}},"jest":{"setupFiles":["./setupTests.js"]},"scripts":{"build":"webpack","clean":"rm -rf ./data","cozyPublish":"cozy-app-publish --token $REGISTRY_TOKEN --build-commit $(git rev-parse ${DEPLOY_BRANCH:-build})","deploy":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build}","deploy-dev":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build-dev}","dev":"cozy-konnector-dev","lint":"eslint --fix .","onDeleteAccount:standalone":"cozy-konnector-standalone src/onDeleteAccount.js","onDeleteAccount":"cozy-konnector-dev src/onDeleteAccount.js","pretest":"npm run clean","release":"standard-version --no-verify","standalone":"cozy-konnector-standalone","standalone-no-data":"NO_DATA=true cozy-konnector-standalone src/index.js","start":"node ./src/index.js","test:cov":"jest --coverage","test":"jest","travisDeployKey":"./bin/generate_travis_deploy_key"},"dependencies":{"@sentry/node":"^7.23.0","@sentry/tracing":"^7.23.0","axios":"^0.27.2","cozy-konnector-libs":"5.0.0","easy-soap-request":"^4.7.0","jest":"^28.1.3","moment":"^2.29.3","moment-timezone":"^0.5.34","xml2js":"^0.4.23"},"devDependencies":{"cozy-jobs-cli":"2.0.0","cozy-konnector-build":"1.4.5","eslint-config-cozy-app":"5.5.0","eslint-plugin-prettier":"^4.2.1","git-directory-deploy":"1.5.1","jest-junit":"^14.0.0","standard-version":"^9.5.0"}}');
 
 /***/ }),
-/* 1770 */
+/* 1769 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // @ts-check
@@ -246459,15 +246447,15 @@ const {
   getAccountRev,
   getAccountSecret,
   getAccountId,
-} = __webpack_require__(1771)
+} = __webpack_require__(1770)
 const { getBoConsent, deleteBoConsent } = __webpack_require__(1681)
-const { terminateContract } = __webpack_require__(1722)
-const { getAccountForDelete } = __webpack_require__(1730)
+const { terminateContract } = __webpack_require__(1721)
+const { getAccountForDelete } = __webpack_require__(1729)
 const moment = __webpack_require__(1417)
 __webpack_require__(1554)
-const { isLocal, isDev } = __webpack_require__(1731)
+const { isLocal, isDev } = __webpack_require__(1730)
 const Sentry = __webpack_require__(1600)
-const { version } = __webpack_require__(1769)
+const { version } = __webpack_require__(1768)
 
 moment.locale('fr') // set the language
 moment.tz.setDefault('Europe/Paris') // set the timezone
@@ -246587,11 +246575,11 @@ module.exports = { onDeleteAccount }
 
 
 /***/ }),
-/* 1771 */
+/* 1770 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 const { log } = __webpack_require__(1)
-const { isLocal } = __webpack_require__(1731)
+const { isLocal } = __webpack_require__(1730)
 const Sentry = __webpack_require__(1600)
 
 function getAccountId() {
@@ -246742,7 +246730,7 @@ module.exports = { getAccountId, getAccountRev, getAccountSecret }
 /******/ 	// module cache are used so entry inlining is disabled
 /******/ 	// startup
 /******/ 	// Load entry module and return exports
-/******/ 	var __webpack_exports__ = __webpack_require__(__webpack_require__.s = 1770);
+/******/ 	var __webpack_exports__ = __webpack_require__(__webpack_require__.s = 1769);
 /******/ 	
 /******/ })()
 ;
\ No newline at end of file
diff --git a/package.json b/package.json
index 0ca07dc..5fa1c05 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "enedissgegrandlyon",
-  "version": "1.3.4",
+  "version": "1.3.5",
   "description": "",
   "repository": {
     "type": "https",
-- 
GitLab