@degenerate/rules 0.0.9 → 0.1.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 (80) hide show
  1. package/dist/__testdata__/conditions/current-conditions.test-data.d.ts +1 -0
  2. package/dist/__testdata__/conditions/current-conditions.test-data.d.ts.map +1 -0
  3. package/dist/__testdata__/conditions/current-conditions.test-data.js +339 -0
  4. package/dist/__testdata__/rules/rules.test-data.d.ts +24 -0
  5. package/dist/__testdata__/rules/rules.test-data.d.ts.map +1 -0
  6. package/dist/__testdata__/rules/rules.test-data.js +339 -0
  7. package/dist/create/conditions/create-boolean-conditions.d.ts +12 -0
  8. package/dist/create/conditions/create-boolean-conditions.d.ts.map +1 -0
  9. package/dist/create/conditions/create-boolean-conditions.js +20 -0
  10. package/dist/create/conditions/create-contains-conditions.d.ts +12 -0
  11. package/dist/create/conditions/create-contains-conditions.d.ts.map +1 -0
  12. package/dist/create/conditions/create-contains-conditions.js +21 -0
  13. package/dist/create/conditions/create-empty-conditions.d.ts +11 -0
  14. package/dist/create/conditions/create-empty-conditions.d.ts.map +1 -0
  15. package/dist/create/conditions/create-empty-conditions.js +19 -0
  16. package/dist/create/conditions/create-equality-conditions.d.ts +12 -0
  17. package/dist/create/conditions/create-equality-conditions.d.ts.map +1 -0
  18. package/dist/create/conditions/create-equality-conditions.js +21 -0
  19. package/dist/create/conditions/create-null-conditions.d.ts +11 -0
  20. package/dist/create/conditions/create-null-conditions.d.ts.map +1 -0
  21. package/dist/create/conditions/create-null-conditions.js +19 -0
  22. package/dist/create/conditions/create-range-conditions.d.ts +13 -0
  23. package/dist/create/conditions/create-range-conditions.d.ts.map +1 -0
  24. package/dist/create/conditions/create-range-conditions.js +22 -0
  25. package/dist/create/conditions/create-special-conditions.d.ts +12 -0
  26. package/dist/create/conditions/create-special-conditions.d.ts.map +1 -0
  27. package/dist/create/conditions/create-special-conditions.js +21 -0
  28. package/dist/create/conditions/create-starts-end-with-conditions.d.ts +13 -0
  29. package/dist/create/conditions/create-starts-end-with-conditions.d.ts.map +1 -0
  30. package/dist/create/conditions/create-starts-end-with-conditions.js +22 -0
  31. package/dist/create/conditions/create-typeof-conditions.d.ts +12 -0
  32. package/dist/create/conditions/create-typeof-conditions.d.ts.map +1 -0
  33. package/dist/create/conditions/create-typeof-conditions.js +21 -0
  34. package/dist/create/create-share-rule-applied.d.ts +11 -0
  35. package/dist/create/create-share-rule-applied.d.ts.map +1 -0
  36. package/dist/create/create-share-rule-applied.js +17 -0
  37. package/dist/create/create-share-rule-id.d.ts +11 -0
  38. package/dist/create/create-share-rule-id.d.ts.map +1 -0
  39. package/dist/create/create-share-rule-id.js +25 -0
  40. package/dist/create/create-share-rule.d.ts +11 -0
  41. package/dist/create/create-share-rule.d.ts.map +1 -0
  42. package/dist/create/create-share-rule.js +28 -0
  43. package/dist/create/index.d.ts +13 -0
  44. package/dist/create/index.d.ts.map +1 -0
  45. package/dist/create/index.js +30 -0
  46. package/dist/evaluation/conditions/boolean-conditions.d.ts +2 -2
  47. package/dist/evaluation/conditions/boolean-conditions.d.ts.map +1 -1
  48. package/dist/evaluation/conditions/boolean-conditions.js +9 -8
  49. package/dist/evaluation/conditions/contains-conditions.d.ts +2 -2
  50. package/dist/evaluation/conditions/contains-conditions.d.ts.map +1 -1
  51. package/dist/evaluation/conditions/contains-conditions.js +2 -2
  52. package/dist/evaluation/conditions/empty-conditions.d.ts +2 -2
  53. package/dist/evaluation/conditions/empty-conditions.d.ts.map +1 -1
  54. package/dist/evaluation/conditions/empty-conditions.js +4 -13
  55. package/dist/evaluation/conditions/equality-conditions.d.ts +2 -2
  56. package/dist/evaluation/conditions/equality-conditions.d.ts.map +1 -1
  57. package/dist/evaluation/conditions/equality-conditions.js +4 -7
  58. package/dist/evaluation/conditions/null-conditions.d.ts +2 -2
  59. package/dist/evaluation/conditions/null-conditions.d.ts.map +1 -1
  60. package/dist/evaluation/conditions/null-conditions.js +4 -7
  61. package/dist/evaluation/conditions/range-conditions.d.ts +2 -2
  62. package/dist/evaluation/conditions/range-conditions.d.ts.map +1 -1
  63. package/dist/evaluation/conditions/range-conditions.js +16 -5
  64. package/dist/evaluation/conditions/special-conditions.d.ts +2 -2
  65. package/dist/evaluation/conditions/special-conditions.d.ts.map +1 -1
  66. package/dist/evaluation/conditions/special-conditions.js +11 -8
  67. package/dist/evaluation/conditions/starts-end-with-conditions.d.ts +2 -2
  68. package/dist/evaluation/conditions/starts-end-with-conditions.d.ts.map +1 -1
  69. package/dist/evaluation/conditions/starts-end-with-conditions.js +5 -3
  70. package/dist/evaluation/conditions/{typeof-rule-conditions.d.ts → typeof-conditions.d.ts} +3 -3
  71. package/dist/evaluation/conditions/typeof-conditions.d.ts.map +1 -0
  72. package/dist/evaluation/conditions/{typeof-rule-conditions.js → typeof-conditions.js} +2 -2
  73. package/dist/evaluation/evaluate-rule-conditions.d.ts.map +1 -1
  74. package/dist/evaluation/evaluate-rule-conditions.js +19 -22
  75. package/dist/evaluation/evaluate-rules.js +3 -5
  76. package/dist/evaluation/index.d.ts +1 -1
  77. package/dist/evaluation/index.d.ts.map +1 -1
  78. package/dist/evaluation/index.js +1 -1
  79. package/package.json +4 -4
  80. package/dist/evaluation/conditions/typeof-rule-conditions.d.ts.map +0 -1
