@nucypher/taco 0.5.0 → 0.6.0-alpha.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 (167) hide show
  1. package/dist/cjs/conditions/base/contract.d.ts +2 -428
  2. package/dist/cjs/conditions/base/contract.js +7 -80
  3. package/dist/cjs/conditions/base/contract.js.map +1 -1
  4. package/dist/cjs/conditions/base/index.d.ts +1 -0
  5. package/dist/cjs/conditions/base/index.js +2 -1
  6. package/dist/cjs/conditions/base/index.js.map +1 -1
  7. package/dist/cjs/conditions/base/json-api.d.ts +7 -0
  8. package/dist/cjs/conditions/base/json-api.js +19 -0
  9. package/dist/cjs/conditions/base/json-api.js.map +1 -0
  10. package/dist/cjs/conditions/base/rpc.d.ts +2 -42
  11. package/dist/cjs/conditions/base/rpc.js +7 -22
  12. package/dist/cjs/conditions/base/rpc.js.map +1 -1
  13. package/dist/cjs/conditions/base/time.d.ts +2 -40
  14. package/dist/cjs/conditions/base/time.js +8 -15
  15. package/dist/cjs/conditions/base/time.js.map +1 -1
  16. package/dist/cjs/conditions/compound-condition.d.ts +2 -4
  17. package/dist/cjs/conditions/compound-condition.js +7 -38
  18. package/dist/cjs/conditions/compound-condition.js.map +1 -1
  19. package/dist/cjs/conditions/condition-factory.js +11 -0
  20. package/dist/cjs/conditions/condition-factory.js.map +1 -1
  21. package/dist/cjs/conditions/condition.d.ts +1 -1
  22. package/dist/cjs/conditions/condition.js +3 -1
  23. package/dist/cjs/conditions/condition.js.map +1 -1
  24. package/dist/cjs/conditions/const.d.ts +1 -0
  25. package/dist/cjs/conditions/const.js +5 -2
  26. package/dist/cjs/conditions/const.js.map +1 -1
  27. package/dist/cjs/conditions/context/context.js +22 -1
  28. package/dist/cjs/conditions/context/context.js.map +1 -1
  29. package/dist/cjs/conditions/context/providers.d.ts +16 -0
  30. package/dist/cjs/conditions/context/providers.js +111 -0
  31. package/dist/cjs/conditions/context/providers.js.map +1 -0
  32. package/dist/cjs/conditions/if-then-else-condition.d.ts +7 -0
  33. package/dist/cjs/conditions/if-then-else-condition.js +18 -0
  34. package/dist/cjs/conditions/if-then-else-condition.js.map +1 -0
  35. package/dist/cjs/conditions/index.d.ts +2 -0
  36. package/dist/cjs/conditions/index.js +3 -1
  37. package/dist/cjs/conditions/index.js.map +1 -1
  38. package/dist/cjs/conditions/multi-condition.d.ts +2 -0
  39. package/dist/cjs/conditions/multi-condition.js +35 -0
  40. package/dist/cjs/conditions/multi-condition.js.map +1 -0
  41. package/dist/cjs/conditions/schemas/common.d.ts +12 -0
  42. package/dist/cjs/conditions/schemas/common.js +36 -0
  43. package/dist/cjs/conditions/schemas/common.js.map +1 -0
  44. package/dist/cjs/conditions/schemas/compound.d.ts +4 -0
  45. package/dist/cjs/conditions/schemas/compound.js +36 -0
  46. package/dist/cjs/conditions/schemas/compound.js.map +1 -0
  47. package/dist/cjs/conditions/schemas/context.d.ts +3 -0
  48. package/dist/cjs/conditions/schemas/context.js +16 -0
  49. package/dist/cjs/conditions/schemas/context.js.map +1 -0
  50. package/dist/cjs/conditions/schemas/contract.d.ts +428 -0
  51. package/dist/cjs/conditions/schemas/contract.js +81 -0
  52. package/dist/cjs/conditions/schemas/contract.js.map +1 -0
  53. package/dist/cjs/conditions/schemas/if-then-else.d.ts +4 -0
  54. package/dist/cjs/conditions/schemas/if-then-else.js +40 -0
  55. package/dist/cjs/conditions/schemas/if-then-else.js.map +1 -0
  56. package/dist/cjs/conditions/schemas/json-api.d.ts +46 -0
  57. package/dist/cjs/conditions/schemas/json-api.js +37 -0
  58. package/dist/cjs/conditions/schemas/json-api.js.map +1 -0
  59. package/dist/cjs/conditions/schemas/return-value-test.d.ts +15 -0
  60. package/dist/cjs/conditions/schemas/return-value-test.js +11 -0
  61. package/dist/cjs/conditions/schemas/return-value-test.js.map +1 -0
  62. package/dist/cjs/conditions/schemas/rpc.d.ts +42 -0
  63. package/dist/cjs/conditions/schemas/rpc.js +58 -0
  64. package/dist/cjs/conditions/schemas/rpc.js.map +1 -0
  65. package/dist/cjs/conditions/schemas/sequential.d.ts +6 -0
  66. package/dist/cjs/conditions/schemas/sequential.js +39 -0
  67. package/dist/cjs/conditions/schemas/sequential.js.map +1 -0
  68. package/dist/cjs/conditions/schemas/time.d.ts +40 -0
  69. package/dist/cjs/conditions/schemas/time.js +16 -0
  70. package/dist/cjs/conditions/schemas/time.js.map +1 -0
  71. package/dist/cjs/conditions/schemas/utils.d.ts +2 -0
  72. package/dist/cjs/conditions/schemas/utils.js +21 -0
  73. package/dist/cjs/conditions/schemas/utils.js.map +1 -0
  74. package/dist/cjs/conditions/sequential.d.ts +7 -0
  75. package/dist/cjs/conditions/sequential.js +18 -0
  76. package/dist/cjs/conditions/sequential.js.map +1 -0
  77. package/dist/cjs/conditions/shared.d.ts +2 -19
  78. package/dist/cjs/conditions/shared.js +6 -32
  79. package/dist/cjs/conditions/shared.js.map +1 -1
  80. package/dist/cjs/web3.d.ts +33 -0
  81. package/dist/cjs/web3.js +3 -0
  82. package/dist/cjs/web3.js.map +1 -0
  83. package/dist/es/conditions/base/contract.d.ts +2 -428
  84. package/dist/es/conditions/base/contract.js +2 -77
  85. package/dist/es/conditions/base/contract.js.map +1 -1
  86. package/dist/es/conditions/base/index.d.ts +1 -0
  87. package/dist/es/conditions/base/index.js +1 -0
  88. package/dist/es/conditions/base/index.js.map +1 -1
  89. package/dist/es/conditions/base/json-api.d.ts +7 -0
  90. package/dist/es/conditions/base/json-api.js +12 -0
  91. package/dist/es/conditions/base/json-api.js.map +1 -0
  92. package/dist/es/conditions/base/rpc.d.ts +2 -42
  93. package/dist/es/conditions/base/rpc.js +2 -16
  94. package/dist/es/conditions/base/rpc.js.map +1 -1
  95. package/dist/es/conditions/base/time.d.ts +2 -40
  96. package/dist/es/conditions/base/time.js +2 -12
  97. package/dist/es/conditions/base/time.js.map +1 -1
  98. package/dist/es/conditions/compound-condition.d.ts +2 -4
  99. package/dist/es/conditions/compound-condition.js +2 -35
  100. package/dist/es/conditions/compound-condition.js.map +1 -1
  101. package/dist/es/conditions/condition-factory.js +11 -0
  102. package/dist/es/conditions/condition-factory.js.map +1 -1
  103. package/dist/es/conditions/condition.d.ts +1 -1
  104. package/dist/es/conditions/condition.js +1 -0
  105. package/dist/es/conditions/condition.js.map +1 -1
  106. package/dist/es/conditions/const.d.ts +1 -0
  107. package/dist/es/conditions/const.js +4 -1
  108. package/dist/es/conditions/const.js.map +1 -1
  109. package/dist/es/conditions/context/context.js +23 -2
  110. package/dist/es/conditions/context/context.js.map +1 -1
  111. package/dist/es/conditions/context/providers.d.ts +16 -0
  112. package/dist/es/conditions/context/providers.js +107 -0
  113. package/dist/es/conditions/context/providers.js.map +1 -0
  114. package/dist/es/conditions/if-then-else-condition.d.ts +7 -0
  115. package/dist/es/conditions/if-then-else-condition.js +12 -0
  116. package/dist/es/conditions/if-then-else-condition.js.map +1 -0
  117. package/dist/es/conditions/index.d.ts +2 -0
  118. package/dist/es/conditions/index.js +2 -0
  119. package/dist/es/conditions/index.js.map +1 -1
  120. package/dist/es/conditions/multi-condition.d.ts +2 -0
  121. package/dist/es/conditions/multi-condition.js +31 -0
  122. package/dist/es/conditions/multi-condition.js.map +1 -0
  123. package/dist/es/conditions/schemas/common.d.ts +12 -0
  124. package/dist/es/conditions/schemas/common.js +33 -0
  125. package/dist/es/conditions/schemas/common.js.map +1 -0
  126. package/dist/es/conditions/schemas/compound.d.ts +4 -0
  127. package/dist/es/conditions/schemas/compound.js +33 -0
  128. package/dist/es/conditions/schemas/compound.js.map +1 -0
  129. package/dist/es/conditions/schemas/context.d.ts +3 -0
  130. package/dist/es/conditions/schemas/context.js +13 -0
  131. package/dist/es/conditions/schemas/context.js.map +1 -0
  132. package/dist/es/conditions/schemas/contract.d.ts +428 -0
  133. package/dist/es/conditions/schemas/contract.js +78 -0
  134. package/dist/es/conditions/schemas/contract.js.map +1 -0
  135. package/dist/es/conditions/schemas/if-then-else.d.ts +4 -0
  136. package/dist/es/conditions/schemas/if-then-else.js +37 -0
  137. package/dist/es/conditions/schemas/if-then-else.js.map +1 -0
  138. package/dist/es/conditions/schemas/json-api.d.ts +46 -0
  139. package/dist/es/conditions/schemas/json-api.js +34 -0
  140. package/dist/es/conditions/schemas/json-api.js.map +1 -0
  141. package/dist/es/conditions/schemas/return-value-test.d.ts +15 -0
  142. package/dist/es/conditions/schemas/return-value-test.js +8 -0
  143. package/dist/es/conditions/schemas/return-value-test.js.map +1 -0
  144. package/dist/es/conditions/schemas/rpc.d.ts +42 -0
  145. package/dist/es/conditions/schemas/rpc.js +32 -0
  146. package/dist/es/conditions/schemas/rpc.js.map +1 -0
  147. package/dist/es/conditions/schemas/sequential.d.ts +6 -0
  148. package/dist/es/conditions/schemas/sequential.js +36 -0
  149. package/dist/es/conditions/schemas/sequential.js.map +1 -0
  150. package/dist/es/conditions/schemas/time.d.ts +40 -0
  151. package/dist/es/conditions/schemas/time.js +13 -0
  152. package/dist/es/conditions/schemas/time.js.map +1 -0
  153. package/dist/es/conditions/schemas/utils.d.ts +2 -0
  154. package/dist/es/conditions/schemas/utils.js +18 -0
  155. package/dist/es/conditions/schemas/utils.js.map +1 -0
  156. package/dist/es/conditions/sequential.d.ts +7 -0
  157. package/dist/es/conditions/sequential.js +12 -0
  158. package/dist/es/conditions/sequential.js.map +1 -0
  159. package/dist/es/conditions/shared.d.ts +2 -19
  160. package/dist/es/conditions/shared.js +2 -31
  161. package/dist/es/conditions/shared.js.map +1 -1
  162. package/dist/es/web3.d.ts +33 -0
  163. package/dist/es/web3.js +2 -0
  164. package/dist/es/web3.js.map +1 -0
  165. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  166. package/dist/tsconfig.es.tsbuildinfo +1 -1
  167. package/package.json +4 -3
