{"_id":"@emilecalixte/ffa-categories","_rev":"5-3854739564d951ba7ff02e936a9f9089","name":"@emilecalixte/ffa-categories","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@emilecalixte/ffa-categories","version":"0.1.0","keywords":["ffa","fédération française d'athlétisme","france","utilities"],"author":{"name":"Emile Calixte"},"license":"MIT","_id":"@emilecalixte/ffa-categories@0.1.0","maintainers":[{"name":"emilecalixte","email":"calixte.emile@gmail.com"}],"homepage":"https://github.com/EmileCalixte/ffa-categories#readme","bugs":{"url":"https://github.com/EmileCalixte/ffa-categories/issues"},"dist":{"shasum":"cac4345f9138c6bb84105a0e8ac87f20d7e8a3c0","tarball":"https://registry.npmjs.org/@emilecalixte/ffa-categories/-/ffa-categories-0.1.0.tgz","fileCount":9,"integrity":"sha512-Hd2avjKmune5vT4qC0KYEBR96zXmXdAosUj6egUqZ/KpKGbCUlGhr6jO2cquboeZNFmktgxttnOja4iObroYTQ==","signatures":[{"sig":"MEQCIG1eZD2zWaSV832tOqTHiSiBiCbvjIILAcsm8+NVwgFCAiBEuV9Aux9axy2NSu8l7XdDIoTMowsiAZ1P6OQsU3rGHg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":69501},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"341b7030f928b114d49822768601852428fdf9bf","scripts":{"lint":"pnpm lint-path .","test":"vitest run","build":"tsup","format":"prettier \"./**/*.{js,ts,json}\" --write","prepare":"husky","lint-fix":"pnpm lint --fix","lint-path":"eslint --max-warnings=0 --no-warn-ignored","test:watch":"vitest"},"_npmUser":{"name":"emilecalixte","email":"calixte.emile@gmail.com"},"repository":{"url":"git+https://github.com/EmileCalixte/ffa-categories.git","type":"git"},"_npmVersion":"10.7.0","description":"Package utilitaire permettant de manipuler les catégories de la Fédération Française d'Athlétisme","directories":{},"lint-staged":{"*.{js,ts}":["pnpm format","pnpm lint-fix"]},"_nodeVersion":"20.14.0","_hasShrinkwrap":false,"packageManager":"pnpm@9.3.0+sha512.ee7b93e0c2bd11409c6424f92b866f31d3ea1bef5fbe47d3c7500cdc3c9668833d2e55681ad66df5b640c61fa9dc25d546efa54d76d7f8bf54b13614ac293631","devDependencies":{"tsup":"^8.3.5","husky":"^9.1.7","eslint":"^9.16.0","vitest":"^2.1.8","prettier":"^3.4.2","typescript":"^5.7.2","lint-staged":"^15.2.10","eslint-config-love":"^110.0.0","eslint-config-prettier":"^9.1.0","@types/eslint-config-prettier":"^6.11.3"},"_npmOperationalInternal":{"tmp":"tmp/ffa-categories_0.1.0_1733860822445_0.9290004023203384","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@emilecalixte/ffa-categories","version":"0.2.0","keywords":["ffa","fédération française d'athlétisme","france","utilities"],"author":{"name":"Emile Calixte"},"license":"MIT","_id":"@emilecalixte/ffa-categories@0.2.0","maintainers":[{"name":"emilecalixte","email":"calixte.emile@gmail.com"}],"homepage":"https://github.com/EmileCalixte/ffa-categories#readme","bugs":{"url":"https://github.com/EmileCalixte/ffa-categories/issues"},"dist":{"shasum":"bc69cb76b8715b0672781117921ff935a27b32ca","tarball":"https://registry.npmjs.org/@emilecalixte/ffa-categories/-/ffa-categories-0.2.0.tgz","fileCount":9,"integrity":"sha512-ifSBM9lRF4vhClgO5KT1rCG/2aLfEOmC5WHxN972vVjP/RJ/dTffIs1bKvofhoIkxvsQhxqwxrnUN4Qbvm4tsg==","signatures":[{"sig":"MEUCIQDfuTyp4y9tQXP/OJQ23xbuM6scxqbgsiaMJqwtEHHh8wIgC78jLOTewdD3cRxu6284h+qk6BxLoGLNoiVTds2AEwk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":78225},"main":"dist/index.js","type":"module","_from":"file:emilecalixte-ffa-categories-0.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"pnpm lint-path .","test":"vitest run","build":"tsup","format":"prettier \"./**/*.{js,ts,json}\" --write","lint-fix":"pnpm lint --fix","lint-path":"eslint --max-warnings=0 --no-warn-ignored","test:watch":"vitest"},"_npmUser":{"name":"emilecalixte","email":"calixte.emile@gmail.com"},"_resolved":"C:\\Users\\calix\\AppData\\Local\\Temp\\a9547c27de5e7a5df293337aba49e517\\emilecalixte-ffa-categories-0.2.0.tgz","_integrity":"sha512-ifSBM9lRF4vhClgO5KT1rCG/2aLfEOmC5WHxN972vVjP/RJ/dTffIs1bKvofhoIkxvsQhxqwxrnUN4Qbvm4tsg==","repository":{"url":"git+https://github.com/EmileCalixte/ffa-categories.git","type":"git"},"_npmVersion":"10.7.0","description":"Package utilitaire permettant de manipuler les catégories de la Fédération Française d'Athlétisme","directories":{},"lint-staged":{"*.{js,ts}":["pnpm format","pnpm lint-fix"]},"_nodeVersion":"20.14.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","husky":"^9.1.7","eslint":"^9.16.0","vitest":"^2.1.8","prettier":"^3.4.2","typescript":"^5.7.2","lint-staged":"^15.2.10","eslint-config-love":"^110.0.0","eslint-config-prettier":"^9.1.0","@types/eslint-config-prettier":"^6.11.3"},"_npmOperationalInternal":{"tmp":"tmp/ffa-categories_0.2.0_1733957904961_0.2402330599497784","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@emilecalixte/ffa-categories","version":"0.2.2","description":"Package utilitaire permettant de manipuler les catégories de la Fédération Française d'Athlétisme","author":{"name":"Emile Calixte"},"main":"dist/index.js","repository":{"type":"git","url":"git+https://github.com/EmileCalixte/ffa-categories.git"},"scripts":{"build":"tsup","test":"vitest run","test:watch":"vitest","format":"prettier \"./**/*.{js,ts,json}\" --write","lint-path":"eslint --max-warnings=0 --no-warn-ignored","lint":"pnpm lint-path .","lint-fix":"pnpm lint --fix","prepare":"husky"},"lint-staged":{"*.{js,ts}":["pnpm format","pnpm lint-fix"]},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"keywords":["ffa","fédération française d'athlétisme","france","utilities"],"license":"MIT","type":"module","packageManager":"pnpm@9.3.0+sha512.ee7b93e0c2bd11409c6424f92b866f31d3ea1bef5fbe47d3c7500cdc3c9668833d2e55681ad66df5b640c61fa9dc25d546efa54d76d7f8bf54b13614ac293631","devDependencies":{"@types/eslint-config-prettier":"^6.11.3","eslint":"^9.16.0","eslint-config-love":"^119.0.0","eslint-config-prettier":"^10.0.1","husky":"^9.1.7","lint-staged":"^15.2.10","prettier":"^3.4.2","tsup":"^8.3.5","typescript":"^5.7.2","vitest":"^3.0.2"},"_id":"@emilecalixte/ffa-categories@0.2.2","gitHead":"85654a0400c631846c781309de65c357083f2cc2","types":"./dist/index.d.ts","bugs":{"url":"https://github.com/EmileCalixte/ffa-categories/issues"},"homepage":"https://github.com/EmileCalixte/ffa-categories#readme","_nodeVersion":"22.11.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-9tZiuI1DwyFcrHCYUA/NekqQI2hFMZVOv7OzqYgW0l2pCongpjYQqxEKYL164RBgWENqiYaiA7eKR68xfKYraw==","shasum":"3cb9fe80280a653f0495dc18c2d7e79951567389","tarball":"https://registry.npmjs.org/@emilecalixte/ffa-categories/-/ffa-categories-0.2.2.tgz","fileCount":9,"unpackedSize":78689,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFH7SAC0sTPxOYAZHFzzbrWT/w8yI3ADj0atUk1ZiMt/AiEA8U9lm7IOmdkxCfqVBIbJ5/6a3Ov2ZQlFTpakvnQKPuk="}]},"_npmUser":{"name":"emilecalixte","email":"calixte.emile@gmail.com"},"directories":{},"maintainers":[{"name":"emilecalixte","email":"calixte.emile@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ffa-categories_0.2.2_1742147882292_0.4907590767815966"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-10T20:00:22.327Z","modified":"2025-03-16T17:58:02.669Z","0.1.0":"2024-12-10T20:00:22.629Z","0.2.0":"2024-12-11T22:58:25.170Z","0.2.1":"2025-03-15T14:29:38.355Z","0.2.2":"2025-03-16T17:58:02.496Z"},"bugs":{"url":"https://github.com/EmileCalixte/ffa-categories/issues"},"author":{"name":"Emile Calixte"},"license":"MIT","homepage":"https://github.com/EmileCalixte/ffa-categories#readme","keywords":["ffa","fédération française d'athlétisme","france","utilities"],"repository":{"type":"git","url":"git+https://github.com/EmileCalixte/ffa-categories.git"},"description":"Package utilitaire permettant de manipuler les catégories de la Fédération Française d'Athlétisme","maintainers":[{"name":"emilecalixte","email":"calixte.emile@gmail.com"}],"readme":"# FFA Categories\n\nUn paquet utilitaire permettant de manipuler les catégories de la Fédération Française d'Athlétisme au fil des années.\n\n## Installation\n\n```sh\nnpm install @emilecalixte/ffa-categories\n```\n\n## Utilisation\n\n```js\n// Module import\nimport { getCategory } from \"@emilecalixte/ffa-categories\";\n\n// CommonJS\nconst { getCategory } = require(\"@emilecalixte/ffa-categories\");\n\n\n// Obtenir la catégorie d'un coureur né en 2002 à la date du 29 octobre 2021\ngetCategory(2002, { date: new Date(\"2021-10-29\") }); // { code: \"JU\", name: \"Juniors\" }\n\n// Obtenir la catégorie d'un coureur né en 1970 à la date du 1er janvier 2025, avec ou sans les sous-catégories Masters détaillées\ngetCategory(1970, { date: new Date(\"2025-01-01\") }); // { code: \"M4\", name: \"Masters 4\" }\ngetCategory(1970, { date: new Date(\"2025-01-01\"), detailed: false }); // { code: \"MA\", name: \"Masters\" }\n\n// Obtenir la catégorie d'un coureur né en 1970 à la date du 1er janvier 2015, avec ou sans les sous-catégories Vétérans détaillées\ngetCategory(1970, { date: new Date(\"2015-01-01\") }); // { code: \"V1\", name: \"Vétérans 1\" }\ngetCategory(1970, { date: new Date(\"2015-01-01\"), detailed: false }); // { code: \"VE\", name: \"Vétérans\" }\n\n// Obtenir la catégorie d'un coureur né en 2004 à la date actuelle\ngetCategory(2004);\n```\n\n### Autres fonctions utilitaires\n\n```js\n// Module import\nimport { getCategoryList, getApplicableCategoriesYear, isCategoryCode } from \"@emilecalixte/ffa-categories\";\n\n// CommonJS\nconst { getCategoryList, getApplicableCategoriesYear, isCategoryCode } = require(\"@emilecalixte/ffa-categories\");\n\n\n// Obtenir la liste des catégories existantes à une date donnée\ngetCategoryList(new Date(\"2015-01-23\")); // { EA: \"École d'Athlétisme\", PO: \"Poussins\", ..., V1: \"Vétérans 1\", V2: ... }\n\n// Obtenir la liste des catégories existantes à une date données sans les détails des catégories \"Vétérans\" / \"Masters\"\ngetCategoryList(new Date(\"2025-03-21\"), false); // { BB: \"Baby Athlé\", EA: \"Éveil Athlétique\", ..., MA: \"Masters\" }\n\n// Obtenir la liste des catégories existantes à l'heure actuelle\ngetCategoryList();\n\n// Obtenir l'année des catégories applicables à une date donnée\ngetApplicableCategoriesYear(new Date(\"2012-12-31\")); // 2012\ngetApplicableCategoriesYear(new Date(\"2013-10-31\")); // 2013\ngetApplicableCategoriesYear(new Date(\"2013-11-01\")); // 2014\ngetApplicableCategoriesYear(new Date(\"2022-08-31\")); // 2022\ngetApplicableCategoriesYear(new Date(\"2022-09-01\")); // 2023\n\n// Savoir si un string est un code de catégorie valide ou non\nisCategoryCode(\"BB\"); // true\nisCategoryCode(\"MA\"); // true\nisCategoryCode(\"V3\"); // true\nisCategoryCode(\"IN\"); // false\n```\n\n### Constantes\n\n```js\n// Module import\nimport { ALL_CATEGORY_CODES, ALL_CATEGORY_NAMES } from \"@emilecalixte/ffa-categories\";\n\n// CommonJS\nconst { ALL_CATEGORY_CODES, ALL_CATEGORY_NAMES } = require(\"@emilecalixte/ffa-categories\");\n\n// Liste de tous les codes de catégories ayant existé\nconsole.log(ALL_CATEGORY_CODES); // [\"BB\", \"EA\", ..., \"VE\", \"V1\", ..., \"MA\", \"M1\", ..., \"M10\"]\n\n// Liste de tous les noms de catégories ayant existé\nconsole.log(ALL_CATEGORY_NAMES); // [\"Baby Athlé\", ..., \"Vétérans\", ..., \"Masters 10\"]\n```\n\n### Limitations\n\nA l'heure actuelle, l'historique des catégories avant 2012 n'est pas garanti.\n\n### Historique des changements de catégories\n\nListe des événements connus et pris en compte depuis 2012 :\n\n- Avant 2013, les années de naissance pour chaque catégorie changent au 1er janvier de chaque année. A partir du 1er novembre 2013, le changement a lieu au 1er novembre de chaque année (à partir du 1er novembre de l'année N, les catégories de l'année N+1 s'appliquent)\n- A partir du 1er novembre 2015 (catégories de 2016) : la catégorie \"Baby Athlé\" apparaît avant la catégorie \"École d'Athlétisme\", les catégories \"Vétérans\" sont appelées \"Masters\" et la catégorie \"Masters 5\" apparaît (auparavant la dernière catégorie était \"Vétérans 4\")\n- A partir du 1er novembre 2019 (catégories de 2020) : les catégories \"Masters\" sont maintenant subdivisées en 11 catégories (Masters 0 à 10, code M0 à M10 contre V1 à V5 auparavant) par tranches de 5 ans (contre 10 ans auparavant), et prennent effet 5 ans plus jeune\n- A partir du 1er septembre 2022, les années de naissance pour chaque catégorie changent au 1er septembre (à partir du 1er septembre de l'année N, les catégories de l'année N+1 s'appliquent). Aussi, la catégorie \"École d'Athlétisme\" est désormais appelée \"Éveil Athlétique\"\n- A partir du 1er septembre 2024 (catégories de 2025) : La catégorie Masters passe de l'historique code \"VE\" au code \"MA\"\n\n## Cloner le projet\n\n### Installation des dépendances\n\n```sh\npnpm install\n```\n\n### Tests unitaires\n\n```sh\npnpm test\n```\n\n### Build\n\n```sh\npnpm build\n```\n\n### Publier une nouvelle version\n\n1. Modifier la version dans le `package.json`, créer un changelog dans le dossier `changelogs` et commiter\n2. Créer le tag et la release sur GitHub\n3. Générer les builds avec `pnpm build`\n4. Publier la version avec `npm publish`\n","readmeFilename":"README.md"}