@metamask-previews/kyc-controller 0.0.0-preview-e12b5ece6 → 0.0.0-preview-e0510042f

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 (68) hide show
  1. package/CHANGELOG.md +0 -12
  2. package/dist/KycController-method-action-types.cjs.map +1 -1
  3. package/dist/KycController-method-action-types.d.cts +4 -6
  4. package/dist/KycController-method-action-types.d.cts.map +1 -1
  5. package/dist/KycController-method-action-types.d.mts +4 -6
  6. package/dist/KycController-method-action-types.d.mts.map +1 -1
  7. package/dist/KycController-method-action-types.mjs.map +1 -1
  8. package/dist/KycController.cjs +150 -186
  9. package/dist/KycController.cjs.map +1 -1
  10. package/dist/KycController.d.cts +37 -43
  11. package/dist/KycController.d.cts.map +1 -1
  12. package/dist/KycController.d.mts +37 -43
  13. package/dist/KycController.d.mts.map +1 -1
  14. package/dist/KycController.mjs +149 -183
  15. package/dist/KycController.mjs.map +1 -1
  16. package/dist/KycService-method-action-types.cjs.map +1 -1
  17. package/dist/KycService-method-action-types.d.cts +6 -23
  18. package/dist/KycService-method-action-types.d.cts.map +1 -1
  19. package/dist/KycService-method-action-types.d.mts +6 -23
  20. package/dist/KycService-method-action-types.d.mts.map +1 -1
  21. package/dist/KycService-method-action-types.mjs.map +1 -1
  22. package/dist/KycService.cjs +119 -100
  23. package/dist/KycService.cjs.map +1 -1
  24. package/dist/KycService.d.cts +12 -38
  25. package/dist/KycService.d.cts.map +1 -1
  26. package/dist/KycService.d.mts +12 -38
  27. package/dist/KycService.d.mts.map +1 -1
  28. package/dist/KycService.mjs +119 -100
  29. package/dist/KycService.mjs.map +1 -1
  30. package/dist/index.cjs +1 -3
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.d.cts +4 -4
  33. package/dist/index.d.cts.map +1 -1
  34. package/dist/index.d.mts +4 -4
  35. package/dist/index.d.mts.map +1 -1
  36. package/dist/index.mjs +1 -1
  37. package/dist/index.mjs.map +1 -1
  38. package/dist/types.cjs.map +1 -1
  39. package/dist/types.d.cts +5 -53
  40. package/dist/types.d.cts.map +1 -1
  41. package/dist/types.d.mts +5 -53
  42. package/dist/types.d.mts.map +1 -1
  43. package/dist/types.mjs.map +1 -1
  44. package/dist/ukyc/wrapEncryptionKey.cjs +9 -4
  45. package/dist/ukyc/wrapEncryptionKey.cjs.map +1 -1
  46. package/dist/ukyc/wrapEncryptionKey.d.cts +10 -8
  47. package/dist/ukyc/wrapEncryptionKey.d.cts.map +1 -1
  48. package/dist/ukyc/wrapEncryptionKey.d.mts +10 -8
  49. package/dist/ukyc/wrapEncryptionKey.d.mts.map +1 -1
  50. package/dist/ukyc/wrapEncryptionKey.mjs +9 -4
  51. package/dist/ukyc/wrapEncryptionKey.mjs.map +1 -1
  52. package/package.json +2 -2
  53. package/dist/logger.cjs +0 -9
  54. package/dist/logger.cjs.map +0 -1
  55. package/dist/logger.d.cts +0 -6
  56. package/dist/logger.d.cts.map +0 -1
  57. package/dist/logger.d.mts +0 -6
  58. package/dist/logger.d.mts.map +0 -1
  59. package/dist/logger.mjs +0 -6
  60. package/dist/logger.mjs.map +0 -1
  61. package/dist/vendorDisclaimerAcceptance.cjs +0 -74
  62. package/dist/vendorDisclaimerAcceptance.cjs.map +0 -1
  63. package/dist/vendorDisclaimerAcceptance.d.cts +0 -39
  64. package/dist/vendorDisclaimerAcceptance.d.cts.map +0 -1
  65. package/dist/vendorDisclaimerAcceptance.d.mts +0 -39
  66. package/dist/vendorDisclaimerAcceptance.d.mts.map +0 -1
  67. package/dist/vendorDisclaimerAcceptance.mjs +0 -67
  68. package/dist/vendorDisclaimerAcceptance.mjs.map +0 -1
