@nucypher/taco 0.4.0 → 0.6.0-alpha.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 (188) hide show
  1. package/README.md +0 -1
  2. package/dist/cjs/conditions/base/contract.d.ts +2 -432
  3. package/dist/cjs/conditions/base/contract.js +7 -80
  4. package/dist/cjs/conditions/base/contract.js.map +1 -1
  5. package/dist/cjs/conditions/base/index.d.ts +1 -0
  6. package/dist/cjs/conditions/base/index.js +2 -1
  7. package/dist/cjs/conditions/base/index.js.map +1 -1
  8. package/dist/cjs/conditions/base/json-api.d.ts +7 -0
  9. package/dist/cjs/conditions/base/json-api.js +19 -0
  10. package/dist/cjs/conditions/base/json-api.js.map +1 -0
  11. package/dist/cjs/conditions/base/rpc.d.ts +2 -42
  12. package/dist/cjs/conditions/base/rpc.js +7 -22
  13. package/dist/cjs/conditions/base/rpc.js.map +1 -1
  14. package/dist/cjs/conditions/base/time.d.ts +2 -40
  15. package/dist/cjs/conditions/base/time.js +8 -15
  16. package/dist/cjs/conditions/base/time.js.map +1 -1
  17. package/dist/cjs/conditions/compound-condition.d.ts +2 -4
  18. package/dist/cjs/conditions/compound-condition.js +7 -38
  19. package/dist/cjs/conditions/compound-condition.js.map +1 -1
  20. package/dist/cjs/conditions/condition-expr.d.ts +0 -3
  21. package/dist/cjs/conditions/condition-expr.js +0 -4
  22. package/dist/cjs/conditions/condition-expr.js.map +1 -1
  23. package/dist/cjs/conditions/condition-factory.js +11 -0
  24. package/dist/cjs/conditions/condition-factory.js.map +1 -1
  25. package/dist/cjs/conditions/condition.d.ts +1 -1
  26. package/dist/cjs/conditions/condition.js +3 -1
  27. package/dist/cjs/conditions/condition.js.map +1 -1
  28. package/dist/cjs/conditions/const.d.ts +1 -2
  29. package/dist/cjs/conditions/const.js +6 -8
  30. package/dist/cjs/conditions/const.js.map +1 -1
  31. package/dist/cjs/conditions/context/context.d.ts +15 -13
  32. package/dist/cjs/conditions/context/context.js +62 -56
  33. package/dist/cjs/conditions/context/context.js.map +1 -1
  34. package/dist/cjs/conditions/if-then-else-condition.d.ts +7 -0
  35. package/dist/cjs/conditions/if-then-else-condition.js +18 -0
  36. package/dist/cjs/conditions/if-then-else-condition.js.map +1 -0
  37. package/dist/cjs/conditions/index.d.ts +2 -0
  38. package/dist/cjs/conditions/index.js +3 -1
  39. package/dist/cjs/conditions/index.js.map +1 -1
  40. package/dist/cjs/conditions/multi-condition.d.ts +2 -0
  41. package/dist/cjs/conditions/multi-condition.js +35 -0
  42. package/dist/cjs/conditions/multi-condition.js.map +1 -0
  43. package/dist/cjs/conditions/schemas/common.d.ts +12 -0
  44. package/dist/cjs/conditions/schemas/common.js +36 -0
  45. package/dist/cjs/conditions/schemas/common.js.map +1 -0
  46. package/dist/cjs/conditions/schemas/compound.d.ts +4 -0
  47. package/dist/cjs/conditions/schemas/compound.js +36 -0
  48. package/dist/cjs/conditions/schemas/compound.js.map +1 -0
  49. package/dist/cjs/conditions/schemas/context.d.ts +3 -0
  50. package/dist/cjs/conditions/schemas/context.js +16 -0
  51. package/dist/cjs/conditions/schemas/context.js.map +1 -0
  52. package/dist/cjs/conditions/schemas/contract.d.ts +428 -0
  53. package/dist/cjs/conditions/schemas/contract.js +81 -0
  54. package/dist/cjs/conditions/schemas/contract.js.map +1 -0
  55. package/dist/cjs/conditions/schemas/if-then-else.d.ts +4 -0
  56. package/dist/cjs/conditions/schemas/if-then-else.js +40 -0
  57. package/dist/cjs/conditions/schemas/if-then-else.js.map +1 -0
  58. package/dist/cjs/conditions/schemas/json-api.d.ts +46 -0
  59. package/dist/cjs/conditions/schemas/json-api.js +37 -0
  60. package/dist/cjs/conditions/schemas/json-api.js.map +1 -0
  61. package/dist/cjs/conditions/schemas/return-value-test.d.ts +15 -0
  62. package/dist/cjs/conditions/schemas/return-value-test.js +11 -0
  63. package/dist/cjs/conditions/schemas/return-value-test.js.map +1 -0
  64. package/dist/cjs/conditions/schemas/rpc.d.ts +42 -0
  65. package/dist/cjs/conditions/schemas/rpc.js +58 -0
  66. package/dist/cjs/conditions/schemas/rpc.js.map +1 -0
  67. package/dist/cjs/conditions/schemas/sequential.d.ts +6 -0
  68. package/dist/cjs/conditions/schemas/sequential.js +39 -0
  69. package/dist/cjs/conditions/schemas/sequential.js.map +1 -0
  70. package/dist/cjs/conditions/schemas/time.d.ts +40 -0
  71. package/dist/cjs/conditions/schemas/time.js +16 -0
  72. package/dist/cjs/conditions/schemas/time.js.map +1 -0
  73. package/dist/cjs/conditions/schemas/utils.d.ts +2 -0
  74. package/dist/cjs/conditions/schemas/utils.js +21 -0
  75. package/dist/cjs/conditions/schemas/utils.js.map +1 -0
  76. package/dist/cjs/conditions/sequential.d.ts +7 -0
  77. package/dist/cjs/conditions/sequential.js +18 -0
  78. package/dist/cjs/conditions/sequential.js.map +1 -0
  79. package/dist/cjs/conditions/shared.d.ts +2 -19
  80. package/dist/cjs/conditions/shared.js +6 -32
  81. package/dist/cjs/conditions/shared.js.map +1 -1
  82. package/dist/cjs/dkg.d.ts +1 -1
  83. package/dist/cjs/dkg.js +2 -2
  84. package/dist/cjs/dkg.js.map +1 -1
  85. package/dist/cjs/index.d.ts +2 -3
  86. package/dist/cjs/index.js +2 -8
  87. package/dist/cjs/index.js.map +1 -1
  88. package/dist/cjs/taco.d.ts +5 -23
  89. package/dist/cjs/taco.js +9 -36
  90. package/dist/cjs/taco.js.map +1 -1
  91. package/dist/cjs/tdec.d.ts +3 -4
  92. package/dist/cjs/tdec.js +11 -8
  93. package/dist/cjs/tdec.js.map +1 -1
  94. package/dist/es/conditions/base/contract.d.ts +2 -432
  95. package/dist/es/conditions/base/contract.js +2 -77
  96. package/dist/es/conditions/base/contract.js.map +1 -1
  97. package/dist/es/conditions/base/index.d.ts +1 -0
  98. package/dist/es/conditions/base/index.js +1 -0
  99. package/dist/es/conditions/base/index.js.map +1 -1
  100. package/dist/es/conditions/base/json-api.d.ts +7 -0
  101. package/dist/es/conditions/base/json-api.js +12 -0
  102. package/dist/es/conditions/base/json-api.js.map +1 -0
  103. package/dist/es/conditions/base/rpc.d.ts +2 -42
  104. package/dist/es/conditions/base/rpc.js +2 -16
  105. package/dist/es/conditions/base/rpc.js.map +1 -1
  106. package/dist/es/conditions/base/time.d.ts +2 -40
  107. package/dist/es/conditions/base/time.js +2 -12
  108. package/dist/es/conditions/base/time.js.map +1 -1
  109. package/dist/es/conditions/compound-condition.d.ts +2 -4
  110. package/dist/es/conditions/compound-condition.js +2 -35
  111. package/dist/es/conditions/compound-condition.js.map +1 -1
  112. package/dist/es/conditions/condition-expr.d.ts +0 -3
  113. package/dist/es/conditions/condition-expr.js +0 -4
  114. package/dist/es/conditions/condition-expr.js.map +1 -1
  115. package/dist/es/conditions/condition-factory.js +11 -0
  116. package/dist/es/conditions/condition-factory.js.map +1 -1
  117. package/dist/es/conditions/condition.d.ts +1 -1
  118. package/dist/es/conditions/condition.js +1 -0
  119. package/dist/es/conditions/condition.js.map +1 -1
  120. package/dist/es/conditions/const.d.ts +1 -2
  121. package/dist/es/conditions/const.js +5 -7
  122. package/dist/es/conditions/const.js.map +1 -1
  123. package/dist/es/conditions/context/context.d.ts +15 -13
  124. package/dist/es/conditions/context/context.js +63 -57
  125. package/dist/es/conditions/context/context.js.map +1 -1
  126. package/dist/es/conditions/if-then-else-condition.d.ts +7 -0
  127. package/dist/es/conditions/if-then-else-condition.js +12 -0
  128. package/dist/es/conditions/if-then-else-condition.js.map +1 -0
  129. package/dist/es/conditions/index.d.ts +2 -0
  130. package/dist/es/conditions/index.js +2 -0
  131. package/dist/es/conditions/index.js.map +1 -1
  132. package/dist/es/conditions/multi-condition.d.ts +2 -0
  133. package/dist/es/conditions/multi-condition.js +31 -0
  134. package/dist/es/conditions/multi-condition.js.map +1 -0
  135. package/dist/es/conditions/schemas/common.d.ts +12 -0
  136. package/dist/es/conditions/schemas/common.js +33 -0
  137. package/dist/es/conditions/schemas/common.js.map +1 -0
  138. package/dist/es/conditions/schemas/compound.d.ts +4 -0
  139. package/dist/es/conditions/schemas/compound.js +33 -0
  140. package/dist/es/conditions/schemas/compound.js.map +1 -0
  141. package/dist/es/conditions/schemas/context.d.ts +3 -0
  142. package/dist/es/conditions/schemas/context.js +13 -0
  143. package/dist/es/conditions/schemas/context.js.map +1 -0
  144. package/dist/es/conditions/schemas/contract.d.ts +428 -0
  145. package/dist/es/conditions/schemas/contract.js +78 -0
  146. package/dist/es/conditions/schemas/contract.js.map +1 -0
  147. package/dist/es/conditions/schemas/if-then-else.d.ts +4 -0
  148. package/dist/es/conditions/schemas/if-then-else.js +37 -0
  149. package/dist/es/conditions/schemas/if-then-else.js.map +1 -0
  150. package/dist/es/conditions/schemas/json-api.d.ts +46 -0
  151. package/dist/es/conditions/schemas/json-api.js +34 -0
  152. package/dist/es/conditions/schemas/json-api.js.map +1 -0
  153. package/dist/es/conditions/schemas/return-value-test.d.ts +15 -0
  154. package/dist/es/conditions/schemas/return-value-test.js +8 -0
  155. package/dist/es/conditions/schemas/return-value-test.js.map +1 -0
  156. package/dist/es/conditions/schemas/rpc.d.ts +42 -0
  157. package/dist/es/conditions/schemas/rpc.js +32 -0
  158. package/dist/es/conditions/schemas/rpc.js.map +1 -0
  159. package/dist/es/conditions/schemas/sequential.d.ts +6 -0
  160. package/dist/es/conditions/schemas/sequential.js +36 -0
  161. package/dist/es/conditions/schemas/sequential.js.map +1 -0
  162. package/dist/es/conditions/schemas/time.d.ts +40 -0
  163. package/dist/es/conditions/schemas/time.js +13 -0
  164. package/dist/es/conditions/schemas/time.js.map +1 -0
  165. package/dist/es/conditions/schemas/utils.d.ts +2 -0
  166. package/dist/es/conditions/schemas/utils.js +18 -0
  167. package/dist/es/conditions/schemas/utils.js.map +1 -0
  168. package/dist/es/conditions/sequential.d.ts +7 -0
  169. package/dist/es/conditions/sequential.js +12 -0
  170. package/dist/es/conditions/sequential.js.map +1 -0
  171. package/dist/es/conditions/shared.d.ts +2 -19
  172. package/dist/es/conditions/shared.js +2 -33
  173. package/dist/es/conditions/shared.js.map +1 -1
  174. package/dist/es/dkg.d.ts +1 -1
  175. package/dist/es/dkg.js +2 -2
  176. package/dist/es/dkg.js.map +1 -1
  177. package/dist/es/index.d.ts +2 -3
  178. package/dist/es/index.js +2 -5
  179. package/dist/es/index.js.map +1 -1
  180. package/dist/es/taco.d.ts +5 -23
  181. package/dist/es/taco.js +9 -34
  182. package/dist/es/taco.js.map +1 -1
  183. package/dist/es/tdec.d.ts +3 -4
  184. package/dist/es/tdec.js +12 -9
  185. package/dist/es/tdec.js.map +1 -1
  186. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  187. package/dist/tsconfig.es.tsbuildinfo +1 -1
  188. package/package.json +7 -6
