Newer
Older
228001
228002
228003
228004
228005
228006
228007
228008
228009
228010
228011
228012
228013
228014
228015
228016
228017
228018
228019
228020
228021
228022
228023
228024
228025
var index = this._listeners.indexOf(listener);
if (index !== -1) {
this._listeners.splice(index, 1);
}
};
/**
* Returns an object that contains a new `CancelToken` and a function that, when called,
* cancels the `CancelToken`.
*/
CancelToken.source = function source() {
var cancel;
var token = new CancelToken(function executor(c) {
cancel = c;
});
return {
token: token,
cancel: cancel
};
};
module.exports = CancelToken;
/***/ }),
/***/ ((module) => {
"use strict";
* Syntactic sugar for invoking a function and expanding an array for arguments.
228035
228036
228037
228038
228039
228040
228041
228042
228043
228044
228045
228046
228047
228048
228049
228050
* Common use case would be to use `Function.prototype.apply`.
*
* ```js
* function f(x, y, z) {}
* var args = [1, 2, 3];
* f.apply(null, args);
* ```
*
* With `spread` this example can be re-written.
*
* ```js
* spread(function(x, y, z) {})([1, 2, 3]);
* ```
*
* @param {Function} callback
* @returns {Function}
module.exports = function spread(callback) {
return function wrap(arr) {
return callback.apply(null, arr);
};
};
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
/**
* Determines whether the payload is an error thrown by Axios
*
* @param {*} payload The value to test
* @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
*/
module.exports = function isAxiosError(payload) {
return utils.isObject(payload) && (payload.isAxiosError === true);
};
/***/ }),
/* 1595 */
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
const { activateContract } = __webpack_require__(1596)
const { getContractStartDate } = __webpack_require__(1597)
const { terminateContract } = __webpack_require__(1598)
const { verifyContract } = __webpack_require__(1599)
const { findUserPdl } = __webpack_require__(1601)
const { verifyUserIdentity } = __webpack_require__(1602)
const { findUserAddress } = __webpack_require__(1604)
module.exports = {
activateContract,
getContractStartDate,
terminateContract,
verifyContract,
findUserPdl,
verifyUserIdentity,
findUserAddress,
}
/***/ }),
/* 1596 */
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
// @ts-check
const { log, errors } = __webpack_require__(1)
const soapRequest = __webpack_require__(1331)
const { parseTags, parseValue, parseServiceId } = __webpack_require__(1555)
const { commanderCollectePublicationMesures } = __webpack_require__(1556)
const xml2js = __webpack_require__(1513)
/**
* @param {string} url
* @param {string} apiAuthKey
* @param {string} appLogin
* @param {string} name
* @param {number} pointId
* @param {string} startDate
* @param {string} endDate
* @return {Promise<number>} User contractId
pointId,
startDate,
endDate
const sgeHeaders = {
'Content-Type': 'text/xml;charset=UTF-8',
apikey: apiAuthKey,
}
const { response } = await soapRequest({
url: `${url}/enedis_SGE_CommandeCollectePublicationMesures/1.0`,
xml: commanderCollectePublicationMesures(
appLogin,
contractId,
pointId,
name,
startDate,
endDate
),
log('error', 'commanderCollectePublicationMesures')
log('error', err)
throw errors.LOGIN_FAILED
})
const parsedReply = await xml2js.parseStringPromise(response.body, {
tagNameProcessors: [parseTags],
valueProcessors: [parseValue],
explicitArray: false,
})
try {
log('error', 'Error while activating contract: ' + error)
if (parsedReply.Envelope.Body.Fault) {
log(
'error',
`Enedis issue ${parsedReply.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${parsedReply.Envelope.Body.Fault.faultstring}`
)
}
//TODO: handle SGT4B8: Il existe déjà plusieurs demandes en cours sur le point ?
throw errors.LOGIN_FAILED
}
}
/***/ }),
/* 1597 */
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
// @ts-check
const { log, errors } = __webpack_require__(1)
const soapRequest = __webpack_require__(1331)
const {
parseTags,
parseValue,
parseContractStartDate,
} = __webpack_require__(1555)
const xml2js = __webpack_require__(1513)
const { consulterDonneesTechniquesContractuelles } = __webpack_require__(1556)
* Get user contract start date
* @param {string} url
* @param {string} apiAuthKey
* @param {string} userLogin
* @param {number} 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 => {
log('error', 'Error while fetching contract start date : ' + err)
throw errors.VENDOR_DOWN
})
const result = await xml2js.parseStringPromise(response.body, {
tagNameProcessors: [parseTags],
valueProcessors: [parseValue],
explicitArray: false,
})
try {
return parseContractStartDate(result)
log('error', 'Error while processing contract start date: ' + error)
`Enedis issue ${result.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${result.Envelope.Body.Fault.faultstring}`
module.exports = { getContractStartDate }
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
// @ts-check
const { log, errors } = __webpack_require__(1)
const soapRequest = __webpack_require__(1331)
const { parseTags, parseValue } = __webpack_require__(1555)
const { commanderArretServiceSouscritMesures } = __webpack_require__(1556)
* @param {string} url
* @param {string} apiAuthKey
* @param {string} appLogin
* @param {number} serviceId
* @return {Promise<string>} User contractId
const sgeHeaders = {
'Content-Type': 'text/xml;charset=UTF-8',
apikey: apiAuthKey,
}
url: `${url}/enedis_SGE_CommandeArretServiceSouscritMesures/1.0`,
xml: commanderArretServiceSouscritMesures(
log('error', 'commanderArretServiceSouscritMesures')
})
const parsedReply = await xml2js.parseStringPromise(response.body, {
tagNameProcessors: [parseTags],
valueProcessors: [parseValue],
explicitArray: false,
})
try {
// We don't need any action on reply for now
if (parsedReply.Envelope.Body.Fault) {
log(
'error',
`Enedis issue ${parsedReply.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${parsedReply.Envelope.Body.Fault.faultstring}`
)
}
return parsedReply
log('error', 'Error while parsing user contract termination: ' + error)
log('error', `Enedis issue ${JSON.stringify(parsedReply.Envelope.Body)}`)
throw errors.VENDOR_DOWN
/***/ }),
/* 1599 */
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
// @ts-check
const { log, errors } = __webpack_require__(1)
const soapRequest = __webpack_require__(1331)
const {
parseTags,
parseValue,
parseContracts,
checkContractExists,
} = __webpack_require__(1555)
const { rechercherServicesSouscritsMesures } = __webpack_require__(1556)
const xml2js = __webpack_require__(1513)
const { contractState, contractLibelle } = __webpack_require__(1600)
* @param {string} url
* @param {string} apiAuthKey
* @param {string} appLogin
* @param {number} pointId
* @return {Promise<number | null>} User contractId
async function verifyContract(url, apiAuthKey, appLogin, contractId, pointId) {
log('info', 'verifyContract')
const sgeHeaders = {
'Content-Type': 'text/xml;charset=UTF-8',
apikey: apiAuthKey,
}
228343
228344
228345
228346
228347
228348
228349
228350
228351
228352
228353
228354
228355
228356
228357
228358
228359
const { response } = await soapRequest({
url: `${url}/enedis_SGE_RechercheServicesMesures/1.0`,
headers: sgeHeaders,
xml: rechercherServicesSouscritsMesures(appLogin, contractId, pointId),
}).catch(err => {
log('error', 'rechercherServicesSouscritsMesures')
log('error', err)
throw errors.LOGIN_FAILED
})
const parsedReply = await xml2js.parseStringPromise(response.body, {
tagNameProcessors: [parseTags],
valueProcessors: [parseValue],
explicitArray: false,
})
try {
if (!checkContractExists(parsedReply)) {
log('error', 'no contract found')
return null
}
const currentContracts = parseContracts(parsedReply)
let currentContract = null
if (Array.isArray(currentContracts)) {
currentContract = parseContracts(parsedReply)[0]
} else {
currentContract = currentContracts
}
if (
(currentContract.etatCode === contractState.ACTIF ||
currentContract.etatCode === contractState.DEMANDE) &&
currentContract.serviceSouscritLibelle === contractLibelle.ACTIF
)
return currentContract.serviceSouscritId
return null
} catch (error) {
log('error', 'Error while parsing user contract: ' + error)
if (parsedReply.Envelope.Body.Fault) {
log(
'error',
`Enedis issue ${parsedReply.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${parsedReply.Envelope.Body.Fault.faultstring}`
)
}
module.exports = { verifyContract }
/***/ }),
/* 1600 */
/***/ ((module) => {
* Enum for contract-state values.
* @readonly
* @enum {number}
const contractState = {
TERMINE: 'TERMINE',
ACTIF: 'ACTIF',
DEMANDE: 'DEMANDE',
}
/**
* Enum for contractLibelle values.
* @readonly
* @enum {number}
*/
const contractLibelle = {
ACTIF:
'Collecte de la courbe de charge au pas 30 min avec transmission quotidienne des données brutes en soutirage',
module.exports = { contractState, contractLibelle }
/***/ }),
/* 1601 */
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
// @ts-check
const { log, errors } = __webpack_require__(1)
const soapRequest = __webpack_require__(1331)
const { parseUserPdl, parseTags, parseValue } = __webpack_require__(1555)
const { rechercherPoint } = __webpack_require__(1556)
* @param {string} url
* @param {string} apiAuthKey
* @param {string} appLogin
* @param {string} name
* @param {string} address
* @param {string} postalCode
* @param {string} inseeCode
* @return {Promise<string | null>} User Pdl
name,
address,
postalCode,
inseeCode,
escalierEtEtageEtAppartement = ''
log('info', 'Fetching user pdl')
const sgeHeaders = {
'Content-Type': 'text/xml;charset=UTF-8',
apikey: apiAuthKey,
}
const { response } = await soapRequest({
xml: rechercherPoint(
appLogin,
name,
postalCode,
inseeCode,
address,
escalierEtEtageEtAppartement
),
})
const parsedReply = await xml2js.parseStringPromise(response.body, {
tagNameProcessors: [parseTags],
valueProcessors: [parseValue],
explicitArray: false,
})
try {
log('warn', 'Error while parsing user PDL: ' + error)
if (parsedReply.Envelope.Body.Fault) {
log(
'warn',
`Enedis issue ${parsedReply.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${parsedReply.Envelope.Body.Fault.faultstring}`
)
}
return null
/***/ }),
/* 1602 */
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
// @ts-check
const { log, errors } = __webpack_require__(1)
const { findUserPdl } = __webpack_require__(1601)
const { getInseeCode } = __webpack_require__(1603)
const { findUserAddress } = __webpack_require__(1604)
const {
removeMultipleSpaces,
removeAddressnumber,
} = __webpack_require__(1555)
* Verify user identity
* @param {object} fields
* @param {string} baseUrl
* @param {string} loginUtilisateur
* @param {boolean} isAlternateStart
* @returns {Promise<User>}
async function verifyUserIdentity(
fields,
baseUrl,
apiAuthKey,
loginUtilisateur,
isAlternateStart = false,
inseeCode = ''
// If first start get InseeCode
log('debug', 'verifyUserIdentity')
if (!isAlternateStart) {
inseeCode = await getInseeCode(fields.postalCode, fields.city)
}
// Store if user is going through safety sge onboarding
let userSafetyOnBoarding = false
// First try with user adresse
let pdl = await findUserPdl(
`${baseUrl}/enedis_SDE_recherche-point/1.0`,
apiAuthKey,
loginUtilisateur,
fields.lastname,
fields.address,
fields.postalCode,
inseeCode
)
228550
228551
228552
228553
228554
228555
228556
228557
228558
228559
228560
228561
228562
228563
228564
228565
228566
228567
228568
228569
228570
228571
228572
228573
228574
228575
228576
228577
228578
228579
228580
228581
228582
228583
228584
228585
228586
228587
228588
228589
228590
228591
228592
228593
228594
228595
228596
228597
228598
228599
228600
228601
228602
228603
228604
228605
if (!pdl) {
log('warn', 'Second chance for sge onboarding')
// Set safety onboarding in order to save it inside BO
userSafetyOnBoarding = true
// Backup verification
const userAddress = await findUserAddress(
baseUrl,
apiAuthKey,
loginUtilisateur,
fields.pointId
)
const escalierEtEtageEtAppartement = userAddress.escalierEtEtageEtAppartement
? removeMultipleSpaces(userAddress.escalierEtEtageEtAppartement)
: ''
pdl = await findUserPdl(
`${baseUrl}/enedis_SDE_recherche-point/1.0`,
apiAuthKey,
loginUtilisateur,
fields.lastname,
removeMultipleSpaces(userAddress.numeroEtNomVoie),
userAddress.codePostal,
userAddress.commune.$.code,
escalierEtEtageEtAppartement
)
// Third try, remove address number because it's buggy on SGE side
if (!pdl) {
log('warn', 'Third chance onboarding for sge')
pdl = await findUserPdl(
`${baseUrl}/enedis_SDE_recherche-point/1.0`,
apiAuthKey,
loginUtilisateur,
fields.lastname,
removeMultipleSpaces(removeAddressnumber(userAddress.numeroEtNomVoie)),
userAddress.codePostal,
userAddress.commune.$.code
)
}
// Third try, remove address number and add escalierEtEtageEtAppartement because it's buggy on SGE side
if (!pdl) {
log('warn', 'Last chance onboarding for sge')
pdl = await findUserPdl(
`${baseUrl}/enedis_SDE_recherche-point/1.0`,
apiAuthKey,
loginUtilisateur,
fields.lastname,
removeMultipleSpaces(removeAddressnumber(userAddress.numeroEtNomVoie)),
userAddress.codePostal,
userAddress.commune.$.code,
escalierEtEtageEtAppartement
)
}
}
if (fields.pointId != pdl) {
log('error', 'PointId does not match')
if (isAlternateStart) {
throw errors.TERMS_VERSION_MISMATCH
} else {
throw errors.LOGIN_FAILED
}
return {
lastname: fields.lastname,
firstname: fields.firstname,
pointId: fields.pointId,
inseeCode,
postalCode: fields.postalCode,
address: fields.address,
hasBeenThroughtSafetyOnBoarding: userSafetyOnBoarding,
city: fields.city,
228628
228629
228630
228631
228632
228633
228634
228635
228636
228637
228638
228639
228640
228641
228642
228643
228644
228645
228646
228647
module.exports = { verifyUserIdentity }
/***/ }),
/* 1603 */
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
// @ts-check
const { default: axios } = __webpack_require__(1558)
const { log, errors } = __webpack_require__(1)
const API_URL = 'https://apicarto.ign.fr/api/codes-postaux/communes'
/**
* Return inseeCode given a postalCode
* @param {string} postalCode
* @param {string} [city]
* @return {Promise<string>} inseeCode
*/
async function getInseeCode(postalCode, city) {
log('info', `Query getInseeCode for postalCode ${postalCode} / ${city}`)
const response = await axios.get(`${API_URL}/${postalCode}`)
if (response.data.length === 1) {
return response.data[0].codeCommune
} else {
if (!city) throw errors.USER_ACTION_NEEDED
const filteredResponse = response.data.filter(
town => town.nomCommune.toLowerCase() === city.toLowerCase()
)
return filteredResponse[0].codeCommune
}
`Query getInseeCode failed for postalCode ${postalCode} / ${city}`
module.exports = {
getInseeCode,
}
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
228680
228681
228682
228683
228684
228685
228686
228687
228688
228689
228690
228691
228692
228693
228694
228695
228696
228697
228698
228699
228700
228701
228702
228703
228704
228705
228706
228707
228708
228709
228710
228711
228712
228713
228714
228715
228716
228717
228718
228719
228720
228721
228722
228723
228724
228725
228726
228727
228728
228729
228730
228731
228732
228733
228734
228735
228736
228737
228738
228739
// @ts-check
const { log, errors } = __webpack_require__(1)
const soapRequest = __webpack_require__(1331)
const {
parseTags,
parseValue,
parseUserAddress,
} = __webpack_require__(1555)
const xml2js = __webpack_require__(1513)
const { consulterDonneesTechniquesContractuelles } = __webpack_require__(1556)
/**
* Get user contract start date
* @param {string} url
* @param {string} apiAuthKey
* @param {string} userLogin
* @param {number} pointId
* @returns {Promise<Address>}
*/
async function findUserAddress(url, apiAuthKey, userLogin, pointId) {
log('info', 'Fetching user address')
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, false),
}).catch(err => {
log('error', 'Error while fetching user : ' + err)
throw errors.VENDOR_DOWN
})
const result = await xml2js.parseStringPromise(response.body, {
tagNameProcessors: [parseTags],
valueProcessors: [parseValue],
explicitArray: false,
})
try {
return parseUserAddress(result)
} catch (error) {
log('error', 'Error while processing user address: ' + error)
log(
'error',
`Enedis issue ${result.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${result.Envelope.Body.Fault.faultstring}`
)
throw errors.NOT_EXISTING_DIRECTORY
}
}
module.exports = { findUserAddress }
/***/ }),
/* 1605 */
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
const { log, updateOrCreate } = __webpack_require__(1)
const { isLocal } = __webpack_require__(1606)
const cozyClient = __webpack_require__(485)
async function saveAccountData(accountId, accountData) {
log('info', `saveAccountData: ${accountId}`)
let account = await getAccount(accountId)
account = await updateOrCreate(
[{ ...account, data: accountData }],
'io.cozy.accounts'
)
return account
/**
* Return account
* @param {string} accountId
* @returns {Account}
*/
async function getAccount(accountId) {
log('info', `getAccount: ${accountId}`)
const accounts = await cozyClient.data.findAll('io.cozy.accounts')
return accounts.filter(account =>
isLocal() ? account._id === accountId : account.account_type === accountId
async function getAccountForDelete(accountId, accountRev) {
log('info', `getAccountForDelete: ${accountId} ${accountRev}`)
const body = await cozyClient.fetchJSON(
'GET',
`/data/io.cozy.accounts/${accountId}?rev=${accountRev}`
)
log('debug', `getAccountForDelete: ${body}`)
return body
}
module.exports = { getAccount, saveAccountData, getAccountForDelete }
/* 1606 */
return (
process.env.NODE_ENV === 'development' ||
process.env.NODE_ENV === 'local' ||
process.env.NODE_ENV === 'standalone'
)
/**
* Verify if it's an alpha URL
* @returns {boolean}
*/
function isDev() {
return (
process.env.COZY_URL.includes('alpha') ||
process.env.COZY_URL.includes('cozy.tools')
)
}
module.exports = { isLocal, isDev }
228808
228809
228810
228811
228812
228813
228814
228815
228816
228817
228818
228819
228820
228821
228822
228823
228824
228825
228826
228827
228828
228829
228830
228831
228832
228833
228834
228835
228836
228837
228838
228839
228840
228841
228842
228843
228844
228845
228846
228847
228848
228849
228850
228851
228852
228853
228854
228855
228856
228857
228858
228859
228860
228861
228862
228863
228864
228865
228866
228867
228868
228869
228870
228871
228872
228873
228874
228875
228876
228877
228878
228879
228880
228881
228882
228883
228884
228885
228886
228887
228888
228889
228890
228891
228892
228893
228894
228895
228896
228897
228898
228899
228900
/***/ })
/******/ ]);
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ id: moduleId,
/******/ loaded: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = __webpack_module_cache__;
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ (() => {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = (module) => {
/******/ var getter = module && module.__esModule ?
/******/ () => (module['default']) :
/******/ () => (module);
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ (() => {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/node module decorator */
/******/ (() => {
/******/ __webpack_require__.nmd = (module) => {
/******/ module.paths = [];
/******/ if (!module.children) module.children = [];
/******/ return module;
/******/ };
/******/ })();
/******/
/************************************************************************/
/******/
/******/ // module cache are used so entry inlining is disabled
/******/ // startup
/******/ // Load entry module and return exports
/******/ var __webpack_exports__ = __webpack_require__(__webpack_require__.s = 0);
/******/
/******/ })()
;