@@ -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
- index?: number | undefined;
17
- value?: any;
18
- }, {
19
- comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
20
- index?: number | undefined;
21
- value?: any;
22
- }>;
23
- }, "strip", z.ZodTypeAny, {
24
- conditionType: "time";
25
- method: "blocktime";
26
- returnValueTest: {
27
- comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
28
- index?: number | undefined;
29
- value?: any;
30
- };
31
- chain?: z.Primitive;
32
- }, {
33
- returnValueTest: {
34
- comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
35
- index?: number | undefined;
36
- value?: any;
37
- };
38
- conditionType?: "time" | undefined;
39
- method?: "blocktime" | undefined;
40
- chain?: z.Primitive;
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"}
@@ -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,5 +1,6 @@
1
1
  import { ChainId } from '@nucypher/shared';
2
2
  export declare const CONTEXT_PARAM_REGEXP: RegExp;
3
+ export declare const CONTEXT_PARAM_FULL_MATCH_REGEXP: RegExp;
3
4
  export declare const CONTEXT_PARAM_PREFIX = ":";
4
5
  export declare const SUPPORTED_CHAIN_IDS: ChainId[];
5
6
  export declare const USER_ADDRESS_PARAMS: string[];
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.USER_ADDRESS_PARAMS = exports.SUPPORTED_CHAIN_IDS = exports.CONTEXT_PARAM_PREFIX = exports.CONTEXT_PARAM_REGEXP = 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
6
  // Only allow alphanumeric characters and underscores
7
- 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}$`);
8
11
  exports.CONTEXT_PARAM_PREFIX = ':';
9
12
  exports.SUPPORTED_CHAIN_IDS = [
10
13
  shared_1.ChainId.POLYGON,
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/conditions/const.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAC3C,mDAG6B;AAE7B,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,+CAAmC;IACnC,+CAA+C;IAC/C,sCAA0B;CAC3B,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"}
@@ -7,6 +7,7 @@ const types_1 = require("../../types");
7
7
  const compound_condition_1 = require("../compound-condition");
8
8
  const condition_expr_1 = require("../condition-expr");
9
9
  const const_1 = require("../const");
10
+ const json_api_1 = require("../schemas/json-api");
10
11
  const ERR_RESERVED_PARAM = (key) => `Cannot use reserved parameter name ${key} as custom parameter`;
11
12
  const ERR_INVALID_CUSTOM_PARAM = (key) => `Custom parameter ${key} must start with ${const_1.CONTEXT_PARAM_PREFIX}`;
12
13
  const ERR_AUTH_PROVIDER_REQUIRED = (key) => `No matching authentication provider to satisfy ${key} context variable in condition`;
@@ -87,7 +88,7 @@ class ConditionContext {
87
88
  }
88
89
  }
89
90
  static isContextParameter(param) {
90
- return !!String(param).match(const_1.CONTEXT_PARAM_REGEXP);
91
+ return !!String(param).match(const_1.CONTEXT_PARAM_FULL_MATCH_REGEXP);
91
92
  }
92
93
  static findContextParameters(condition) {
93
94
  // First, we want to find all the parameters we need to add
@@ -125,6 +126,26 @@ class ConditionContext {
125
126
  }
126
127
  }
127
128
  }
129
+ // If it's a JSON API condition, check url and query
130
+ if (condition.conditionType === json_api_1.JsonApiConditionType) {
131
+ const urlComponents = condition.endpoint.replace("https://", "").split("/");
132
+ for (const param of urlComponents ?? []) {
133
+ if (this.isContextParameter(param)) {
134
+ requestedParameters.add(param);
135
+ }
136
+ }
137
+ if (condition.query) {
138
+ const queryParams = condition.query.match(":[a-zA-Z_]*");
139
+ if (queryParams) {
140
+ for (const param of queryParams) {
141
+ requestedParameters.add(param);
142
+ }
143
+ }
144
+ }
145
+ if (this.isContextParameter(condition.authorizationToken)) {
146
+ requestedParameters.add(condition.authorizationToken);
147
+ }
148
+ }
128
149
  return requestedParameters;
129
150
  }
130
151
  addCustomContextParameterValues(customContextParameters) {
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/conditions/context/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/conditions/context/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { ethers } from 'ethers';
2
+ import { Eip712TypedData } from '../../web3';
3
+ export interface TypedSignature {
4
+ signature: string;
5
+ typedData: Eip712TypedData;
6
+ address: string;
7
+ }
8
+ export declare class WalletAuthenticationProvider {
9
+ private readonly provider;
10
+ private readonly signer;
11
+ private walletSignature?;
12
+ constructor(provider: ethers.providers.Provider, signer: ethers.Signer);
13
+ getOrCreateWalletSignature(): Promise<TypedSignature>;
14
+ private createWalletSignature;
15
+ private getChainData;
16
+ }
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletAuthenticationProvider = void 0;
4
+ const ethers_1 = require("ethers/lib/ethers");
5
+ class WalletAuthenticationProvider {
6
+ provider;
7
+ signer;
8
+ walletSignature;
9
+ constructor(provider, signer) {
10
+ this.provider = provider;
11
+ this.signer = signer;
12
+ }
13
+ async getOrCreateWalletSignature() {
14
+ console.warn('DeprecationWarning: The EIP712 authentication is deprecated and will be replaced ' +
15
+ 'by EIP4361 authentication in the next release.');
16
+ const address = await this.signer.getAddress();
17
+ const storageKey = `wallet-signature-${address}`;
18
+ // If we have a signature in localStorage, return it
19
+ const isLocalStorage = typeof localStorage !== 'undefined';
20
+ if (isLocalStorage) {
21
+ const maybeSignature = localStorage.getItem(storageKey);
22
+ if (maybeSignature) {
23
+ return JSON.parse(maybeSignature);
24
+ }
25
+ }
26
+ // If not, try returning from memory
27
+ const maybeSignature = this.walletSignature?.[address];
28
+ if (maybeSignature) {
29
+ if (isLocalStorage) {
30
+ localStorage.setItem(storageKey, maybeSignature);
31
+ }
32
+ return JSON.parse(maybeSignature);
33
+ }
34
+ // If at this point we didn't return, we need to create a new signature
35
+ const typedSignature = await this.createWalletSignature();
36
+ // Persist where you can
37
+ if (isLocalStorage) {
38
+ localStorage.setItem(storageKey, JSON.stringify(typedSignature));
39
+ }
40
+ if (!this.walletSignature) {
41
+ this.walletSignature = {};
42
+ }
43
+ this.walletSignature[address] = JSON.stringify(typedSignature);
44
+ return typedSignature;
45
+ }
46
+ async createWalletSignature() {
47
+ // Ensure freshness of the signature
48
+ const { blockNumber, blockHash, chainId } = await this.getChainData();
49
+ const address = await this.signer.getAddress();
50
+ const signatureText = `I'm the owner of address ${address} as of block number ${blockNumber}`;
51
+ const salt = ethers_1.utils.hexlify(ethers_1.utils.randomBytes(32));
52
+ const typedData = {
53
+ types: {
54
+ Wallet: [
55
+ { name: 'address', type: 'address' },
56
+ { name: 'signatureText', type: 'string' },
57
+ { name: 'blockNumber', type: 'uint256' },
58
+ { name: 'blockHash', type: 'bytes32' },
59
+ ],
60
+ },
61
+ domain: {
62
+ name: 'taco',
63
+ version: '1',
64
+ chainId,
65
+ salt,
66
+ },
67
+ message: {
68
+ address,
69
+ signatureText,
70
+ blockNumber,
71
+ blockHash,
72
+ },
73
+ };
74
+ // https://github.com/ethers-io/ethers.js/issues/1431#issuecomment-813950552
75
+ const signature = await this.signer._signTypedData(typedData.domain, typedData.types, typedData.message);
76
+ const formattedTypedData = {
77
+ ...typedData,
78
+ primaryType: 'Wallet',
79
+ types: {
80
+ ...typedData.types,
81
+ EIP712Domain: [
82
+ {
83
+ name: 'name',
84
+ type: 'string',
85
+ },
86
+ {
87
+ name: 'version',
88
+ type: 'string',
89
+ },
90
+ {
91
+ name: 'chainId',
92
+ type: 'uint256',
93
+ },
94
+ {
95
+ name: 'salt',
96
+ type: 'bytes32',
97
+ },
98
+ ],
99
+ },
100
+ };
101
+ return { signature, typedData: formattedTypedData, address };
102
+ }
103
+ async getChainData() {
104
+ const blockNumber = await this.provider.getBlockNumber();
105
+ const blockHash = (await this.provider.getBlock(blockNumber)).hash;
106
+ const chainId = (await this.provider.getNetwork()).chainId;
107
+ return { blockNumber, blockHash, chainId };
108
+ }
109
+ }
110
+ exports.WalletAuthenticationProvider = WalletAuthenticationProvider;
111
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../../src/conditions/context/providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Condition } from './condition';
2
+ import { IfThenElseConditionProps } from './schemas/if-then-else';
3
+ import { OmitConditionType } from './shared';
4
+ export { IfThenElseConditionProps, ifThenElseConditionSchema, IfThenElseConditionType, } from './schemas/if-then-else';
5
+ export declare class IfThenElseCondition extends Condition {
6
+ constructor(value: OmitConditionType<IfThenElseConditionProps>);
7
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IfThenElseCondition = exports.IfThenElseConditionType = exports.ifThenElseConditionSchema = void 0;
4
+ const condition_1 = require("./condition");
5
+ const if_then_else_1 = require("./schemas/if-then-else");
6
+ var if_then_else_2 = require("./schemas/if-then-else");
7
+ Object.defineProperty(exports, "ifThenElseConditionSchema", { enumerable: true, get: function () { return if_then_else_2.ifThenElseConditionSchema; } });
8
+ Object.defineProperty(exports, "IfThenElseConditionType", { enumerable: true, get: function () { return if_then_else_2.IfThenElseConditionType; } });
9
+ class IfThenElseCondition extends condition_1.Condition {
10
+ constructor(value) {
11
+ super(if_then_else_1.ifThenElseConditionSchema, {
12
+ conditionType: if_then_else_1.IfThenElseConditionType,
13
+ ...value,
14
+ });
15
+ }
16
+ }
17
+ exports.IfThenElseCondition = IfThenElseCondition;
18
+ //# sourceMappingURL=if-then-else-condition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"if-then-else-condition.js","sourceRoot":"","sources":["../../../src/conditions/if-then-else-condition.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,yDAIgC;AAGhC,uDAIgC;AAF9B,yHAAA,yBAAyB,OAAA;AACzB,uHAAA,uBAAuB,OAAA;AAGzB,MAAa,mBAAoB,SAAQ,qBAAS;IAChD,YAAY,KAAkD;QAC5D,KAAK,CAAC,wCAAyB,EAAE;YAC/B,aAAa,EAAE,sCAAuB;YACtC,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF;AAPD,kDAOC"}
@@ -5,4 +5,6 @@ export * as condition from './condition';
5
5
  export * as conditionExpr from './condition-expr';
6
6
  export { ConditionFactory } from './condition-factory';
7
7
  export * as context from './context';
8
+ export * as ifThenElse from './if-then-else-condition';
9
+ export * as sequential from './sequential';
8
10
  export { base, predefined };
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.predefined = exports.base = exports.context = exports.ConditionFactory = exports.conditionExpr = exports.condition = exports.compound = void 0;
26
+ exports.predefined = exports.base = exports.sequential = exports.ifThenElse = exports.context = exports.ConditionFactory = exports.conditionExpr = exports.condition = exports.compound = void 0;
27
27
  const base = __importStar(require("./base"));
28
28
  exports.base = base;
29
29
  const predefined = __importStar(require("./predefined"));
@@ -34,4 +34,6 @@ exports.conditionExpr = __importStar(require("./condition-expr"));
34
34
  var condition_factory_1 = require("./condition-factory");
35
35
  Object.defineProperty(exports, "ConditionFactory", { enumerable: true, get: function () { return condition_factory_1.ConditionFactory; } });
36
36
  exports.context = __importStar(require("./context"));
37
+ exports.ifThenElse = __importStar(require("./if-then-else-condition"));
38
+ exports.sequential = __importStar(require("./sequential"));
37
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/conditions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAQtB,oBAAI;AAPb,yDAA2C;AAO5B,gCAAU;AALzB,iEAAiD;AACjD,yDAAyC;AACzC,kEAAkD;AAClD,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,qDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/conditions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAUtB,oBAAI;AATb,yDAA2C;AAS5B,gCAAU;AAPzB,iEAAiD;AACjD,yDAAyC;AACzC,kEAAkD;AAClD,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,qDAAqC;AACrC,uEAAuD;AACvD,2DAA2C"}
@@ -0,0 +1,2 @@
1
+ import { ConditionProps } from './condition';
2
+ export declare const maxNestedDepth: (maxDepth: number) => (condition: ConditionProps, currentDepth?: number) => boolean;