@@ -14,7 +14,7 @@ const generic_1 = require("@degenerate/generic");
14
14
  *
15
15
  * @returns
16
16
  */
17
- const isValidStartEndWithValue = (dataValue, conditionValue, conditionType) => {
17
+ const isValidStartEndWithValue = (dataValue, conditionValue, conditionType, conditionTypeQualifier) => {
18
18
  // Make sure the data type is correct
19
19
  if (!(typeof dataValue === 'string' || typeof dataValue === 'number' || (0, generic_1.validateArray)(dataValue, 1))) {
20
20
  throw new generic_1.SafeRuleEvaluationConditionDataValueError(dataValue, conditionValue, conditionType);
@@ -22,12 +22,14 @@ const isValidStartEndWithValue = (dataValue, conditionValue, conditionType) => {
22
22
  if (!(typeof conditionValue === 'string' || typeof conditionValue === 'number' || (0, generic_1.validateArray)(conditionValue, 1))) {
23
23
  throw new generic_1.SafeRuleEvaluationConditionValueError(dataValue, conditionValue, conditionType);
24
24
  }
25
+ let result = false;
25
26
  if ((typeof dataValue === 'string' || typeof dataValue === 'number') && (typeof conditionValue === 'string' || typeof conditionValue === 'number')) {
26
- return isValidStartEndWithStringNumberValue(dataValue, conditionValue, conditionType);
27
+ result = isValidStartEndWithStringNumberValue(dataValue, conditionValue, conditionType);
27
28
  }
28
29
  else {
29
- return isValidStartEndWithArrayValue(dataValue, conditionValue, conditionType);
30
+ result = isValidStartEndWithArrayValue(dataValue, conditionValue, conditionType);
30
31
  }
32
+ return (conditionTypeQualifier === generic_1.ConditionTypeQualifier.IS) ? result : !result;
31
33
  };
32
34
  exports.isValidStartEndWithValue = isValidStartEndWithValue;
33
35
  //#region internal functions
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * This file contains the functions for checking that the data is the proper type of data.
3
3
  */
4
- import { ConditionTypeOf, ConditionTypeTypeOf } from '@degenerate/generic';
4
+ import { ConditionTypeOf, ConditionTypeQualifier } from '@degenerate/generic';
5
5
  /**
6
6
  * This takes a value and checks if it is the proper type of value.
7
7
  *
@@ -11,6 +11,6 @@ import { ConditionTypeOf, ConditionTypeTypeOf } from '@degenerate/generic';
11
11
  *
12
12
  * @returns
13
13
  */
14
- declare const isValidTypeOfValue: (dataValue: unknown, typeofValue: ConditionTypeOf, conditionType: ConditionTypeTypeOf) => boolean;
14
+ declare const isValidTypeOfValue: (dataValue: unknown, typeofValue: ConditionTypeOf, conditionTypeQualifier: ConditionTypeQualifier) => boolean;
15
15
  export { isValidTypeOfValue };
16
- //# sourceMappingURL=typeof-rule-conditions.d.ts.map
16
+ //# sourceMappingURL=typeof-conditions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeof-conditions.d.ts","sourceRoot":"","sources":["../../../src/evaluation/conditions/typeof-conditions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE9E;;;;;;;;GAQG;AACH,QAAA,MAAM,kBAAkB,cAAe,OAAO,eAAe,eAAe,0BAChD,sBAAsB,KAAG,OAGpD,CAAC;AAsCF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -14,9 +14,9 @@ const generic_1 = require("@degenerate/generic");
14
14
  *
15
15
  * @returns
16
16
  */
17
- const isValidTypeOfValue = (dataValue, typeofValue, conditionType) => {
17
+ const isValidTypeOfValue = (dataValue, typeofValue, conditionTypeQualifier) => {
18
18
  const initialResult = checkType(dataValue, typeofValue);
19
- return (conditionType === generic_1.ConditionTypeTypeOf.IS_TYPEOF) ? initialResult : !initialResult;
19
+ return (conditionTypeQualifier === generic_1.ConditionTypeQualifier.IS) ? initialResult : !initialResult;
20
20
  };
21
21
  exports.isValidTypeOfValue = isValidTypeOfValue;
22
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate-rule-conditions.d.ts","sourceRoot":"","sources":["../../src/evaluation/evaluate-rule-conditions.ts"],"names":[],"mappings":"AAAA,OAAO,EAUH,UAAU,EACV,aAAa,EAChB,MAAM,qBAAqB,CAAC;AAW7B;;;;;GAKG;AACH,QAAA,MAAM,sBAAsB,iBAAkB,aAAa,aAAa,UAAU,KAAG,OAkCpF,CAAC;AAGF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"evaluate-rule-conditions.d.ts","sourceRoot":"","sources":["../../src/evaluation/evaluate-rule-conditions.ts"],"names":[],"mappings":"AACA,OAAO,EAMH,UAAU,EACV,aAAa,EAChB,MAAM,qBAAqB,CAAC;AAW7B;;;;;GAKG;AACH,QAAA,MAAM,sBAAsB,iBAAkB,aAAa,aAAa,UAAU,KAAG,OA+BpF,CAAC;AAGF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -10,7 +10,7 @@ const null_conditions_1 = require("./conditions/null-conditions");
10
10
  const range_conditions_1 = require("./conditions/range-conditions");
11
11
  const special_conditions_1 = require("./conditions/special-conditions");
12
12
  const starts_end_with_conditions_1 = require("./conditions/starts-end-with-conditions");
13
- const typeof_rule_conditions_1 = require("./conditions/typeof-rule-conditions");
13
+ const typeof_conditions_1 = require("./conditions/typeof-conditions");
14
14
  /**
15
15
  * This evaluates the conditions for the rule.
16
16
  *
@@ -21,34 +21,31 @@ const evaluateRuleConditions = (targetObject, condition) => {
21
21
  const splitProperties = condition.targettedProperty.split('.');
22
22
  const targetValue = getNestedProperty(targetObject, splitProperties);
23
23
  switch (condition.conditionType) {
24
- case generic_1.ConditionTypeTypeOf.IS_TYPEOF:
25
- case generic_1.ConditionTypeTypeOf.IS_NOT_TYPEOF:
26
- return (0, typeof_rule_conditions_1.isValidTypeOfValue)(targetValue, condition.conditionValue, condition.conditionType);
27
- case generic_1.ConditionTypeEquality.EQUAL:
28
- case generic_1.ConditionTypeEquality.NOT_EQUAL:
29
- return (0, equality_conditions_1.isValidEqualityValue)(targetValue, condition.conditionValue, condition.conditionType);
24
+ case generic_1.ConditionTypeSingle.TYPEOF:
25
+ return (0, typeof_conditions_1.isValidTypeOfValue)(targetValue, condition.conditionValue, condition.conditionTypeQualifier);
26
+ case generic_1.ConditionTypeSingle.EQUAL:
27
+ return (0, equality_conditions_1.isValidEqualityValue)(targetValue, condition.conditionValue, condition.conditionTypeQualifier);
30
28
  case generic_1.ConditionTypeRange.GREATER_THAN:
31
29
  case generic_1.ConditionTypeRange.LESS_THAN:
32
30
  case generic_1.ConditionTypeRange.GREATER_THAN_OR_EQUAL:
33
31
  case generic_1.ConditionTypeRange.LESS_THAN_OR_EQUAL:
34
- return (0, range_conditions_1.isValidRangeValue)(targetValue, condition.conditionValue, condition.conditionType);
35
- case generic_1.ConditionTypeContains.CONTAINS:
36
- case generic_1.ConditionTypeContains.NOT_CONTAINS:
37
- return (0, contains_conditions_1.isValidContainsValue)(targetValue, condition.conditionValue, condition.conditionType);
32
+ return (0, range_conditions_1.isValidRangeValue)(targetValue, condition.conditionValue, condition.conditionType, condition.conditionTypeQualifier);
33
+ case generic_1.ConditionTypeSingle.CONTAINS:
34
+ return (0, contains_conditions_1.isValidContainsValue)(targetValue, condition.conditionValue, condition.conditionTypeQualifier);
38
35
  case generic_1.ConditionTypeStartsEndsWith.STARTS_WITH:
39
36
  case generic_1.ConditionTypeStartsEndsWith.ENDS_WITH:
40
- return (0, starts_end_with_conditions_1.isValidStartEndWithValue)(targetValue, condition.conditionValue, condition.conditionType);
41
- case generic_1.ConditionTypeNull.IS_NULL:
42
- case generic_1.ConditionTypeNull.IS_NOT_NULL:
43
- return (0, null_conditions_1.isValidNullValue)(targetValue, condition.conditionType);
44
- case generic_1.ConditionTypeBoolean.IS_TRUE:
45
- case generic_1.ConditionTypeBoolean.IS_FALSE:
46
- return (0, boolean_conditions_1.isValidBooleanValue)(targetValue, condition.conditionType);
47
- case generic_1.ConditionTypeEmpty.IS_EMPTY:
48
- case generic_1.ConditionTypeEmpty.IS_NOT_EMPTY:
49
- return (0, empty_conditions_1.isValidEmptyValue)(targetValue, condition.conditionType);
37
+ return (0, starts_end_with_conditions_1.isValidStartEndWithValue)(targetValue, condition.conditionValue, condition.conditionType, condition.conditionTypeQualifier);
38
+ case generic_1.ConditionTypeSingle.NULL:
39
+ return (0, null_conditions_1.isValidNullValue)(targetValue, condition.conditionTypeQualifier);
40
+ case generic_1.ConditionTypeBoolean.TRUE:
41
+ case generic_1.ConditionTypeBoolean.FALSE:
42
+ return (0, boolean_conditions_1.isValidBooleanValue)(targetValue, condition.conditionType, condition.conditionTypeQualifier);
43
+ case generic_1.ConditionTypeSingle.EMPTY:
44
+ return (0, empty_conditions_1.isValidEmptyValue)(targetValue, condition.conditionTypeQualifier);
50
45
  case generic_1.ConditionTypeSpecial.PATTERN:
51
- return (0, special_conditions_1.isValidSpecialValue)(targetObject, condition.conditionValue, condition.conditionType);
46
+ return (0, special_conditions_1.isValidSpecialValue)(targetValue, condition.conditionValue, condition.conditionType, condition.conditionTypeQualifier);
47
+ default:
48
+ return false;
52
49
  }
53
50
  // return false;
54
51
  };
@@ -24,17 +24,15 @@ const evaluateRules = (rootParam, appliedRules, shareDataCurrent, shareDataPropo
24
24
  const ruleEvaluationResult = (0, evaluate_rule_1.evaluateRule)(rule, shareDataCurrent, shareDataProposed, logInfo);
25
25
  // check if the rule passed
26
26
  const passedRuleCheck = checkIfPassedRules(ruleEvaluationResult);
27
+ if (logInfo) { // add in the logging information if it's been requested
28
+ shareRulesEvaluationResults.shareRuleEvalutionResults.push(ruleEvaluationResult);
29
+ }
27
30
  if (passedRuleCheck) {
28
31
  shareRulesEvaluationResults.passedRuleCheck = true;
29
32
  shareRulesEvaluationResults.passedRuleId = rule.ruleId;
30
33
  if (!logInfo)
31
34
  break;
32
35
  }
33
- else {
34
- if (logInfo) {
35
- shareRulesEvaluationResults.shareRuleEvalutionResults.push(ruleEvaluationResult);
36
- }
37
- }
38
36
  }
39
37
  return shareRulesEvaluationResults;
40
38
  };
@@ -6,7 +6,7 @@ export * from './conditions/null-conditions';
6
6
  export * from './conditions/range-conditions';
7
7
  export * from './conditions/special-conditions';
8
8
  export * from './conditions/starts-end-with-conditions';
9
- export * from './conditions/typeof-rule-conditions';
9
+ export * from './conditions/typeof-conditions';
10
10
  export * from './check-function-integrity';
11
11
  export * from './check-if-proposal-is-valid';
12
12
  export * from './determine-if-data-has-changed';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evaluation/index.ts"],"names":[],"mappings":"AAEA,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AAIpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evaluation/index.ts"],"names":[],"mappings":"AAEA,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,gCAAgC,CAAC;AAI/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC"}
@@ -23,7 +23,7 @@ __exportStar(require("./conditions/null-conditions"), exports);
23
23
  __exportStar(require("./conditions/range-conditions"), exports);
24
24
  __exportStar(require("./conditions/special-conditions"), exports);
25
25
  __exportStar(require("./conditions/starts-end-with-conditions"), exports);
26
- __exportStar(require("./conditions/typeof-rule-conditions"), exports);
26
+ __exportStar(require("./conditions/typeof-conditions"), exports);
27
27
  //#endregion Conditional Functions
28
28
  __exportStar(require("./check-function-integrity"), exports);
29
29
  __exportStar(require("./check-if-proposal-is-valid"), exports);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@degenerate/rules",
3
3
  "description": "This contains the rules information needed for the ShareData Adaptive Framework Ecosystem (SAFE) network.",
4
- "version": "0.0.9",
4
+ "version": "0.1.0",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "devDependencies": {
@@ -35,8 +35,8 @@
35
35
  "homepage": "https://github.com/syncrude/safe#readme",
36
36
  "author": "Degenerate Inc.",
37
37
  "license": "ISC",
38
+ "gitHead": "608fbf8b2b80f30464af3898f08f7ad8db9b543c",
38
39
  "dependencies": {
39
- "@degenerate/generic": "^0.0.14"
40
- },
41
- "gitHead": "0e8f76c14364f6d23ab66cdb9547d4e486fad9a4"
40
+ "@degenerate/generic": "^0.1.0"
41
+ }
42
42
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeof-rule-conditions.d.ts","sourceRoot":"","sources":["../../../src/evaluation/conditions/typeof-rule-conditions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE3E;;;;;;;;GAQG;AACH,QAAA,MAAM,kBAAkB,cAAe,OAAO,eAAe,eAAe,iBAAiB,mBAAmB,KAAG,OAGlH,CAAC;AAsCF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}