@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
@@ -0,0 +1,34 @@
1
+ import { JSONPath } from '@astronautlabs/jsonpath';
2
+ import { z } from 'zod';
3
+ import { CONTEXT_PARAM_REGEXP } from '../const';
4
+ import { contextParamSchema } from './context';
5
+ import { returnValueTestSchema } from './return-value-test';
6
+ export const JsonApiConditionType = 'json-api';
7
+ const validateJSONPath = (jsonPath) => {
8
+ // account for embedded context variables
9
+ if (CONTEXT_PARAM_REGEXP.test(jsonPath)) {
10
+ // skip validation
11
+ return true;
12
+ }
13
+ try {
14
+ JSONPath.parse(jsonPath);
15
+ return true;
16
+ }
17
+ catch (error) {
18
+ return false;
19
+ }
20
+ };
21
+ export const jsonPathSchema = z
22
+ .string()
23
+ .refine((val) => validateJSONPath(val), {
24
+ message: 'Invalid JSONPath expression',
25
+ });
26
+ export const jsonApiConditionSchema = z.object({
27
+ conditionType: z.literal(JsonApiConditionType).default(JsonApiConditionType),
28
+ endpoint: z.string().url(),
29
+ parameters: z.record(z.string(), z.unknown()).optional(),
30
+ query: jsonPathSchema.optional(),
31
+ authorizationToken: contextParamSchema.optional(),
32
+ returnValueTest: returnValueTestSchema, // Update to allow multiple return values after expanding supported methods
33
+ });
34
+ //# sourceMappingURL=json-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-api.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/json-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAE/C,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAW,EAAE;IACrD,yCAAyC;IACzC,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,kBAAkB;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;IACtC,OAAO,EAAE,6BAA6B;CACvC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;IAC5E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE;IAChC,kBAAkB,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IACjD,eAAe,EAAE,qBAAqB,EAAE,2EAA2E;CACpH,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ export declare const returnValueTestSchema: z.ZodObject<{
3
+ index: z.ZodOptional<z.ZodNumber>;
4
+ comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
5
+ value: z.ZodType<any, z.ZodTypeDef, any>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
8
+ index?: number | undefined;
9
+ value?: any;
10
+ }, {
11
+ comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
12
+ index?: number | undefined;
13
+ value?: any;
14
+ }>;
15
+ export type ReturnValueTestProps = z.infer<typeof returnValueTestSchema>;
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import { paramOrContextParamSchema } from './context';
3
+ export const returnValueTestSchema = z.object({
4
+ index: z.number().int().nonnegative().optional(),
5
+ comparator: z.enum(['==', '>', '<', '>=', '<=', '!=']),
6
+ value: paramOrContextParamSchema,
7
+ });
8
+ //# sourceMappingURL=return-value-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"return-value-test.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/return-value-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAChD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtD,KAAK,EAAE,yBAAyB;CACjC,CAAC,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { z } from 'zod';
2
+ export declare const RpcConditionType = "rpc";
3
+ export declare const rpcConditionSchema: z.ZodObject<{
4
+ conditionType: z.ZodDefault<z.ZodLiteral<"rpc">>;
5
+ chain: z.ZodNever | z.ZodLiteral<z.Primitive> | z.ZodUnion<[z.ZodLiteral<z.Primitive>, z.ZodLiteral<z.Primitive>, ...z.ZodLiteral<z.Primitive>[]]>;
6
+ method: z.ZodEnum<["eth_getBalance"]>;
7
+ parameters: z.ZodUnion<[z.ZodTuple<[z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<[":userAddress", ":userAddressExternalEIP4361"]>, z.ZodString]>, z.ZodUnion<[z.ZodUnion<[z.ZodNumber, z.ZodString, z.ZodEnum<["earliest", "finalized", "safe", "latest", "pending"]>]>, z.ZodString]>], null>, z.ZodTuple<[z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<[":userAddress", ":userAddressExternalEIP4361"]>, z.ZodString]>], null>]>;
8
+ returnValueTest: z.ZodObject<{
9
+ index: z.ZodOptional<z.ZodNumber>;
10
+ comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
11
+ value: z.ZodType<any, z.ZodTypeDef, any>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
14
+ index?: number | undefined;
15
+ value?: any;
16
+ }, {
17
+ comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
18
+ index?: number | undefined;
19
+ value?: any;
20
+ }>;
21
+ }, "strip", z.ZodTypeAny, {
22
+ conditionType: "rpc";
23
+ parameters: [string] | [string, string | number];
24
+ returnValueTest: {
25
+ comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
26
+ index?: number | undefined;
27
+ value?: any;
28
+ };
29
+ method: "eth_getBalance";
30
+ chain?: z.Primitive;
31
+ }, {
32
+ parameters: [string] | [string, string | number];
33
+ returnValueTest: {
34
+ comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
35
+ index?: number | undefined;
36
+ value?: any;
37
+ };
38
+ method: "eth_getBalance";
39
+ conditionType?: "rpc" | undefined;
40
+ chain?: z.Primitive;
41
+ }>;
42
+ export type RpcConditionProps = z.infer<typeof rpcConditionSchema>;
@@ -0,0 +1,32 @@
1
+ import { BlockIdentifierSchema, EthAddressSchema } from '@nucypher/shared';
2
+ import { z } from 'zod';
3
+ import { SUPPORTED_CHAIN_IDS } from '../const';
4
+ import createUnionSchema, { baseConditionSchema, UserAddressSchema, } from './common';
5
+ import { contextParamSchema } from './context';
6
+ import { returnValueTestSchema } from './return-value-test';
7
+ export const RpcConditionType = 'rpc';
8
+ const EthAddressOrContextVariableSchema = z.union([
9
+ EthAddressSchema,
10
+ UserAddressSchema,
11
+ contextParamSchema,
12
+ ]);
13
+ const BlockOrContextParamSchema = z.union([
14
+ BlockIdentifierSchema,
15
+ contextParamSchema,
16
+ ]);
17
+ // eth_getBalance schema specification
18
+ // - Ethereum spec: https://ethereum.github.io/execution-apis/api-documentation/
19
+ // - web3py: https://web3py.readthedocs.io/en/stable/web3.eth.html#web3.eth.Eth.get_balance
20
+ export const rpcConditionSchema = baseConditionSchema.extend({
21
+ conditionType: z.literal(RpcConditionType).default(RpcConditionType),
22
+ chain: createUnionSchema(SUPPORTED_CHAIN_IDS),
23
+ method: z.enum(['eth_getBalance']),
24
+ parameters: z.union([
25
+ // Spec requires 2 parameters: an address and a block identifier
26
+ z.tuple([EthAddressOrContextVariableSchema, BlockOrContextParamSchema]),
27
+ // Block identifier can be omitted, since web3py (which runs on TACo exec layer) defaults to 'latest',
28
+ z.tuple([EthAddressOrContextVariableSchema]),
29
+ ]),
30
+ returnValueTest: returnValueTestSchema, // Update to allow multiple return values after expanding supported methods
31
+ });
32
+ //# sourceMappingURL=rpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,iBAAiB,EAAE,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAEtC,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC;IAChD,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;CACnB,CAAC,CAAC;AACH,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC;IACxC,qBAAqB;IACrB,kBAAkB;CACnB,CAAC,CAAC;AAEH,sCAAsC;AACtC,gFAAgF;AAChF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,MAAM,CAAC;IAC3D,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACpE,KAAK,EAAE,iBAAiB,CAAC,mBAAmB,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC;QAClB,gEAAgE;QAChE,CAAC,CAAC,KAAK,CAAC,CAAC,iCAAiC,EAAE,yBAAyB,CAAC,CAAC;QACvE,sGAAsG;QACtG,CAAC,CAAC,KAAK,CAAC,CAAC,iCAAiC,CAAC,CAAC;KAC7C,CAAC;IACF,eAAe,EAAE,qBAAqB,EAAE,2EAA2E;CACpH,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ export declare const SequentialConditionType = "sequential";
3
+ export declare const conditionVariableSchema: z.ZodSchema;
4
+ export type ConditionVariableProps = z.infer<typeof conditionVariableSchema>;
5
+ export declare const sequentialConditionSchema: z.ZodSchema;
6
+ export type SequentialConditionProps = z.infer<typeof sequentialConditionSchema>;
@@ -0,0 +1,36 @@
1
+ import { z } from 'zod';
2
+ import { maxNestedDepth } from '../multi-condition';
3
+ import { baseConditionSchema, plainStringSchema } from './common';
4
+ import { anyConditionSchema } from './utils';
5
+ export const SequentialConditionType = 'sequential';
6
+ export const conditionVariableSchema = z.lazy(() => z.object({
7
+ varName: plainStringSchema,
8
+ condition: anyConditionSchema,
9
+ }));
10
+ export const sequentialConditionSchema = baseConditionSchema
11
+ .extend({
12
+ conditionType: z
13
+ .literal(SequentialConditionType)
14
+ .default(SequentialConditionType),
15
+ conditionVariables: z.array(conditionVariableSchema).min(2).max(5),
16
+ })
17
+ .refine((condition) => maxNestedDepth(2)(condition), {
18
+ message: 'Exceeded max nested depth of 2 for multi-condition type',
19
+ path: ['conditionVariables'],
20
+ })
21
+ .refine(
22
+ // check for duplicate var names
23
+ (condition) => {
24
+ const seen = new Set();
25
+ return condition.conditionVariables.every((child) => {
26
+ if (seen.has(child.varName)) {
27
+ return false;
28
+ }
29
+ seen.add(child.varName);
30
+ return true;
31
+ });
32
+ }, {
33
+ message: 'Duplicate variable names are not allowed',
34
+ path: ['conditionVariables'],
35
+ });
36
+ //# sourceMappingURL=sequential.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequential.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/sequential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAEpD,MAAM,CAAC,MAAM,uBAAuB,GAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC9D,CAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,iBAAiB;IAC1B,SAAS,EAAE,kBAAkB;CAC9B,CAAC,CACH,CAAC;AAGF,MAAM,CAAC,MAAM,yBAAyB,GAAgB,mBAAmB;KACtE,MAAM,CAAC;IACN,aAAa,EAAE,CAAC;SACb,OAAO,CAAC,uBAAuB,CAAC;SAChC,OAAO,CAAC,uBAAuB,CAAC;IACnC,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACnE,CAAC;KACD,MAAM,CACL,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAC3C;IACE,OAAO,EAAE,yDAAyD;IAClE,IAAI,EAAE,CAAC,oBAAoB,CAAC;CAC7B,CACF;KACA,MAAM;AACL,gCAAgC;AAChC,CAAC,SAAS,EAAE,EAAE;IACZ,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IACvB,OAAO,SAAS,CAAC,kBAAkB,CAAC,KAAK,CACvC,CAAC,KAA6B,EAAE,EAAE;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC,CACF,CAAC;AACJ,CAAC,EACD;IACE,OAAO,EAAE,0CAA0C;IACnD,IAAI,EAAE,CAAC,oBAAoB,CAAC;CAC7B,CACF,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { z } from 'zod';
2
+ export declare const TimeConditionType = "time";
3
+ export declare const TimeConditionMethod = "blocktime";
4
+ export declare const timeConditionSchema: z.ZodObject<{
5
+ conditionType: z.ZodDefault<z.ZodLiteral<"time">>;
6
+ method: z.ZodDefault<z.ZodLiteral<"blocktime">>;
7
+ chain: z.ZodNever | z.ZodLiteral<z.Primitive> | z.ZodUnion<[z.ZodLiteral<z.Primitive>, z.ZodLiteral<z.Primitive>, ...z.ZodLiteral<z.Primitive>[]]>;
8
+ returnValueTest: z.ZodObject<{
9
+ index: z.ZodOptional<z.ZodNumber>;
10
+ comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
11
+ value: z.ZodType<any, z.ZodTypeDef, any>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
14
+ index?: number | undefined;
15
+ value?: any;
16
+ }, {
17
+ comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
18
+ index?: number | undefined;
19
+ value?: any;
20
+ }>;
21
+ }, "strip", z.ZodTypeAny, {
22
+ conditionType: "time";
23
+ returnValueTest: {
24
+ comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
25
+ index?: number | undefined;
26
+ value?: any;
27
+ };
28
+ method: "blocktime";
29
+ chain?: z.Primitive;
30
+ }, {
31
+ returnValueTest: {
32
+ comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
33
+ index?: number | undefined;
34
+ value?: any;
35
+ };
36
+ conditionType?: "time" | undefined;
37
+ method?: "blocktime" | undefined;
38
+ chain?: z.Primitive;
39
+ }>;
40
+ export type TimeConditionProps = z.infer<typeof timeConditionSchema>;
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ import { rpcConditionSchema } from './rpc';
3
+ // TimeCondition is an RpcCondition with the method set to 'blocktime' and no parameters
4
+ export const TimeConditionType = 'time';
5
+ export const TimeConditionMethod = 'blocktime';
6
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
7
+ const { parameters: _, ...restShape } = rpcConditionSchema.shape;
8
+ export const timeConditionSchema = z.object({
9
+ ...restShape,
10
+ conditionType: z.literal(TimeConditionType).default(TimeConditionType),
11
+ method: z.literal(TimeConditionMethod).default(TimeConditionMethod),
12
+ });
13
+ //# sourceMappingURL=time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE3C,wFAAwF;AAExF,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAE/C,6DAA6D;AAC7D,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,SAAS;IACZ,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;IACtE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;CACpE,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { z } from 'zod';
2
+ export declare const anyConditionSchema: z.ZodSchema;
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import { compoundConditionSchema } from '../compound-condition';
3
+ import { contractConditionSchema } from './contract';
4
+ import { ifThenElseConditionSchema } from './if-then-else';
5
+ import { jsonApiConditionSchema } from './json-api';
6
+ import { rpcConditionSchema } from './rpc';
7
+ import { sequentialConditionSchema } from './sequential';
8
+ import { timeConditionSchema } from './time';
9
+ export const anyConditionSchema = z.lazy(() => z.union([
10
+ rpcConditionSchema,
11
+ timeConditionSchema,
12
+ contractConditionSchema,
13
+ compoundConditionSchema,
14
+ jsonApiConditionSchema,
15
+ sequentialConditionSchema,
16
+ ifThenElseConditionSchema,
17
+ ]));
18
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,MAAM,CAAC,MAAM,kBAAkB,GAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACzD,CAAC,CAAC,KAAK,CAAC;IACN,kBAAkB;IAClB,mBAAmB;IACnB,uBAAuB;IACvB,uBAAuB;IACvB,sBAAsB;IACtB,yBAAyB;IACzB,yBAAyB;CAC1B,CAAC,CACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Condition } from './condition';
2
+ import { SequentialConditionProps } from './schemas/sequential';
3
+ import { OmitConditionType } from './shared';
4
+ export { ConditionVariableProps, SequentialConditionProps, sequentialConditionSchema, SequentialConditionType, } from './schemas/sequential';
5
+ export declare class SequentialCondition extends Condition {
6
+ constructor(value: OmitConditionType<SequentialConditionProps>);
7
+ }
@@ -0,0 +1,12 @@
1
+ import { Condition } from './condition';
2
+ import { sequentialConditionSchema, SequentialConditionType, } from './schemas/sequential';
3
+ export { sequentialConditionSchema, SequentialConditionType, } from './schemas/sequential';
4
+ export class SequentialCondition extends Condition {
5
+ constructor(value) {
6
+ super(sequentialConditionSchema, {
7
+ conditionType: SequentialConditionType,
8
+ ...value,
9
+ });
10
+ }
11
+ }
12
+ //# sourceMappingURL=sequential.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequential.js","sourceRoot":"","sources":["../../../src/conditions/sequential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAEL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAGL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAChD,YAAY,KAAkD;QAC5D,KAAK,CAAC,yBAAyB,EAAE;YAC/B,aAAa,EAAE,uBAAuB;YACtC,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,20 +1,3 @@
1
- import { z } from 'zod';
2
- export declare const contextParamSchema: z.ZodString;
3
- export declare const plainStringSchema: z.ZodEffects<z.ZodString, string, string>;
4
- export declare const paramOrContextParamSchema: z.ZodSchema;
5
- export declare const returnValueTestSchema: z.ZodObject<{
6
- index: z.ZodOptional<z.ZodNumber>;
7
- comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
8
- value: z.ZodType<any, z.ZodTypeDef, any>;
9
- }, "strip", z.ZodTypeAny, {
10
- comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
11
- index?: number | undefined;
12
- value?: any;
13
- }, {
14
- comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
15
- index?: number | undefined;
16
- value?: any;
17
- }>;
18
- export type ReturnValueTestProps = z.infer<typeof returnValueTestSchema>;
19
- export declare const EthAddressOrUserAddressSchema: z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<[":userAddress", ":userAddressExternalEIP4361"]>]>;
20
1
  export type OmitConditionType<T> = Omit<T, 'conditionType'>;
