@kard-financial/sdk 3.1.0 → 3.2.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.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generate a Hashed Email (HEM) from a raw email address.
3
+ * Returns the lowercase hex SHA-256 digest of the normalized, UTF-8-encoded email.
4
+ */
5
+ export declare function generateHEM(raw: string): string;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizeEmail = normalizeEmail;
4
3
  exports.generateHEM = generateHEM;
5
4
  const crypto_1 = require("crypto");
6
5
  const GMAIL_DOMAINS = new Set(["gmail.com", "googlemail.com"]);
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generate a Hashed Email (HEM) from a raw email address.
3
+ * Returns the lowercase hex SHA-256 digest of the normalized, UTF-8-encoded email.
4
+ */
5
+ export declare function generateHEM(raw: string): string;
@@ -9,7 +9,7 @@ const GMAIL_DOMAINS = new Set(["gmail.com", "googlemail.com"]);
9
9
  * - Gmail/Googlemail only: remove dots from local-part, strip '+' suffix
10
10
  * - Canonicalize googlemail.com → gmail.com
11
11
  */
12
- export function normalizeEmail(raw) {
12
+ function normalizeEmail(raw) {
13
13
  const email = raw.replace(/\s/g, "").toLowerCase();
14
14
  const atIndex = email.indexOf("@");
15
15
  if (atIndex < 1 || atIndex !== email.lastIndexOf("@") || atIndex === email.length - 1) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kard-financial/sdk",
3
- "version": "3.1.0",
3
+ "version": "3.2.1",
4
4
  "private": false,
5
5
  "repository": "github:KardFinancial/kard-node-sdk",
6
6
  "type": "commonjs",
@@ -20,7 +20,19 @@
20
20
  },
21
21
  "default": "./dist/cjs/index.js"
22
22
  },
23
- "./package.json": "./package.json"
23
+ "./package.json": "./package.json",
24
+ "./helpers/hem": {
25
+ "types": "./dist/cjs/helpers/hem.d.ts",
26
+ "import": {
27
+ "types": "./dist/esm/helpers/hem.d.mts",
28
+ "default": "./dist/esm/helpers/hem.mjs"
29
+ },
30
+ "require": {
31
+ "types": "./dist/cjs/helpers/hem.d.ts",
32
+ "default": "./dist/cjs/helpers/hem.js"
33
+ },
34
+ "default": "./dist/cjs/helpers/hem.js"
35
+ }
24
36
  },
25
37
  "files": [
26
38
  "dist",
package/reference.md CHANGED
@@ -1884,3 +1884,64 @@ await client.users.uploads.update("organization-123", "user-123", "upload-123",
1884
1884
  </dd>
1885
1885
  </dl>
1886
1886
  </details>
1887
+
1888
+ ## Custom Helper Functions
1889
+ ### hem
1890
+
1891
+ **Import:** `import { generateHEM } from "@kard-financial/sdk/helpers/hem";`
1892
+
1893
+ <details><summary><code><a href="/src/helpers/hem.ts">generateHEM(raw: string): string</a></code></summary>
1894
+ <dl>
1895
+ <dd>
1896
+
1897
+ #### 📝 Description
1898
+
1899
+ <dl>
1900
+ <dd>
1901
+
1902
+ Normalize an email address for Hashed Email (HEM) generation.
1903
+ Follows UID2/LiveRamp industry standards:
1904
+ - Remove all whitespace
1905
+ - Lowercase
1906
+ - Gmail/Googlemail only: remove dots from local-part, strip '+' suffix
1907
+ - Canonicalize googlemail.com → gmail.com
1908
+ /
1909
+ function normalizeEmail(raw: string): string {
1910
+ const email = raw.replace(/\s/g, "").toLowerCase();
1911
+ const atIndex = email.indexOf("@");
1912
+ if (atIndex < 1 || atIndex !== email.lastIndexOf("@") || atIndex === email.length - 1) {
1913
+ throw new TypeError(`Invalid email address: ${JSON.stringify(raw)}`);
1914
+ }
1915
+ const localPart = email.slice(0, atIndex);
1916
+ const domain = email.slice(atIndex + 1);
1917
+ if (GMAIL_DOMAINS.has(domain)) {
1918
+ const base = localPart.split("+")[0].replace(/\./g, "");
1919
+ return `${base}@gmail.com`;
1920
+ }
1921
+ return `${localPart}@${domain}`;
1922
+ }
1923
+ /**
1924
+ Generate a Hashed Email (HEM) from a raw email address.
1925
+ Returns the lowercase hex SHA-256 digest of the normalized, UTF-8-encoded email.
1926
+
1927
+ </dd>
1928
+ </dl>
1929
+
1930
+ #### 🔌 Usage
1931
+
1932
+ <dl>
1933
+ <dd>
1934
+
1935
+ ```typescript
1936
+ import { generateHEM } from "@kard-financial/sdk/helpers/hem";
1937
+
1938
+ const result = generateHEM(/* raw: string */);
1939
+ ```
1940
+
1941
+ </dd>
1942
+ </dl>
1943
+
1944
+ </dd>
1945
+ </dl>
1946
+ </details>
1947
+
package/dist/cjs/hem.d.ts DELETED
@@ -1,15 +0,0 @@
1
- /**
2
- * Normalize an email address for Hashed Email (HEM) generation.
3
- *
4
- * Follows UID2/LiveRamp industry standards:
5
- * - Remove all whitespace
6
- * - Lowercase
7
- * - Gmail/Googlemail only: remove dots from local-part, strip '+' suffix
8
- * - Canonicalize googlemail.com → gmail.com
9
- */
10
- export declare function normalizeEmail(raw: string): string;
11
- /**
12
- * Generate a Hashed Email (HEM) from a raw email address.
13
- * Returns the lowercase hex SHA-256 digest of the normalized, UTF-8-encoded email.
14
- */
15
- export declare function generateHEM(raw: string): string;
@@ -1,15 +0,0 @@
1
- /**
2
- * Normalize an email address for Hashed Email (HEM) generation.
3
- *
4
- * Follows UID2/LiveRamp industry standards:
5
- * - Remove all whitespace
6
- * - Lowercase
7
- * - Gmail/Googlemail only: remove dots from local-part, strip '+' suffix
8
- * - Canonicalize googlemail.com → gmail.com
9
- */
10
- export declare function normalizeEmail(raw: string): string;
11
- /**
12
- * Generate a Hashed Email (HEM) from a raw email address.
13
- * Returns the lowercase hex SHA-256 digest of the normalized, UTF-8-encoded email.
14
- */
15
- export declare function generateHEM(raw: string): string;