@@ -1,30 +1,15 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.RpcCondition = exports.rpcConditionSchema = exports.RpcConditionType = void 0;
7
- const zod_1 = require("zod");
3
+ exports.RpcCondition = exports.RpcConditionType = exports.rpcConditionSchema = void 0;
8
4
  const condition_1 = require("../condition");
9
- const const_1 = require("../const");
10
- const shared_1 = require("../shared");
11
- const zod_2 = __importDefault(require("../zod"));
12
- exports.RpcConditionType = 'rpc';
13
- exports.rpcConditionSchema = zod_1.z.object({
14
- conditionType: zod_1.z.literal(exports.RpcConditionType).default(exports.RpcConditionType),
15
- chain: (0, zod_2.default)(const_1.SUPPORTED_CHAIN_IDS),
16
- method: zod_1.z.enum(['eth_getBalance']),
17
- parameters: zod_1.z.union([
18
- zod_1.z.array(shared_1.EthAddressOrUserAddressSchema).nonempty(),
19
- // Using tuple here because ordering matters
20
- zod_1.z.tuple([shared_1.EthAddressOrUserAddressSchema, shared_1.paramOrContextParamSchema]),
21
- ]),
22
- returnValueTest: shared_1.returnValueTestSchema, // Update to allow multiple return values after expanding supported methods
23
- });
5
+ const rpc_1 = require("../schemas/rpc");
6
+ var rpc_2 = require("../schemas/rpc");
7
+ Object.defineProperty(exports, "rpcConditionSchema", { enumerable: true, get: function () { return rpc_2.rpcConditionSchema; } });
8
+ Object.defineProperty(exports, "RpcConditionType", { enumerable: true, get: function () { return rpc_2.RpcConditionType; } });
24
9
  class RpcCondition extends condition_1.Condition {
25
10
  constructor(value) {
26
- super(exports.rpcConditionSchema, {
27
- conditionType: exports.RpcConditionType,
11
+ super(rpc_1.rpcConditionSchema, {
12
+ conditionType: rpc_1.RpcConditionType,
28
13
  ...value,
29
14
  });
30
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../src/conditions/base/rpc.ts"],"names":[],"mappings":";;;;;;AAAA,6BAAwB;AAExB,4CAAyC;AACzC,oCAA+C;AAC/C,sCAKmB;AACnB,iDAAuC;AAE1B,QAAA,gBAAgB,GAAG,KAAK,CAAC;AAEzB,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,aAAa,EAAE,OAAC,CAAC,OAAO,CAAC,wBAAgB,CAAC,CAAC,OAAO,CAAC,wBAAgB,CAAC;IACpE,KAAK,EAAE,IAAA,aAAiB,EAAC,2BAAmB,CAAC;IAC7C,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAClC,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC;QAClB,OAAC,CAAC,KAAK,CAAC,sCAA6B,CAAC,CAAC,QAAQ,EAAE;QACjD,4CAA4C;QAC5C,OAAC,CAAC,KAAK,CAAC,CAAC,sCAA6B,EAAE,kCAAyB,CAAC,CAAC;KACpE,CAAC;IACF,eAAe,EAAE,8BAAqB,EAAE,2EAA2E;CACpH,CAAC,CAAC;AAIH,MAAa,YAAa,SAAQ,qBAAS;IACzC,YAAY,KAA2C;QACrD,KAAK,CAAC,0BAAkB,EAAE;YACxB,aAAa,EAAE,wBAAgB;YAC/B,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF;AAPD,oCAOC"}
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../src/conditions/base/rpc.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AACzC,wCAIwB;AAGxB,sCAIwB;AAFtB,yGAAA,kBAAkB,OAAA;AAClB,uGAAA,gBAAgB,OAAA;AAGlB,MAAa,YAAa,SAAQ,qBAAS;IACzC,YAAY,KAA2C;QACrD,KAAK,CAAC,wBAAkB,EAAE;YACxB,aAAa,EAAE,sBAAgB;YAC/B,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF;AAPD,oCAOC"}
@@ -1,45 +1,7 @@
1
- import { z } from 'zod';
2
1
  import { Condition } from '../condition';
2
+ import { TimeConditionProps } from '../schemas/time';
3
3
  import { OmitConditionType } from '../shared';
4
- export declare const TimeConditionType = "time";
5
- export declare const TimeConditionMethod = "blocktime";
6
- export declare const timeConditionSchema: z.ZodObject<{
7
- conditionType: z.ZodDefault<z.ZodLiteral<"time">>;
8
- method: z.ZodDefault<z.ZodLiteral<"blocktime">>;
9
- chain: z.ZodNever | z.ZodLiteral<z.Primitive> | z.ZodUnion<[z.ZodLiteral<z.Primitive>, z.ZodLiteral<z.Primitive>, ...z.ZodLiteral<z.Primitive>[]]>;
10
- returnValueTest: z.ZodObject<{
11
- index: z.ZodOptional<z.ZodNumber>;
12
- comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
13
- value: z.ZodType<any, z.ZodTypeDef, any>;
14
- }, "strip", z.ZodTypeAny, {
15
- comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
16
- value?: any;
17
- index?: number | undefined;
18
- }, {
19
- comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
20
- value?: any;
21
- index?: number | undefined;
22
- }>;
23
- }, "strip", z.ZodTypeAny, {
24
- conditionType: "time";
25
- method: "blocktime";
26
- returnValueTest: {
27
- comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
28
- value?: any;
29
- index?: number | undefined;
30
- };
31
- chain?: z.Primitive;
32
- }, {
33
- returnValueTest: {
34
- comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
35
- value?: any;
36
- index?: number | undefined;
37
- };
38
- conditionType?: "time" | undefined;
39
- chain?: z.Primitive;
40
- method?: "blocktime" | undefined;
41
- }>;
42
- export type TimeConditionProps = z.infer<typeof timeConditionSchema>;
4
+ export { TimeConditionMethod, TimeConditionProps, timeConditionSchema, TimeConditionType, } from '../schemas/time';
43
5
  export declare class TimeCondition extends Condition {
44
6
  constructor(value: OmitConditionType<TimeConditionProps>);
45
7
  }
@@ -1,23 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TimeCondition = exports.timeConditionSchema = exports.TimeConditionMethod = exports.TimeConditionType = void 0;
4
- const zod_1 = require("zod");
3
+ exports.TimeCondition = exports.TimeConditionType = exports.timeConditionSchema = exports.TimeConditionMethod = void 0;
5
4
  const condition_1 = require("../condition");
6
- const rpc_1 = require("./rpc");
7
- // TimeCondition is an RpcCondition with the method set to 'blocktime' and no parameters
8
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
- const { parameters: _, ...restShape } = rpc_1.rpcConditionSchema.shape;
10
- exports.TimeConditionType = 'time';
11
- exports.TimeConditionMethod = 'blocktime';
12
- exports.timeConditionSchema = zod_1.z.object({
13
- ...restShape,
14
- conditionType: zod_1.z.literal(exports.TimeConditionType).default(exports.TimeConditionType),
15
- method: zod_1.z.literal(exports.TimeConditionMethod).default(exports.TimeConditionMethod),
16
- });
5
+ const time_1 = require("../schemas/time");
6
+ var time_2 = require("../schemas/time");
7
+ Object.defineProperty(exports, "TimeConditionMethod", { enumerable: true, get: function () { return time_2.TimeConditionMethod; } });
8
+ Object.defineProperty(exports, "timeConditionSchema", { enumerable: true, get: function () { return time_2.timeConditionSchema; } });
9
+ Object.defineProperty(exports, "TimeConditionType", { enumerable: true, get: function () { return time_2.TimeConditionType; } });
17
10
  class TimeCondition extends condition_1.Condition {
18
11
  constructor(value) {
19
- super(exports.timeConditionSchema, {
20
- conditionType: exports.TimeConditionType,
12
+ super(time_1.timeConditionSchema, {
13
+ conditionType: time_1.TimeConditionType,
21
14
  ...value,
22
15
  });
23
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","sourceRoot":"","sources":["../../../../src/conditions/base/time.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,4CAAyC;AAGzC,+BAA2C;AAE3C,wFAAwF;AACxF,6DAA6D;AAC7D,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,wBAAkB,CAAC,KAAK,CAAC;AAEpD,QAAA,iBAAiB,GAAG,MAAM,CAAC;AAC3B,QAAA,mBAAmB,GAAG,WAAW,CAAC;AAElC,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,SAAS;IACZ,aAAa,EAAE,OAAC,CAAC,OAAO,CAAC,yBAAiB,CAAC,CAAC,OAAO,CAAC,yBAAiB,CAAC;IACtE,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,2BAAmB,CAAC,CAAC,OAAO,CAAC,2BAAmB,CAAC;CACpE,CAAC,CAAC;AAIH,MAAa,aAAc,SAAQ,qBAAS;IAC1C,YAAY,KAA4C;QACtD,KAAK,CAAC,2BAAmB,EAAE;YACzB,aAAa,EAAE,yBAAiB;YAChC,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF;AAPD,sCAOC"}
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../../../src/conditions/base/time.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AACzC,0CAIyB;AAGzB,wCAKyB;AAJvB,2GAAA,mBAAmB,OAAA;AAEnB,2GAAA,mBAAmB,OAAA;AACnB,yGAAA,iBAAiB,OAAA;AAGnB,MAAa,aAAc,SAAQ,qBAAS;IAC1C,YAAY,KAA4C;QACtD,KAAK,CAAC,0BAAmB,EAAE;YACzB,aAAa,EAAE,wBAAiB;YAChC,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF;AAPD,sCAOC"}
@@ -1,9 +1,7 @@
1
- import { z } from 'zod';
2
1
  import { Condition, ConditionProps } from './condition';
2
+ import { CompoundConditionProps } from './schemas/compound';
3
3
  import { OmitConditionType } from './shared';
4
- export declare const CompoundConditionType = "compound";
5
- export declare const compoundConditionSchema: z.ZodSchema;
6
- export type CompoundConditionProps = z.infer<typeof compoundConditionSchema>;
4
+ export { CompoundConditionProps, compoundConditionSchema, CompoundConditionType, } from './schemas/compound';
7
5
  export type ConditionOrProps = Condition | ConditionProps;
8
6
  export declare class CompoundCondition extends Condition {
9
7
  constructor(value: OmitConditionType<CompoundConditionProps>);
@@ -1,46 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CompoundCondition = exports.compoundConditionSchema = exports.CompoundConditionType = void 0;
4
- const zod_1 = require("zod");
5
- const contract_1 = require("./base/contract");
6
- const rpc_1 = require("./base/rpc");
7
- const time_1 = require("./base/time");
3
+ exports.CompoundCondition = exports.CompoundConditionType = exports.compoundConditionSchema = void 0;
8
4
  const condition_1 = require("./condition");
9
- exports.CompoundConditionType = 'compound';
10
- exports.compoundConditionSchema = zod_1.z
11
- .object({
12
- conditionType: zod_1.z
13
- .literal(exports.CompoundConditionType)
14
- .default(exports.CompoundConditionType),
15
- operator: zod_1.z.enum(['and', 'or', 'not']),
16
- operands: zod_1.z
17
- .array(zod_1.z.lazy(() => zod_1.z.union([
18
- rpc_1.rpcConditionSchema,
19
- time_1.timeConditionSchema,
20
- contract_1.contractConditionSchema,
21
- exports.compoundConditionSchema,
22
- ])))
23
- .min(1),
24
- })
25
- .refine((condition) => {
26
- // 'and' and 'or' operators must have at least 2 operands
27
- if (['and', 'or'].includes(condition.operator)) {
28
- return condition.operands.length >= 2;
29
- }
30
- // 'not' operator must have exactly 1 operand
31
- if (condition.operator === 'not') {
32
- return condition.operands.length === 1;
33
- }
34
- // We test positive cases exhaustively, so we return false here:
35
- return false;
36
- }, ({ operands, operator }) => ({
37
- message: `Invalid number of operands ${operands.length} for operator "${operator}"`,
38
- path: ['operands'],
39
- }));
5
+ const compound_1 = require("./schemas/compound");
6
+ var compound_2 = require("./schemas/compound");
7
+ Object.defineProperty(exports, "compoundConditionSchema", { enumerable: true, get: function () { return compound_2.compoundConditionSchema; } });
8
+ Object.defineProperty(exports, "CompoundConditionType", { enumerable: true, get: function () { return compound_2.CompoundConditionType; } });
40
9
  class CompoundCondition extends condition_1.Condition {
41
10
  constructor(value) {
42
- super(exports.compoundConditionSchema, {
43
- conditionType: exports.CompoundConditionType,
11
+ super(compound_1.compoundConditionSchema, {
12
+ conditionType: compound_1.CompoundConditionType,
44
13
  ...value,
45
14
  });
46
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compound-condition.js","sourceRoot":"","sources":["../../../src/conditions/compound-condition.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,8CAA0D;AAC1D,oCAAgD;AAChD,sCAAkD;AAClD,2CAAwD;AAG3C,QAAA,qBAAqB,GAAG,UAAU,CAAC;AAEnC,QAAA,uBAAuB,GAAgB,OAAC;KAClD,MAAM,CAAC;IACN,aAAa,EAAE,OAAC;SACb,OAAO,CAAC,6BAAqB,CAAC;SAC9B,OAAO,CAAC,6BAAqB,CAAC;IACjC,QAAQ,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,QAAQ,EAAE,OAAC;SACR,KAAK,CACJ,OAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACV,OAAC,CAAC,KAAK,CAAC;QACN,wBAAkB;QAClB,0BAAmB;QACnB,kCAAuB;QACvB,+BAAuB;KACxB,CAAC,CACH,CACF;SACA,GAAG,CAAC,CAAC,CAAC;CACV,CAAC;KACD,MAAM,CACL,CAAC,SAAS,EAAE,EAAE;IACZ,yDAAyD;IACzD,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,6CAA6C;IAC7C,IAAI,SAAS,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,gEAAgE;IAChE,OAAO,KAAK,CAAC;AACf,CAAC,EACD,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,EAAE,8BAA8B,QAAQ,CAAC,MAAM,kBAAkB,QAAQ,GAAG;IACnF,IAAI,EAAE,CAAC,UAAU,CAAC;CACnB,CAAC,CACH,CAAC;AAMJ,MAAa,iBAAkB,SAAQ,qBAAS;IAC9C,YAAY,KAAgD;QAC1D,KAAK,CAAC,+BAAuB,EAAE;YAC7B,aAAa,EAAE,6BAAqB;YACpC,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,YAAY,CACzB,QAA4B,EAC5B,QAA8B;QAE9B,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACzC,IAAI,OAAO,YAAY,qBAAS,EAAE,CAAC;gBACjC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,iBAAiB,CAAC;YAC3B,QAAQ;YACR,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,EAAE,CAAC,UAA8B;QAC7C,OAAO,iBAAiB,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,UAA8B;QAC9C,OAAO,iBAAiB,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,SAA2B;QAC3C,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;CACF;AAnCD,8CAmCC"}
1
+ {"version":3,"file":"compound-condition.js","sourceRoot":"","sources":["../../../src/conditions/compound-condition.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AACxD,iDAI4B;AAG5B,+CAI4B;AAF1B,mHAAA,uBAAuB,OAAA;AACvB,iHAAA,qBAAqB,OAAA;AAKvB,MAAa,iBAAkB,SAAQ,qBAAS;IAC9C,YAAY,KAAgD;QAC1D,KAAK,CAAC,kCAAuB,EAAE;YAC7B,aAAa,EAAE,gCAAqB;YACpC,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,YAAY,CACzB,QAA4B,EAC5B,QAA8B;QAE9B,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACzC,IAAI,OAAO,YAAY,qBAAS,EAAE,CAAC;gBACjC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,iBAAiB,CAAC;YAC3B,QAAQ;YACR,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,EAAE,CAAC,UAA8B;QAC7C,OAAO,iBAAiB,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,UAA8B;QAC9C,OAAO,iBAAiB,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,SAA2B;QAC3C,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;CACF;AAnCD,8CAmCC"}
@@ -1,7 +1,5 @@
1
1
  import { Conditions as CoreConditions } from '@nucypher/nucypher-core';
2
- import { AuthProviders } from '@nucypher/taco-auth';
3
2
  import { Condition } from './condition';
4
- import { ConditionContext, CustomContextParam } from './context';
5
3
  export type ConditionExpressionJSON = {
6
4
  version: string;
7
5
  condition: Record<string, unknown>;
@@ -17,6 +15,5 @@ export declare class ConditionExpression {
17
15
  static fromJSON(json: string): ConditionExpression;
18
16
  toCoreCondition(): CoreConditions;
19
17
  static fromCoreConditions(conditions: CoreConditions): ConditionExpression;
20
- buildContext(customParameters?: Record<string, CustomContextParam>, authProviders?: AuthProviders): ConditionContext;
21
18
  equals(other: ConditionExpression): boolean;
22
19
  }
@@ -5,7 +5,6 @@ const nucypher_core_1 = require("@nucypher/nucypher-core");
5
5
  const shared_1 = require("@nucypher/shared");
6
6
  const semver_1 = require("semver");
7
7
  const condition_factory_1 = require("./condition-factory");
8
- const context_1 = require("./context");
9
8
  const ERR_VERSION = (provided, current) => `Version provided, ${provided}, is incompatible with current version, ${current}`;
10
9
  const ERR_CONDITION = (condition) => `Invalid condition: unrecognized condition data ${JSON.stringify(condition)}`;
11
10
  class ConditionExpression {
@@ -47,9 +46,6 @@ class ConditionExpression {
47
46
  static fromCoreConditions(conditions) {
48
47
  return ConditionExpression.fromJSON(conditions.toString());
49
48
  }
50
- buildContext(customParameters = {}, authProviders = {}) {
51
- return new context_1.ConditionContext(this.condition, customParameters, authProviders);
52
- }
53
49
  equals(other) {
54
50
  return [
55
51
  this.version === other.version,
@@ -1 +1 @@
1
- {"version":3,"file":"condition-expr.js","sourceRoot":"","sources":["../../../src/conditions/condition-expr.ts"],"names":[],"mappings":";;;AAAA,2DAAuE;AACvE,6CAA0C;AAE1C,mCAAgC;AAGhC,2DAAuD;AACvD,uCAAiE;AAEjE,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAE,EAAE,CACxD,qBAAqB,QAAQ,2CAA2C,OAAO,EAAE,CAAC;AACpF,MAAM,aAAa,GAAG,CAAC,SAAkC,EAAE,EAAE,CAC3D,kDAAkD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;AAOhF,MAAa,mBAAmB;IAIZ;IACA;IAJX,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAEhC,YACkB,SAAoB,EACpB,UAAkB,mBAAmB,CAAC,OAAO;QAD7C,cAAS,GAAT,SAAS,CAAW;QACpB,YAAO,GAAP,OAAO,CAAsC;IAC5D,CAAC;IAEG,KAAK;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS;SACV,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,GAA4B;QAChD,MAAM,eAAe,GAAG,IAAI,eAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,IAAI,eAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,eAAe,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,SAAS,GAAG,oCAAgB,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO,IAAI,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAEM,MAAM;QACX,OAAO,IAAA,eAAM,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAY;QACjC,OAAO,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,0BAAc,CAAC,IAAA,eAAM,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,UAA0B;QACzD,OAAO,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IAEM,YAAY,CACjB,mBAAuD,EAAE,EACzD,gBAA+B,EAAE;QAEjC,OAAO,IAAI,0BAAgB,CACzB,IAAI,CAAC,SAAS,EACd,gBAAgB,EAChB,aAAa,CACd,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,KAA0B;QACtC,OAAO;YACL,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;YAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;SACvC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;;AA/DH,kDAgEC"}
1
+ {"version":3,"file":"condition-expr.js","sourceRoot":"","sources":["../../../src/conditions/condition-expr.ts"],"names":[],"mappings":";;;AAAA,2DAAuE;AACvE,6CAA0C;AAC1C,mCAAgC;AAGhC,2DAAuD;AAEvD,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAE,EAAE,CACxD,qBAAqB,QAAQ,2CAA2C,OAAO,EAAE,CAAC;AACpF,MAAM,aAAa,GAAG,CAAC,SAAkC,EAAE,EAAE,CAC3D,kDAAkD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;AAOhF,MAAa,mBAAmB;IAIZ;IACA;IAJX,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAEhC,YACkB,SAAoB,EACpB,UAAkB,mBAAmB,CAAC,OAAO;QAD7C,cAAS,GAAT,SAAS,CAAW;QACpB,YAAO,GAAP,OAAO,CAAsC;IAC5D,CAAC;IAEG,KAAK;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS;SACV,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,GAA4B;QAChD,MAAM,eAAe,GAAG,IAAI,eAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,IAAI,eAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,eAAe,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,SAAS,GAAG,oCAAgB,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO,IAAI,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAEM,MAAM;QACX,OAAO,IAAA,eAAM,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAY;QACjC,OAAO,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,0BAAc,CAAC,IAAA,eAAM,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,UAA0B;QACzD,OAAO,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IAEM,MAAM,CAAC,KAA0B;QACtC,OAAO;YACL,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;YAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;SACvC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;;AApDH,kDAqDC"}
@@ -2,21 +2,32 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConditionFactory = void 0;
4
4
  const contract_1 = require("./base/contract");
5
+ const json_api_1 = require("./base/json-api");
5
6
  const rpc_1 = require("./base/rpc");
6
7
  const time_1 = require("./base/time");
7
8
  const compound_condition_1 = require("./compound-condition");
9
+ const if_then_else_condition_1 = require("./if-then-else-condition");
10
+ const sequential_1 = require("./sequential");
8
11
  const ERR_INVALID_CONDITION_TYPE = (type) => `Invalid condition type: ${type}`;
9
12
  class ConditionFactory {
10
13
  static conditionFromProps(props) {
11
14
  switch (props.conditionType) {
15
+ // Base Conditions
12
16
  case rpc_1.RpcConditionType:
13
17
  return new rpc_1.RpcCondition(props);
14
18
  case time_1.TimeConditionType:
15
19
  return new time_1.TimeCondition(props);
16
20
  case contract_1.ContractConditionType:
17
21
  return new contract_1.ContractCondition(props);
22
+ case json_api_1.JsonApiConditionType:
23
+ return new json_api_1.JsonApiCondition(props);
24
+ // Logical Conditions
18
25
  case compound_condition_1.CompoundConditionType:
19
26
  return new compound_condition_1.CompoundCondition(props);
27
+ case sequential_1.SequentialConditionType:
28
+ return new sequential_1.SequentialCondition(props);
29
+ case if_then_else_condition_1.IfThenElseConditionType:
30
+ return new if_then_else_condition_1.IfThenElseCondition(props);
20
31
  default:
21
32
  throw new Error(ERR_INVALID_CONDITION_TYPE(props.conditionType));
22
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"condition-factory.js","sourceRoot":"","sources":["../../../src/conditions/condition-factory.ts"],"names":[],"mappings":";;;AAAA,8CAIyB;AACzB,oCAA+E;AAC/E,sCAIqB;AACrB,6DAI8B;AAG9B,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAE,EAAE,CAClD,2BAA2B,IAAI,EAAE,CAAC;AAEpC,MAAa,gBAAgB;IACpB,MAAM,CAAC,kBAAkB,CAAC,KAAqB;QACpD,QAAQ,KAAK,CAAC,aAAa,EAAE,CAAC;YAC5B,KAAK,sBAAgB;gBACnB,OAAO,IAAI,kBAAY,CAAC,KAA0B,CAAC,CAAC;YACtD,KAAK,wBAAiB;gBACpB,OAAO,IAAI,oBAAa,CAAC,KAA2B,CAAC,CAAC;YACxD,KAAK,gCAAqB;gBACxB,OAAO,IAAI,4BAAiB,CAAC,KAA+B,CAAC,CAAC;YAChE,KAAK,0CAAqB;gBACxB,OAAO,IAAI,sCAAiB,CAAC,KAA+B,CAAC,CAAC;YAChE;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;CACF;AAfD,4CAeC"}
1
+ {"version":3,"file":"condition-factory.js","sourceRoot":"","sources":["../../../src/conditions/condition-factory.ts"],"names":[],"mappings":";;;AAAA,8CAIyB;AACzB,8CAIyB;AACzB,oCAA+E;AAC/E,sCAIqB;AACrB,6DAI8B;AAE9B,qEAIkC;AAClC,6CAIsB;AAEtB,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAE,EAAE,CAClD,2BAA2B,IAAI,EAAE,CAAC;AAEpC,MAAa,gBAAgB;IACpB,MAAM,CAAC,kBAAkB,CAAC,KAAqB;QACpD,QAAQ,KAAK,CAAC,aAAa,EAAE,CAAC;YAC5B,kBAAkB;YAClB,KAAK,sBAAgB;gBACnB,OAAO,IAAI,kBAAY,CAAC,KAA0B,CAAC,CAAC;YACtD,KAAK,wBAAiB;gBACpB,OAAO,IAAI,oBAAa,CAAC,KAA2B,CAAC,CAAC;YACxD,KAAK,gCAAqB;gBACxB,OAAO,IAAI,4BAAiB,CAAC,KAA+B,CAAC,CAAC;YAChE,KAAK,+BAAoB;gBACvB,OAAO,IAAI,2BAAgB,CAAC,KAA8B,CAAC,CAAC;YAC9D,qBAAqB;YACrB,KAAK,0CAAqB;gBACxB,OAAO,IAAI,sCAAiB,CAAC,KAA+B,CAAC,CAAC;YAChE,KAAK,oCAAuB;gBAC1B,OAAO,IAAI,gCAAmB,CAAC,KAAiC,CAAC,CAAC;YACpE,KAAK,gDAAuB;gBAC1B,OAAO,IAAI,4CAAmB,CAAC,KAAiC,CAAC,CAAC;YACpE;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;CACF;AAvBD,4CAuBC"}
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ export { baseConditionSchema } from './schemas/common';
2
3
  type ConditionSchema = z.ZodSchema;
3
4
  export type ConditionProps = z.infer<ConditionSchema>;
4
5
  export declare class Condition {
@@ -14,4 +15,3 @@ export declare class Condition {
14
15
  toObj(): ConditionProps;
15
16
  equals(other: Condition): boolean;
16
17
  }
17
- export {};
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Condition = void 0;
3
+ exports.Condition = exports.baseConditionSchema = void 0;
4
4
  const shared_1 = require("@nucypher/shared");
5
5
  const const_1 = require("./const");
6
+ var common_1 = require("./schemas/common");
7
+ Object.defineProperty(exports, "baseConditionSchema", { enumerable: true, get: function () { return common_1.baseConditionSchema; } });
6
8
  const ERR_INVALID_CONDITION = (error) => `Invalid condition: ${JSON.stringify(error.issues)}`;
7
9
  class Condition {
8
10
  schema;
@@ -1 +1 @@
1
- {"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAGhD,mCAA8C;AAK9C,MAAM,qBAAqB,GAAG,CAAC,KAAiB,EAAE,EAAE,CAClD,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;AAEvD,MAAa,SAAS;IAEF;IACA;IAFlB,YACkB,MAAuB,EACvB,KAAqB;QADrB,WAAM,GAAN,MAAM,CAAiB;QACvB,UAAK,GAAL,KAAK,CAAgB;QAErC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,QAAQ,CACpB,MAAuB,EACvB,KAAqB;QAKrB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,8CAA8C;IACvC,2BAA2B;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,KAAK,MAAM,KAAK,IAAI,2BAAmB,EAAE,CAAC;YACxC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,sBAAsB;QAC3B,OAAO,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK;QACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,KAAgB;QAC5B,OAAO,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;CACF;AApDD,8BAoDC"}
1
+ {"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAGhD,mCAA8C;AAE9C,2CAAuD;AAA9C,6GAAA,mBAAmB,OAAA;AAK5B,MAAM,qBAAqB,GAAG,CAAC,KAAiB,EAAE,EAAE,CAClD,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;AAEvD,MAAa,SAAS;IAEF;IACA;IAFlB,YACkB,MAAuB,EACvB,KAAqB;QADrB,WAAM,GAAN,MAAM,CAAiB;QACvB,UAAK,GAAL,KAAK,CAAgB;QAErC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,QAAQ,CACpB,MAAuB,EACvB,KAAqB;QAKrB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,8CAA8C;IACvC,2BAA2B;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,KAAK,MAAM,KAAK,IAAI,2BAAmB,EAAE,CAAC;YACxC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,sBAAsB;QAC3B,OAAO,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK;QACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,KAAgB;QAC5B,OAAO,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;CACF;AApDD,8BAoDC"}
@@ -1,7 +1,6 @@
1
1
  import { ChainId } from '@nucypher/shared';
2
- export declare const USER_ADDRESS_PARAM_EXTERNAL_EIP4361 = ":userAddressExternalEIP4361";
3
2
  export declare const CONTEXT_PARAM_REGEXP: RegExp;
3
+ export declare const CONTEXT_PARAM_FULL_MATCH_REGEXP: RegExp;
4
4
  export declare const CONTEXT_PARAM_PREFIX = ":";
5
5
  export declare const SUPPORTED_CHAIN_IDS: ChainId[];
6
6
  export declare const USER_ADDRESS_PARAMS: string[];
7
- export declare const RESERVED_CONTEXT_PARAMS: string[];
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RESERVED_CONTEXT_PARAMS = exports.USER_ADDRESS_PARAMS = exports.SUPPORTED_CHAIN_IDS = exports.CONTEXT_PARAM_PREFIX = exports.CONTEXT_PARAM_REGEXP = exports.USER_ADDRESS_PARAM_EXTERNAL_EIP4361 = void 0;
3
+ exports.USER_ADDRESS_PARAMS = exports.SUPPORTED_CHAIN_IDS = exports.CONTEXT_PARAM_PREFIX = exports.CONTEXT_PARAM_FULL_MATCH_REGEXP = exports.CONTEXT_PARAM_REGEXP = void 0;
4
4
  const shared_1 = require("@nucypher/shared");
5
5
  const taco_auth_1 = require("@nucypher/taco-auth");
6
- exports.USER_ADDRESS_PARAM_EXTERNAL_EIP4361 = ':userAddressExternalEIP4361';
7
6
  // Only allow alphanumeric characters and underscores
8
- exports.CONTEXT_PARAM_REGEXP = new RegExp('^:[a-zA-Z_][a-zA-Z0-9_]*$');
7
+ const contextParamRegexString = ':[a-zA-Z_][a-zA-Z0-9_]*';
8
+ exports.CONTEXT_PARAM_REGEXP = new RegExp(contextParamRegexString);
9
+ // Entire string is context param
10
+ exports.CONTEXT_PARAM_FULL_MATCH_REGEXP = new RegExp(`^${contextParamRegexString}$`);
9
11
  exports.CONTEXT_PARAM_PREFIX = ':';
10
12
  exports.SUPPORTED_CHAIN_IDS = [
11
13
  shared_1.ChainId.POLYGON,
@@ -14,12 +16,8 @@ exports.SUPPORTED_CHAIN_IDS = [
14
16
  shared_1.ChainId.ETHEREUM_MAINNET,
15
17
  ];
16
18
  exports.USER_ADDRESS_PARAMS = [
17
- exports.USER_ADDRESS_PARAM_EXTERNAL_EIP4361,
19
+ taco_auth_1.USER_ADDRESS_PARAM_EXTERNAL_EIP4361,
18
20
  // Ordering matters, this should always be last
19
21
  taco_auth_1.USER_ADDRESS_PARAM_DEFAULT,
20
22
  ];
21
- exports.RESERVED_CONTEXT_PARAMS = [
22
- taco_auth_1.USER_ADDRESS_PARAM_DEFAULT,
23
- // USER_ADDRESS_PARAM_EXTERNAL_EIP4361 is not reserved and can be used as a custom context parameter
24
- ];
25
23
  //# sourceMappingURL=const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/conditions/const.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAC3C,mDAAiE;AAEpD,QAAA,mCAAmC,GAC9C,6BAA6B,CAAC;AAEhC,qDAAqD;AACxC,QAAA,oBAAoB,GAAG,IAAI,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAE/D,QAAA,oBAAoB,GAAG,GAAG,CAAC;AAE3B,QAAA,mBAAmB,GAAG;IACjC,gBAAO,CAAC,OAAO;IACf,gBAAO,CAAC,IAAI;IACZ,gBAAO,CAAC,OAAO;IACf,gBAAO,CAAC,gBAAgB;CACzB,CAAC;AAEW,QAAA,mBAAmB,GAAG;IACjC,2CAAmC;IACnC,+CAA+C;IAC/C,sCAA0B;CAC3B,CAAC;AAEW,QAAA,uBAAuB,GAAG;IACrC,sCAA0B;IAC1B,oGAAoG;CACrG,CAAC"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/conditions/const.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAC3C,mDAG6B;AAE7B,qDAAqD;AACrD,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAE7C,QAAA,oBAAoB,GAAG,IAAI,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAExE,iCAAiC;AACpB,QAAA,+BAA+B,GAAG,IAAI,MAAM,CACvD,IAAI,uBAAuB,GAAG,CAC/B,CAAC;AAEW,QAAA,oBAAoB,GAAG,GAAG,CAAC;AAE3B,QAAA,mBAAmB,GAAG;IACjC,gBAAO,CAAC,OAAO;IACf,gBAAO,CAAC,IAAI;IACZ,gBAAO,CAAC,OAAO;IACf,gBAAO,CAAC,gBAAgB;CACzB,CAAC;AAEW,QAAA,mBAAmB,GAAG;IACjC,+CAAmC;IACnC,+CAA+C;IAC/C,sCAA0B;CAC3B,CAAC"}
@@ -1,25 +1,27 @@
1
1
  import { ThresholdMessageKit } from '@nucypher/nucypher-core';
2
- import { AuthProviders, AuthSignature } from '@nucypher/taco-auth';
3
- import { CoreConditions, CoreContext } from '../../types';
4
- import { Condition, ConditionProps } from '../condition';
5
- export type CustomContextParam = string | number | boolean | AuthSignature;
2
+ import { AuthProvider, AuthSignature } from '@nucypher/taco-auth';
3
+ import { CoreContext } from '../../types';
4
+ import { Condition } from '../condition';
5
+ export type CustomContextParam = string | number | boolean;
6
6
  export type ContextParam = CustomContextParam | AuthSignature;
7
+ export declare const RESERVED_CONTEXT_PARAMS: string[];
7
8
  export declare class ConditionContext {
8
- readonly customParameters: Record<string, CustomContextParam>;
9
- private readonly authProviders;
10
- requestedParameters: Set<string>;
11
- constructor(condition: Condition, customParameters?: Record<string, CustomContextParam>, authProviders?: AuthProviders);
12
- private validateContextParameters;
13
- private validateCoreConditions;
9
+ requestedContextParameters: Set<string>;
10
+ private customContextParameters;
11
+ private authProviders;
12
+ constructor(condition: Condition);
13
+ private static validateCoreConditions;
14
14
  private validateNoMissingContextParameters;
15
15
  private fillContextParameters;
16
16
  private validateAuthProviders;
17
17
  private fillAuthContextParameters;
18
+ private validateCustomContextParameter;
18
19
  private static isContextParameter;
19
- static findContextParameters(condition: ConditionProps): Set<string>;
20
+ private static findContextParameters;
21
+ addCustomContextParameterValues(customContextParameters: Record<string, CustomContextParam>): void;
22
+ addAuthProvider(contextParam: string, authProvider: AuthProvider): void;
20
23
  toJson(): Promise<string>;
21
24
  toCoreContext(): Promise<CoreContext>;
22
25
  toContextParameters: () => Promise<Record<string, ContextParam>>;
23
- static fromConditions(conditions: CoreConditions, authProviders?: AuthProviders, customParameters?: Record<string, CustomContextParam>): ConditionContext;
24
- static requestedContextParameters(messageKit: ThresholdMessageKit): Set<string>;
26
+ static fromMessageKit(messageKit: ThresholdMessageKit): ConditionContext;
25
27
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConditionContext = void 0;
3
+ exports.ConditionContext = exports.RESERVED_CONTEXT_PARAMS = void 0;
4
4
  const shared_1 = require("@nucypher/shared");
5
5
  const taco_auth_1 = require("@nucypher/taco-auth");
6
6
  const types_1 = require("../../types");
@@ -11,33 +11,28 @@ const ERR_RESERVED_PARAM = (key) => `Cannot use reserved parameter name ${key} a
11
11
  const ERR_INVALID_CUSTOM_PARAM = (key) => `Custom parameter ${key} must start with ${const_1.CONTEXT_PARAM_PREFIX}`;
12
12
  const ERR_AUTH_PROVIDER_REQUIRED = (key) => `No matching authentication provider to satisfy ${key} context variable in condition`;
13
13
  const ERR_MISSING_CONTEXT_PARAMS = (params) => `Missing custom context parameter(s): ${params.join(', ')}`;
14
- const ERR_UNKNOWN_CONTEXT_PARAMS = (params) => `Unknown custom context parameter(s): ${params.join(', ')}`;
15
- const ERR_NO_AUTH_PROVIDER_FOR_PARAM = (param) => `No custom parameter for requested context parameter: ${param}`;
14
+ const ERR_UNKNOWN_CUSTOM_CONTEXT_PARAM = (param) => `Unknown custom context parameter: ${param}`;
15
+ const ERR_INVALID_AUTH_PROVIDER_TYPE = (param, expected) => `Invalid AuthProvider type for ${param}; expected ${expected}`;
16
+ const ERR_AUTH_PROVIDER_NOT_NEEDED_FOR_CONTEXT_PARAM = (param) => `AuthProvider not necessary for context parameter: ${param}`;
17
+ const EXPECTED_AUTH_PROVIDER_TYPES = {
18
+ [taco_auth_1.USER_ADDRESS_PARAM_DEFAULT]: taco_auth_1.EIP4361AuthProvider,
19
+ [taco_auth_1.USER_ADDRESS_PARAM_EXTERNAL_EIP4361]: taco_auth_1.SingleSignOnEIP4361AuthProvider,
20
+ };
21
+ exports.RESERVED_CONTEXT_PARAMS = [
22
+ taco_auth_1.USER_ADDRESS_PARAM_EXTERNAL_EIP4361,
23
+ taco_auth_1.USER_ADDRESS_PARAM_DEFAULT,
24
+ ];
16
25
  class ConditionContext {
17
- customParameters;
18
- authProviders;
19
- requestedParameters;
20
- constructor(condition, customParameters = {}, authProviders = {}) {
21
- this.customParameters = customParameters;
22
- this.authProviders = authProviders;
26
+ requestedContextParameters;
27
+ customContextParameters = {};
28
+ authProviders = {};
29
+ constructor(condition) {
23
30
  const condProps = condition.toObj();
24
- this.validateContextParameters();
25
- this.validateCoreConditions(condProps);
26
- this.requestedParameters =
31
+ ConditionContext.validateCoreConditions(condProps);
32
+ this.requestedContextParameters =
27
33
  ConditionContext.findContextParameters(condProps);
28
- this.validateAuthProviders(this.requestedParameters);
29
34
  }
30
- validateContextParameters() {
31
- Object.keys(this.customParameters).forEach((key) => {
32
- if (const_1.RESERVED_CONTEXT_PARAMS.includes(key)) {
33
- throw new Error(ERR_RESERVED_PARAM(key));
34
- }
35
- if (!key.startsWith(const_1.CONTEXT_PARAM_PREFIX)) {
36
- throw new Error(ERR_INVALID_CUSTOM_PARAM(key));
37
- }
38
- });
39
- }
40
- validateCoreConditions(condObject) {
35
+ static validateCoreConditions(condObject) {
41
36
  // Checking whether the condition is compatible with the current version of the library
42
37
  // Intentionally ignoring the return value of the function
43
38
  new types_1.CoreConditions((0, shared_1.toJSON)(condObject));
@@ -45,56 +40,54 @@ class ConditionContext {
45
40
  validateNoMissingContextParameters(parameters) {
46
41
  // Ok, so at this point we should have all the parameters we need
47
42
  // If we don't, we have a problem and we should throw
48
- const missingParameters = Array.from(this.requestedParameters).filter((key) => parameters[key] === undefined);
43
+ const missingParameters = Array.from(this.requestedContextParameters).filter((key) => parameters[key] === undefined);
49
44
  if (missingParameters.length > 0) {
50
45
  throw new Error(ERR_MISSING_CONTEXT_PARAMS(missingParameters));
51
46
  }
52
- // We may also have some parameters that are not used
53
- const unknownParameters = Object.keys(parameters).filter((key) => !this.requestedParameters.has(key) &&
54
- !const_1.RESERVED_CONTEXT_PARAMS.includes(key));
55
- if (unknownParameters.length > 0) {
56
- throw new Error(ERR_UNKNOWN_CONTEXT_PARAMS(unknownParameters));
57
- }
58
47
  }
59
- async fillContextParameters(requestedParameters) {
60
- const parameters = await this.fillAuthContextParameters(requestedParameters);
61
- for (const key in this.customParameters) {
62
- parameters[key] = this.customParameters[key];
48
+ async fillContextParameters(requestedContextParameters) {
49
+ const parameters = await this.fillAuthContextParameters(requestedContextParameters);
50
+ for (const key in this.customContextParameters) {
51
+ parameters[key] = this.customContextParameters[key];
63
52
  }
64
53
  return parameters;
65
54
  }
66
- validateAuthProviders(requestedParameters) {
67
- for (const param of requestedParameters) {
55
+ validateAuthProviders() {
56
+ for (const param of this.requestedContextParameters) {
68
57
  // If it's not a user address parameter, we can skip
69
58
  if (!const_1.USER_ADDRESS_PARAMS.includes(param)) {
70
59
  continue;
71
60
  }
72
- // If it's a user address parameter, we need to check if we have an auth provider
73
- const authMethod = taco_auth_1.AUTH_METHOD_FOR_PARAM[param];
74
- if (!authMethod && !this.customParameters[param]) {
75
- // If we don't have an auth method, and we don't have a custom parameter, we have a problem
76
- throw new Error(ERR_NO_AUTH_PROVIDER_FOR_PARAM(param));
77
- }
78
- // If we have an auth method, but we don't have an auth provider, we have a problem
79
- if (authMethod && !this.authProviders[authMethod]) {
61
+ // we don't have a corresponding auth provider, we have a problem
62
+ if (!this.authProviders[param]) {
80
63
  throw new Error(ERR_AUTH_PROVIDER_REQUIRED(param));
81
64
  }
82
65
  }
83
66
  }
84
67
  async fillAuthContextParameters(requestedParameters) {
85
68
  const entries = await Promise.all([...requestedParameters]
86
- .map((param) => [param, taco_auth_1.AUTH_METHOD_FOR_PARAM[param]])
87
- .filter(([, authMethod]) => !!authMethod)
88
- .map(async ([param, authMethod]) => {
89
- const maybeAuthProvider = this.authProviders[authMethod];
69
+ .filter((param) => const_1.USER_ADDRESS_PARAMS.includes(param))
70
+ .map(async (param) => {
71
+ const maybeAuthProvider = this.authProviders[param];
90
72
  // TODO: Throw here instead of validating in the constructor?
91
73
  // TODO: Hide getOrCreateAuthSignature behind a more generic interface
92
74
  return [param, await maybeAuthProvider.getOrCreateAuthSignature()];
93
75
  }));
94
76
  return Object.fromEntries(entries);
95
77
  }
78
+ validateCustomContextParameter(customParam) {
79
+ if (!ConditionContext.isContextParameter(customParam)) {
80
+ throw new Error(ERR_INVALID_CUSTOM_PARAM(customParam));
81
+ }
82
+ if (exports.RESERVED_CONTEXT_PARAMS.includes(customParam)) {
83
+ throw new Error(ERR_RESERVED_PARAM(customParam));
84
+ }
85
+ if (!this.requestedContextParameters.has(customParam)) {
86
+ throw new Error(ERR_UNKNOWN_CUSTOM_CONTEXT_PARAM(customParam));
87
+ }
88
+ }
96
89
  static isContextParameter(param) {
97
- return !!String(param).match(const_1.CONTEXT_PARAM_REGEXP);
90
+ return !!String(param).match(const_1.CONTEXT_PARAM_FULL_MATCH_REGEXP);
98
91
  }
99
92
  static findContextParameters(condition) {
100
93
  // First, we want to find all the parameters we need to add
@@ -134,6 +127,21 @@ class ConditionContext {
134
127
  }
135
128
  return requestedParameters;
136
129
  }
130
+ addCustomContextParameterValues(customContextParameters) {
131
+ Object.keys(customContextParameters).forEach((key) => {
132
+ this.validateCustomContextParameter(key);
133
+ this.customContextParameters[key] = customContextParameters[key];
134
+ });
135
+ }
136
+ addAuthProvider(contextParam, authProvider) {
137
+ if (!(contextParam in EXPECTED_AUTH_PROVIDER_TYPES)) {
138
+ throw new Error(ERR_AUTH_PROVIDER_NOT_NEEDED_FOR_CONTEXT_PARAM(contextParam));
139
+ }
140
+ if (!(authProvider instanceof EXPECTED_AUTH_PROVIDER_TYPES[contextParam])) {
141
+ throw new Error(ERR_INVALID_AUTH_PROVIDER_TYPE(contextParam, typeof authProvider));
142
+ }
143
+ this.authProviders[contextParam] = authProvider;
144
+ }
137
145
  async toJson() {
138
146
  const parameters = await this.toContextParameters();
139
147
  return (0, shared_1.toJSON)(parameters);
@@ -143,16 +151,14 @@ class ConditionContext {
143
151
  return new types_1.CoreContext(asJson);
144
152
  }
145
153
  toContextParameters = async () => {
146
- const parameters = await this.fillContextParameters(this.requestedParameters);
154
+ this.validateAuthProviders();
155
+ const parameters = await this.fillContextParameters(this.requestedContextParameters);
147
156
  this.validateNoMissingContextParameters(parameters);
148
157
  return parameters;
149
158
  };
150
- static fromConditions(conditions, authProviders, customParameters) {
151
- return new ConditionContext(condition_expr_1.ConditionExpression.fromCoreConditions(conditions).condition, customParameters, authProviders);
152
- }
153
- static requestedContextParameters(messageKit) {
159
+ static fromMessageKit(messageKit) {
154
160
  const conditionExpr = condition_expr_1.ConditionExpression.fromCoreConditions(messageKit.acp.conditions);
155
- return ConditionContext.findContextParameters(conditionExpr.condition.toObj());
161
+ return new ConditionContext(conditionExpr.condition);
156
162
  }
157
163
  }
158
164
  exports.ConditionContext = ConditionContext;