2
+ export { contextParamSchema, paramOrContextParamSchema, } from './schemas/context';
3
+ export { ReturnValueTestProps, returnValueTestSchema, } from './schemas/return-value-test';
@@ -1,32 +1,3 @@
1
- import { EthAddressSchema } from '@nucypher/shared';
2
- import { USER_ADDRESS_PARAM_DEFAULT, USER_ADDRESS_PARAM_EXTERNAL_EIP4361, } from '@nucypher/taco-auth';
3
- import { z } from 'zod';
4
- import { CONTEXT_PARAM_PREFIX, CONTEXT_PARAM_REGEXP } from './const';
5
- export const contextParamSchema = z.string().regex(CONTEXT_PARAM_REGEXP);
6
- // We want to discriminate between ContextParams and plain strings
7
- // If a string starts with `:`, it's a ContextParam
8
- export const plainStringSchema = z.string().refine((str) => {
9
- return !str.startsWith(CONTEXT_PARAM_PREFIX);
10
- }, {
11
- message: `String must not be a context parameter i.e. not start with "${CONTEXT_PARAM_PREFIX}"`,
12
- });
13
- const paramSchema = z.union([plainStringSchema, z.boolean(), z.number()]);
14
- export const paramOrContextParamSchema = z.union([
15
- paramSchema,
16
- contextParamSchema,
17
- z.lazy(() => z.array(paramOrContextParamSchema)),
18
- ]);
19
- export const returnValueTestSchema = z.object({
20
- index: z.number().int().nonnegative().optional(),
21
- comparator: z.enum(['==', '>', '<', '>=', '<=', '!=']),
22
- value: paramOrContextParamSchema,
23
- });
24
- const UserAddressSchema = z.enum([
25
- USER_ADDRESS_PARAM_DEFAULT,
26
- USER_ADDRESS_PARAM_EXTERNAL_EIP4361,
27
- ]);
28
- export const EthAddressOrUserAddressSchema = z.union([
29
- EthAddressSchema,
30
- UserAddressSchema,
31
- ]);
1
+ export { contextParamSchema, paramOrContextParamSchema, } from './schemas/context';
2
+ export { returnValueTestSchema, } from './schemas/return-value-test';
32
3
  //# sourceMappingURL=shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/conditions/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,mCAAmC,GACpC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAErE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AACzE,kEAAkE;AAClE,mDAAmD;AACnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAChD,CAAC,GAAG,EAAE,EAAE;IACN,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAC/C,CAAC,EACD;IACE,OAAO,EAAE,+DAA+D,oBAAoB,GAAG;CAChG,CACF,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,yBAAyB,GAAgB,CAAC,CAAC,KAAK,CAAC;IAC5D,WAAW;IACX,kBAAkB;IAClB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAChD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtD,KAAK,EAAE,yBAAyB;CACjC,CAAC,CAAC;AAIH,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC/B,0BAA0B;IAC1B,mCAAmC;CACpC,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC;IACnD,gBAAgB;IAChB,iBAAiB;CAClB,CAAC,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/conditions/shared.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAEL,qBAAqB,GACtB,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,33 @@
1
+ export interface Eip712TypedData {
2
+ types: {
3
+ Wallet: {
4
+ name: string;
5
+ type: string;
6
+ }[];
7
+ };
8
+ domain: {
9
+ salt: string;
10
+ chainId: number;
11
+ name: string;
12
+ version: string;
13
+ };
14
+ message: {
15
+ blockHash: string;
16
+ address: string;
17
+ blockNumber: number;
18
+ signatureText: string;
19
+ };
20
+ }
21
+ export interface FormattedTypedData extends Eip712TypedData {
22
+ primaryType: 'Wallet';
23
+ types: {
24
+ EIP712Domain: {
25
+ name: string;
26
+ type: string;
27
+ }[];
28
+ Wallet: {
29
+ name: string;
30
+ type: string;
31
+ }[];
32
+ };
33
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=web3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web3.js","sourceRoot":"","sources":["../../src/web3.ts"],"names":[],"mappings":""}