diff --git a/CHANGELOG.md b/CHANGELOG.md index e42050865..e3a7536ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ All changes that impact users of this module are documented in this file, in the [Common Changelog](https://common-changelog.org) format with some additional specifications defined in the CONTRIBUTING file. This codebase adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased [minor] + +> Development of this release was supported by the [French Ministry for Foreign Affairs](https://www.diplomatie.gouv.fr/fr/politique-etrangere-de-la-france/diplomatie-numerique/) through its ministerial [State Startups incubator](https://beta.gouv.fr/startups/open-terms-archive.html) under the aegis of the Ambassador for Digital Affairs. + +### Added + +- Enable a service to be renamed into several services when exporting a dataset + ## 1.2.2 - 2024-05-22 _Full changeset and discussions: [#1075](https://github.com/OpenTermsArchive/engine/pull/1075)._ diff --git a/scripts/dataset/export/index.js b/scripts/dataset/export/index.js index 76ee4ca76..c273f82c4 100644 --- a/scripts/dataset/export/index.js +++ b/scripts/dataset/export/index.js @@ -31,27 +31,28 @@ export default async function generate({ archivePath, releaseDate }) { for await (const version of versionsRepository.iterate()) { const { content, fetchDate } = version; - const { serviceId, termsType } = renamer.applyRules(version.serviceId, version.termsType); - if (firstVersionDate > fetchDate) { - firstVersionDate = fetchDate; - } + for (const { serviceId, termsType } of renamer.applyRules(version.serviceId, version.termsType)) { + if (firstVersionDate > fetchDate) { + firstVersionDate = fetchDate; + } - if (fetchDate > lastVersionDate) { - lastVersionDate = fetchDate; - } + if (fetchDate > lastVersionDate) { + lastVersionDate = fetchDate; + } - services.add(serviceId); + services.add(serviceId); - const versionPath = generateVersionPath({ serviceId, termsType, fetchDate }); + const versionPath = generateVersionPath({ serviceId, termsType, fetchDate }); - logger.info({ message: versionPath, counter: index, hash: version.id }); + logger.info({ message: versionPath, counter: index, hash: version.id }); - archive.stream.append( - content, - { name: `${archive.basename}/${versionPath}` }, - ); - index++; + archive.stream.append( + content, + { name: `${archive.basename}/${versionPath}` }, + ); + index++; + } } archive.stream.append( diff --git a/scripts/utils/renamer/index.js b/scripts/utils/renamer/index.js index 93537c35c..2ea1bb812 100644 --- a/scripts/utils/renamer/index.js +++ b/scripts/utils/renamer/index.js @@ -18,28 +18,30 @@ export async function loadRules() { export function applyRules(serviceId, termsType) { const renamedServiceId = renamingRules.serviceNames[serviceId]; - if (renamedServiceId) { - console.log(`⌙ Rename service "${serviceId}" to "${renamedServiceId}"`); - serviceId = renamedServiceId; - } - - const renamedTermsType = renamingRules.termsTypes[termsType]; - - if (renamedTermsType) { - console.log(`⌙ Rename terms type "${termsType}" to "${renamedTermsType}" of "${serviceId}" service`); - termsType = renamedTermsType; - } - - const renamedServiceTermsType = renamingRules.termsTypesByService[serviceId] - && renamingRules.termsTypesByService[serviceId][termsType]; - - if (renamedServiceTermsType) { - console.log(`⌙ Specific rename terms type "${termsType}" to "${renamedServiceTermsType}" of "${serviceId}" service`); - termsType = renamedServiceTermsType; - } - - return { - serviceId, - termsType, - }; + return [].concat(renamedServiceId).map(renamedServiceId => { + if (renamedServiceId) { + console.log(`⌙ Rename service "${serviceId}" to "${renamedServiceId}"`); + serviceId = renamedServiceId; + } + + const renamedTermsType = renamingRules.termsTypes[termsType]; + + if (renamedTermsType) { + console.log(`⌙ Rename terms type "${termsType}" to "${renamedTermsType}" of "${serviceId}" service`); + termsType = renamedTermsType; + } + + const renamedServiceTermsType = renamingRules.termsTypesByService[serviceId] + && renamingRules.termsTypesByService[serviceId][termsType]; + + if (renamedServiceTermsType) { + console.log(`⌙ Specific rename terms type "${termsType}" to "${renamedServiceTermsType}" of "${serviceId}" service`); + termsType = renamedServiceTermsType; + } + + return { + serviceId, + termsType, + }; + }); } diff --git a/scripts/utils/renamer/rules/serviceNames.json b/scripts/utils/renamer/rules/serviceNames.json index 2adfa0e1f..1b95c32fa 100644 --- a/scripts/utils/renamer/rules/serviceNames.json +++ b/scripts/utils/renamer/rules/serviceNames.json @@ -88,5 +88,10 @@ "XfinityResidentialSubscription": "Xfinity Residential Services", "XfinityWebServices": "Xfinity Web Services", "Youtube": "YouTube", - "Verbaudet": "Vertbaudet" + "Verbaudet": "Vertbaudet", + "OpenAI": [ + "ChatGPT", + "DALL·E" + ], + "Grok": "xAI" }