shufflecom-calculations 5.1.2 → 6.0.1

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.
@@ -22,7 +22,11 @@ export declare enum Currency {
22
22
  PUMP = "PUMP",
23
23
  GC = "GC",
24
24
  SC = "SC",
25
- CAD = "CAD"
25
+ CAD = "CAD",
26
+ BRL = "BRL",
27
+ ARS = "ARS",
28
+ MXN = "MXN",
29
+ VND = "VND"
26
30
  }
27
31
  export declare enum CurrencyPlatform {
28
32
  SHUFFLE = "SHUFFLE",
@@ -27,6 +27,10 @@ var Currency;
27
27
  Currency["GC"] = "GC";
28
28
  Currency["SC"] = "SC";
29
29
  Currency["CAD"] = "CAD";
30
+ Currency["BRL"] = "BRL";
31
+ Currency["ARS"] = "ARS";
32
+ Currency["MXN"] = "MXN";
33
+ Currency["VND"] = "VND";
30
34
  })(Currency || (exports.Currency = Currency = {}));
31
35
  var CurrencyPlatform;
32
36
  (function (CurrencyPlatform) {
@@ -85,6 +89,10 @@ CurrencyRegistry.REGISTRY = {
85
89
  [Currency.TRUMP]: { type: CurrencyType.CRYPTO, platform: CurrencyPlatform.SHUFFLE },
86
90
  [Currency.PUMP]: { type: CurrencyType.CRYPTO, platform: CurrencyPlatform.SHUFFLE },
87
91
  [Currency.CAD]: { type: CurrencyType.FIAT, platform: CurrencyPlatform.SHUFFLE },
92
+ [Currency.BRL]: { type: CurrencyType.FIAT, platform: CurrencyPlatform.SHUFFLE },
93
+ [Currency.ARS]: { type: CurrencyType.FIAT, platform: CurrencyPlatform.SHUFFLE },
94
+ [Currency.MXN]: { type: CurrencyType.FIAT, platform: CurrencyPlatform.SHUFFLE },
95
+ [Currency.VND]: { type: CurrencyType.FIAT, platform: CurrencyPlatform.SHUFFLE },
88
96
  [Currency.GC]: { type: CurrencyType.SWEEPSTAKES, platform: CurrencyPlatform.SWEEP_STAKES },
89
97
  [Currency.SC]: { type: CurrencyType.SWEEPSTAKES, platform: CurrencyPlatform.SWEEP_STAKES },
90
98
  };
@@ -1 +1 @@
1
- {"version":3,"file":"currency.js","sourceRoot":"","sources":["../../src/utils/currency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"currency.js","sourceRoot":"","sources":["../../src/utils/currency.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shufflecom-calculations",
3
- "version": "5.1.2",
3
+ "version": "6.0.1",
4
4
  "description": "",
5
5
  "types": "lib/index.d.ts",
6
6
  "main": "lib/index.js",
@@ -12,9 +12,10 @@
12
12
  "bignumber.js": "^11.x",
13
13
  "bs58": "^6.0.0",
14
14
  "dayjs": "^1.x",
15
- "lodash": "^4.x"
15
+ "lodash": "^4.x",
16
+ "stdnum": "^1.12.6"
16
17
  },
17
18
  "author": "",
18
19
  "license": "ISC",
19
- "gitHead": "b82b7e49df6e48db5e47a55087866c4b0ee26bb2"
20
+ "gitHead": "3f1d640c29853b02438f6a657a4965bacfe64aae"
20
21
  }
@@ -0,0 +1,137 @@
1
+ import { FIAT_DOCUMENT_SPECS, FiatDocumentType, compactFiatDocument, formatFiatDocument, isFiatDocumentValid } from '.';
2
+
3
+ const { CPF, CURP, CUIL_CUIT } = FiatDocumentType;
4
+
5
+ describe('fiat documents', () => {
6
+ describe('isFiatDocumentValid', () => {
7
+ it('accepts each document formatted or bare', () => {
8
+ expect(isFiatDocumentValid(CPF, '123.456.789-09')).toBe(true);
9
+ expect(isFiatDocumentValid(CPF, '12345678909')).toBe(true);
10
+ expect(isFiatDocumentValid(CUIL_CUIT, '20-32456789-6')).toBe(true);
11
+ expect(isFiatDocumentValid(CUIL_CUIT, '20324567896')).toBe(true);
12
+ expect(isFiatDocumentValid(CURP, 'BOXW310820HNERXN09')).toBe(true);
13
+ });
14
+
15
+ it('rejects wrong length, stray characters and bad prefixes', () => {
16
+ expect(isFiatDocumentValid(CPF, '1234567890')).toBe(false);
17
+ expect(isFiatDocumentValid(CPF, '1234567890a')).toBe(false);
18
+ expect(isFiatDocumentValid(CUIL_CUIT, '19-12345678-9')).toBe(false);
19
+ expect(isFiatDocumentValid(CUIL_CUIT, '2012345678')).toBe(false);
20
+ expect(isFiatDocumentValid(CURP, 'ABCD123456HDFXYZ')).toBe(false);
21
+ });
22
+
23
+ it("tolerates a document's own separators in any position", () => {
24
+ expect(isFiatDocumentValid(CPF, '123-456-789-09')).toBe(true);
25
+ expect(isFiatDocumentValid(CUIL_CUIT, '20-3245678-96')).toBe(true);
26
+ });
27
+
28
+ it('rejects a separator the document does not use — a dotted CUIT is not a CUIT', () => {
29
+ expect(isFiatDocumentValid(CUIL_CUIT, '20.32456789.6')).toBe(false);
30
+ expect(isFiatDocumentValid(CURP, 'BOXW-310820-HNERXN09')).toBe(false);
31
+ });
32
+ });
33
+
34
+ describe('compactFiatDocument', () => {
35
+ it('strips separators and upper-cases, per document column', () => {
36
+ expect(compactFiatDocument('cpf', '123.456.789-09')).toBe('12345678909');
37
+ expect(compactFiatDocument('cuilCuit', '20-32456789-6')).toBe('20324567896');
38
+ expect(compactFiatDocument('curp', 'boxw310820hnerxn09')).toBe('BOXW310820HNERXN09');
39
+ });
40
+
41
+ it('is idempotent on an already-canonical value', () => {
42
+ expect(compactFiatDocument('cpf', '12345678909')).toBe('12345678909');
43
+ expect(compactFiatDocument('curp', 'BOXW310820HNERXN09')).toBe('BOXW310820HNERXN09');
44
+ });
45
+
46
+ it('passes a non-document column through untouched', () => {
47
+ expect(compactFiatDocument('email', 'Fiat.User@Example.TEST')).toBe('Fiat.User@Example.TEST');
48
+ expect(compactFiatDocument('phoneNumber', '+14165550100')).toBe('+14165550100');
49
+ });
50
+ });
51
+
52
+ describe('formatFiatDocument', () => {
53
+ it('re-punctuates a stored document into the shape the product spec names', () => {
54
+ expect(formatFiatDocument('cpf', '12345678909')).toBe('123.456.789-09');
55
+ expect(formatFiatDocument('cuilCuit', '20324567896')).toBe('20-32456789-6');
56
+ expect(formatFiatDocument('curp', 'BOXW310820HNERXN09')).toBe('BOXW310820HNERXN09');
57
+ });
58
+
59
+ it('round-trips against compactFiatDocument and is idempotent', () => {
60
+ for (const [column, stored] of [
61
+ ['cpf', '12345678909'],
62
+ ['cuilCuit', '20324567896'],
63
+ ['curp', 'BOXW310820HNERXN09'],
64
+ ] as const) {
65
+ const formatted = formatFiatDocument(column, stored);
66
+ expect(compactFiatDocument(column, formatted)).toBe(stored);
67
+ expect(formatFiatDocument(column, formatted)).toBe(formatted);
68
+ }
69
+ });
70
+
71
+ it('passes a non-document column through untouched', () => {
72
+ expect(formatFiatDocument('email', 'a@b.test')).toBe('a@b.test');
73
+ });
74
+ });
75
+
76
+ describe('CUIT prefixes', () => {
77
+ // AFIP check digit over base '<prefix>32456789', so each case is a genuinely valid CUIT.
78
+ const W = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
79
+ const validCuitFor = (prefix: string) => {
80
+ const base = `${prefix}32456789`;
81
+ const sum = [...base].reduce((acc, d, i) => acc + Number(d) * W[i], 0);
82
+ const remainder = 11 - (sum % 11);
83
+ return base + (remainder === 11 ? 0 : remainder === 10 ? 9 : remainder);
84
+ };
85
+
86
+ // AFIP: 20 men, 27 women, 23-26 either (when the usual prefix is already taken), 30/33
87
+ // legal persons. 34 is not in AFIP's summary but is in stdnum's list and long-standing
88
+ // practice, so we keep it — a superset can only fail at the PSP, never lock a user out.
89
+ // stdnum's own list omits 25 and 26, which is why we compute the check digit ourselves.
90
+ it.each(['20', '23', '24', '25', '26', '27', '30', '33', '34'])('accepts a valid CUIT with the %s prefix', prefix => {
91
+ expect(isFiatDocumentValid(CUIL_CUIT, validCuitFor(prefix))).toBe(true);
92
+ });
93
+
94
+ // An individual's 8 middle digits are their DNI, zero-padded when shorter.
95
+ it('accepts a zero-padded DNI', () => {
96
+ expect(isFiatDocumentValid(CUIL_CUIT, '20051234562')).toBe(true);
97
+ expect(isFiatDocumentValid(CUIL_CUIT, '27000512341')).toBe(true);
98
+ });
99
+
100
+ it('still rejects a prefix that is not issued at all', () => {
101
+ expect(isFiatDocumentValid(CUIL_CUIT, validCuitFor('19'))).toBe(false);
102
+ expect(isFiatDocumentValid(CUIL_CUIT, validCuitFor('28'))).toBe(false);
103
+ });
104
+ });
105
+
106
+ describe('issuer checksums', () => {
107
+ // Each value below is well-formed but carries wrong check digits — a mistyped document,
108
+ // which is exactly what the checksum exists to catch before it reaches the PSP.
109
+ it.each([
110
+ [CUIL_CUIT, '20-32456789-4'],
111
+ [CURP, 'BOXW310820HNERXN08'],
112
+ [CPF, '12345678900'],
113
+ ])('rejects a well-formed but checksum-invalid %s', (documentType, value) => {
114
+ expect(isFiatDocumentValid(documentType, value)).toBe(false);
115
+ });
116
+
117
+ it('rejects an all-zero DNI, which the CUIT check digit alone would let through', () => {
118
+ // 20-00000000-1 and 27-00000000-6 both carry correct check digits.
119
+ expect(isFiatDocumentValid(CUIL_CUIT, '20000000001')).toBe(false);
120
+ expect(isFiatDocumentValid(CUIL_CUIT, '27000000006')).toBe(false);
121
+ // A real DNI that merely starts with zeros still passes.
122
+ expect(isFiatDocumentValid(CUIL_CUIT, '27000512341')).toBe(true);
123
+ });
124
+
125
+ it('rejects every repeated-digit CPF, which mod-11 alone would let through', () => {
126
+ for (let digit = 0; digit <= 9; digit++) {
127
+ expect(isFiatDocumentValid(CPF, String(digit).repeat(11))).toBe(false);
128
+ }
129
+ });
130
+
131
+ it('keeps a checksum on every document, so a new one is a deliberate omission', () => {
132
+ for (const spec of Object.values(FIAT_DOCUMENT_SPECS)) {
133
+ expect(typeof spec.checksum).toBe('function');
134
+ }
135
+ });
136
+ });
137
+ });
@@ -0,0 +1,105 @@
1
+ import * as arCuit from 'stdnum/lib/cjs/ar/cuit';
2
+ import * as brCpf from 'stdnum/lib/cjs/br/cpf';
3
+ import * as mxCurp from 'stdnum/lib/cjs/mx/curp';
4
+ import { CPF_REGEX, CUIL_CUIT_REGEX, CURP_REGEX } from '../regex';
5
+
6
+ /**
7
+ * Government-issued documents collected for fiat payments.
8
+ */
9
+ export enum FiatDocumentType {
10
+ CPF = 'CPF',
11
+ CURP = 'CURP',
12
+ CUIL_CUIT = 'CUIL_CUIT',
13
+ }
14
+
15
+ export type FiatDocumentColumn = 'cpf' | 'curp' | 'cuilCuit';
16
+
17
+ export type FiatDocumentSpec = {
18
+ /** Column on user_fiat_information holding this document. */
19
+ column: FiatDocumentColumn;
20
+ pattern: RegExp;
21
+ /** Strips separators and upper-cases. */
22
+ compact: (value: string) => string;
23
+ /** Opposite of compact */
24
+ format: (value: string) => string;
25
+ /**
26
+ * Issuer check-digit validation of the compacted value, applied on top of `pattern`.
27
+ */
28
+ checksum?: (value: string) => boolean;
29
+ };
30
+
31
+ /**
32
+ * Repeated digits pass the CPF checksum but must be explicitly rejected
33
+ * https://lookuptax.com/docs/how-to-verify/cpf-verification-brazil
34
+ */
35
+ const CPF_REPEATED_DIGITS = /^(\d)\1+$/;
36
+
37
+ function hasValidCpfCheckDigit(value: string): boolean {
38
+ return !CPF_REPEATED_DIGITS.test(value) && brCpf.validate(value).isValid;
39
+ }
40
+
41
+ /**
42
+ * AFIP's CUIT check digit, computed here rather than via stdnum due to some algorithm updates.
43
+ * https://lookuptax.com/docs/tax-identification-number/argentina-tax-id-guide
44
+ */
45
+ const CUIT_WEIGHTS = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
46
+
47
+ function hasValidCuitCheckDigit(value: string): boolean {
48
+ if (value.slice(2, 10) === '00000000') return false;
49
+
50
+ const sum = CUIT_WEIGHTS.reduce((acc, weight, index) => acc + Number(value[index]) * weight, 0);
51
+ const remainder = 11 - (sum % 11);
52
+ const expected = remainder === 11 ? 0 : remainder === 10 ? 9 : remainder;
53
+ return expected === Number(value[10]);
54
+ }
55
+
56
+ /**
57
+ * One row per government-issued document we collect. Adding a fiat currency that needs a new
58
+ * document means adding a FiatDocumentType, a column, and a row here — nothing else branches
59
+ * per country.
60
+ */
61
+ export const FIAT_DOCUMENT_SPECS: Record<FiatDocumentType, FiatDocumentSpec> = {
62
+ [FiatDocumentType.CPF]: {
63
+ column: 'cpf',
64
+ pattern: CPF_REGEX,
65
+ compact: brCpf.compact,
66
+ format: brCpf.format,
67
+ checksum: hasValidCpfCheckDigit,
68
+ },
69
+ [FiatDocumentType.CURP]: {
70
+ column: 'curp',
71
+ pattern: CURP_REGEX,
72
+ compact: mxCurp.compact,
73
+ format: mxCurp.format,
74
+ checksum: value => mxCurp.validate(value).isValid,
75
+ },
76
+ [FiatDocumentType.CUIL_CUIT]: {
77
+ column: 'cuilCuit',
78
+ pattern: CUIL_CUIT_REGEX,
79
+ compact: arCuit.compact,
80
+ format: arCuit.format,
81
+ checksum: hasValidCuitCheckDigit,
82
+ },
83
+ };
84
+
85
+ export const DOCUMENT_TYPE_TO_COLUMN: Record<FiatDocumentType, FiatDocumentColumn> = Object.fromEntries(
86
+ Object.entries(FIAT_DOCUMENT_SPECS).map(([type, spec]) => [type, spec.column]),
87
+ ) as Record<FiatDocumentType, FiatDocumentColumn>;
88
+
89
+ const SPEC_BY_COLUMN = new Map<FiatDocumentColumn, FiatDocumentSpec>(Object.values(FIAT_DOCUMENT_SPECS).map(spec => [spec.column, spec]));
90
+
91
+ export function isFiatDocumentValid(documentType: FiatDocumentType, value: string): boolean {
92
+ const { pattern, compact, checksum } = FIAT_DOCUMENT_SPECS[documentType];
93
+ const canonical = compact(value);
94
+ return pattern.test(canonical) && (!checksum || checksum(canonical));
95
+ }
96
+
97
+ export function compactFiatDocument(column: string, value: string): string {
98
+ const spec = SPEC_BY_COLUMN.get(column as FiatDocumentColumn);
99
+ return spec ? spec.compact(value) : value;
100
+ }
101
+
102
+ export function formatFiatDocument(column: string, value: string): string {
103
+ const spec = SPEC_BY_COLUMN.get(column as FiatDocumentColumn);
104
+ return spec ? spec.format(value) : value;
105
+ }
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './regex';
2
+ export * from './fiat-document';
2
3
 
3
4
  export { hexToBytes } from './utils/hex-to-bytes';
4
5
  export { calculateEdgeMultiplier } from './utils/edge';
@@ -96,6 +96,7 @@ export enum SportsCashoutFailedReason {
96
96
  SPORTS_MARKET_CLOSED = 'SPORTS_MARKET_CLOSED',
97
97
  SPORTS_MARKET_CASHOUT_NOT_ENABLED = 'SPORTS_MARKET_CASHOUT_NOT_ENABLED',
98
98
  BOOSTED_BET_NOT_ALLOWED_CASHOUT = 'BOOSTED_BET_NOT_ALLOWED_CASHOUT',
99
+ CUSTOM_BET_NOT_ALLOWED_CASHOUT = 'CUSTOM_BET_NOT_ALLOWED_CASHOUT',
99
100
  }
100
101
 
101
102
  export enum SportsBetType {
@@ -33,6 +33,10 @@ export enum Currency {
33
33
 
34
34
  // Fiat (shufflecom only)
35
35
  CAD = 'CAD',
36
+ BRL = 'BRL',
37
+ ARS = 'ARS',
38
+ MXN = 'MXN',
39
+ VND = 'VND',
36
40
  }
37
41
 
38
42
  // Mirrors the Platform enum from the common lib, which this package can't import.
@@ -78,6 +82,10 @@ export class CurrencyRegistry {
78
82
  [Currency.PUMP]: { type: CurrencyType.CRYPTO, platform: CurrencyPlatform.SHUFFLE },
79
83
 
80
84
  [Currency.CAD]: { type: CurrencyType.FIAT, platform: CurrencyPlatform.SHUFFLE },
85
+ [Currency.BRL]: { type: CurrencyType.FIAT, platform: CurrencyPlatform.SHUFFLE },
86
+ [Currency.ARS]: { type: CurrencyType.FIAT, platform: CurrencyPlatform.SHUFFLE },
87
+ [Currency.MXN]: { type: CurrencyType.FIAT, platform: CurrencyPlatform.SHUFFLE },
88
+ [Currency.VND]: { type: CurrencyType.FIAT, platform: CurrencyPlatform.SHUFFLE },
81
89
 
82
90
  [Currency.GC]: { type: CurrencyType.SWEEPSTAKES, platform: CurrencyPlatform.SWEEP_STAKES },
83
91
  [Currency.SC]: { type: CurrencyType.SWEEPSTAKES, platform: CurrencyPlatform.SWEEP_STAKES },