@silexpert/core 0.4.242 → 0.4.243
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/utils/siretValidation.d.ts +1 -0
- package/es/utils/siretValidation.d.ts.map +1 -1
- package/es/utils/siretValidation.js +5 -0
- package/es/utils/siretValidation.js.map +1 -1
- package/js/utils/siretValidation.js +7 -0
- package/js/utils/siretValidation.js.map +1 -1
- package/package.json +1 -1
- package/ts/utils/siretValidation.ts +6 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siretValidation.d.ts","sourceRoot":"","sources":["../../ts/utils/siretValidation.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,QA2B1C"}
|
|
1
|
+
{"version":3,"file":"siretValidation.d.ts","sourceRoot":"","sources":["../../ts/utils/siretValidation.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,QA2B1C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,SAAO,GAAG,MAAM,CAI3E"}
|
|
@@ -26,4 +26,9 @@ export function validateSiret(siret) {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
+
export function getVatCodeBySiren(siren, countryCode = 'FR') {
|
|
30
|
+
const validSiren = siren.replace(/\s/g, '');
|
|
31
|
+
// @ts-ignore
|
|
32
|
+
return `${countryCode}${[12 + 3 * (validSiren % 97)] % 97}${validSiren}`;
|
|
33
|
+
}
|
|
29
34
|
//# sourceMappingURL=siretValidation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siretValidation.js","sourceRoot":"","sources":["../../ts/utils/siretValidation.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAErE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACf,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,UAAU,GAAG,CAAC,EAAE;gBAClB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAChD,OAAO,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAClD;YACD,OAAO,GAAG,GAAG,UAAU,CAAC;SACzB;QACD,OAAO,GAAG,GAAG,CAAC,CAAC;IACjB,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,IAAI,OAAO,GAAG,EAAE,KAAK,CAAC,EAAE;QACtB,wCAAwC;QACxC,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YACjC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACtD,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;aAClC;SACF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;SAClC;KACF;AACH,CAAC","sourcesContent":["export function validateSiret(siret: string) {\n if (!/^\\d{14}$/.test(siret)) throw new Error('Invalid SIRET format');\n\n const siretArray = Array.from(siret).map(Number).reverse();\n const luhnSum = siretArray.reduce((acc, v, i) => {\n if (i % 2 === 1) {\n const currentVal = v * 2;\n if (currentVal > 9) {\n const array = Array.from(currentVal.toString());\n return acc + Number(array[0]) + Number(array[1]);\n }\n return acc + currentVal;\n }\n return acc + v;\n }, 0);\n\n if (luhnSum % 10 !== 0) {\n // Specific rule for some La Poste SIRET\n if (siret.startsWith('356000000')) {\n const sum = siretArray.reduce((acc, v) => acc + v, 0);\n if (sum % 5 !== 0) {\n throw new Error('Invalid SIRET');\n }\n } else {\n throw new Error('Invalid SIRET');\n }\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"siretValidation.js","sourceRoot":"","sources":["../../ts/utils/siretValidation.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAErE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACf,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,UAAU,GAAG,CAAC,EAAE;gBAClB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAChD,OAAO,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAClD;YACD,OAAO,GAAG,GAAG,UAAU,CAAC;SACzB;QACD,OAAO,GAAG,GAAG,CAAC,CAAC;IACjB,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,IAAI,OAAO,GAAG,EAAE,KAAK,CAAC,EAAE;QACtB,wCAAwC;QACxC,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YACjC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACtD,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;aAClC;SACF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;SAClC;KACF;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,WAAW,GAAG,IAAI;IACjE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5C,aAAa;IACb,OAAO,GAAG,WAAW,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;AAC3E,CAAC","sourcesContent":["export function validateSiret(siret: string) {\n if (!/^\\d{14}$/.test(siret)) throw new Error('Invalid SIRET format');\n\n const siretArray = Array.from(siret).map(Number).reverse();\n const luhnSum = siretArray.reduce((acc, v, i) => {\n if (i % 2 === 1) {\n const currentVal = v * 2;\n if (currentVal > 9) {\n const array = Array.from(currentVal.toString());\n return acc + Number(array[0]) + Number(array[1]);\n }\n return acc + currentVal;\n }\n return acc + v;\n }, 0);\n\n if (luhnSum % 10 !== 0) {\n // Specific rule for some La Poste SIRET\n if (siret.startsWith('356000000')) {\n const sum = siretArray.reduce((acc, v) => acc + v, 0);\n if (sum % 5 !== 0) {\n throw new Error('Invalid SIRET');\n }\n } else {\n throw new Error('Invalid SIRET');\n }\n }\n}\n\nexport function getVatCodeBySiren(siren: string, countryCode = 'FR'): string {\n const validSiren = siren.replace(/\\s/g, '');\n // @ts-ignore\n return `${countryCode}${[12 + 3 * (validSiren % 97)] % 97}${validSiren}`;\n}"]}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.validateSiret = validateSiret;
|
|
7
|
+
exports.getVatCodeBySiren = getVatCodeBySiren;
|
|
7
8
|
|
|
8
9
|
function validateSiret(siret) {
|
|
9
10
|
if (!/^\d{14}$/.test(siret)) throw new Error('Invalid SIRET format');
|
|
@@ -36,4 +37,10 @@ function validateSiret(siret) {
|
|
|
36
37
|
}
|
|
37
38
|
}
|
|
38
39
|
}
|
|
40
|
+
|
|
41
|
+
function getVatCodeBySiren(siren, countryCode = 'FR') {
|
|
42
|
+
const validSiren = siren.replace(/\s/g, ''); // @ts-ignore
|
|
43
|
+
|
|
44
|
+
return `${countryCode}${[12 + 3 * (validSiren % 97)] % 97}${validSiren}`;
|
|
45
|
+
}
|
|
39
46
|
//# sourceMappingURL=siretValidation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siretValidation.js","mappings":";;;;;QAAgBA,a,GAAAA,a;;
|
|
1
|
+
{"version":3,"file":"siretValidation.js","mappings":";;;;;QAAgBA,a,GAAAA,a;QA6BAC,iB,GAAAA,iB;;AA7BV,SAAUD,aAAV,CAAwBE,KAAxB,EAAqC;EACzC,IAAI,CAAC,WAAWC,IAAX,CAAgBD,KAAhB,CAAL,EAA6B,MAAM,IAAIE,KAAJ,CAAU,sBAAV,CAAN;EAE7B,MAAMC,UAAU,GAAGC,KAAK,CAACC,IAAN,CAAWL,KAAX,EAAkBM,GAAlB,CAAsBC,MAAtB,EAA8BC,OAA9B,EAAnB;EACA,MAAMC,OAAO,GAAGN,UAAU,CAACO,MAAX,CAAkB,CAACC,GAAD,EAAMC,CAAN,EAASC,CAAT,KAAc;IAC9C,IAAIA,CAAC,GAAG,CAAJ,KAAU,CAAd,EAAiB;MACf,MAAMC,UAAU,GAAGF,CAAC,GAAG,CAAvB;;MACA,IAAIE,UAAU,GAAG,CAAjB,EAAoB;QAClB,MAAMC,KAAK,GAAGX,KAAK,CAACC,IAAN,CAAWS,UAAU,CAACE,QAAX,EAAX,CAAd;QACA,OAAOL,GAAG,GAAGJ,MAAM,CAACQ,KAAK,CAAC,CAAD,CAAN,CAAZ,GAAyBR,MAAM,CAACQ,KAAK,CAAC,CAAD,CAAN,CAAtC;MACD;;MACD,OAAOJ,GAAG,GAAGG,UAAb;IACD;;IACD,OAAOH,GAAG,GAAGC,CAAb;EACD,CAVe,EAUb,CAVa,CAAhB;;EAYA,IAAIH,OAAO,GAAG,EAAV,KAAiB,CAArB,EAAwB;IACtB;IACA,IAAIT,KAAK,CAACiB,UAAN,CAAiB,WAAjB,CAAJ,EAAmC;MACjC,MAAMC,GAAG,GAAGf,UAAU,CAACO,MAAX,CAAkB,CAACC,GAAD,EAAMC,CAAN,KAAYD,GAAG,GAAGC,CAApC,EAAuC,CAAvC,CAAZ;;MACA,IAAIM,GAAG,GAAG,CAAN,KAAY,CAAhB,EAAmB;QACjB,MAAM,IAAIhB,KAAJ,CAAU,eAAV,CAAN;MACD;IACF,CALD,MAKO;MACL,MAAM,IAAIA,KAAJ,CAAU,eAAV,CAAN;IACD;EACF;AACF;;AAEK,SAAUH,iBAAV,CAA4BoB,KAA5B,EAA2CC,WAAW,GAAG,IAAzD,EAA6D;EACjE,MAAMC,UAAU,GAAGF,KAAK,CAACG,OAAN,CAAc,KAAd,EAAqB,EAArB,CAAnB,CADiE,CAEjE;;EACA,OAAO,GAAGF,WAAW,GAAG,CAAC,KAAK,KAAKC,UAAU,GAAG,EAAlB,CAAN,IAA+B,EAAE,GAAGA,UAAU,EAAtE;AACD","names":["validateSiret","getVatCodeBySiren","siret","test","Error","siretArray","Array","from","map","Number","reverse","luhnSum","reduce","acc","v","i","currentVal","array","toString","startsWith","sum","siren","countryCode","validSiren","replace"],"sourceRoot":"","sources":["../../ts/utils/siretValidation.ts"],"sourcesContent":["export function validateSiret(siret: string) {\n if (!/^\\d{14}$/.test(siret)) throw new Error('Invalid SIRET format');\n\n const siretArray = Array.from(siret).map(Number).reverse();\n const luhnSum = siretArray.reduce((acc, v, i) => {\n if (i % 2 === 1) {\n const currentVal = v * 2;\n if (currentVal > 9) {\n const array = Array.from(currentVal.toString());\n return acc + Number(array[0]) + Number(array[1]);\n }\n return acc + currentVal;\n }\n return acc + v;\n }, 0);\n\n if (luhnSum % 10 !== 0) {\n // Specific rule for some La Poste SIRET\n if (siret.startsWith('356000000')) {\n const sum = siretArray.reduce((acc, v) => acc + v, 0);\n if (sum % 5 !== 0) {\n throw new Error('Invalid SIRET');\n }\n } else {\n throw new Error('Invalid SIRET');\n }\n }\n}\n\nexport function getVatCodeBySiren(siren: string, countryCode = 'FR'): string {\n const validSiren = siren.replace(/\\s/g, '');\n // @ts-ignore\n return `${countryCode}${[12 + 3 * (validSiren % 97)] % 97}${validSiren}`;\n}"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@silexpert/core",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.243",
|
|
4
4
|
"description": "Silex Core perform HTTP Request and object binding. Silex core helps developers to retrieve and return formatted object",
|
|
5
5
|
"homepage": "https://gitlab.compta-clementine.fr/dev/silex-api",
|
|
6
6
|
"main": "js/index.js",
|
|
@@ -25,4 +25,10 @@ export function validateSiret(siret: string) {
|
|
|
25
25
|
throw new Error('Invalid SIRET');
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function getVatCodeBySiren(siren: string, countryCode = 'FR'): string {
|
|
31
|
+
const validSiren = siren.replace(/\s/g, '');
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
return `${countryCode}${[12 + 3 * (validSiren % 97)] % 97}${validSiren}`;
|
|
28
34
|
}
|