@moneylion/react-native-offer-carousel 1.10.1 → 1.11.0

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.
Files changed (74) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/lib/commonjs/capabilities/configuration/src/brands/checkVisualEligibility.js +13 -11
  3. package/lib/commonjs/capabilities/configuration/src/brands/checkVisualEligibility.js.map +1 -1
  4. package/lib/commonjs/capabilities/configuration/src/brands/createDerivedBrands.js +8 -19
  5. package/lib/commonjs/capabilities/configuration/src/brands/createDerivedBrands.js.map +1 -1
  6. package/lib/commonjs/capabilities/offer-catalog/src/utils/formatUtils.js +36 -21
  7. package/lib/commonjs/capabilities/offer-catalog/src/utils/formatUtils.js.map +1 -1
  8. package/lib/commonjs/capabilities/offer-catalog/src/utils/stats/formatters/annualFee.js +7 -30
  9. package/lib/commonjs/capabilities/offer-catalog/src/utils/stats/formatters/annualFee.js.map +1 -1
  10. package/lib/commonjs/capabilities/offer-catalog/src/utils/stats/formatters/purchaseApr.js +15 -17
  11. package/lib/commonjs/capabilities/offer-catalog/src/utils/stats/formatters/purchaseApr.js.map +1 -1
  12. package/lib/commonjs/capabilities/offer-catalog/src/utils/stats/formatters/recommendedCredit.js +8 -2
  13. package/lib/commonjs/capabilities/offer-catalog/src/utils/stats/formatters/recommendedCredit.js.map +1 -1
  14. package/lib/commonjs/capabilities/offer-catalog/src/utils/stats/index.js +40 -38
  15. package/lib/commonjs/capabilities/offer-catalog/src/utils/stats/index.js.map +1 -1
  16. package/lib/commonjs/capabilities/offers/pipeline/src/sources/ratetables/withDeviceSignals.js +22 -12
  17. package/lib/commonjs/capabilities/offers/pipeline/src/sources/ratetables/withDeviceSignals.js.map +1 -1
  18. package/lib/commonjs/capabilities/ui/elements/src/components/MarkdownText/components.js +120 -116
  19. package/lib/commonjs/capabilities/ui/elements/src/components/MarkdownText/components.js.map +1 -1
  20. package/lib/commonjs/capabilities/ui/elements/src/components/MarkdownText/index.js +8 -30
  21. package/lib/commonjs/capabilities/ui/elements/src/components/MarkdownText/index.js.map +1 -1
  22. package/lib/commonjs/components/DynamicOffers/Render/Offer.js +51 -49
  23. package/lib/commonjs/components/DynamicOffers/Render/Offer.js.map +1 -1
  24. package/lib/commonjs/version.js +1 -1
  25. package/lib/module/capabilities/configuration/src/brands/checkVisualEligibility.js +13 -11
  26. package/lib/module/capabilities/configuration/src/brands/checkVisualEligibility.js.map +1 -1
  27. package/lib/module/capabilities/configuration/src/brands/createDerivedBrands.js +7 -19
  28. package/lib/module/capabilities/configuration/src/brands/createDerivedBrands.js.map +1 -1
  29. package/lib/module/capabilities/offer-catalog/src/utils/formatUtils.js +35 -20
  30. package/lib/module/capabilities/offer-catalog/src/utils/formatUtils.js.map +1 -1
  31. package/lib/module/capabilities/offer-catalog/src/utils/stats/formatters/annualFee.js +7 -30
  32. package/lib/module/capabilities/offer-catalog/src/utils/stats/formatters/annualFee.js.map +1 -1
  33. package/lib/module/capabilities/offer-catalog/src/utils/stats/formatters/purchaseApr.js +15 -17
  34. package/lib/module/capabilities/offer-catalog/src/utils/stats/formatters/purchaseApr.js.map +1 -1
  35. package/lib/module/capabilities/offer-catalog/src/utils/stats/formatters/recommendedCredit.js +8 -2
  36. package/lib/module/capabilities/offer-catalog/src/utils/stats/formatters/recommendedCredit.js.map +1 -1
  37. package/lib/module/capabilities/offer-catalog/src/utils/stats/index.js +40 -38
  38. package/lib/module/capabilities/offer-catalog/src/utils/stats/index.js.map +1 -1
  39. package/lib/module/capabilities/offers/pipeline/src/sources/ratetables/withDeviceSignals.js +22 -11
  40. package/lib/module/capabilities/offers/pipeline/src/sources/ratetables/withDeviceSignals.js.map +1 -1
  41. package/lib/module/capabilities/ui/elements/src/components/MarkdownText/components.js +120 -115
  42. package/lib/module/capabilities/ui/elements/src/components/MarkdownText/components.js.map +1 -1
  43. package/lib/module/capabilities/ui/elements/src/components/MarkdownText/index.js +9 -31
  44. package/lib/module/capabilities/ui/elements/src/components/MarkdownText/index.js.map +1 -1
  45. package/lib/module/components/DynamicOffers/Render/Offer.js +51 -49
  46. package/lib/module/components/DynamicOffers/Render/Offer.js.map +1 -1
  47. package/lib/module/version.js +1 -1
  48. package/lib/typescript/capabilities/configuration/src/brands/checkVisualEligibility.d.ts.map +1 -1
  49. package/lib/typescript/capabilities/configuration/src/brands/createDerivedBrands.d.ts.map +1 -1
  50. package/lib/typescript/capabilities/offer-catalog/src/utils/formatUtils.d.ts.map +1 -1
  51. package/lib/typescript/capabilities/offer-catalog/src/utils/stats/formatters/annualFee.d.ts.map +1 -1
  52. package/lib/typescript/capabilities/offer-catalog/src/utils/stats/formatters/purchaseApr.d.ts.map +1 -1
  53. package/lib/typescript/capabilities/offer-catalog/src/utils/stats/formatters/recommendedCredit.d.ts.map +1 -1
  54. package/lib/typescript/capabilities/offer-catalog/src/utils/stats/index.d.ts.map +1 -1
  55. package/lib/typescript/capabilities/offers/pipeline/src/sources/ratetables/withDeviceSignals.d.ts +4 -192
  56. package/lib/typescript/capabilities/offers/pipeline/src/sources/ratetables/withDeviceSignals.d.ts.map +1 -1
  57. package/lib/typescript/capabilities/ui/elements/src/components/MarkdownText/components.d.ts +12 -3
  58. package/lib/typescript/capabilities/ui/elements/src/components/MarkdownText/components.d.ts.map +1 -1
  59. package/lib/typescript/capabilities/ui/elements/src/components/MarkdownText/index.d.ts.map +1 -1
  60. package/lib/typescript/components/DynamicOffers/Render/Offer.d.ts.map +1 -1
  61. package/lib/typescript/version.d.ts +1 -1
  62. package/package.json +3 -8
  63. package/src/capabilities/configuration/src/brands/checkVisualEligibility.ts +22 -16
  64. package/src/capabilities/configuration/src/brands/createDerivedBrands.ts +10 -23
  65. package/src/capabilities/offer-catalog/src/utils/formatUtils.ts +38 -19
  66. package/src/capabilities/offer-catalog/src/utils/stats/formatters/annualFee.ts +19 -46
  67. package/src/capabilities/offer-catalog/src/utils/stats/formatters/purchaseApr.ts +17 -21
  68. package/src/capabilities/offer-catalog/src/utils/stats/formatters/recommendedCredit.ts +11 -8
  69. package/src/capabilities/offer-catalog/src/utils/stats/index.ts +40 -109
  70. package/src/capabilities/offers/pipeline/src/sources/ratetables/withDeviceSignals.ts +26 -17
  71. package/src/capabilities/ui/elements/src/components/MarkdownText/components.tsx +157 -142
  72. package/src/capabilities/ui/elements/src/components/MarkdownText/index.tsx +11 -33
  73. package/src/components/DynamicOffers/Render/Offer.tsx +34 -33
  74. package/src/version.ts +1 -1
@@ -1,7 +1,12 @@
1
1
  import { isObject, sift } from "radash";
2
- import { P, match } from "ts-pattern";
3
2
  import { enhanceType } from "./types";
4
3
  import { checkVisualBrandEligibility } from "./checkVisualEligibility";
