@raytio/core 8.1.1 → 9.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.
Files changed (106) hide show
  1. package/README.md +375 -19
  2. package/dist/accessApplication/createAA.d.ts +17 -17
  3. package/dist/accessApplication/createAA.js +71 -72
  4. package/dist/accessApplication/index.d.ts +1 -1
  5. package/dist/accessApplication/index.js +13 -13
  6. package/dist/crypto/cognitoAttributes.d.ts +15 -15
  7. package/dist/crypto/cognitoAttributes.js +33 -33
  8. package/dist/crypto/decryptKeys.d.ts +1 -1
  9. package/dist/crypto/decryptKeys.js +33 -35
  10. package/dist/crypto/decryptSharedData.d.ts +26 -26
  11. package/dist/crypto/decryptSharedData.js +38 -38
  12. package/dist/crypto/getAADecryptor.d.ts +11 -11
  13. package/dist/crypto/getAADecryptor.js +20 -20
  14. package/dist/crypto/helpers.d.ts +18 -18
  15. package/dist/crypto/helpers.js +26 -26
  16. package/dist/crypto/index.d.ts +4 -4
  17. package/dist/crypto/index.js +17 -17
  18. package/dist/general/conditional.d.ts +7 -7
  19. package/dist/general/conditional.js +22 -22
  20. package/dist/general/index.d.ts +3 -2
  21. package/dist/general/index.js +15 -14
  22. package/dist/general/password.d.ts +8 -8
  23. package/dist/general/password.js +29 -29
  24. package/dist/general/types.d.ts +6 -0
  25. package/dist/general/types.js +13 -0
  26. package/dist/index.d.ts +6 -5
  27. package/dist/index.js +18 -17
  28. package/dist/rules/calculateScore.d.ts +11 -0
  29. package/dist/rules/calculateScore.js +52 -0
  30. package/dist/rules/convertInstanceToRuleInput.d.ts +3 -0
  31. package/dist/rules/convertInstanceToRuleInput.js +140 -0
  32. package/dist/rules/evaluateScoreCondition.d.ts +2 -0
  33. package/dist/rules/evaluateScoreCondition.js +45 -0
  34. package/dist/rules/helpers/addInfiniteThresholdBoundaries.d.ts +8 -0
  35. package/dist/rules/helpers/addInfiniteThresholdBoundaries.js +11 -0
  36. package/dist/rules/helpers/checkTypeofValue.d.ts +3 -0
  37. package/dist/rules/helpers/checkTypeofValue.js +43 -0
  38. package/dist/rules/helpers/getValuesFromPath.d.ts +3 -0
  39. package/dist/rules/helpers/getValuesFromPath.js +50 -0
  40. package/dist/rules/helpers/index.d.ts +5 -0
  41. package/dist/rules/helpers/index.js +17 -0
  42. package/dist/rules/helpers/symbols.d.ts +2 -0
  43. package/dist/rules/helpers/symbols.js +5 -0
  44. package/dist/rules/helpers/thresholds.d.ts +5 -0
  45. package/dist/rules/helpers/thresholds.js +47 -0
  46. package/dist/rules/index.d.ts +6 -0
  47. package/dist/rules/index.js +20 -0
  48. package/dist/rules/operators/bool.d.ts +2 -0
  49. package/dist/rules/operators/bool.js +17 -0
  50. package/dist/rules/operators/date.d.ts +2 -0
  51. package/dist/rules/operators/date.js +91 -0
  52. package/dist/rules/operators/hfield.d.ts +2 -0
  53. package/dist/rules/operators/hfield.js +33 -0
  54. package/dist/rules/operators/hschema.d.ts +2 -0
  55. package/dist/rules/operators/hschema.js +21 -0
  56. package/dist/rules/operators/index.d.ts +3 -0
  57. package/dist/rules/operators/index.js +11 -0
  58. package/dist/rules/operators/number.d.ts +2 -0
  59. package/dist/rules/operators/number.js +41 -0
  60. package/dist/rules/operators/string.d.ts +2 -0
  61. package/dist/rules/operators/string.js +58 -0
  62. package/dist/rules/types/config.d.ts +86 -0
  63. package/dist/rules/types/config.js +2 -0
  64. package/dist/rules/types/dataValueTypes.d.ts +19 -0
  65. package/dist/rules/types/dataValueTypes.js +4 -0
  66. package/dist/rules/types/index.d.ts +3 -0
  67. package/dist/rules/types/index.js +15 -0
  68. package/dist/rules/types/internal.d.ts +20 -0
  69. package/dist/rules/types/internal.js +2 -0
  70. package/dist/schema/index.d.ts +1 -1
  71. package/dist/schema/index.js +13 -13
  72. package/dist/schema/labels.d.ts +2 -2
  73. package/dist/schema/labels.js +20 -20
  74. package/dist/{verifications/checkVerifications.d.ts → util/canonicalJsonify.d.ts} +1 -1
  75. package/dist/util/canonicalJsonify.js +48 -0
  76. package/dist/util/handleResponse.d.ts +1 -1
  77. package/dist/util/handleResponse.js +21 -22
  78. package/dist/util/index.d.ts +2 -1
  79. package/dist/util/index.js +14 -13
  80. package/dist/verifications/cleanInstance.d.ts +9 -0
  81. package/dist/verifications/cleanInstance.js +15 -0
  82. package/dist/verifications/getPOVerification.d.ts +16 -13
  83. package/dist/verifications/getPOVerification.js +94 -95
  84. package/dist/verifications/getVerifiedBy.d.ts +1 -1
  85. package/dist/verifications/getVerifiedBy.js +19 -19
  86. package/dist/verifications/index.d.ts +5 -4
  87. package/dist/verifications/index.js +18 -17
  88. package/dist/verifications/maybeRereference.d.ts +1 -1
  89. package/dist/verifications/maybeRereference.js +10 -10
  90. package/dist/verifications/safeHarbour.d.ts +20 -20
  91. package/dist/verifications/safeHarbour.js +74 -74
  92. package/dist/verifications/verifyCheck/getOwnRealVerifications.d.ts +13 -0
  93. package/dist/verifications/verifyCheck/getOwnRealVerifications.js +63 -0
  94. package/dist/verifications/{getRealVerifications.d.ts → verifyCheck/getSomeoneElsesRealVerifications.d.ts} +26 -22
  95. package/dist/verifications/{getRealVerifications.js → verifyCheck/getSomeoneElsesRealVerifications.js} +76 -66
  96. package/dist/verifications/verifyCheck/index.d.ts +2 -0
  97. package/dist/verifications/verifyCheck/index.js +14 -0
  98. package/dist/verifications/verifyCheck/operations/checkOwnVerification.d.ts +9 -0
  99. package/dist/verifications/verifyCheck/operations/checkOwnVerification.js +31 -0
  100. package/dist/verifications/verifyCheck/operations/checkSomeoneElsesVerifications.d.ts +1 -0
  101. package/dist/verifications/{checkVerifications.js → verifyCheck/operations/checkSomeoneElsesVerifications.js} +16 -16
  102. package/dist/verifications/verifyCheck/operations/index.d.ts +2 -0
  103. package/dist/verifications/verifyCheck/operations/index.js +14 -0
  104. package/package.json +8 -8
  105. package/dist/util/conditional.d.ts +0 -7
  106. package/dist/util/conditional.js +0 -15
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOwnRealVerifications = void 0;
4
+ const maybeRereference_1 = require("../maybeRereference");
5
+ const operations_1 = require("./operations");
6
+ /**
7
+ * Given a list of verifications and decrypted profile objects, this function
8
+ * locally verifies the credibility of the signatures in the verifications.
9
+ *
10
+ * This function does NOT call the API, except to fetch the public key.
11
+ * @returns a list of authentic RealVer
12
+ */
13
+ const getOwnRealVerifications = async ({ verifications, profileObjects, userId, }) => {
14
+ const realVers = [];
15
+ // this code is deliberaly written using for-loops instead of Promise.all,
16
+ // because attempting hundreds of webcrypto operations simultaneously will
17
+ // probably upset some heritage web browser.
18
+ for (const ver of verifications) {
19
+ for (const { data, signature } of ver.properties.verifications) {
20
+ const sourcePO = profileObjects.find(PO => PO.n_id === data.source_n_id);
21
+ if (!sourcePO)
22
+ continue;
23
+ const value = sourcePO.properties[data.field];
24
+ if (!value)
25
+ continue;
26
+ /**
27
+ * this does NOT mean that the data is correct. It means the
28
+ * verification is genuinely signed by raytio, but the data
29
+ * might be bogus (i.e. `passed: false`)
30
+ */
31
+ const isGenuine = await (0, operations_1.checkOwnVerification)({
32
+ verObject: data,
33
+ userId,
34
+ value: (0, maybeRereference_1.maybeRereference)(value),
35
+ signature,
36
+ });
37
+ if (!isGenuine)
38
+ continue;
39
+ // a "RealVer" is what the client likes to deal with,
40
+ // rather than the "VerificationPayload" which is stored on the API.
41
+ // eslint-disable-next-line fp/no-mutating-methods
42
+ realVers.push({
43
+ fieldName: data.field,
44
+ value,
45
+ provider: {
46
+ dataSourceNId: data.verifier_source_id,
47
+ serviceProviderNId: data.verifier_service_id,
48
+ verifierNId: data.verifier_id,
49
+ date: new Date(`${data.verification_date}Z`), // the api returns invalid dates (missing the `Z`)
50
+ },
51
+ expired: data.valid_until ? new Date(data.valid_until) : false,
52
+ metadata: data.metadata,
53
+ xId: data.request_div,
54
+ signature,
55
+ verified: data.passed,
56
+ nID: ver.n_id,
57
+ belongsToNId: data.source_n_id,
58
+ });
59
+ }
60
+ }
61
+ return realVers;
62
+ };
63
+ exports.getOwnRealVerifications = getOwnRealVerifications;
@@ -1,22 +1,26 @@
1
- import { ProfileObject, Verification, RealVer } from "@raytio/types";
2
- declare type Props = {
3
- apiUrl: string;
4
- verifications: Verification[];
5
- profileObjects: ProfileObject[];
6
- controller?: AbortController;
7
- /**
8
- * do NOT use this option. If the value of a field
9
- * equals the value of this prop, that field will be treated
10
- * as verified, even if the API says it's not verified. See
11
- * #614 for context. @deprecated
12
- */
13
- UNSAFE_treatNoValueAsVerified?: string;
14
- };
15
- /**
16
- * Given a list of verifications and decrypted profile objects, this function calls
17
- * the Raytio API to verify the credibility of these verifications, returning only valid
18
- * verifications.
19
- * @returns a list of fileNames/values that are verified.
20
- */
21
- export declare const getRealVerifications: ({ apiUrl, verifications, profileObjects, controller, UNSAFE_treatNoValueAsVerified, }: Props) => Promise<RealVer[]>;
22
- export {};
1
+ import { ProfileObject, Verification, RealVer, AId } from "@raytio/types";
2
+ declare type Props = {
3
+ aId: AId;
4
+ apiUrl: string;
5
+ verifications: Verification[];
6
+ profileObjects: ProfileObject[];
7
+ controller?: AbortController;
8
+ /**
9
+ * do NOT use this option. If the value of a field
10
+ * equals the value of this prop, that field will be treated
11
+ * as verified, even if the API says it's not verified. See
12
+ * #614 for context. @deprecated
13
+ */
14
+ UNSAFE_treatNoValueAsVerified?: string;
15
+ };
16
+ /**
17
+ * Given a list of verifications and decrypted profile objects, this function calls
18
+ * the Raytio API to verify the credibility of these verifications, returning only valid
19
+ * verifications.
20
+ *
21
+ * prefer `getOwnRealVerifications` if the data to be verified belongs to the current user.
22
+ *
23
+ * @returns a list of fileNames/values that are verified.
24
+ */
25
+ export declare const getSomeoneElsesRealVerifications: ({ aId, apiUrl, verifications, profileObjects, controller, UNSAFE_treatNoValueAsVerified, }: Props) => Promise<RealVer[]>;
26
+ export {};
@@ -1,66 +1,76 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRealVerifications = void 0;
4
- const ramda_1 = require("ramda");
5
- const crypto_1 = require("../crypto");
6
- const checkVerifications_1 = require("./checkVerifications");
7
- const maybeRereference_1 = require("./maybeRereference");
8
- const getValuesForAField = (fieldName) => (0, ramda_1.pipe)((0, ramda_1.map)(x => { var _a; return (_a = x.properties) === null || _a === void 0 ? void 0 : _a[fieldName]; }), (0, ramda_1.filter)(x => !!x), // truthy only
9
- (0, ramda_1.reject)(crypto_1.isEncrypted), // ignore encrypted properties. this function will be called again once they're decrypted
10
- ramda_1.uniq);
11
- /**
12
- * Given a list of verifications and decrypted profile objects, this function calls
13
- * the Raytio API to verify the credibility of these verifications, returning only valid
14
- * verifications.
15
- * @returns a list of fileNames/values that are verified.
16
- */
17
- const getRealVerifications = async ({ apiUrl, verifications, profileObjects, controller, UNSAFE_treatNoValueAsVerified, }) => {
18
- // for each verification (including passed: false), create a list of every possible that
19
- // value that that verification might have been for. Flatten the list
20
- // and send the whole thing to the API.
21
- const toVerify = verifications.flatMap(ver => {
22
- const values = getValuesForAField(ver.properties.field)(profileObjects);
23
- return values.flatMap(value => ver.properties.verifications.map(({ signature }) => ({
24
- verifications: [
25
- Object.assign({ signature }, (ver.n_id.startsWith("HASHED::")
26
- ? { hashed_n_id: ver.n_id.slice(8) }
27
- : { n_id: ver.n_id })),
28
- ],
29
- data_to_verify: [{ value: (0, maybeRereference_1.maybeRereference)(value) }],
30
- })));
31
- });
32
- // the API can't cope with an empty array
33
- if (!toVerify.length)
34
- return [];
35
- const apiResponse = await (0, checkVerifications_1.checkVerifications)({
36
- apiUrl,
37
- toVerify,
38
- controller,
39
- });
40
- // do NOT expose the `verified` prop from the /verify_check API to avoid semantic confusion,
41
- // since verified: true does not mean that the verification is verified!
42
- const realVers = (0, ramda_1.pipe)((0, ramda_1.filter)(x => x.verified ||
43
- // if UNSAFE_treatNoValueAsVerified is enabled, and we don't know the value of this field,
44
- // treat is as verified if the `passed` property is true (this is NOT a safe check).
45
- (!!UNSAFE_treatNoValueAsVerified &&
46
- x.data.value === UNSAFE_treatNoValueAsVerified &&
47
- x.data.passed)), (0, ramda_1.map)(({ signature, data, n_id: nID, valid_until }) => ({
48
- fieldName: data.field,
49
- value: data.value,
50
- provider: {
51
- dataSourceNId: data.verifier_source_id,
52
- serviceProviderNId: data.verifier_service_id,
53
- verifierNId: data.verifier_id,
54
- date: new Date(`${data.verification_date}Z`), // the api returns invalid dates (missing the `Z`)
55
- },
56
- expired: valid_until ? new Date(valid_until) : false,
57
- metadata: data.metadata,
58
- xId: data.request_div,
59
- signature,
60
- verified: data.passed,
61
- nID,
62
- belongsToNId: data.source_n_id,
63
- })))(apiResponse);
64
- return realVers;
65
- };
66
- exports.getRealVerifications = getRealVerifications;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSomeoneElsesRealVerifications = void 0;
4
+ const ramda_1 = require("ramda");
5
+ const operations_1 = require("./operations");
6
+ const maybeRereference_1 = require("../maybeRereference");
7
+ const crypto_1 = require("../../crypto");
8
+ const getValuesForAField = (fieldName, POs) => (0, ramda_1.uniq)(
9
+ // truthy only, and ignore encrypted properties. this function will be called again once they're decrypted
10
+ POs.map(x => { var _a; return (_a = x.properties) === null || _a === void 0 ? void 0 : _a[fieldName]; }).filter(x => !!x && !(0, crypto_1.isEncrypted)(x)));
11
+ /**
12
+ * Given a list of verifications and decrypted profile objects, this function calls
13
+ * the Raytio API to verify the credibility of these verifications, returning only valid
14
+ * verifications.
15
+ *
16
+ * ❗ prefer `getOwnRealVerifications` if the data to be verified belongs to the current user.
17
+ *
18
+ * @returns a list of fileNames/values that are verified.
19
+ */
20
+ const getSomeoneElsesRealVerifications = async ({ aId, apiUrl, verifications, profileObjects, controller, UNSAFE_treatNoValueAsVerified, }) => {
21
+ // for each verification (including passed: false), create a list of every possible that
22
+ // value that that verification might have been for. Flatten the list
23
+ // and send the whole thing to the API.
24
+ const toVerify = verifications.flatMap(ver => {
25
+ const values = getValuesForAField(ver.properties.field, profileObjects);
26
+ return values.flatMap(value => ver.properties.verifications.map(({ signature }) => ({
27
+ verifications: [
28
+ Object.assign({ signature }, (ver.n_id.startsWith("HASHED::")
29
+ ? {
30
+ hashed_n_id: ver.n_id.split("::")[1],
31
+ a_id: ver.n_id.split("::")[2],
32
+ }
33
+ : { n_id: ver.n_id })),
34
+ ],
35
+ data_to_verify: [{ value: (0, maybeRereference_1.maybeRereference)(value) }],
36
+ })));
37
+ });
38
+ // the API can't cope with an empty array
39
+ if (!toVerify.length)
40
+ return [];
41
+ const apiResponse = await (0, operations_1.checkSomeoneElsesVerifications)({
42
+ apiUrl,
43
+ toVerify,
44
+ controller,
45
+ });
46
+ // do NOT expose the `verified` prop from the /verify_check API to avoid semantic confusion,
47
+ // since verified: true does not mean that the verification is verified!
48
+ const realVers = apiResponse
49
+ .filter(x => x.verified ||
50
+ // if UNSAFE_treatNoValueAsVerified is enabled, and we don't know the value of this field,
51
+ // treat is as verified if the `passed` property is true (this is NOT a safe check).
52
+ (!!UNSAFE_treatNoValueAsVerified &&
53
+ x.data.value === UNSAFE_treatNoValueAsVerified &&
54
+ x.data.passed))
55
+ .map(({ signature, data, n_id: nID, valid_until }) => ({
56
+ fieldName: data.field,
57
+ value: data.value,
58
+ provider: {
59
+ dataSourceNId: data.verifier_source_id,
60
+ serviceProviderNId: data.verifier_service_id,
61
+ verifierNId: data.verifier_id,
62
+ date: new Date(`${data.verification_date}Z`), // the api returns invalid dates (missing the `Z`)
63
+ },
64
+ expired: valid_until ? new Date(valid_until) : false,
65
+ metadata: data.metadata,
66
+ xId: data.request_div,
67
+ signature,
68
+ verified: data.passed,
69
+ nID,
70
+ belongsToNId: data.source_hashed_n_id
71
+ ? `HASHED::${data.source_hashed_n_id}::${aId}`
72
+ : data.source_n_id,
73
+ }));
74
+ return realVers;
75
+ };
76
+ exports.getSomeoneElsesRealVerifications = getSomeoneElsesRealVerifications;
@@ -0,0 +1,2 @@
1
+ export * from "./getOwnRealVerifications";
2
+ export * from "./getSomeoneElsesRealVerifications";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./getOwnRealVerifications"), exports);
14
+ __exportStar(require("./getSomeoneElsesRealVerifications"), exports);
@@ -0,0 +1,9 @@
1
+ import { UId, VerificationPayload } from "@raytio/types";
2
+ declare type SingleVerToCheck = {
3
+ verObject: VerificationPayload<false>;
4
+ signature: string;
5
+ userId: UId;
6
+ value: unknown;
7
+ };
8
+ export declare const checkOwnVerification: ({ verObject, signature, userId, value, }: SingleVerToCheck) => Promise<boolean>;
9
+ export {};
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkOwnVerification = exports.checkSignature = void 0;
4
+ const util_1 = require("../../../util");
5
+ let cache; // eslint-disable-line fp/no-let
6
+ const base64ToArrayBuffer = (str) => Uint8Array.from(atob(str), c => c.charCodeAt(0));
7
+ async function getJwk() {
8
+ // eslint-disable-next-line fp/no-mutation
9
+ cache || (cache = fetch("https://api-docs.rayt.io/lookups/raytio.pem")
10
+ .then(r => r.text())
11
+ .then(pem => crypto.subtle.importKey("spki", base64ToArrayBuffer(pem.split("-----")[2].trim()), { name: "RSA-PSS", hash: "SHA-512" }, false, ["verify"])));
12
+ return cache;
13
+ }
14
+ /** @internal exported only for tests */
15
+ async function checkSignature(publicCryptoKey, signature, data) {
16
+ // the logic must match https://gitlab.com/raytio/mono/-/blob/devo/common/signing/signing/sign.py
17
+ const signatureBuf = base64ToArrayBuffer(signature);
18
+ const isVerified = await crypto.subtle.verify({ name: "RSA-PSS", hash: "SHA-512", saltLength: 512 / 8 }, publicCryptoKey, signatureBuf, new TextEncoder().encode(data));
19
+ return isVerified;
20
+ }
21
+ exports.checkSignature = checkSignature;
22
+ const checkOwnVerification = async ({ verObject, signature, userId, value, }) => {
23
+ const jwk = await getJwk();
24
+ if (!userId)
25
+ throw new Error("No userId supplied");
26
+ const exapandedObject = Object.assign(Object.assign({}, verObject), { sub: userId, value });
27
+ const stringified = (0, util_1.canonicalJsonify)(exapandedObject);
28
+ const result = await checkSignature(jwk, signature, stringified);
29
+ return result;
30
+ };
31
+ exports.checkOwnVerification = checkOwnVerification;
@@ -1,16 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkVerifications = void 0;
4
- const util_1 = require("../util");
5
- /** @internal */
6
- const checkVerifications = async ({ apiUrl, toVerify, controller, }) => {
7
- const response = await fetch(`${apiUrl}/extract_verify/v2/verify_check`, {
8
- method: "POST",
9
- body: JSON.stringify(toVerify),
10
- signal: controller === null || controller === void 0 ? void 0 : controller.signal,
11
- }).then(util_1.handleResponse);
12
- // if we send `n` items to the API, it returns `n + m` items. The
13
- // extra `m` items are garbage and don't have the verified field.
14
- return response.filter(ver => "verified" in ver);
15
- };
16
- exports.checkVerifications = checkVerifications;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkSomeoneElsesVerifications = void 0;
4
+ const util_1 = require("../../../util");
5
+ /** @internal */
6
+ const checkSomeoneElsesVerifications = async ({ apiUrl, toVerify, controller, }) => {
7
+ const response = await fetch(`${apiUrl}/extract_verify/v2/verify_check`, {
8
+ method: "POST",
9
+ body: JSON.stringify(toVerify),
10
+ signal: controller === null || controller === void 0 ? void 0 : controller.signal,
11
+ }).then(util_1.handleResponse);
12
+ // if we send `n` items to the API, it returns `n + m` items. The
13
+ // extra `m` items are garbage and don't have the verified field.
14
+ return response.filter(ver => "verified" in ver);
15
+ };
16
+ exports.checkSomeoneElsesVerifications = checkSomeoneElsesVerifications;
@@ -0,0 +1,2 @@
1
+ export * from "./checkOwnVerification";
2
+ export * from "./checkSomeoneElsesVerifications";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./checkOwnVerification"), exports);
14
+ __exportStar(require("./checkSomeoneElsesVerifications"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raytio/core",
3
- "version": "8.1.1",
3
+ "version": "9.0.1",
4
4
  "license": "MIT",
5
5
  "main": "index",
6
6
  "types": "index",
@@ -15,22 +15,22 @@
15
15
  "test": "jest"
16
16
  },
17
17
  "dependencies": {
18
- "@raytio/maxcryptor": "3.0.1",
19
- "@raytio/types": "5.2.0",
20
- "ramda": "0.27.1"
18
+ "@raytio/maxcryptor": "3.1.0",
19
+ "@raytio/types": "6.0.0",
20
+ "ramda": "0.28.0"
21
21
  },
22
22
  "devDependencies": {
23
- "@types/ramda": "0.27.44",
24
- "jest": "27.1.0",
23
+ "@types/ramda": "0.27.64",
24
+ "jest": "27.4.7",
25
25
  "localstorage-polyfill": "1.0.1",
26
- "ts-jest": "27.0.5"
26
+ "ts-jest": "27.1.3"
27
27
  },
28
28
  "jest": {
29
29
  "transform": {
30
30
  "^.+\\.(t|j)sx?$": "ts-jest"
31
31
  },
32
32
  "testEnvironment": "node",
33
- "collectCoverage": true,
33
+ "collectCoverage": false,
34
34
  "coverageThreshold": {
35
35
  "global": {
36
36
  "statements": 100
@@ -1,7 +0,0 @@
1
- declare type ConditionValue = string | number | boolean;
2
- /**
3
- * Checks all other form values in case any have a
4
- * trigger value that makes this field requirted.
5
- */
6
- export declare const isConditionMet: (condition: Record<string, ConditionValue[]>, formValues: Record<string, unknown>) => boolean;
7
- export {};
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isConditionMet = void 0;
4
- /**
5
- * Checks all other form values in case any have a
6
- * trigger value that makes this field requirted.
7
- */
8
- const isConditionMet = (condition, formValues) => Object.entries(condition).every(([fieldName, triggerValues]) => {
9
- if (Array.isArray(formValues[fieldName])) {
10
- // if it's a multiselect, check if any of the selected values match the criteria
11
- return formValues[fieldName].some(val => triggerValues.includes(val));
12
- }
13
- return triggerValues.includes(formValues[fieldName]);
14
- });
15
- exports.isConditionMet = isConditionMet;