bsn-js 1.0.0 → 1.0.4

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/README.md CHANGED
@@ -1,2 +1,62 @@
1
1
  [![lint-test-build](https://github.com/willemverbuyst/bsn-js/actions/workflows/lint-test-build.yml/badge.svg)](https://github.com/willemverbuyst/bsn-js/actions/workflows/lint-test-build.yml)
2
2
  [![pages-build-deployment](https://github.com/willemverbuyst/bsn-js/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/willemverbuyst/bsn-js/actions/workflows/pages/pages-build-deployment)
3
+
4
+ # bsn-js
5
+
6
+ bsn-js can be used to generate a test BSN (burger service nummer) or validate an existing BSN
7
+
8
+ works for JavaScript and TypeScript (type definitions included)
9
+
10
+ ## installation
11
+
12
+ `npm install bsn-js`
13
+
14
+ or using yarn
15
+
16
+ `yarn add bsn-js`
17
+
18
+ <br>
19
+
20
+ ## usage
21
+
22
+ #### validate existing BSN
23
+
24
+ `import { isValidBSN } from 'bsn-js'`
25
+
26
+ or
27
+
28
+ `const { isValidBSN } = require('bsn-js')`
29
+
30
+ pass the BSN (string) to the function and it will return `true` or `false`
31
+
32
+ example: `const validBSN = isValidBSN('12312312') # false`
33
+
34
+ <br>
35
+
36
+ #### generate BSN for testing
37
+
38
+ `import { generateBSN } from 'bsn-js'`
39
+
40
+ or
41
+
42
+ `const { generateBSN } = require('bsn-js)`
43
+
44
+ test BSNs will consist of 9 characters
45
+
46
+ the Dutch authority has reserved BSNs starting with 0000 and 99999 for testing
47
+
48
+ the generetated BSN will start with 99999 by default
49
+
50
+ `const bsn = generateBSN() # 999999400`
51
+
52
+ when the function generateBSN is given true as argument, it will return a BSN starting with 0000
53
+
54
+ `const bsn = generateBSN(true) # 000078840`
55
+
56
+ <br>
57
+
58
+ ## information BSN
59
+
60
+ [official docs](https://www.government.nl/topics/personal-data/citizen-service-number-bsn)
61
+
62
+ [11 check](https://en.wikipedia.org/wiki/Check_digit)
package/lib/generator.js CHANGED
@@ -4,7 +4,7 @@ exports.generateBSN = void 0;
4
4
  var generateBSN = function (withLeadingZeroes) {
5
5
  var bsn = {
6
6
  leading: '9999',
7
- i4: Math.floor(Math.random() * 10),
7
+ i4: 9,
8
8
  i5: Math.floor(Math.random() * 10),
9
9
  i6: Math.floor(Math.random() * 10),
10
10
  i7: Math.floor(Math.random() * 10),
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"/","sources":["generator.ts"],"names":[],"mappings":";;;AAgBO,IAAM,WAAW,GAAG,UAAC,iBAA2B;IACtD,IAAM,GAAG,GAAQ;QAChB,OAAO,EAAE,MAAM;QACf,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QAClC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QAClC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QAClC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QAClC,EAAE,EAAE,CAAC;KACL,CAAA;IAED,IAAI,iBAAiB;QAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAA;IAE3C,IAAM,GAAG,GACR,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAC7C,UAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAf,CAAe,EAC5B,CAAC,CACD;QACD,CAAC,GAAG,GAAG,CAAC,EAAE;QACV,CAAC,GAAG,GAAG,CAAC,EAAE;QACV,CAAC,GAAG,GAAG,CAAC,EAAE;QACV,CAAC,GAAG,GAAG,CAAC,EAAE,CAAA;IAEX,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;IAEpD,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE;QAC7B,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;QACX,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;KACV;IAED,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;QAChC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;QACX,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;KACV;IAED,OAAO,UAAG,GAAG,CAAC,OAAO,SAAG,GAAG,CAAC,EAAE,SAAG,GAAG,CAAC,EAAE,SAAG,GAAG,CAAC,EAAE,SAAG,GAAG,CAAC,EAAE,SAAG,GAAG,CAAC,EAAE,CAAE,CAAA;AACrE,CAAC,CAAA;AAnCY,QAAA,WAAW,eAmCvB"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"/","sources":["generator.ts"],"names":[],"mappings":";;;AAgBO,IAAM,WAAW,GAAG,UAAC,iBAA2B;IACtD,IAAM,GAAG,GAAQ;QAChB,OAAO,EAAE,MAAM;QACf,EAAE,EAAE,CAAC;QACL,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QAClC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QAClC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QAClC,EAAE,EAAE,CAAC;KACL,CAAA;IAED,IAAI,iBAAiB;QAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAA;IAE3C,IAAM,GAAG,GACR,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAC7C,UAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAf,CAAe,EAC5B,CAAC,CACD;QACD,CAAC,GAAG,GAAG,CAAC,EAAE;QACV,CAAC,GAAG,GAAG,CAAC,EAAE;QACV,CAAC,GAAG,GAAG,CAAC,EAAE;QACV,CAAC,GAAG,GAAG,CAAC,EAAE,CAAA;IAEX,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;IAEpD,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE;QAC7B,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;QACX,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;KACV;IAED,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;QAChC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;QACX,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;KACV;IAED,OAAO,UAAG,GAAG,CAAC,OAAO,SAAG,GAAG,CAAC,EAAE,SAAG,GAAG,CAAC,EAAE,SAAG,GAAG,CAAC,EAAE,SAAG,GAAG,CAAC,EAAE,SAAG,GAAG,CAAC,EAAE,CAAE,CAAA;AACrE,CAAC,CAAA;AAnCY,QAAA,WAAW,eAmCvB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bsn-js",
3
- "version": "1.0.0",
3
+ "version": "1.0.4",
4
4
  "description": "Generator/validator for (Dutch) BSNs",
5
5
  "repository": "https://github.com/willemverbuyst/bsn-js",
6
6
  "author": "Willem Verbuyst",
@@ -29,7 +29,7 @@
29
29
  "size": "size-limit",
30
30
  "test": "jest",
31
31
  "build": "tsc -p tsconfig.json",
32
- "clean": "rm -rf lib build",
32
+ "clean": "rm -rf ./lib",
33
33
  "docs": "typedoc --entryPoints src/index.ts",
34
34
  "prepare": "npm run clean && npm run build",
35
35
  "prepublishOnly": "npm test && npm run lint",
@@ -1 +0,0 @@
1
- export {};
@@ -1,12 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- var generator_1 = require("./generator");
4
- var validator_1 = require("./validator");
5
- describe('#generateBSN', function () {
6
- var testcases = Array.from({ length: 50 }, function (_, i) { return i + 1; });
7
- test.each(testcases)('%s: should generate valid BSN)', function () {
8
- return expect((0, validator_1.isValidBSN)((0, generator_1.generateBSN)())).toBe(true);
9
- });
10
- test.each(testcases)('%s: with leading "0000" should generate valid BSN)', function () { return expect((0, validator_1.isValidBSN)((0, generator_1.generateBSN)(true))).toBe(true); });
11
- });
12
- //# sourceMappingURL=generator.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator.spec.js","sourceRoot":"/","sources":["generator.spec.ts"],"names":[],"mappings":";;AAAA,yCAAyC;AACzC,yCAAwC;AAExC,QAAQ,CAAC,cAAc,EAAE;IACxB,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,EAAL,CAAK,CAAC,CAAA;IAE7D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,gCAAgC,EAAE;QACtD,OAAA,MAAM,CAAC,IAAA,sBAAU,EAAC,IAAA,uBAAW,GAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAA5C,CAA4C,CAC5C,CAAA;IAED,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CACnB,oDAAoD,EACpD,cAAM,OAAA,MAAM,CAAC,IAAA,sBAAU,EAAC,IAAA,uBAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAhD,CAAgD,CACtD,CAAA;AACF,CAAC,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,116 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- var validator_1 = require("./validator");
4
- var validBSNs = [
5
- '000006944',
6
- '000003086',
7
- '000006154',
8
- '999993239',
9
- '000003803',
10
- '000007900',
11
- '999992089',
12
- '799890054',
13
- '000005083',
14
- '000001533',
15
- '000000681',
16
- '999999941',
17
- '999998882',
18
- '999994505',
19
- '999997282',
20
- '000006506',
21
- '000005642',
22
- '000002082',
23
- '000001156',
24
- '999990202',
25
- '000004583',
26
- '999999606',
27
- '000006580',
28
- '999995315',
29
- '000007006',
30
- '000002264',
31
- '000001880',
32
- '000005551',
33
- '000007560',
34
- '000002963',
35
- '000008230',
36
- '999994657',
37
- '999999357',
38
- '999993768',
39
- '000009611',
40
- '000000929',
41
- '999995224',
42
- '000005873',
43
- '000007869',
44
- '999992260',
45
- '999994438',
46
- '999996526',
47
- '999991541',
48
- '999999229',
49
- '000005137',
50
- '999994256',
51
- '000002501',
52
- '999993562',
53
- '999990779',
54
- '999993306',
55
- ];
56
- var invalidBSNs = [
57
- '00001',
58
- '0000000001',
59
- '1212121212',
60
- '999993237',
61
- '000003802',
62
- '000007901',
63
- '999992189',
64
- '799890053',
65
- '000015083',
66
- '000001532',
67
- '0100006121',
68
- '999999942',
69
- '998882',
70
- '999994504',
71
- '99997282',
72
- '000006505',
73
- '200081642',
74
- '000082083',
75
- '000081156',
76
- '999080202',
77
- '000081880',
78
- '000085551',
79
- '000087560',
80
- '000082963',
81
- '000088230',
82
- '999984657',
83
- '999989357',
84
- '999983768',
85
- '000089611',
86
- '000080929',
87
- '999985224',
88
- '000085873',
89
- 'fake-bsn',
90
- '999982260',
91
- '999984438',
92
- '9999aa652',
93
- '999981541',
94
- '999989229',
95
- '000085137',
96
- '99998425x',
97
- '000082501',
98
- '999983562',
99
- '999980779',
100
- '979983306',
101
- '070008230',
102
- '97999465a',
103
- '979999357',
104
- '979993768',
105
- '070009611',
106
- '070000929',
107
- ];
108
- describe('#isValidBSN', function () {
109
- test.each(validBSNs)('isValidBSN(%s) returns true', function (BSN) {
110
- return expect((0, validator_1.isValidBSN)(BSN)).toBe(true);
111
- });
112
- test.each(invalidBSNs)('isValidBSN(%s) returns false', function (BSN) {
113
- return expect((0, validator_1.isValidBSN)(BSN)).toBe(false);
114
- });
115
- });
116
- //# sourceMappingURL=validator.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validator.spec.js","sourceRoot":"/","sources":["validator.spec.ts"],"names":[],"mappings":";;AAAA,yCAAwC;AAExC,IAAM,SAAS,GAAG;IACjB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;CACX,CAAA;AAED,IAAM,WAAW,GAAG;IACnB,OAAO;IACP,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;CACX,CAAA;AAED,QAAQ,CAAC,aAAa,EAAE;IACvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,6BAA6B,EAAE,UAAA,GAAG;QACtD,OAAA,MAAM,CAAC,IAAA,sBAAU,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAAlC,CAAkC,CAClC,CAAA;IAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,8BAA8B,EAAE,UAAA,GAAG;QACzD,OAAA,MAAM,CAAC,IAAA,sBAAU,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IAAnC,CAAmC,CACnC,CAAA;AACF,CAAC,CAAC,CAAA"}