4
+ const resolveLicensedBrand = brand => {
5
+ if (enhanceType(brand) === "licensed") return brand;
6
+ const candidate = (brand === null || brand === void 0 ? void 0 : brand.isLicensed) || (brand === null || brand === void 0 ? void 0 : brand.licensedBrand);
7
+ if (isObject(candidate)) return candidate;
8
+ throw new Error("Missing Licensed Brand");
9
+ };
5
10
 
6
11
  /**
7
12
  * Extracts and normalizes a brand into -
@@ -10,24 +15,7 @@ import { checkVisualBrandEligibility } from "./checkVisualEligibility";
10
15
  * @param brand
11
16
  */
12
17
  export const createDerivedBrands = brand => {
13
- // Determine the licensed brand for this brand, keeping in mind that this brand may be the licensed brand
14
- const licensedBrand = match([enhanceType(brand), (brand === null || brand === void 0 ? void 0 : brand.isLicensed) || (brand === null || brand === void 0 ? void 0 : brand.licensedBrand)])
15
- // Ensure we get back a brand at the end
16
- .returnType()
17
- // If the type is licensed, return this brand
18
- .with(["licensed", P._], () => brand)
19
- // If the type is not licensed, but there is a cobrand setup, use that to get the licensed brand
20
- .with([P.not("licensed"), P.select("licensedBrandObj")], ({
21
- licensedBrandObj
22
- }) => {
23
- if (isObject(licensedBrandObj)) return licensedBrandObj;
24
- // Throw if no licensed brand is able to be found
25
- throw new Error("Missing Licensed Brand");
26
- }).otherwise(() => {
27
- throw new Error("Missing Licensed Brand");
28
- });
29
-
30
- // Determine the set of visual brands which should be displayed on the page
18
+ const licensedBrand = resolveLicensedBrand(brand);
31
19
  const brandCanBeShown = checkVisualBrandEligibility(brand) !== "none";
32
20
  return Array.from(new Set(sift([licensedBrand, brandCanBeShown && brand])));
33
21
  };