@@ -7,21 +7,26 @@ import { base64UrlToBytes, toBase64Url } from "../encoding.mjs";
7
7
  * The box is sealed with NaCl's `crypto_box`, keyed by the X25519 shared secret
8
8
  * between our session client private key and the session server public key
9
9
  * from an encryption schema (`encryptionDataKey` or `ukycCapabilityToken`)
10
- * returned by `createUkycSession`. The client public key is not embedded in
11
- * `data`; it was already registered on `createUkycSession`.
10
+ * returned by `createUkycSession`. The 32-byte client public key is still
11
+ * prefixed onto `data` so the box is self-describing on the wire.
12
12
  *
13
13
  * @param sessionClientPrivateKey - Our session's X25519 private key.
14
14
  * @param sessionServerPublicKey - The server's X25519 public key (base64url).
15
15
  * @param plaintext - The raw bytes to encrypt (e.g. the `data_encryption_key`
16
16
  * or the encoded `ukyc_capability_token`).
17
- * @returns The base64url `data` (ciphertext+tag) and `nonce`.
17
+ * @returns The base64url `data` (`clientPublicKey || ciphertext+tag`) and
18
+ * `nonce`.
18
19
  */
19
20
  export function wrapEncryptionKey(sessionClientPrivateKey, sessionServerPublicKey, plaintext) {
20
21
  const serverPublicKey = base64UrlToBytes(sessionServerPublicKey);
22
+ const { publicKey: clientPublicKey } = box.keyPair.fromSecretKey(sessionClientPrivateKey);
21
23
  const nonce = randomBytes(box.nonceLength);
22
24
  const ciphertext = box(plaintext, nonce, serverPublicKey, sessionClientPrivateKey);
25
+ const data = new Uint8Array(clientPublicKey.length + ciphertext.length);
26
+ data.set(clientPublicKey, 0);
27
+ data.set(ciphertext, clientPublicKey.length);
23
28
  return {
24
- data: toBase64Url(ciphertext),
29
+ data: toBase64Url(data),
25
30
  nonce: toBase64Url(nonce),
26
31
  };
27
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wrapEncryptionKey.mjs","sourceRoot":"","sources":["../../src/ukyc/wrapEncryptionKey.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,wBAAuB;AAuB/D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAC/B,uBAAmC,EACnC,sBAA8B,EAC9B,SAAqB;IAErB,MAAM,eAAe,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,GAAG,CACpB,SAAS,EACT,KAAK,EACL,eAAe,EACf,uBAAuB,CACxB,CAAC;IACF,OAAO;QACL,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC;QAC7B,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;KAC1B,CAAC;AACJ,CAAC","sourcesContent":["import { randomBytes, box } from 'tweetnacl';\n\nimport { base64UrlToBytes, toBase64Url } from '../encoding.js';\n\n/**\n * Wraps a secret for the UKYC session server using NaCl's `crypto_box`\n * (X25519 + XSalsa20-Poly1305) established with a per-secret wrapping key\n * returned inside an encryption schema from `createUkycSession`.\n *\n * Reuses a session client keypair whose public half is registered on\n * `createUkycSession`. `data` is the ciphertext+tag only; the server already\n * knows the client public key from session creation. Used for both the\n * `data_encryption_key` and the `ukyc_capability_token`.\n */\n\n/**\n * The transmitted portion of a wrapped secret: the `crypto_box` ciphertext\n * (which includes the 16-byte Poly1305 auth tag) and the nonce, both unpadded\n * base64url-encoded. Matches the KYC API `CapabilityAuthorization` wire shape.\n */\nexport type WrappedEncryptionKeyParts = {\n data: string;\n nonce: string;\n};\n\n/**\n * Wraps `plaintext` for the UKYC session server.\n *\n * The box is sealed with NaCl's `crypto_box`, keyed by the X25519 shared secret\n * between our session client private key and the session server public key\n * from an encryption schema (`encryptionDataKey` or `ukycCapabilityToken`)\n * returned by `createUkycSession`. The client public key is not embedded in\n * `data`; it was already registered on `createUkycSession`.\n *\n * @param sessionClientPrivateKey - Our session's X25519 private key.\n * @param sessionServerPublicKey - The server's X25519 public key (base64url).\n * @param plaintext - The raw bytes to encrypt (e.g. the `data_encryption_key`\n * or the encoded `ukyc_capability_token`).\n * @returns The base64url `data` (ciphertext+tag) and `nonce`.\n */\nexport function wrapEncryptionKey(\n sessionClientPrivateKey: Uint8Array,\n sessionServerPublicKey: string,\n plaintext: Uint8Array,\n): WrappedEncryptionKeyParts {\n const serverPublicKey = base64UrlToBytes(sessionServerPublicKey);\n const nonce = randomBytes(box.nonceLength);\n const ciphertext = box(\n plaintext,\n nonce,\n serverPublicKey,\n sessionClientPrivateKey,\n );\n return {\n data: toBase64Url(ciphertext),\n nonce: toBase64Url(nonce),\n };\n}\n"]}
1
+ {"version":3,"file":"wrapEncryptionKey.mjs","sourceRoot":"","sources":["../../src/ukyc/wrapEncryptionKey.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,wBAAuB;AAwB/D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAC/B,uBAAmC,EACnC,sBAA8B,EAC9B,SAAqB;IAErB,MAAM,eAAe,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IACjE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAC9D,uBAAuB,CACxB,CAAC;IACF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,GAAG,CACpB,SAAS,EACT,KAAK,EACL,eAAe,EACf,uBAAuB,CACxB,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,eAAe,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACxE,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO;QACL,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;QACvB,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;KAC1B,CAAC;AACJ,CAAC","sourcesContent":["import { randomBytes, box } from 'tweetnacl';\n\nimport { base64UrlToBytes, toBase64Url } from '../encoding.js';\n\n/**\n * Wraps a secret for the UKYC session server using NaCl's `crypto_box`\n * (X25519 + XSalsa20-Poly1305) established with a per-secret wrapping key\n * returned inside an encryption schema from `createUkycSession`.\n *\n * Reuses a session client keypair whose public half is registered on\n * `createUkycSession`. `data` is still `clientPublicKey (32) || ciphertext+tag`\n * so the box can be opened from `{ data, nonce }` alone. Used for both the\n * `data_encryption_key` and the `ukyc_capability_token`.\n */\n\n/**\n * The transmitted portion of a wrapped secret: the sender public key prefixed\n * to the `crypto_box` ciphertext (which includes the 16-byte Poly1305 auth\n * tag), and the nonce, both unpadded base64url-encoded. Matches the KYC API\n * `CapabilityAuthorization` wire shape.\n */\nexport type WrappedEncryptionKeyParts = {\n data: string;\n nonce: string;\n};\n\n/**\n * Wraps `plaintext` for the UKYC session server.\n *\n * The box is sealed with NaCl's `crypto_box`, keyed by the X25519 shared secret\n * between our session client private key and the session server public key\n * from an encryption schema (`encryptionDataKey` or `ukycCapabilityToken`)\n * returned by `createUkycSession`. The 32-byte client public key is still\n * prefixed onto `data` so the box is self-describing on the wire.\n *\n * @param sessionClientPrivateKey - Our session's X25519 private key.\n * @param sessionServerPublicKey - The server's X25519 public key (base64url).\n * @param plaintext - The raw bytes to encrypt (e.g. the `data_encryption_key`\n * or the encoded `ukyc_capability_token`).\n * @returns The base64url `data` (`clientPublicKey || ciphertext+tag`) and\n * `nonce`.\n */\nexport function wrapEncryptionKey(\n sessionClientPrivateKey: Uint8Array,\n sessionServerPublicKey: string,\n plaintext: Uint8Array,\n): WrappedEncryptionKeyParts {\n const serverPublicKey = base64UrlToBytes(sessionServerPublicKey);\n const { publicKey: clientPublicKey } = box.keyPair.fromSecretKey(\n sessionClientPrivateKey,\n );\n const nonce = randomBytes(box.nonceLength);\n const ciphertext = box(\n plaintext,\n nonce,\n serverPublicKey,\n sessionClientPrivateKey,\n );\n const data = new Uint8Array(clientPublicKey.length + ciphertext.length);\n data.set(clientPublicKey, 0);\n data.set(ciphertext, clientPublicKey.length);\n return {\n data: toBase64Url(data),\n nonce: toBase64Url(nonce),\n };\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/kyc-controller",
3
- "version": "0.0.0-preview-e12b5ece6",
3
+ "version": "0.0.0-preview-e0510042f",
4
4
  "description": "Shared KYC / identity verification controller used across MetaMask clients",
5
5
  "keywords": [
6
6
  "Ethereum",
@@ -64,7 +64,7 @@
64
64
  "@metamask/messenger": "^2.0.0",
65
65
  "@metamask/profile-sync-controller": "^29.0.0",
66
66
  "@metamask/superstruct": "^3.4.1",
67
- "@metamask/utils": "^11.12.0",
67
+ "@metamask/utils": "^11.11.0",
68
68
  "@noble/ciphers": "^1.3.0",
69
69
  "@noble/curves": "^1.9.2",
70
70
  "@noble/hashes": "^1.8.0",
package/dist/logger.cjs DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- /* istanbul ignore file */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.createModuleLogger = exports.controllerLog = exports.projectLogger = void 0;
5
- const utils_1 = require("@metamask/utils");
6
- Object.defineProperty(exports, "createModuleLogger", { enumerable: true, get: function () { return utils_1.createModuleLogger; } });
7
- exports.projectLogger = (0, utils_1.createProjectLogger)('kyc-controller');
8
- exports.controllerLog = (0, utils_1.createModuleLogger)(exports.projectLogger, 'KycController');
9
- //# sourceMappingURL=logger.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.cjs","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";AAAA,0BAA0B;;;AAE1B,2CAA0E;AAMjE,mGANqB,0BAAkB,OAMrB;AAJd,QAAA,aAAa,GAAG,IAAA,2BAAmB,EAAC,gBAAgB,CAAC,CAAC;AAEtD,QAAA,aAAa,GAAG,IAAA,0BAAkB,EAAC,qBAAa,EAAE,eAAe,CAAC,CAAC","sourcesContent":["/* istanbul ignore file */\n\nimport { createProjectLogger, createModuleLogger } from '@metamask/utils';\n\nexport const projectLogger = createProjectLogger('kyc-controller');\n\nexport const controllerLog = createModuleLogger(projectLogger, 'KycController');\n\nexport { createModuleLogger };\n"]}
package/dist/logger.d.cts DELETED
@@ -1,6 +0,0 @@
1
- /// <reference types="debug" />
2
- import { createModuleLogger } from "@metamask/utils";
3
- export declare const projectLogger: import("debug").Debugger;
4
- export declare const controllerLog: import("debug").Debugger;
5
- export { createModuleLogger };
6
- //# sourceMappingURL=logger.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.cts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";AAEA,OAAO,EAAuB,kBAAkB,EAAE,wBAAwB;AAE1E,eAAO,MAAM,aAAa,0BAAwC,CAAC;AAEnE,eAAO,MAAM,aAAa,0BAAqD,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
package/dist/logger.d.mts DELETED
@@ -1,6 +0,0 @@
1
- /// <reference types="debug" />
2
- import { createModuleLogger } from "@metamask/utils";
3
- export declare const projectLogger: import("debug").Debugger;
4
- export declare const controllerLog: import("debug").Debugger;
5
- export { createModuleLogger };
6
- //# sourceMappingURL=logger.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.mts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";AAEA,OAAO,EAAuB,kBAAkB,EAAE,wBAAwB;AAE1E,eAAO,MAAM,aAAa,0BAAwC,CAAC;AAEnE,eAAO,MAAM,aAAa,0BAAqD,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
package/dist/logger.mjs DELETED
@@ -1,6 +0,0 @@
1
- /* istanbul ignore file */
2
- import { createProjectLogger, createModuleLogger } from "@metamask/utils";
3
- export const projectLogger = createProjectLogger('kyc-controller');
4
- export const controllerLog = createModuleLogger(projectLogger, 'KycController');
5
- export { createModuleLogger };
6
- //# sourceMappingURL=logger.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.mjs","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,wBAAwB;AAE1E,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AAEnE,MAAM,CAAC,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,CAAC","sourcesContent":["/* istanbul ignore file */\n\nimport { createProjectLogger, createModuleLogger } from '@metamask/utils';\n\nexport const projectLogger = createProjectLogger('kyc-controller');\n\nexport const controllerLog = createModuleLogger(projectLogger, 'KycController');\n\nexport { createModuleLogger };\n"]}
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.clearVendorDisclaimerAcceptance = exports.recordVendorDisclaimerAcceptance = exports.ironDisclaimerIds = exports.hasVendorDisclaimerAcceptance = void 0;
4
- /**
5
- * Returns whether persisted vendor disclaimer acceptance exists for `vendor`.
6
- *
7
- * @param accepted - Vendor-disclaimer acceptance map.
8
- * @param vendor - Identity vendor to inspect.
9
- * @returns Whether acceptance is present for the vendor.
10
- */
11
- function hasVendorDisclaimerAcceptance(accepted, vendor) {
12
- if (vendor === 'moonpay') {
13
- return Boolean(accepted.moonpay?.termsAcceptedAt);
14
- }
15
- if (vendor === 'iron') {
16
- return Boolean(accepted.iron?.disclaimerIds.length);
17
- }
18
- return false;
19
- }
20
- exports.hasVendorDisclaimerAcceptance = hasVendorDisclaimerAcceptance;
21
- /**
22
- * Returns persisted Iron disclaimer ids, if any.
23
- *
24
- * @param accepted - Vendor-disclaimer acceptance map.
25
- * @returns The accepted disclaimer ids, or an empty array.
26
- */
27
- function ironDisclaimerIds(accepted) {
28
- return accepted.iron?.disclaimerIds ?? [];
29
- }
30
- exports.ironDisclaimerIds = ironDisclaimerIds;
31
- /**
32
- * Records vendor disclaimer acceptance for the active vendor.
33
- *
34
- * @param accepted - Existing vendor-disclaimer acceptance map.
35
- * @param vendor - Identity vendor being accepted.
36
- * @param params - Acceptance payload for the vendor.
37
- * @param params.termsAcceptedAt - MoonPay acceptance timestamp.
38
- * @param params.disclaimerIds - Iron disclaimer ids.
39
- * @returns The updated acceptance map.
40
- */
41
- function recordVendorDisclaimerAcceptance(accepted, vendor, params) {
42
- if (vendor === 'moonpay') {
43
- return {
44
- ...accepted,
45
- moonpay: { termsAcceptedAt: params.termsAcceptedAt },
46
- };
47
- }
48
- if (vendor === 'iron') {
49
- return {
50
- ...accepted,
51
- iron: { disclaimerIds: params.disclaimerIds },
52
- };
53
- }
54
- return accepted;
55
- }
56
- exports.recordVendorDisclaimerAcceptance = recordVendorDisclaimerAcceptance;
57
- /**
58
- * Clears persisted vendor disclaimer acceptance for one vendor.
59
- *
60
- * @param accepted - Existing vendor-disclaimer acceptance map.
61
- * @param vendor - Identity vendor whose acceptance should be cleared.
62
- * @returns The updated acceptance map.
63
- */
64
- function clearVendorDisclaimerAcceptance(accepted, vendor) {
65
- if (vendor === 'moonpay') {
66
- return { ...accepted, moonpay: null };
67
- }
68
- if (vendor === 'iron') {
69
- return { ...accepted, iron: null };
70
- }
71
- return accepted;
72
- }
73
- exports.clearVendorDisclaimerAcceptance = clearVendorDisclaimerAcceptance;
74
- //# sourceMappingURL=vendorDisclaimerAcceptance.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vendorDisclaimerAcceptance.cjs","sourceRoot":"","sources":["../src/vendorDisclaimerAcceptance.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,SAAgB,6BAA6B,CAC3C,QAAsC,EACtC,MAAiB;IAEjB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAXD,sEAWC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,QAAsC;IAEtC,OAAO,QAAQ,CAAC,IAAI,EAAE,aAAa,IAAI,EAAE,CAAC;AAC5C,CAAC;AAJD,8CAIC;AAED;;;;;;;;;GASG;AACH,SAAgB,gCAAgC,CAC9C,QAAsC,EACtC,MAAiB,EACjB,MAA4D;IAE5D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO;YACL,GAAG,QAAQ;YACX,OAAO,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE;SACrD,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO;YACL,GAAG,QAAQ;YACX,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE;SAC9C,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAlBD,4EAkBC;AAED;;;;;;GAMG;AACH,SAAgB,+BAA+B,CAC7C,QAAsC,EACtC,MAAiB;IAEjB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAXD,0EAWC","sourcesContent":["import type { KycVendor, KycVendorDisclaimersAccepted } from './types.js';\n\n/**\n * Returns whether persisted vendor disclaimer acceptance exists for `vendor`.\n *\n * @param accepted - Vendor-disclaimer acceptance map.\n * @param vendor - Identity vendor to inspect.\n * @returns Whether acceptance is present for the vendor.\n */\nexport function hasVendorDisclaimerAcceptance(\n accepted: KycVendorDisclaimersAccepted,\n vendor: KycVendor,\n): boolean {\n if (vendor === 'moonpay') {\n return Boolean(accepted.moonpay?.termsAcceptedAt);\n }\n if (vendor === 'iron') {\n return Boolean(accepted.iron?.disclaimerIds.length);\n }\n return false;\n}\n\n/**\n * Returns persisted Iron disclaimer ids, if any.\n *\n * @param accepted - Vendor-disclaimer acceptance map.\n * @returns The accepted disclaimer ids, or an empty array.\n */\nexport function ironDisclaimerIds(\n accepted: KycVendorDisclaimersAccepted,\n): string[] {\n return accepted.iron?.disclaimerIds ?? [];\n}\n\n/**\n * Records vendor disclaimer acceptance for the active vendor.\n *\n * @param accepted - Existing vendor-disclaimer acceptance map.\n * @param vendor - Identity vendor being accepted.\n * @param params - Acceptance payload for the vendor.\n * @param params.termsAcceptedAt - MoonPay acceptance timestamp.\n * @param params.disclaimerIds - Iron disclaimer ids.\n * @returns The updated acceptance map.\n */\nexport function recordVendorDisclaimerAcceptance(\n accepted: KycVendorDisclaimersAccepted,\n vendor: KycVendor,\n params: { termsAcceptedAt: string; disclaimerIds: string[] },\n): KycVendorDisclaimersAccepted {\n if (vendor === 'moonpay') {\n return {\n ...accepted,\n moonpay: { termsAcceptedAt: params.termsAcceptedAt },\n };\n }\n if (vendor === 'iron') {\n return {\n ...accepted,\n iron: { disclaimerIds: params.disclaimerIds },\n };\n }\n return accepted;\n}\n\n/**\n * Clears persisted vendor disclaimer acceptance for one vendor.\n *\n * @param accepted - Existing vendor-disclaimer acceptance map.\n * @param vendor - Identity vendor whose acceptance should be cleared.\n * @returns The updated acceptance map.\n */\nexport function clearVendorDisclaimerAcceptance(\n accepted: KycVendorDisclaimersAccepted,\n vendor: KycVendor,\n): KycVendorDisclaimersAccepted {\n if (vendor === 'moonpay') {\n return { ...accepted, moonpay: null };\n }\n if (vendor === 'iron') {\n return { ...accepted, iron: null };\n }\n return accepted;\n}\n"]}
@@ -1,39 +0,0 @@
1
- import type { KycVendor, KycVendorDisclaimersAccepted } from "./types.cjs";
2
- /**
3
- * Returns whether persisted vendor disclaimer acceptance exists for `vendor`.
4
- *
5
- * @param accepted - Vendor-disclaimer acceptance map.
6
- * @param vendor - Identity vendor to inspect.
7
- * @returns Whether acceptance is present for the vendor.
8
- */
9
- export declare function hasVendorDisclaimerAcceptance(accepted: KycVendorDisclaimersAccepted, vendor: KycVendor): boolean;
10
- /**
11
- * Returns persisted Iron disclaimer ids, if any.
12
- *
13
- * @param accepted - Vendor-disclaimer acceptance map.
14
- * @returns The accepted disclaimer ids, or an empty array.
15
- */
16
- export declare function ironDisclaimerIds(accepted: KycVendorDisclaimersAccepted): string[];
17
- /**
18
- * Records vendor disclaimer acceptance for the active vendor.
19
- *
20
- * @param accepted - Existing vendor-disclaimer acceptance map.
21
- * @param vendor - Identity vendor being accepted.
22
- * @param params - Acceptance payload for the vendor.
23
- * @param params.termsAcceptedAt - MoonPay acceptance timestamp.
24
- * @param params.disclaimerIds - Iron disclaimer ids.
25
- * @returns The updated acceptance map.
26
- */
27
- export declare function recordVendorDisclaimerAcceptance(accepted: KycVendorDisclaimersAccepted, vendor: KycVendor, params: {
28
- termsAcceptedAt: string;
29
- disclaimerIds: string[];
30
- }): KycVendorDisclaimersAccepted;
31
- /**
32
- * Clears persisted vendor disclaimer acceptance for one vendor.
33
- *
34
- * @param accepted - Existing vendor-disclaimer acceptance map.
35
- * @param vendor - Identity vendor whose acceptance should be cleared.
36
- * @returns The updated acceptance map.
37
- */
38
- export declare function clearVendorDisclaimerAcceptance(accepted: KycVendorDisclaimersAccepted, vendor: KycVendor): KycVendorDisclaimersAccepted;
39
- //# sourceMappingURL=vendorDisclaimerAcceptance.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vendorDisclaimerAcceptance.d.cts","sourceRoot":"","sources":["../src/vendorDisclaimerAcceptance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B,EAAE,oBAAmB;AAE1E;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,4BAA4B,EACtC,MAAM,EAAE,SAAS,GAChB,OAAO,CAQT;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,4BAA4B,GACrC,MAAM,EAAE,CAEV;AAED;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,4BAA4B,EACtC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,GAC3D,4BAA4B,CAc9B;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,4BAA4B,EACtC,MAAM,EAAE,SAAS,GAChB,4BAA4B,CAQ9B"}
@@ -1,39 +0,0 @@
1
- import type { KycVendor, KycVendorDisclaimersAccepted } from "./types.mjs";
2
- /**
3
- * Returns whether persisted vendor disclaimer acceptance exists for `vendor`.
4
- *
5
- * @param accepted - Vendor-disclaimer acceptance map.
6
- * @param vendor - Identity vendor to inspect.
7
- * @returns Whether acceptance is present for the vendor.
8
- */
9
- export declare function hasVendorDisclaimerAcceptance(accepted: KycVendorDisclaimersAccepted, vendor: KycVendor): boolean;
10
- /**
11
- * Returns persisted Iron disclaimer ids, if any.
12
- *
13
- * @param accepted - Vendor-disclaimer acceptance map.
14
- * @returns The accepted disclaimer ids, or an empty array.
15
- */
16
- export declare function ironDisclaimerIds(accepted: KycVendorDisclaimersAccepted): string[];
17
- /**
18
- * Records vendor disclaimer acceptance for the active vendor.
19
- *
20
- * @param accepted - Existing vendor-disclaimer acceptance map.
21
- * @param vendor - Identity vendor being accepted.
22
- * @param params - Acceptance payload for the vendor.
23
- * @param params.termsAcceptedAt - MoonPay acceptance timestamp.
24
- * @param params.disclaimerIds - Iron disclaimer ids.
25
- * @returns The updated acceptance map.
26
- */
27
- export declare function recordVendorDisclaimerAcceptance(accepted: KycVendorDisclaimersAccepted, vendor: KycVendor, params: {
28
- termsAcceptedAt: string;
29
- disclaimerIds: string[];
30
- }): KycVendorDisclaimersAccepted;
31
- /**
32
- * Clears persisted vendor disclaimer acceptance for one vendor.
33
- *
34
- * @param accepted - Existing vendor-disclaimer acceptance map.
35
- * @param vendor - Identity vendor whose acceptance should be cleared.
36
- * @returns The updated acceptance map.
37
- */
38
- export declare function clearVendorDisclaimerAcceptance(accepted: KycVendorDisclaimersAccepted, vendor: KycVendor): KycVendorDisclaimersAccepted;
39
- //# sourceMappingURL=vendorDisclaimerAcceptance.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vendorDisclaimerAcceptance.d.mts","sourceRoot":"","sources":["../src/vendorDisclaimerAcceptance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B,EAAE,oBAAmB;AAE1E;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,4BAA4B,EACtC,MAAM,EAAE,SAAS,GAChB,OAAO,CAQT;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,4BAA4B,GACrC,MAAM,EAAE,CAEV;AAED;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,4BAA4B,EACtC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,GAC3D,4BAA4B,CAc9B;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,4BAA4B,EACtC,MAAM,EAAE,SAAS,GAChB,4BAA4B,CAQ9B"}
@@ -1,67 +0,0 @@
1
- /**
2
- * Returns whether persisted vendor disclaimer acceptance exists for `vendor`.
3
- *
4
- * @param accepted - Vendor-disclaimer acceptance map.
5
- * @param vendor - Identity vendor to inspect.
6
- * @returns Whether acceptance is present for the vendor.
7
- */
8
- export function hasVendorDisclaimerAcceptance(accepted, vendor) {
9
- if (vendor === 'moonpay') {
10
- return Boolean(accepted.moonpay?.termsAcceptedAt);
11
- }
12
- if (vendor === 'iron') {
13
- return Boolean(accepted.iron?.disclaimerIds.length);
14
- }
15
- return false;
16
- }
17
- /**
18
- * Returns persisted Iron disclaimer ids, if any.
19
- *
20
- * @param accepted - Vendor-disclaimer acceptance map.
21
- * @returns The accepted disclaimer ids, or an empty array.
22
- */
23
- export function ironDisclaimerIds(accepted) {
24
- return accepted.iron?.disclaimerIds ?? [];
25
- }
26
- /**
27
- * Records vendor disclaimer acceptance for the active vendor.
28
- *
29
- * @param accepted - Existing vendor-disclaimer acceptance map.
30
- * @param vendor - Identity vendor being accepted.
31
- * @param params - Acceptance payload for the vendor.
32
- * @param params.termsAcceptedAt - MoonPay acceptance timestamp.
33
- * @param params.disclaimerIds - Iron disclaimer ids.
34
- * @returns The updated acceptance map.
35
- */
36
- export function recordVendorDisclaimerAcceptance(accepted, vendor, params) {
37
- if (vendor === 'moonpay') {
38
- return {
39
- ...accepted,
40
- moonpay: { termsAcceptedAt: params.termsAcceptedAt },
41
- };
42
- }
43
- if (vendor === 'iron') {
44
- return {
45
- ...accepted,
46
- iron: { disclaimerIds: params.disclaimerIds },
47
- };
48
- }
49
- return accepted;
50
- }
51
- /**
52
- * Clears persisted vendor disclaimer acceptance for one vendor.
53
- *
54
- * @param accepted - Existing vendor-disclaimer acceptance map.
55
- * @param vendor - Identity vendor whose acceptance should be cleared.
56
- * @returns The updated acceptance map.
57
- */
58
- export function clearVendorDisclaimerAcceptance(accepted, vendor) {
59
- if (vendor === 'moonpay') {
60
- return { ...accepted, moonpay: null };
61
- }
62
- if (vendor === 'iron') {
63
- return { ...accepted, iron: null };
64
- }
65
- return accepted;
66
- }
67
- //# sourceMappingURL=vendorDisclaimerAcceptance.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vendorDisclaimerAcceptance.mjs","sourceRoot":"","sources":["../src/vendorDisclaimerAcceptance.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAC3C,QAAsC,EACtC,MAAiB;IAEjB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAsC;IAEtC,OAAO,QAAQ,CAAC,IAAI,EAAE,aAAa,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gCAAgC,CAC9C,QAAsC,EACtC,MAAiB,EACjB,MAA4D;IAE5D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO;YACL,GAAG,QAAQ;YACX,OAAO,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE;SACrD,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO;YACL,GAAG,QAAQ;YACX,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE;SAC9C,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAC7C,QAAsC,EACtC,MAAiB;IAEjB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import type { KycVendor, KycVendorDisclaimersAccepted } from './types.js';\n\n/**\n * Returns whether persisted vendor disclaimer acceptance exists for `vendor`.\n *\n * @param accepted - Vendor-disclaimer acceptance map.\n * @param vendor - Identity vendor to inspect.\n * @returns Whether acceptance is present for the vendor.\n */\nexport function hasVendorDisclaimerAcceptance(\n accepted: KycVendorDisclaimersAccepted,\n vendor: KycVendor,\n): boolean {\n if (vendor === 'moonpay') {\n return Boolean(accepted.moonpay?.termsAcceptedAt);\n }\n if (vendor === 'iron') {\n return Boolean(accepted.iron?.disclaimerIds.length);\n }\n return false;\n}\n\n/**\n * Returns persisted Iron disclaimer ids, if any.\n *\n * @param accepted - Vendor-disclaimer acceptance map.\n * @returns The accepted disclaimer ids, or an empty array.\n */\nexport function ironDisclaimerIds(\n accepted: KycVendorDisclaimersAccepted,\n): string[] {\n return accepted.iron?.disclaimerIds ?? [];\n}\n\n/**\n * Records vendor disclaimer acceptance for the active vendor.\n *\n * @param accepted - Existing vendor-disclaimer acceptance map.\n * @param vendor - Identity vendor being accepted.\n * @param params - Acceptance payload for the vendor.\n * @param params.termsAcceptedAt - MoonPay acceptance timestamp.\n * @param params.disclaimerIds - Iron disclaimer ids.\n * @returns The updated acceptance map.\n */\nexport function recordVendorDisclaimerAcceptance(\n accepted: KycVendorDisclaimersAccepted,\n vendor: KycVendor,\n params: { termsAcceptedAt: string; disclaimerIds: string[] },\n): KycVendorDisclaimersAccepted {\n if (vendor === 'moonpay') {\n return {\n ...accepted,\n moonpay: { termsAcceptedAt: params.termsAcceptedAt },\n };\n }\n if (vendor === 'iron') {\n return {\n ...accepted,\n iron: { disclaimerIds: params.disclaimerIds },\n };\n }\n return accepted;\n}\n\n/**\n * Clears persisted vendor disclaimer acceptance for one vendor.\n *\n * @param accepted - Existing vendor-disclaimer acceptance map.\n * @param vendor - Identity vendor whose acceptance should be cleared.\n * @returns The updated acceptance map.\n */\nexport function clearVendorDisclaimerAcceptance(\n accepted: KycVendorDisclaimersAccepted,\n vendor: KycVendor,\n): KycVendorDisclaimersAccepted {\n if (vendor === 'moonpay') {\n return { ...accepted, moonpay: null };\n }\n if (vendor === 'iron') {\n return { ...accepted, iron: null };\n }\n return accepted;\n}\n"]}