@@ -1 +1 @@
1
- {"version":3,"names":["isObject","sift","P","match","enhanceType","checkVisualBrandEligibility","createDerivedBrands","brand","licensedBrand","isLicensed","returnType","with","_","not","select","licensedBrandObj","Error","otherwise","brandCanBeShown","Array","from","Set"],"sourceRoot":"../../../../../../src","sources":["capabilities/configuration/src/brands/createDerivedBrands.ts"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,IAAI,QAAQ,QAAQ;AAEvC,SAASC,CAAC,EAAEC,KAAK,QAAQ,YAAY;AACrC,SAASC,WAAW,QAAQ,SAAS;AACrC,SAASC,2BAA2B,QAAQ,0BAA0B;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAIC,KAAY,IAAK;EACpD;EACA,MAAMC,aAAa,GAAGL,KAAK,CAAC,CAC3BC,WAAW,CAACG,KAAK,CAAC,EAClB,CAAAA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEE,UAAU,MAAIF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,aAAa,EACzC;EACA;EAAA,CACCE,UAAU,CAAQ;EACnB;EAAA,CACCC,IAAI,CAAC,CAAC,UAAU,EAAET,CAAC,CAACU,CAAC,CAAC,EAAE,MAAML,KAAK;EACpC;EAAA,CACCI,IAAI,CACJ,CAACT,CAAC,CAACW,GAAG,CAAC,UAAU,CAAC,EAAEX,CAAC,CAACY,MAAM,CAAC,kBAAkB,CAAC,CAAC,EACjD,CAAC;IAAEC;EAAiB,CAAC,KAAK;IACzB,IAAIf,QAAQ,CAACe,gBAAgB,CAAC,EAAE,OAAOA,gBAAgB;IACvD;IACA,MAAM,IAAIC,KAAK,CAAC,wBAAwB,CAAC;EAC1C,CACD,CAAC,CACAC,SAAS,CAAC,MAAM;IAChB,MAAM,IAAID,KAAK,CAAC,wBAAwB,CAAC;EAC1C,CAAC,CAAC;;EAEH;EACA,MAAME,eAAe,GAAGb,2BAA2B,CAACE,KAAK,CAAC,KAAK,MAAM;EACrE,OAAOY,KAAK,CAACC,IAAI,CAAC,IAAIC,GAAG,CAACpB,IAAI,CAAC,CAACO,aAAa,EAAEU,eAAe,IAAIX,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["isObject","sift","enhanceType","checkVisualBrandEligibility","resolveLicensedBrand","brand","candidate","isLicensed","licensedBrand","Error","createDerivedBrands","brandCanBeShown","Array","from","Set"],"sourceRoot":"../../../../../../src","sources":["capabilities/configuration/src/brands/createDerivedBrands.ts"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,IAAI,QAAQ,QAAQ;AAEvC,SAASC,WAAW,QAAQ,SAAS;AACrC,SAASC,2BAA2B,QAAQ,0BAA0B;AAEtE,MAAMC,oBAAoB,GAAIC,KAAY,IAAY;EACrD,IAAIH,WAAW,CAACG,KAAK,CAAC,KAAK,UAAU,EAAE,OAAOA,KAAK;EAEnD,MAAMC,SAAS,GAAG,CAAAD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEE,UAAU,MAAIF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEG,aAAa;EAC3D,IAAIR,QAAQ,CAACM,SAAS,CAAC,EAAE,OAAOA,SAAS;EAEzC,MAAM,IAAIG,KAAK,CAAC,wBAAwB,CAAC;AAC1C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAIL,KAAY,IAAK;EACpD,MAAMG,aAAa,GAAGJ,oBAAoB,CAACC,KAAK,CAAC;EAEjD,MAAMM,eAAe,GAAGR,2BAA2B,CAACE,KAAK,CAAC,KAAK,MAAM;EACrE,OAAOO,KAAK,CAACC,IAAI,CAAC,IAAIC,GAAG,CAACb,IAAI,CAAC,CAACO,aAAa,EAAEG,eAAe,IAAIN,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC","ignoreList":[]}
@@ -1,4 +1,28 @@
1
- import numbro from "numbro";
1
+ const formatNumberWithMantissa = (value, mantissa, trimMantissa, thousandSeparated) => {
2
+ let str = value.toFixed(mantissa);
3
+ if (trimMantissa && str.includes(".")) {
4
+ str = str.replace(/0+$/, "").replace(/\.$/, "");
5
+ }
6
+ if (thousandSeparated) {
7
+ const [intPart, decPart] = str.split(".");
8
+ const withCommas = (intPart ?? "").replace(/\B(?=(\d{3})+(?!\d))/g, ",");
9
+ str = decPart !== undefined ? `${withCommas}.${decPart}` : withCommas;
10
+ }
11
+ return str;
12
+ };
13
+ const COMPACT_UNITS = [{
14
+ threshold: 1e12,
15
+ suffix: "T"
16
+ }, {
17
+ threshold: 1e9,
18
+ suffix: "B"
19
+ }, {
20
+ threshold: 1e6,
21
+ suffix: "M"
22
+ }, {
23
+ threshold: 1e3,
24
+ suffix: "K"
25
+ }];
2
26
 
3
27
  /**
4
28
  * Format the amount
@@ -23,15 +47,12 @@ export const formatAmount = (amount, raw) => {
23
47
  const isLargeAmount = amount >= 99999900;
24
48
  const amountInDollars = isLargeAmount ? Math.ceil(amount / 1000000) * 1000000 / 100 // Round to nearest million if large
25
49
  : amount / 100;
26
-
27
- // Format the amount in dollars
28
- const formattedAmount = numbro(amountInDollars).formatCurrency({
29
- average: amountInDollars >= 1000,
30
- mantissa: amountInDollars < 1000 ? 2 : 1,
31
- trimMantissa: !(amount < 100 && amount !== 0),
32
- spaceSeparated: false
33
- });
34
- return formattedAmount.toUpperCase();
50
+ const mantissa = amountInDollars < 1000 ? 2 : 1;
51
+ const trimMantissa = !(amount < 100 && amount !== 0);
52
+ const unit = COMPACT_UNITS.find(u => amountInDollars >= u.threshold);
53
+ const scaled = unit ? amountInDollars / unit.threshold : amountInDollars;
54
+ const suffix = (unit === null || unit === void 0 ? void 0 : unit.suffix) ?? "";
55
+ return `$${formatNumberWithMantissa(scaled, mantissa, trimMantissa, false)}${suffix}`.toUpperCase();
35
56
  };
36
57
 
37
58
  /**
@@ -48,10 +69,7 @@ export const formatAmount = (amount, raw) => {
48
69
  */
49
70
  export const formatPercentage = percentage => {
50
71
  if (percentage === undefined || percentage === null) return "N/A";
51
- return `${numbro(percentage / 100).format({
52
- mantissa: 2,
53
- trimMantissa: true
54
- })}%`;
72
+ return `${formatNumberWithMantissa(percentage / 100, 2, true, false)}%`;
55
73
  };
56
74
 
57
75
  /**
@@ -99,13 +117,10 @@ const formatAmountUnabbreviated = (amount, raw) => {
99
117
  const isLargeAmount = amount >= 99999900;
100
118
  const amountInDollars = isLargeAmount ? Math.ceil(amount / 1000000) * 1000000 / 100 // Round to nearest million if large
101
119
  : amount / 100;
120
+ const mantissa = amountInDollars < 1000 ? 2 : 1;
121
+ const trimMantissa = !(amount < 100 && amount !== 0);
102
122
  // Format the amount in dollars
103
- const formattedAmount = numbro(amountInDollars).formatCurrency({
104
- mantissa: amountInDollars < 1000 ? 2 : 1,
105
- trimMantissa: !(amount < 100 && amount !== 0),
106
- spaceSeparated: false,
107
- thousandSeparated: true
108
- });
123
+ const formattedAmount = `$${formatNumberWithMantissa(amountInDollars, mantissa, trimMantissa, true)}`;
109
124
  return formattedAmount.toUpperCase();
110
125
  };
111
126
 
@@ -1 +1 @@
1
- {"version":3,"names":["numbro","formatAmount","amount","raw","Number","isNaN","undefined","isLargeAmount","amountInDollars","Math","ceil","formattedAmount","formatCurrency","average","mantissa","trimMantissa","spaceSeparated","toUpperCase","formatPercentage","percentage","format","formatStringListWithAnd","strings","length","newStrings","lastString","pop","join","formatAmountUnabbreviated","thousandSeparated","formatRange","min","max","type","amountFormat","resolvedFormatAmount"],"sourceRoot":"../../../../../../src","sources":["capabilities/offer-catalog/src/utils/formatUtils.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["formatNumberWithMantissa","value","mantissa","trimMantissa","thousandSeparated","str","toFixed","includes","replace","intPart","decPart","split","withCommas","undefined","COMPACT_UNITS","threshold","suffix","formatAmount","amount","raw","Number","isNaN","isLargeAmount","amountInDollars","Math","ceil","unit","find","u","scaled","toUpperCase","formatPercentage","percentage","formatStringListWithAnd","strings","length","newStrings","lastString","pop","join","formatAmountUnabbreviated","formattedAmount","formatRange","min","max","type","amountFormat","resolvedFormatAmount"],"sourceRoot":"../../../../../../src","sources":["capabilities/offer-catalog/src/utils/formatUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import { get } from "radash";
2
- import { P, match } from "ts-pattern";
3
2
  import { formatAmount, formatRange } from "../../formatUtils";
4
3
  const determineContent = ({
5
4
  minAnnualFeeValue,
@@ -8,41 +7,19 @@ const determineContent = ({
8
7
  annualIntroFeeTermValue,
9
8
  raw
10
9
  }) => {
11
- return match({
12
- minAnnualFeeValue,
13
- maxAnnualFeeValue,
14
- annualIntroFeeValue,
15
- annualIntroFeeTermValue
16
- }).with({
17
- annualIntroFeeValue: P.not(undefined)
18
- }, ({
19
- annualIntroFeeValue,
20
- annualIntroFeeTermValue,
21
- minAnnualFeeValue,
22
- maxAnnualFeeValue
23
- }) => {
10
+ if (annualIntroFeeValue !== undefined) {
24
11
  const postIntroFee = formatRange(minAnnualFeeValue, maxAnnualFeeValue, "amount");
25
12
  return `${formatAmount(annualIntroFeeValue)} for ${annualIntroFeeTermValue} years, then ${postIntroFee}`;
26
- }).with({
27
- minAnnualFeeValue: P.not(undefined),
28
- maxAnnualFeeValue: P.not(undefined)
29
- }, ({
30
- minAnnualFeeValue,
31
- maxAnnualFeeValue
32
- }) => {
13
+ }
14
+ if (minAnnualFeeValue !== undefined && maxAnnualFeeValue !== undefined) {
33
15
  if (minAnnualFeeValue === maxAnnualFeeValue) {
34
16
  return formatAmount(minAnnualFeeValue, raw);
35
17
  }
36
18
  return formatRange(minAnnualFeeValue, maxAnnualFeeValue, "amount");
37
- }).with({
38
- minAnnualFeeValue: P.not(undefined)
39
- }, ({
40
- minAnnualFeeValue
41
- }) => formatAmount(minAnnualFeeValue)).with({
42
- maxAnnualFeeValue: P.not(undefined)
43
- }, ({
44
- maxAnnualFeeValue
45
- }) => formatAmount(maxAnnualFeeValue)).otherwise(() => "See Terms");
19
+ }
20
+ const fee = minAnnualFeeValue ?? maxAnnualFeeValue;
21
+ if (fee !== undefined) return formatAmount(fee);
22
+ return "See Terms";
46
23
  };
47
24
  export const annualFee = offer => ({
48
25
  label,
@@ -1 +1 @@
1
- {"version":3,"names":["get","P","match","formatAmount","formatRange","determineContent","minAnnualFeeValue","maxAnnualFeeValue","annualIntroFeeValue","annualIntroFeeTermValue","raw","with","not","undefined","postIntroFee","otherwise","annualFee","offer","label","minAnnualFeeField","maxAnnualFeeField","annualIntroFeeField","annualIntroFeeTermField","content"],"sourceRoot":"../../../../../../../../src","sources":["capabilities/offer-catalog/src/utils/stats/formatters/annualFee.ts"],"mappings":"AAAA,SAASA,GAAG,QAAQ,QAAQ;AAC5B,SAASC,CAAC,EAAEC,KAAK,QAAQ,YAAY;AAErC,SAASC,YAAY,EAAEC,WAAW,QAAQ,mBAAmB;AAa7D,MAAMC,gBAAgB,GAAGA,CAAC;EACzBC,iBAAiB;EACjBC,iBAAiB;EACjBC,mBAAmB;EACnBC,uBAAuB;EACvBC;AAQD,CAAC,KAAK;EACL,OAAOR,KAAK,CAAC;IACZI,iBAAiB;IACjBC,iBAAiB;IACjBC,mBAAmB;IACnBC;EACD,CAAC,CAAC,CACAE,IAAI,CACJ;IAAEH,mBAAmB,EAAEP,CAAC,CAACW,GAAG,CAACC,SAAS;EAAE,CAAC,EACzC,CAAC;IACAL,mBAAmB;IACnBC,uBAAuB;IACvBH,iBAAiB;IACjBC;EACD,CAAC,KAAK;IACL,MAAMO,YAAY,GAAGV,WAAW,CAC/BE,iBAAiB,EACjBC,iBAAiB,EACjB,QACD,CAAC;IACD,OAAO,GAAGJ,YAAY,CACrBK,mBACD,CAAC,QAAQC,uBAAuB,gBAAgBK,YAAY,EAAE;EAC/D,CACD,CAAC,CACAH,IAAI,CACJ;IACCL,iBAAiB,EAAEL,CAAC,CAACW,GAAG,CAACC,SAAS,CAAC;IACnCN,iBAAiB,EAAEN,CAAC,CAACW,GAAG,CAACC,SAAS;EACnC,CAAC,EACD,CAAC;IAAEP,iBAAiB;IAAEC;EAAkB,CAAC,KAAK;IAC7C,IAAID,iBAAiB,KAAKC,iBAAiB,EAAE;MAC5C,OAAOJ,YAAY,CAACG,iBAAiB,EAAEI,GAAG,CAAC;IAC5C;IACA,OAAON,WAAW,CAACE,iBAAiB,EAAEC,iBAAiB,EAAE,QAAQ,CAAC;EACnE,CACD,CAAC,CACAI,IAAI,CAAC;IAAEL,iBAAiB,EAAEL,CAAC,CAACW,GAAG,CAACC,SAAS;EAAE,CAAC,EAAE,CAAC;IAAEP;EAAkB,CAAC,KACpEH,YAAY,CAACG,iBAAiB,CAC/B,CAAC,CACAK,IAAI,CAAC;IAAEJ,iBAAiB,EAAEN,CAAC,CAACW,GAAG,CAACC,SAAS;EAAE,CAAC,EAAE,CAAC;IAAEN;EAAkB,CAAC,KACpEJ,YAAY,CAACI,iBAAiB,CAC/B,CAAC,CACAQ,SAAS,CAAC,MAAM,WAAW,CAAC;AAC/B,CAAC;AAED,OAAO,MAAMC,SAAS,GACpBC,KAAgB,IACjB,CAAC;EACAC,KAAK;EACLC,iBAAiB;EACjBC,iBAAiB;EACjBC,mBAAmB;EACnBC,uBAAuB;EACvBZ,GAAG,GAAG;AACQ,CAAC,KAAuB;EACtC,MAAMJ,iBAAiB,GAAGN,GAAG,CAASiB,KAAK,EAAEE,iBAAiB,CAAC;EAC/D,MAAMZ,iBAAiB,GAAGP,GAAG,CAASiB,KAAK,EAAEG,iBAAiB,CAAC;EAC/D,MAAMZ,mBAAmB,GAAGR,GAAG,CAASiB,KAAK,EAAEI,mBAAmB,CAAC;EACnE,MAAMZ,uBAAuB,GAAGT,GAAG,CAASiB,KAAK,EAAEK,uBAAuB,CAAC;EAE3E,MAAMC,OAAO,GAAGlB,gBAAgB,CAAC;IAChCC,iBAAiB;IACjBC,iBAAiB;IACjBC,mBAAmB;IACnBC,uBAAuB;IACvBC;EACD,CAAC,CAAC;EAEF,OAAO;IACNQ,KAAK;IACLK;EACD,CAAC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["get","formatAmount","formatRange","determineContent","minAnnualFeeValue","maxAnnualFeeValue","annualIntroFeeValue","annualIntroFeeTermValue","raw","undefined","postIntroFee","fee","annualFee","offer","label","minAnnualFeeField","maxAnnualFeeField","annualIntroFeeField","annualIntroFeeTermField","content"],"sourceRoot":"../../../../../../../../src","sources":["capabilities/offer-catalog/src/utils/stats/formatters/annualFee.ts"],"mappings":"AAAA,SAASA,GAAG,QAAQ,QAAQ;AAE5B,SAASC,YAAY,EAAEC,WAAW,QAAQ,mBAAmB;AAa7D,MAAMC,gBAAgB,GAAGA,CAAC;EACzBC,iBAAiB;EACjBC,iBAAiB;EACjBC,mBAAmB;EACnBC,uBAAuB;EACvBC;AAOD,CAAC,KAAa;EACb,IAAIF,mBAAmB,KAAKG,SAAS,EAAE;IACtC,MAAMC,YAAY,GAAGR,WAAW,CAC/BE,iBAAiB,EACjBC,iBAAiB,EACjB,QACD,CAAC;IACD,OAAO,GAAGJ,YAAY,CAACK,mBAAmB,CAAC,QAAQC,uBAAuB,gBAAgBG,YAAY,EAAE;EACzG;EACA,IAAIN,iBAAiB,KAAKK,SAAS,IAAIJ,iBAAiB,KAAKI,SAAS,EAAE;IACvE,IAAIL,iBAAiB,KAAKC,iBAAiB,EAAE;MAC5C,OAAOJ,YAAY,CAACG,iBAAiB,EAAEI,GAAG,CAAC;IAC5C;IACA,OAAON,WAAW,CAACE,iBAAiB,EAAEC,iBAAiB,EAAE,QAAQ,CAAC;EACnE;EAEA,MAAMM,GAAG,GAAGP,iBAAiB,IAAIC,iBAAiB;EAClD,IAAIM,GAAG,KAAKF,SAAS,EAAE,OAAOR,YAAY,CAACU,GAAG,CAAC;EAC/C,OAAO,WAAW;AACnB,CAAC;AAED,OAAO,MAAMC,SAAS,GACpBC,KAAgB,IACjB,CAAC;EACAC,KAAK;EACLC,iBAAiB;EACjBC,iBAAiB;EACjBC,mBAAmB;EACnBC,uBAAuB;EACvBV,GAAG,GAAG;AACQ,CAAC,KAAuB;EACtC,MAAMJ,iBAAiB,GAAGJ,GAAG,CAASa,KAAK,EAAEE,iBAAiB,CAAC;EAC/D,MAAMV,iBAAiB,GAAGL,GAAG,CAASa,KAAK,EAAEG,iBAAiB,CAAC;EAC/D,MAAMV,mBAAmB,GAAGN,GAAG,CAASa,KAAK,EAAEI,mBAAmB,CAAC;EACnE,MAAMV,uBAAuB,GAAGP,GAAG,CAASa,KAAK,EAAEK,uBAAuB,CAAC;EAE3E,MAAMC,OAAO,GAAGhB,gBAAgB,CAAC;IAChCC,iBAAiB;IACjBC,iBAAiB;IACjBC,mBAAmB;IACnBC,uBAAuB;IACvBC;EACD,CAAC,CAAC;EAEF,OAAO;IACNM,KAAK;IACLK;EACD,CAAC;AACF,CAAC","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import { get } from "radash";
2
- import { P, match } from "ts-pattern";
3
2
  import { formatRange } from "../../formatUtils";
4
3
  /**
5
4
  * Determine the content of the purchaseApr stat
@@ -18,21 +17,13 @@ const determineContent = ({
18
17
  minPurchaseAprValue,
19
18
  maxPurchaseAprValue
20
19
  }) => {
21
- return match({
22
- purchaseAprValue,
23
- minPurchaseAprValue,
24
- maxPurchaseAprValue
25
- }).with({
26
- purchaseAprValue: P.not(undefined)
27
- }, ({
28
- purchaseAprValue
29
- }) => purchaseAprValue).with({
30
- minPurchaseAprValue: P.not(undefined),
31
- maxPurchaseAprValue: P.not(undefined)
32
- }, ({
33
- minPurchaseAprValue,
34
- maxPurchaseAprValue
35
- }) => formatRange(minPurchaseAprValue, maxPurchaseAprValue, "percentage")).otherwise(() => "See Terms");
20
+ if (purchaseAprValue !== undefined) {
21
+ return purchaseAprValue;
22
+ }
23
+ if (minPurchaseAprValue !== undefined && maxPurchaseAprValue !== undefined) {
24
+ return formatRange(minPurchaseAprValue, maxPurchaseAprValue, "percentage");
25
+ }
26
+ return "See Terms";
36
27
  };
37
28
 
38
29
  /**
@@ -42,7 +33,14 @@ const determineContent = ({
42
33
  * @returns {string}
43
34
  */
44
35
  const determineLabel = (aprType, label) => {
45
- return match(aprType).with("variable", () => "Variable APR:").with("fixed", () => "Fixed APR:").otherwise(() => label);
36
+ switch (aprType) {
37
+ case "variable":
38
+ return "Variable APR:";
39
+ case "fixed":
40
+ return "Fixed APR:";
41
+ default:
42
+ return label;
43
+ }
46
44
  };
47
45
  export const purchaseApr = offer => ({
48
46
  label: defaultLabel,
@@ -1 +1 @@
1
- {"version":3,"names":["get","P","match","formatRange","determineContent","purchaseAprValue","minPurchaseAprValue","maxPurchaseAprValue","with","not","undefined","otherwise","determineLabel","aprType","label","purchaseApr","offer","defaultLabel","purchaseAprTextField","minPurchaseAprField","maxPurchaseAprField","aprTypeField","aprTypeValue","content","replace"],"sourceRoot":"../../../../../../../../src","sources":["capabilities/offer-catalog/src/utils/stats/formatters/purchaseApr.ts"],"mappings":"AAAA,SAASA,GAAG,QAAQ,QAAQ;AAC5B,SAASC,CAAC,EAAEC,KAAK,QAAQ,YAAY;AAErC,SAASC,WAAW,QAAQ,mBAAmB;AAY/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAGA,CAAC;EACzBC,gBAAgB;EAChBC,mBAAmB;EACnBC;AAKD,CAAC,KAAK;EACL,OAAOL,KAAK,CAAC;IAAEG,gBAAgB;IAAEC,mBAAmB;IAAEC;EAAoB,CAAC,CAAC,CAC1EC,IAAI,CACJ;IAAEH,gBAAgB,EAAEJ,CAAC,CAACQ,GAAG,CAACC,SAAS;EAAE,CAAC,EACtC,CAAC;IAAEL;EAAiB,CAAC,KAAKA,gBAC3B,CAAC,CACAG,IAAI,CACJ;IACCF,mBAAmB,EAAEL,CAAC,CAACQ,GAAG,CAACC,SAAS,CAAC;IACrCH,mBAAmB,EAAEN,CAAC,CAACQ,GAAG,CAACC,SAAS;EACrC,CAAC,EACD,CAAC;IAAEJ,mBAAmB;IAAEC;EAAoB,CAAC,KAC5CJ,WAAW,CAACG,mBAAmB,EAAEC,mBAAmB,EAAE,YAAY,CACpE,CAAC,CACAI,SAAS,CAAC,MAAM,WAAW,CAAC;AAC/B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,cAAc,GAAGA,CAACC,OAAe,EAAEC,KAAa,KAAK;EAC1D,OAAOZ,KAAK,CAACW,OAAO,CAAC,CACnBL,IAAI,CAAC,UAAU,EAAE,MAAM,eAAe,CAAC,CACvCA,IAAI,CAAC,OAAO,EAAE,MAAM,YAAY,CAAC,CACjCG,SAAS,CAAC,MAAMG,KAAK,CAAC;AACzB,CAAC;AAED,OAAO,MAAMC,WAAW,GACtBC,KAAgB,IACjB,CAAC;EACAF,KAAK,EAAEG,YAAY;EACnBC,oBAAoB;EACpBC,mBAAmB;EACnBC,mBAAmB;EACnBC;AACgB,CAAC,KAAuB;EACxC,MAAMhB,gBAAgB,GAAGL,GAAG,CAASgB,KAAK,EAAEE,oBAAoB,CAAC;EACjE,MAAMZ,mBAAmB,GAAGN,GAAG,CAASgB,KAAK,EAAEG,mBAAmB,CAAC;EACnE,MAAMZ,mBAAmB,GAAGP,GAAG,CAASgB,KAAK,EAAEI,mBAAmB,CAAC;EACnE,MAAME,YAAY,GAAGtB,GAAG,CAASgB,KAAK,EAAEK,YAAY,CAAC;EAErD,MAAME,OAAO,GAAGnB,gBAAgB,CAAC;IAChCC,gBAAgB;IAChBC,mBAAmB;IACnBC;EACD,CAAC,CAAC,CAACiB,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC;EAE3C,MAAMV,KAAK,GAAGF,cAAc,CAACU,YAAY,EAAEL,YAAY,CAAC;EAExD,OAAO;IACNH,KAAK;IACLS;EACD,CAAC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["get","formatRange","determineContent","purchaseAprValue","minPurchaseAprValue","maxPurchaseAprValue","undefined","determineLabel","aprType","label","purchaseApr","offer","defaultLabel","purchaseAprTextField","minPurchaseAprField","maxPurchaseAprField","aprTypeField","aprTypeValue","content","replace"],"sourceRoot":"../../../../../../../../src","sources":["capabilities/offer-catalog/src/utils/stats/formatters/purchaseApr.ts"],"mappings":"AAAA,SAASA,GAAG,QAAQ,QAAQ;AAE5B,SAASC,WAAW,QAAQ,mBAAmB;AAY/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAGA,CAAC;EACzBC,gBAAgB;EAChBC,mBAAmB;EACnBC;AAKD,CAAC,KAAa;EACb,IAAIF,gBAAgB,KAAKG,SAAS,EAAE;IACnC,OAAOH,gBAAgB;EACxB;EACA,IAAIC,mBAAmB,KAAKE,SAAS,IAAID,mBAAmB,KAAKC,SAAS,EAAE;IAC3E,OAAOL,WAAW,CAACG,mBAAmB,EAAEC,mBAAmB,EAAE,YAAY,CAAC;EAC3E;EACA,OAAO,WAAW;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,cAAc,GAAGA,CAACC,OAAe,EAAEC,KAAa,KAAa;EAClE,QAAQD,OAAO;IACd,KAAK,UAAU;MACd,OAAO,eAAe;IACvB,KAAK,OAAO;MACX,OAAO,YAAY;IACpB;MACC,OAAOC,KAAK;EACd;AACD,CAAC;AAED,OAAO,MAAMC,WAAW,GACtBC,KAAgB,IACjB,CAAC;EACAF,KAAK,EAAEG,YAAY;EACnBC,oBAAoB;EACpBC,mBAAmB;EACnBC,mBAAmB;EACnBC;AACgB,CAAC,KAAuB;EACxC,MAAMb,gBAAgB,GAAGH,GAAG,CAASW,KAAK,EAAEE,oBAAoB,CAAC;EACjE,MAAMT,mBAAmB,GAAGJ,GAAG,CAASW,KAAK,EAAEG,mBAAmB,CAAC;EACnE,MAAMT,mBAAmB,GAAGL,GAAG,CAASW,KAAK,EAAEI,mBAAmB,CAAC;EACnE,MAAME,YAAY,GAAGjB,GAAG,CAASW,KAAK,EAAEK,YAAY,CAAC;EAErD,MAAME,OAAO,GAAGhB,gBAAgB,CAAC;IAChCC,gBAAgB;IAChBC,mBAAmB;IACnBC;EACD,CAAC,CAAC,CAACc,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC;EAE3C,MAAMV,KAAK,GAAGF,cAAc,CAACU,YAAY,EAAEL,YAAY,CAAC;EAExD,OAAO;IACNH,KAAK;IACLS;EACD,CAAC;AACF,CAAC","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import { get } from "radash";
2
- import { P, match } from "ts-pattern";
3
2
  import { formatStringListWithAnd } from "../../formatUtils";
4
3
  const RECOMMENDED_RATINGS = ["limited", "poor", "fair", "good", "excellent"];
5
4
  const orderRecommendedRatings = recommendedCreditValue => {
@@ -11,7 +10,14 @@ export const recommendedCredit = offer => ({
11
10
  fieldName
12
11
  }) => {
13
12
  const recommendedCreditValue = get(offer, fieldName);
14
- const content = match(recommendedCreditValue).with(P.array(), value => hasAllRecommendedRatings(value) ? "Any" : formatStringListWithAnd(orderRecommendedRatings(value))).otherwise(() => "See Terms");
13
+ let content = "See Terms";
14
+ if (Array.isArray(recommendedCreditValue)) {
15
+ if (hasAllRecommendedRatings(recommendedCreditValue)) {
16
+ content = "Any";
17
+ } else {
18
+ content = formatStringListWithAnd(orderRecommendedRatings(recommendedCreditValue));
19
+ }
20
+ }
15
21
  return {
16
22
  label,
17
23
  content,
@@ -1 +1 @@
1
- {"version":3,"names":["get","P","match","formatStringListWithAnd","RECOMMENDED_RATINGS","orderRecommendedRatings","recommendedCreditValue","sort","a","b","indexOf","hasAllRecommendedRatings","every","rating","includes","recommendedCredit","offer","label","fieldName","content","with","array","value","otherwise","isHighlighted"],"sourceRoot":"../../../../../../../../src","sources":["capabilities/offer-catalog/src/utils/stats/formatters/recommendedCredit.ts"],"mappings":"AAAA,SAASA,GAAG,QAAQ,QAAQ;AAC5B,SAASC,CAAC,EAAEC,KAAK,QAAQ,YAAY;AAErC,SAASC,uBAAuB,QAAQ,mBAAmB;AAS3D,MAAMC,mBAAmB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC;AAE5E,MAAMC,uBAAuB,GAAIC,sBAAgC,IAAK;EACrE,OAAOA,sBAAsB,CAACC,IAAI,CACjC,CAACC,CAAC,EAAEC,CAAC,KAAKL,mBAAmB,CAACM,OAAO,CAACF,CAAC,CAAC,GAAGJ,mBAAmB,CAACM,OAAO,CAACD,CAAC,CACzE,CAAC;AACF,CAAC;AAED,MAAME,wBAAwB,GAAIL,sBAAgC,IACjEF,mBAAmB,CAACQ,KAAK,CAAEC,MAAM,IAChCP,sBAAsB,CAACQ,QAAQ,CAACD,MAAM,CACvC,CAAC;AAEF,OAAO,MAAME,iBAAiB,GAC5BC,KAAgB,IACjB,CAAC;EAAEC,KAAK;EAAEC;AAAiC,CAAC,KAAuB;EAClE,MAAMZ,sBAAsB,GAAGN,GAAG,CAAWgB,KAAK,EAAEE,SAAS,CAAC;EAE9D,MAAMC,OAAO,GAAGjB,KAAK,CAACI,sBAAsB,CAAC,CAC3Cc,IAAI,CAACnB,CAAC,CAACoB,KAAK,CAAC,CAAC,EAAGC,KAAK,IACtBX,wBAAwB,CAACW,KAAK,CAAC,GAC5B,KAAK,GACLnB,uBAAuB,CAACE,uBAAuB,CAACiB,KAAK,CAAC,CAC1D,CAAC,CACAC,SAAS,CAAC,MAAM,WAAW,CAAC;EAE9B,OAAO;IACNN,KAAK;IACLE,OAAO;IACPK,aAAa,EAAE;EAChB,CAAC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["get","formatStringListWithAnd","RECOMMENDED_RATINGS","orderRecommendedRatings","recommendedCreditValue","sort","a","b","indexOf","hasAllRecommendedRatings","every","rating","includes","recommendedCredit","offer","label","fieldName","content","Array","isArray","isHighlighted"],"sourceRoot":"../../../../../../../../src","sources":["capabilities/offer-catalog/src/utils/stats/formatters/recommendedCredit.ts"],"mappings":"AAAA,SAASA,GAAG,QAAQ,QAAQ;AAE5B,SAASC,uBAAuB,QAAQ,mBAAmB;AAS3D,MAAMC,mBAAmB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC;AAE5E,MAAMC,uBAAuB,GAAIC,sBAAgC,IAAK;EACrE,OAAOA,sBAAsB,CAACC,IAAI,CACjC,CAACC,CAAC,EAAEC,CAAC,KAAKL,mBAAmB,CAACM,OAAO,CAACF,CAAC,CAAC,GAAGJ,mBAAmB,CAACM,OAAO,CAACD,CAAC,CACzE,CAAC;AACF,CAAC;AAED,MAAME,wBAAwB,GAAIL,sBAAgC,IACjEF,mBAAmB,CAACQ,KAAK,CAAEC,MAAM,IAChCP,sBAAsB,CAACQ,QAAQ,CAACD,MAAM,CACvC,CAAC;AAEF,OAAO,MAAME,iBAAiB,GAC5BC,KAAgB,IACjB,CAAC;EAAEC,KAAK;EAAEC;AAAiC,CAAC,KAAuB;EAClE,MAAMZ,sBAAsB,GAAGJ,GAAG,CAAWc,KAAK,EAAEE,SAAS,CAAC;EAE9D,IAAIC,OAAO,GAAG,WAAW;EAEzB,IAAIC,KAAK,CAACC,OAAO,CAACf,sBAAsB,CAAC,EAAE;IAC1C,IAAIK,wBAAwB,CAACL,sBAAsB,CAAC,EAAE;MACrDa,OAAO,GAAG,KAAK;IAChB,CAAC,MAAM;MACNA,OAAO,GAAGhB,uBAAuB,CAChCE,uBAAuB,CAACC,sBAAsB,CAC/C,CAAC;IACF;EACD;EAEA,OAAO;IACNW,KAAK;IACLE,OAAO;IACPG,aAAa,EAAE;EAChB,CAAC;AACF,CAAC","ignoreList":[]}
@@ -1,41 +1,43 @@
1
- import { match } from "ts-pattern";
2
1
  import { annualFee, creditBureaus, fromBooleanStat, fromCommonStat, fromCurrencyStat, fromFreeTrialStat, fromListStringWithAnd, fromMonthlyOrAnnualCurrencyStat, fromRangeCurrencyByTimeStat, fromRangeCurrencyOrBasisStat, fromRangeCurrencyStat, fromRangeCurrencyUnabbreviatedStat, fromRangeMonthsStat, fromRangePercentStat, purchaseApr, recommendedCredit, rewardsDisplay } from "./formatters";
3
2
  import { fromPercentageStat } from "./formatters/percentage";
4
- export const statsToElementPropsBuilder = (stats, offer) => stats.map(stat => match(stat).with({
5
- format: "rangeCurrency"
6
- }, fromRangeCurrencyStat(offer)).with({
7
- format: "rangeCurrencyUnabbreviated"
8
- }, fromRangeCurrencyUnabbreviatedStat(offer)).with({
9
- format: "BureausStat"
10
- }, creditBureaus(offer)).with({
11
- format: "rangePercent"
12
- }, fromRangePercentStat(offer)).with({
13
- format: "rangeCurrencyOrBasis"
14
- }, fromRangeCurrencyOrBasisStat(offer)).with({
15
- format: "common"
16
- }, fromCommonStat(offer)).with({
17
- format: "rangeCurrencyByTime"
18
- }, fromRangeCurrencyByTimeStat(offer)).with({
19
- format: "freeTrial"
20
- }, fromFreeTrialStat(offer)).with({
21
- format: "monthlyOrAnnualCurrency"
22
- }, fromMonthlyOrAnnualCurrencyStat(offer)).with({
23
- format: "boolean"
24
- }, fromBooleanStat(offer)).with({
25
- format: "rangeMonths"
26
- }, fromRangeMonthsStat(offer)).with({
27
- format: "listStringWithAnd"
28
- }, fromListStringWithAnd(offer)).with({
29
- format: "currency"
30
- }, fromCurrencyStat(offer)).with({
31
- format: "percentage"
32
- }, fromPercentageStat(offer)).with({
33
- format: "recommendedCredit"
34
- }, recommendedCredit(offer)).with({
35
- format: "rewardsDisplay"
36
- }, rewardsDisplay(offer)).with({
37
- format: "purchaseApr"
38
- }, purchaseApr(offer)).with({
39
- format: "annualFee"
40
- }, annualFee(offer)).exhaustive()).filter(stat => stat !== null);
3
+ export const statsToElementPropsBuilder = (stats, offer) => stats.map(stat => {
4
+ switch (stat.format) {
5
+ case "rangeCurrency":
6
+ return fromRangeCurrencyStat(offer)(stat);
7
+ case "rangeCurrencyUnabbreviated":
8
+ return fromRangeCurrencyUnabbreviatedStat(offer)(stat);
9
+ case "BureausStat":
10
+ return creditBureaus(offer)(stat);
11
+ case "rangePercent":
12
+ return fromRangePercentStat(offer)(stat);
13
+ case "rangeCurrencyOrBasis":
14
+ return fromRangeCurrencyOrBasisStat(offer)(stat);
15
+ case "common":
16
+ return fromCommonStat(offer)(stat);
17
+ case "rangeCurrencyByTime":
18
+ return fromRangeCurrencyByTimeStat(offer)(stat);
19
+ case "freeTrial":
20
+ return fromFreeTrialStat(offer)(stat);
21
+ case "monthlyOrAnnualCurrency":
22
+ return fromMonthlyOrAnnualCurrencyStat(offer)(stat);
23
+ case "boolean":
24
+ return fromBooleanStat(offer)(stat);
25
+ case "rangeMonths":
26
+ return fromRangeMonthsStat(offer)(stat);
27
+ case "listStringWithAnd":
28
+ return fromListStringWithAnd(offer)(stat);
29
+ case "currency":
30
+ return fromCurrencyStat(offer)(stat);
31
+ case "percentage":
32
+ return fromPercentageStat(offer)(stat);
33
+ case "recommendedCredit":
34
+ return recommendedCredit(offer)(stat);
35
+ case "rewardsDisplay":
36
+ return rewardsDisplay(offer)(stat);
37
+ case "purchaseApr":
38
+ return purchaseApr(offer)(stat);
39
+ case "annualFee":
40
+ return annualFee(offer)(stat);
41
+ }
42
+ }).filter(stat => stat !== null);
41
43
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["match","annualFee","creditBureaus","fromBooleanStat","fromCommonStat","fromCurrencyStat","fromFreeTrialStat","fromListStringWithAnd","fromMonthlyOrAnnualCurrencyStat","fromRangeCurrencyByTimeStat","fromRangeCurrencyOrBasisStat","fromRangeCurrencyStat","fromRangeCurrencyUnabbreviatedStat","fromRangeMonthsStat","fromRangePercentStat","purchaseApr","recommendedCredit","rewardsDisplay","fromPercentageStat","statsToElementPropsBuilder","stats","offer","map","stat","with","format","exhaustive","filter"],"sourceRoot":"../../../../../../../src","sources":["capabilities/offer-catalog/src/utils/stats/index.ts"],"mappings":"AAAA,SAASA,KAAK,QAAQ,YAAY;AAElC,SACCC,SAAS,EACTC,aAAa,EACbC,eAAe,EACfC,cAAc,EACdC,gBAAgB,EAChBC,iBAAiB,EACjBC,qBAAqB,EACrBC,+BAA+B,EAC/BC,2BAA2B,EAC3BC,4BAA4B,EAC5BC,qBAAqB,EACrBC,kCAAkC,EAClCC,mBAAmB,EACnBC,oBAAoB,EACpBC,WAAW,EACXC,iBAAiB,EACjBC,cAAc,QACR,cAAc;AAErB,SAASC,kBAAkB,QAAQ,yBAAyB;AAI5D,OAAO,MAAMC,0BAA0B,GAAGA,CACzCC,KAAa,EACbC,KAAgB,KAEhBD,KAAK,CACHE,GAAG,CAAEC,IAAI,IACTvB,KAAK,CAACuB,IAAI,CAAC,CACTC,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDd,qBAAqB,CAACU,KAAK,CAC5B,CAAC,CACAG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDb,kCAAkC,CAACS,KAAK,CACzC,CAAC,CACAG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDvB,aAAa,CAACmB,KAAK,CACpB,CAAC,CACAG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDX,oBAAoB,CAACO,KAAK,CAC3B,CAAC,CACAG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDf,4BAA4B,CAACW,KAAK,CACnC,CAAC,CACAG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDrB,cAAc,CAACiB,KAAK,CACrB,CAAC,CACAG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDhB,2BAA2B,CAACY,KAAK,CAClC,CAAC,CACAG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDnB,iBAAiB,CAACe,KAAK,CACxB,CAAC,CACAG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDjB,+BAA+B,CAACa,KAAK,CACtC,CAAC,CACAG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDtB,eAAe,CAACkB,KAAK,CACtB,CAAC,CACAG,IAAI,CAAC;EAAEC,MAAM,EAAE;AAAc,CAAC,EAAEZ,mBAAmB,CAACQ,KAAK,CAAC,CAAC,CAC3DG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDlB,qBAAqB,CAACc,KAAK,CAC5B,CAAC,CACAG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDpB,gBAAgB,CAACgB,KAAK,CACvB,CAAC,CACAG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDP,kBAAkB,CAACG,KAAK,CACzB,CAAC,CACAG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDT,iBAAiB,CAACK,KAAK,CACxB,CAAC,CACAG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDR,cAAc,CAACI,KAAK,CACrB,CAAC,CACAG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDV,WAAW,CAACM,KAAK,CAClB,CAAC,CACAG,IAAI,CACJ;EACCC,MAAM,EAAE;AACT,CAAC,EACDxB,SAAS,CAACoB,KAAK,CAChB,CAAC,CACAK,UAAU,CAAC,CACd,CAAC,CACAC,MAAM,CAAEJ,IAAI,IAAKA,IAAI,KAAK,IAAI,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["annualFee","creditBureaus","fromBooleanStat","fromCommonStat","fromCurrencyStat","fromFreeTrialStat","fromListStringWithAnd","fromMonthlyOrAnnualCurrencyStat","fromRangeCurrencyByTimeStat","fromRangeCurrencyOrBasisStat","fromRangeCurrencyStat","fromRangeCurrencyUnabbreviatedStat","fromRangeMonthsStat","fromRangePercentStat","purchaseApr","recommendedCredit","rewardsDisplay","fromPercentageStat","statsToElementPropsBuilder","stats","offer","map","stat","format","filter"],"sourceRoot":"../../../../../../../src","sources":["capabilities/offer-catalog/src/utils/stats/index.ts"],"mappings":"AAAA,SACCA,SAAS,EACTC,aAAa,EACbC,eAAe,EACfC,cAAc,EACdC,gBAAgB,EAChBC,iBAAiB,EACjBC,qBAAqB,EACrBC,+BAA+B,EAC/BC,2BAA2B,EAC3BC,4BAA4B,EAC5BC,qBAAqB,EACrBC,kCAAkC,EAClCC,mBAAmB,EACnBC,oBAAoB,EACpBC,WAAW,EACXC,iBAAiB,EACjBC,cAAc,QACR,cAAc;AAErB,SAASC,kBAAkB,QAAQ,yBAAyB;AAI5D,OAAO,MAAMC,0BAA0B,GAAGA,CACzCC,KAAa,EACbC,KAAgB,KAEhBD,KAAK,CACHE,GAAG,CAAEC,IAAI,IAAuB;EAChC,QAAQA,IAAI,CAACC,MAAM;IAClB,KAAK,eAAe;MACnB,OAAOb,qBAAqB,CAACU,KAAK,CAAC,CAACE,IAAI,CAAC;IAC1C,KAAK,4BAA4B;MAChC,OAAOX,kCAAkC,CAACS,KAAK,CAAC,CAACE,IAAI,CAAC;IACvD,KAAK,aAAa;MACjB,OAAOrB,aAAa,CAACmB,KAAK,CAAC,CAACE,IAAI,CAAC;IAClC,KAAK,cAAc;MAClB,OAAOT,oBAAoB,CAACO,KAAK,CAAC,CAACE,IAAI,CAAC;IACzC,KAAK,sBAAsB;MAC1B,OAAOb,4BAA4B,CAACW,KAAK,CAAC,CAACE,IAAI,CAAC;IACjD,KAAK,QAAQ;MACZ,OAAOnB,cAAc,CAACiB,KAAK,CAAC,CAACE,IAAI,CAAC;IACnC,KAAK,qBAAqB;MACzB,OAAOd,2BAA2B,CAACY,KAAK,CAAC,CAACE,IAAI,CAAC;IAChD,KAAK,WAAW;MACf,OAAOjB,iBAAiB,CAACe,KAAK,CAAC,CAACE,IAAI,CAAC;IACtC,KAAK,yBAAyB;MAC7B,OAAOf,+BAA+B,CAACa,KAAK,CAAC,CAACE,IAAI,CAAC;IACpD,KAAK,SAAS;MACb,OAAOpB,eAAe,CAACkB,KAAK,CAAC,CAACE,IAAI,CAAC;IACpC,KAAK,aAAa;MACjB,OAAOV,mBAAmB,CAACQ,KAAK,CAAC,CAACE,IAAI,CAAC;IACxC,KAAK,mBAAmB;MACvB,OAAOhB,qBAAqB,CAACc,KAAK,CAAC,CAACE,IAAI,CAAC;IAC1C,KAAK,UAAU;MACd,OAAOlB,gBAAgB,CAACgB,KAAK,CAAC,CAACE,IAAI,CAAC;IACrC,KAAK,YAAY;MAChB,OAAOL,kBAAkB,CAACG,KAAK,CAAC,CAACE,IAAI,CAAC;IACvC,KAAK,mBAAmB;MACvB,OAAOP,iBAAiB,CAACK,KAAK,CAAC,CAACE,IAAI,CAAC;IACtC,KAAK,gBAAgB;MACpB,OAAON,cAAc,CAACI,KAAK,CAAC,CAACE,IAAI,CAAC;IACnC,KAAK,aAAa;MACjB,OAAOR,WAAW,CAACM,KAAK,CAAC,CAACE,IAAI,CAAC;IAChC,KAAK,WAAW;MACf,OAAOtB,SAAS,CAACoB,KAAK,CAAC,CAACE,IAAI,CAAC;EAC/B;AACD,CAAC,CAAC,CACDE,MAAM,CAAEF,IAAI,IAAKA,IAAI,KAAK,IAAI,CAAC","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- import defu from "defu";
2
1
  import { get, mapValues } from "radash";
3
2
  import { createDerivedBrands } from "../../../../../configuration/src/brands/createDerivedBrands";
4
3
  const UUID_V4_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
@@ -46,20 +45,32 @@ export function withDeviceSignals(context, payload) {
46
45
  system,
47
46
  cnfEnvironment
48
47
  };
49
- return defu(payload, {
50
- /**
51
- * The leads API required device ID's be in the UUID format. If the string
52
- * we receive here is not in the expected format, we will create an error
53
- * passing it to the API.
54
- */
48
+
49
+ // all clientTag values must be arrays of strings
50
+ const toStringArray = value => Array.isArray(value) ? value.map(String) : [String(value)];
51
+ const defaultClientTags = mapValues(clientTags, toStringArray);
52
+ const payloadClientTags = mapValues(payload.clientTags ?? {}, toStringArray);
53
+ const mergedClientTags = {
54
+ ...defaultClientTags
55
+ };
56
+ for (const [key, value] of Object.entries(payloadClientTags)) {
57
+ const existing = mergedClientTags[key];
58
+ mergedClientTags[key] = existing ? [...value, ...existing] : value;
59
+ }
60
+
61
+ /**
62
+ * The leads API requires device IDs be in the UUID format. If the string
63
+ * we receive here is not in the expected format, we omit it so the API can
64
+ * reject the request explicitly.
65
+ */
66
+ return {
55
67
  deviceId: isUUIDv4(maybeDeviceId) ? maybeDeviceId : undefined,
56
68
  sessionInformation: {
57
69
  ipAddress,
58
70
  userAgent
59
71
  },
60
- clientTags: mapValues(clientTags,
61
- // all values must be arrays of strings
62
- value => Array.isArray(value) ? value.map(String) : [String(value)])
63
- });
72
+ ...payload,
73
+ clientTags: mergedClientTags
74
+ };
64
75
  }
65
76
  //# sourceMappingURL=withDeviceSignals.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["defu","get","mapValues","createDerivedBrands","UUID_V4_REGEX","isUUIDv4","x","test","removePrefixFromAppName","appName","startsWith","substring","getBrand","context","brand","e","console","log","Error","withDeviceSignals","payload","maybeDeviceId","undefined","ipAddress","os","isMobile","evReferrer","cnfEnvironment","process","licensedBrand","consumerBrand","userAgent","system","app","clientTags","deviceId","sessionInformation","value","Array","isArray","map","String"],"sourceRoot":"../../../../../../../../src","sources":["capabilities/offers/pipeline/src/sources/ratetables/withDeviceSignals.ts"],"mappings":"AAAA,OAAOA,IAAI,MAAM,MAAM;AACvB,SAASC,GAAG,EAAEC,SAAS,QAAQ,QAAQ;AACvC,SAASC,mBAAmB,QAAQ,6DAA6D;AAOjG,MAAMC,aAAa,GAClB,wEAAwE;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,QAAQ,GAAIC,CAAU,IAClC,OAAOA,CAAC,KAAK,QAAQ,IAAIF,aAAa,CAACG,IAAI,CAACD,CAAC,CAAC;AAE/C,MAAME,uBAAuB,GAAIC,OAAe,IAAK;EACpD,IAAIA,OAAO,CAACC,UAAU,CAAC,GAAG,CAAC,EAAE;IAC5B,OAAOD,OAAO,CAACE,SAAS,CAAC,CAAC,CAAC;EAC5B;EACA,OAAOF,OAAO;AACf,CAAC;AAED,MAAMG,QAAQ,GAAIC,OAAmB,IAAY;EAChD,IAAI;IACH,OAAOA,OAAO,CAACC,KAAK;EACrB,CAAC,CAAC,OAAOC,CAAC,EAAE;IACXC,OAAO,CAACC,GAAG,CAACF,CAAC,CAAC;EACf;EACA,MAAM,IAAIG,KAAK,CAAC,iBAAiB,CAAC;AACnC,CAAC;AAED,OAAO,SAASC,iBAAiBA,CAE/BN,OAAmB,EAAEO,OAAc,EAAE;EACtC,MAAMC,aAAa,GAAGpB,GAAG,CAACY,OAAO,EAAE,0BAA0B,EAAES,SAAS,CAAC;EACzE,MAAMC,SAAS,GAAGtB,GAAG,CAACY,OAAO,EAAE,iCAAiC,EAAES,SAAS,CAAC;EAC5E,MAAME,EAAE,GAAGvB,GAAG,CAACY,OAAO,EAAE,0BAA0B,EAAE,EAAE,CAAC;EACvD,MAAMY,QAAQ,GAAGxB,GAAG,CAACY,OAAO,EAAE,gCAAgC,EAAE,KAAK,CAAC;EACtE,MAAMa,UAAU,GAAGzB,GAAG,CAACY,OAAO,EAAE,iBAAiB,EAAE,EAAE,CAAC;EACtD,MAAMc,cAAc,GAAG1B,GAAG,CAAC2B,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC;EAC/D,MAAM,CAACC,aAAa,CAAC,GAAG1B,mBAAmB,CAACS,QAAQ,CAACC,OAAO,CAAC,CAAC;EAC9D,MAAMiB,aAAa,GAAG7B,GAAG,CAAC4B,aAAa,EAAE,QAAQ,EAAEP,SAAS,CAAC;EAC7D,MAAMS,SAAS,GAAG9B,GAAG,CAACY,OAAO,EAAE,iCAAiC,EAAES,SAAS,CAAC;EAE5E,MAAMU,MAAM,GAAG,UAAU;EACzB,MAAMC,GAAG,GAAGzB,uBAAuB,CAClCP,GAAG,CAACY,OAAO,EAAE,wBAAwB,EAAE,SAAS,CACjD,CAAC;EACD,MAAMqB,UAAU,GAAG;IAClB,GAAGjC,GAAG,CAACY,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC,CAAC;IACxDW,EAAE;IACFC,QAAQ;IACRC,UAAU;IACVI,aAAa;IACbG,GAAG;IACHD,MAAM;IACNL;EACD,CAAC;EAED,OAAO3B,IAAI,CAACoB,OAAO,EAAE;IACpB;AACF;AACA;AACA;AACA;IACEe,QAAQ,EAAE9B,QAAQ,CAACgB,aAAa,CAAC,GAAGA,aAAa,GAAGC,SAAS;IAC7Dc,kBAAkB,EAAE;MACnBb,SAAS;MACTQ;IACD,CAAC;IACDG,UAAU,EAAEhC,SAAS,CACpBgC,UAAU;IACV;IACCG,KAAK,IAAMC,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,GAAGA,KAAK,CAACG,GAAG,CAACC,MAAM,CAAC,GAAG,CAACA,MAAM,CAACJ,KAAK,CAAC,CACtE;EACD,CAAC,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["get","mapValues","createDerivedBrands","UUID_V4_REGEX","isUUIDv4","x","test","removePrefixFromAppName","appName","startsWith","substring","getBrand","context","brand","e","console","log","Error","withDeviceSignals","payload","maybeDeviceId","undefined","ipAddress","os","isMobile","evReferrer","cnfEnvironment","process","licensedBrand","consumerBrand","userAgent","system","app","clientTags","toStringArray","value","Array","isArray","map","String","defaultClientTags","payloadClientTags","mergedClientTags","key","Object","entries","existing","deviceId","sessionInformation"],"sourceRoot":"../../../../../../../../src","sources":["capabilities/offers/pipeline/src/sources/ratetables/withDeviceSignals.ts"],"mappings":"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","ignoreList":[]}