@lit-protocol/vincent-ability-sdk 0.0.1-ea

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 (209) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/CONTRIBUTING.md +117 -0
  3. package/README.md +213 -0
  4. package/dist/package.json +44 -0
  5. package/dist/src/index.d.ts +15 -0
  6. package/dist/src/index.d.ts.map +1 -0
  7. package/dist/src/index.js +21 -0
  8. package/dist/src/index.js.map +1 -0
  9. package/dist/src/internal.d.ts +12 -0
  10. package/dist/src/internal.d.ts.map +1 -0
  11. package/dist/src/internal.js +32 -0
  12. package/dist/src/internal.js.map +1 -0
  13. package/dist/src/lib/abilityCore/abilityConfig/context/abilityContext.d.ts +28 -0
  14. package/dist/src/lib/abilityCore/abilityConfig/context/abilityContext.d.ts.map +1 -0
  15. package/dist/src/lib/abilityCore/abilityConfig/context/abilityContext.js +51 -0
  16. package/dist/src/lib/abilityCore/abilityConfig/context/abilityContext.js.map +1 -0
  17. package/dist/src/lib/abilityCore/abilityConfig/context/resultCreators.d.ts +18 -0
  18. package/dist/src/lib/abilityCore/abilityConfig/context/resultCreators.d.ts.map +1 -0
  19. package/dist/src/lib/abilityCore/abilityConfig/context/resultCreators.js +48 -0
  20. package/dist/src/lib/abilityCore/abilityConfig/context/resultCreators.js.map +1 -0
  21. package/dist/src/lib/abilityCore/abilityConfig/context/types.d.ts +31 -0
  22. package/dist/src/lib/abilityCore/abilityConfig/context/types.d.ts.map +1 -0
  23. package/dist/src/lib/abilityCore/abilityConfig/context/types.js +9 -0
  24. package/dist/src/lib/abilityCore/abilityConfig/context/types.js.map +1 -0
  25. package/dist/src/lib/abilityCore/abilityConfig/types.d.ts +20 -0
  26. package/dist/src/lib/abilityCore/abilityConfig/types.d.ts.map +1 -0
  27. package/dist/src/lib/abilityCore/abilityConfig/types.js +4 -0
  28. package/dist/src/lib/abilityCore/abilityConfig/types.js.map +1 -0
  29. package/dist/src/lib/abilityCore/bundledAbility/bundledAbility.d.ts +5 -0
  30. package/dist/src/lib/abilityCore/bundledAbility/bundledAbility.d.ts.map +1 -0
  31. package/dist/src/lib/abilityCore/bundledAbility/bundledAbility.js +21 -0
  32. package/dist/src/lib/abilityCore/bundledAbility/bundledAbility.js.map +1 -0
  33. package/dist/src/lib/abilityCore/bundledAbility/types.d.ts +18 -0
  34. package/dist/src/lib/abilityCore/bundledAbility/types.d.ts.map +1 -0
  35. package/dist/src/lib/abilityCore/bundledAbility/types.js +4 -0
  36. package/dist/src/lib/abilityCore/bundledAbility/types.js.map +1 -0
  37. package/dist/src/lib/abilityCore/helpers/getMappedAbilityPolicyParams.d.ts +5 -0
  38. package/dist/src/lib/abilityCore/helpers/getMappedAbilityPolicyParams.d.ts.map +1 -0
  39. package/dist/src/lib/abilityCore/helpers/getMappedAbilityPolicyParams.js +18 -0
  40. package/dist/src/lib/abilityCore/helpers/getMappedAbilityPolicyParams.js.map +1 -0
  41. package/dist/src/lib/abilityCore/helpers/getPkpInfo.d.ts +10 -0
  42. package/dist/src/lib/abilityCore/helpers/getPkpInfo.d.ts.map +1 -0
  43. package/dist/src/lib/abilityCore/helpers/getPkpInfo.js +26 -0
  44. package/dist/src/lib/abilityCore/helpers/getPkpInfo.js.map +1 -0
  45. package/dist/src/lib/abilityCore/helpers/index.d.ts +5 -0
  46. package/dist/src/lib/abilityCore/helpers/index.d.ts.map +1 -0
  47. package/dist/src/lib/abilityCore/helpers/index.js +12 -0
  48. package/dist/src/lib/abilityCore/helpers/index.js.map +1 -0
  49. package/dist/src/lib/abilityCore/helpers/resultCreators.d.ts +21 -0
  50. package/dist/src/lib/abilityCore/helpers/resultCreators.d.ts.map +1 -0
  51. package/dist/src/lib/abilityCore/helpers/resultCreators.js +48 -0
  52. package/dist/src/lib/abilityCore/helpers/resultCreators.js.map +1 -0
  53. package/dist/src/lib/abilityCore/helpers/supportedPoliciesForAbility.d.ts +55 -0
  54. package/dist/src/lib/abilityCore/helpers/supportedPoliciesForAbility.d.ts.map +1 -0
  55. package/dist/src/lib/abilityCore/helpers/supportedPoliciesForAbility.js +68 -0
  56. package/dist/src/lib/abilityCore/helpers/supportedPoliciesForAbility.js.map +1 -0
  57. package/dist/src/lib/abilityCore/helpers/typeGuards.d.ts +8 -0
  58. package/dist/src/lib/abilityCore/helpers/typeGuards.d.ts.map +1 -0
  59. package/dist/src/lib/abilityCore/helpers/typeGuards.js +28 -0
  60. package/dist/src/lib/abilityCore/helpers/typeGuards.js.map +1 -0
  61. package/dist/src/lib/abilityCore/helpers/validatePolicies.d.ts +24 -0
  62. package/dist/src/lib/abilityCore/helpers/validatePolicies.d.ts.map +1 -0
  63. package/dist/src/lib/abilityCore/helpers/validatePolicies.js +31 -0
  64. package/dist/src/lib/abilityCore/helpers/validatePolicies.js.map +1 -0
  65. package/dist/src/lib/abilityCore/helpers/zod.d.ts +43 -0
  66. package/dist/src/lib/abilityCore/helpers/zod.d.ts.map +1 -0
  67. package/dist/src/lib/abilityCore/helpers/zod.js +70 -0
  68. package/dist/src/lib/abilityCore/helpers/zod.js.map +1 -0
  69. package/dist/src/lib/abilityCore/vincentAbility.d.ts +54 -0
  70. package/dist/src/lib/abilityCore/vincentAbility.d.ts.map +1 -0
  71. package/dist/src/lib/abilityCore/vincentAbility.js +162 -0
  72. package/dist/src/lib/abilityCore/vincentAbility.js.map +1 -0
  73. package/dist/src/lib/assertSupportedAbilityVersion.d.ts +2 -0
  74. package/dist/src/lib/assertSupportedAbilityVersion.d.ts.map +1 -0
  75. package/dist/src/lib/assertSupportedAbilityVersion.js +15 -0
  76. package/dist/src/lib/assertSupportedAbilityVersion.js.map +1 -0
  77. package/dist/src/lib/constants.d.ts +2 -0
  78. package/dist/src/lib/constants.d.ts.map +1 -0
  79. package/dist/src/lib/constants.js +5 -0
  80. package/dist/src/lib/constants.js.map +1 -0
  81. package/dist/src/lib/handlers/constants.d.ts +2 -0
  82. package/dist/src/lib/handlers/constants.d.ts.map +1 -0
  83. package/dist/src/lib/handlers/constants.js +6 -0
  84. package/dist/src/lib/handlers/constants.js.map +1 -0
  85. package/dist/src/lib/handlers/evaluatePolicies.d.ts +11 -0
  86. package/dist/src/lib/handlers/evaluatePolicies.d.ts.map +1 -0
  87. package/dist/src/lib/handlers/evaluatePolicies.js +110 -0
  88. package/dist/src/lib/handlers/evaluatePolicies.js.map +1 -0
  89. package/dist/src/lib/handlers/vincentAbilityHandler.d.ts +15 -0
  90. package/dist/src/lib/handlers/vincentAbilityHandler.d.ts.map +1 -0
  91. package/dist/src/lib/handlers/vincentAbilityHandler.js +160 -0
  92. package/dist/src/lib/handlers/vincentAbilityHandler.js.map +1 -0
  93. package/dist/src/lib/handlers/vincentPolicyHandler.d.ts +13 -0
  94. package/dist/src/lib/handlers/vincentPolicyHandler.d.ts.map +1 -0
  95. package/dist/src/lib/handlers/vincentPolicyHandler.js +70 -0
  96. package/dist/src/lib/handlers/vincentPolicyHandler.js.map +1 -0
  97. package/dist/src/lib/policyCore/bundledPolicy/bundledPolicy.d.ts +5 -0
  98. package/dist/src/lib/policyCore/bundledPolicy/bundledPolicy.d.ts.map +1 -0
  99. package/dist/src/lib/policyCore/bundledPolicy/bundledPolicy.js +21 -0
  100. package/dist/src/lib/policyCore/bundledPolicy/bundledPolicy.js.map +1 -0
  101. package/dist/src/lib/policyCore/bundledPolicy/types.d.ts +17 -0
  102. package/dist/src/lib/policyCore/bundledPolicy/types.d.ts.map +1 -0
  103. package/dist/src/lib/policyCore/bundledPolicy/types.js +4 -0
  104. package/dist/src/lib/policyCore/bundledPolicy/types.js.map +1 -0
  105. package/dist/src/lib/policyCore/helpers/index.d.ts +5 -0
  106. package/dist/src/lib/policyCore/helpers/index.d.ts.map +1 -0
  107. package/dist/src/lib/policyCore/helpers/index.js +16 -0
  108. package/dist/src/lib/policyCore/helpers/index.js.map +1 -0
  109. package/dist/src/lib/policyCore/helpers/resultCreators.d.ts +38 -0
  110. package/dist/src/lib/policyCore/helpers/resultCreators.d.ts.map +1 -0
  111. package/dist/src/lib/policyCore/helpers/resultCreators.js +89 -0
  112. package/dist/src/lib/policyCore/helpers/resultCreators.js.map +1 -0
  113. package/dist/src/lib/policyCore/helpers/typeGuards.d.ts +7 -0
  114. package/dist/src/lib/policyCore/helpers/typeGuards.d.ts.map +1 -0
  115. package/dist/src/lib/policyCore/helpers/typeGuards.js +23 -0
  116. package/dist/src/lib/policyCore/helpers/typeGuards.js.map +1 -0
  117. package/dist/src/lib/policyCore/helpers/zod.d.ts +55 -0
  118. package/dist/src/lib/policyCore/helpers/zod.d.ts.map +1 -0
  119. package/dist/src/lib/policyCore/helpers/zod.js +82 -0
  120. package/dist/src/lib/policyCore/helpers/zod.js.map +1 -0
  121. package/dist/src/lib/policyCore/index.d.ts +3 -0
  122. package/dist/src/lib/policyCore/index.d.ts.map +1 -0
  123. package/dist/src/lib/policyCore/index.js +8 -0
  124. package/dist/src/lib/policyCore/index.js.map +1 -0
  125. package/dist/src/lib/policyCore/policyConfig/context/policyConfigContext.d.ts +12 -0
  126. package/dist/src/lib/policyCore/policyConfig/context/policyConfigContext.d.ts.map +1 -0
  127. package/dist/src/lib/policyCore/policyConfig/context/policyConfigContext.js +20 -0
  128. package/dist/src/lib/policyCore/policyConfig/context/policyConfigContext.js.map +1 -0
  129. package/dist/src/lib/policyCore/policyConfig/context/resultCreators.d.ts +6 -0
  130. package/dist/src/lib/policyCore/policyConfig/context/resultCreators.d.ts.map +1 -0
  131. package/dist/src/lib/policyCore/policyConfig/context/resultCreators.js +30 -0
  132. package/dist/src/lib/policyCore/policyConfig/context/resultCreators.js.map +1 -0
  133. package/dist/src/lib/policyCore/policyConfig/context/types.d.ts +24 -0
  134. package/dist/src/lib/policyCore/policyConfig/context/types.d.ts.map +1 -0
  135. package/dist/src/lib/policyCore/policyConfig/context/types.js +5 -0
  136. package/dist/src/lib/policyCore/policyConfig/context/types.js.map +1 -0
  137. package/dist/src/lib/policyCore/policyConfig/types.d.ts +46 -0
  138. package/dist/src/lib/policyCore/policyConfig/types.d.ts.map +1 -0
  139. package/dist/src/lib/policyCore/policyConfig/types.js +3 -0
  140. package/dist/src/lib/policyCore/policyConfig/types.js.map +1 -0
  141. package/dist/src/lib/policyCore/policyParameters/getOnchainPolicyParams.d.ts +17 -0
  142. package/dist/src/lib/policyCore/policyParameters/getOnchainPolicyParams.d.ts.map +1 -0
  143. package/dist/src/lib/policyCore/policyParameters/getOnchainPolicyParams.js +54 -0
  144. package/dist/src/lib/policyCore/policyParameters/getOnchainPolicyParams.js.map +1 -0
  145. package/dist/src/lib/policyCore/vincentPolicy.d.ts +92 -0
  146. package/dist/src/lib/policyCore/vincentPolicy.d.ts.map +1 -0
  147. package/dist/src/lib/policyCore/vincentPolicy.js +242 -0
  148. package/dist/src/lib/policyCore/vincentPolicy.js.map +1 -0
  149. package/dist/src/lib/types.d.ts +260 -0
  150. package/dist/src/lib/types.d.ts.map +1 -0
  151. package/dist/src/lib/types.js +4 -0
  152. package/dist/src/lib/types.js.map +1 -0
  153. package/dist/src/lib/utils.d.ts +2 -0
  154. package/dist/src/lib/utils.d.ts.map +1 -0
  155. package/dist/src/lib/utils.js +8 -0
  156. package/dist/src/lib/utils.js.map +1 -0
  157. package/dist/src/type-inference-verification/ability-definition-tests.d.ts +702 -0
  158. package/dist/src/type-inference-verification/ability-definition-tests.d.ts.map +1 -0
  159. package/dist/src/type-inference-verification/ability-definition-tests.js +203 -0
  160. package/dist/src/type-inference-verification/ability-definition-tests.js.map +1 -0
  161. package/dist/src/type-inference-verification/ability-lifecycle-inference.d.ts +2 -0
  162. package/dist/src/type-inference-verification/ability-lifecycle-inference.d.ts.map +1 -0
  163. package/dist/src/type-inference-verification/ability-lifecycle-inference.js +109 -0
  164. package/dist/src/type-inference-verification/ability-lifecycle-inference.js.map +1 -0
  165. package/dist/src/type-inference-verification/ability-lifecycle-succeed-fail-tests.d.ts +923 -0
  166. package/dist/src/type-inference-verification/ability-lifecycle-succeed-fail-tests.d.ts.map +1 -0
  167. package/dist/src/type-inference-verification/ability-lifecycle-succeed-fail-tests.js +196 -0
  168. package/dist/src/type-inference-verification/ability-lifecycle-succeed-fail-tests.js.map +1 -0
  169. package/dist/src/type-inference-verification/allow-deny-test-cases-ability.d.ts +4305 -0
  170. package/dist/src/type-inference-verification/allow-deny-test-cases-ability.d.ts.map +1 -0
  171. package/dist/src/type-inference-verification/allow-deny-test-cases-ability.js +644 -0
  172. package/dist/src/type-inference-verification/allow-deny-test-cases-ability.js.map +1 -0
  173. package/dist/src/type-inference-verification/allow-deny-test-cases.d.ts +646 -0
  174. package/dist/src/type-inference-verification/allow-deny-test-cases.d.ts.map +1 -0
  175. package/dist/src/type-inference-verification/allow-deny-test-cases.js +264 -0
  176. package/dist/src/type-inference-verification/allow-deny-test-cases.js.map +1 -0
  177. package/dist/src/type-inference-verification/context-switching-tests.d.ts +637 -0
  178. package/dist/src/type-inference-verification/context-switching-tests.d.ts.map +1 -0
  179. package/dist/src/type-inference-verification/context-switching-tests.js +229 -0
  180. package/dist/src/type-inference-verification/context-switching-tests.js.map +1 -0
  181. package/dist/src/type-inference-verification/create-policy-map-from-tool-policies.d.ts +2 -0
  182. package/dist/src/type-inference-verification/create-policy-map-from-tool-policies.d.ts.map +1 -0
  183. package/dist/src/type-inference-verification/create-policy-map-from-tool-policies.js +56 -0
  184. package/dist/src/type-inference-verification/create-policy-map-from-tool-policies.js.map +1 -0
  185. package/dist/src/type-inference-verification/create-vincent-ability-policy.d.ts +2 -0
  186. package/dist/src/type-inference-verification/create-vincent-ability-policy.d.ts.map +1 -0
  187. package/dist/src/type-inference-verification/create-vincent-ability-policy.js +49 -0
  188. package/dist/src/type-inference-verification/create-vincent-ability-policy.js.map +1 -0
  189. package/dist/src/type-inference-verification/create-vincent-ability.d.ts +250 -0
  190. package/dist/src/type-inference-verification/create-vincent-ability.d.ts.map +1 -0
  191. package/dist/src/type-inference-verification/create-vincent-ability.js +68 -0
  192. package/dist/src/type-inference-verification/create-vincent-ability.js.map +1 -0
  193. package/dist/src/type-inference-verification/parameter-inference-tests-tool.d.ts +1710 -0
  194. package/dist/src/type-inference-verification/parameter-inference-tests-tool.d.ts.map +1 -0
  195. package/dist/src/type-inference-verification/parameter-inference-tests-tool.js +537 -0
  196. package/dist/src/type-inference-verification/parameter-inference-tests-tool.js.map +1 -0
  197. package/dist/src/type-inference-verification/parameter-inference-tests.d.ts +456 -0
  198. package/dist/src/type-inference-verification/parameter-inference-tests.d.ts.map +1 -0
  199. package/dist/src/type-inference-verification/parameter-inference-tests.js +179 -0
  200. package/dist/src/type-inference-verification/parameter-inference-tests.js.map +1 -0
  201. package/dist/src/type-inference-verification/playground.d.ts +1556 -0
  202. package/dist/src/type-inference-verification/playground.d.ts.map +1 -0
  203. package/dist/src/type-inference-verification/playground.js +473 -0
  204. package/dist/src/type-inference-verification/playground.js.map +1 -0
  205. package/dist/src/type-inference-verification/schema-test.d.ts +470 -0
  206. package/dist/src/type-inference-verification/schema-test.d.ts.map +1 -0
  207. package/dist/src/type-inference-verification/schema-test.js +252 -0
  208. package/dist/src/type-inference-verification/schema-test.js.map +1 -0
  209. package/package.json +43 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allow-deny-test-cases.d.ts","sourceRoot":"","sources":["../../../src/type-inference-verification/allow-deny-test-cases.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB;;GAEG;AACH,wBAAgB,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+IlD;AACD;;GAEG;AACH,wBAAgB,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgHjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkDlC"}
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ // src/type-inference-verification/allow-deny-test-cases.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.testAllowFunctionWithDifferentTypes = testAllowFunctionWithDifferentTypes;
5
+ exports.testDenyFunctionWithDifferentTypes = testDenyFunctionWithDifferentTypes;
6
+ exports.testCommitAllowDeny = testCommitAllowDeny;
7
+ /**
8
+ * Allow/Deny Test Cases
9
+ *
10
+ * This file contains test cases specifically for testing the allow() and deny() functions
11
+ * in different policy contexts. Each function directly calls these methods with various
12
+ * arguments to verify TypeScript correctly enforces the type constraints.
13
+ */
14
+ const zod_1 = require("zod");
15
+ const bundledPolicy_1 = require("../lib/policyCore/bundledPolicy/bundledPolicy");
16
+ const vincentPolicy_1 = require("../lib/policyCore/vincentPolicy");
17
+ // Base ability schema for all tests
18
+ const baseAbilitySchema = zod_1.z.object({
19
+ action: zod_1.z.string(),
20
+ target: zod_1.z.string(),
21
+ amount: zod_1.z.number(),
22
+ });
23
+ /**
24
+ * Test Case 1: Testing allow() with different result types
25
+ */
26
+ function testAllowFunctionWithDifferentTypes() {
27
+ // Test with object schema
28
+ const objSchema = zod_1.z.object({ id: zod_1.z.string(), success: zod_1.z.boolean() });
29
+ const allowFuncDiffTypesPolicy = (0, vincentPolicy_1.createVincentPolicy)({
30
+ packageName: '@lit-protocol/test-policy-allow@1.0.0',
31
+ abilityParamsSchema: zod_1.z.object({ actionType: zod_1.z.string() }),
32
+ evalAllowResultSchema: objSchema,
33
+ evaluate: async (params, { allow }) => {
34
+ // These calls demonstrate TypeScript errors for testing type constraints
35
+ // @ts-expect-error - No arguments when schema exists
36
+ allow();
37
+ // @ts-expect-error - Wrong type (number instead of object)
38
+ allow(123);
39
+ // @ts-expect-error - Wrong type (string instead of object)
40
+ allow('not an object');
41
+ // @ts-expect-error - Wrong shape (missing required fields)
42
+ allow({});
43
+ // @ts-expect-error - Wrong shape (extra fields)
44
+ allow({ id: 'test', success: true, extra: 'field' });
45
+ // Valid - matches schema
46
+ return allow({ id: 'test-id', success: true });
47
+ },
48
+ });
49
+ const test1 = (0, vincentPolicy_1.createVincentAbilityPolicy)({
50
+ abilityParamsSchema: baseAbilitySchema,
51
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(allowFuncDiffTypesPolicy, '19ofnsfoj908r21on'),
52
+ abilityParameterMappings: {
53
+ action: 'actionType',
54
+ },
55
+ });
56
+ // Test with string schema
57
+ const allowFuncDiffTypesStringPolicy = (0, vincentPolicy_1.createVincentPolicy)({
58
+ packageName: '@lit-protocol/test-policy-allow-string@1.0.0',
59
+ abilityParamsSchema: zod_1.z.object({ actionType: zod_1.z.string() }),
60
+ evalAllowResultSchema: zod_1.z.string(),
61
+ evaluate: async (params, { allow }) => {
62
+ // @ts-expect-error - No arguments when schema exists
63
+ allow();
64
+ // @ts-expect-error - Wrong type (number instead of string)
65
+ allow(123);
66
+ // @ts-expect-error - Wrong type (object instead of string)
67
+ allow({ some: 'object' });
68
+ // Valid - matches string schema
69
+ return allow('success');
70
+ },
71
+ });
72
+ const test2 = (0, vincentPolicy_1.createVincentAbilityPolicy)({
73
+ abilityParamsSchema: baseAbilitySchema,
74
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(allowFuncDiffTypesStringPolicy, 'asdjlkajsda'),
75
+ abilityParameterMappings: {
76
+ action: 'actionType',
77
+ },
78
+ });
79
+ // Test with number schema
80
+ const allowFuncNumberTypes = (0, vincentPolicy_1.createVincentPolicy)({
81
+ packageName: '@lit-protocol/test-policy-allow-number@1.0.0',
82
+ abilityParamsSchema: zod_1.z.object({ actionType: zod_1.z.string() }),
83
+ evalAllowResultSchema: zod_1.z.number(),
84
+ evaluate: async (params, { allow }) => {
85
+ // @ts-expect-error - No arguments when schema exists
86
+ allow();
87
+ // @ts-expect-error - Wrong type (string instead of number)
88
+ allow('not a number');
89
+ // @ts-expect-error - Wrong type (object instead of number)
90
+ allow({ value: 123 });
91
+ // Valid - matches number schema
92
+ return allow(123);
93
+ },
94
+ });
95
+ const test3 = (0, vincentPolicy_1.createVincentAbilityPolicy)({
96
+ abilityParamsSchema: baseAbilitySchema,
97
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(allowFuncNumberTypes, '0398109sfawrt2-itxzdkvj3810938123'),
98
+ abilityParameterMappings: {
99
+ action: 'actionType',
100
+ },
101
+ });
102
+ // Test with no schema
103
+ const allowFuncNoSchema = (0, vincentPolicy_1.createVincentPolicy)({
104
+ packageName: '@lit-protocol/test-policy-no-schema@1.0.0',
105
+ abilityParamsSchema: zod_1.z.object({ actionType: zod_1.z.string() }),
106
+ // No schema defined
107
+ evaluate: async (params, { allow }) => {
108
+ // Valid - no schema means no args
109
+ allow();
110
+ // @ts-expect-error - Any arg should error when no schema
111
+ allow('should error');
112
+ // @ts-expect-error - Any arg should error when no schema
113
+ allow(123);
114
+ // @ts-expect-error - Any arg should error when no schema
115
+ allow({ should: 'error' });
116
+ // Valid case to return
117
+ return allow();
118
+ },
119
+ });
120
+ return {
121
+ test1,
122
+ test2,
123
+ test3,
124
+ test4: (0, vincentPolicy_1.createVincentAbilityPolicy)({
125
+ abilityParamsSchema: baseAbilitySchema,
126
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(allowFuncNoSchema, '094821ksjf8u2nuif908j2'),
127
+ abilityParameterMappings: {
128
+ action: 'actionType',
129
+ },
130
+ }),
131
+ };
132
+ }
133
+ /**
134
+ * Test Case 2: Testing deny() with different result types
135
+ */
136
+ function testDenyFunctionWithDifferentTypes() {
137
+ // Test with object schema
138
+ const objSchema = zod_1.z.object({ code: zod_1.z.number(), message: zod_1.z.string() });
139
+ const denyFuncDifferentTypes = (0, vincentPolicy_1.createVincentPolicy)({
140
+ packageName: '@lit-protocol/test-policy-deny@1.0.0',
141
+ abilityParamsSchema: zod_1.z.object({ actionType: zod_1.z.string() }),
142
+ evalDenyResultSchema: objSchema,
143
+ evaluate: async (params, { deny }) => {
144
+ // Direct calls to deny with various arguments
145
+ // @ts-expect-error - No object when schema exists
146
+ deny('string only error');
147
+ // @ts-expect-error - Wrong type (number instead of object)
148
+ deny(123);
149
+ // @ts-expect-error - Wrong shape (missing required fields)
150
+ deny({});
151
+ // @ts-expect-error - Wrong shape (missing message field)
152
+ deny({ code: 400 });
153
+ // @ts-expect-error - Wrong shape (missing code field)
154
+ deny({ message: 'Error message' });
155
+ // Valid - matches schema, with additional error message
156
+ deny({ code: 400, message: 'Bad request' }, 'Additional context');
157
+ // Valid - matches schema, without additional error message
158
+ return deny({ code: 403, message: 'Forbidden' });
159
+ },
160
+ });
161
+ const test1 = (0, vincentPolicy_1.createVincentAbilityPolicy)({
162
+ abilityParamsSchema: baseAbilitySchema,
163
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(denyFuncDifferentTypes, '01943fnjksf9843nr'),
164
+ abilityParameterMappings: {
165
+ action: 'actionType',
166
+ },
167
+ });
168
+ // Test with string schema
169
+ const denyFuncDifferentTypesString = (0, vincentPolicy_1.createVincentPolicy)({
170
+ packageName: '@lit-protocol/test-policy-deny-string@1.0.0',
171
+ abilityParamsSchema: zod_1.z.object({ actionType: zod_1.z.string() }),
172
+ evalDenyResultSchema: zod_1.z.string(),
173
+ evaluate: async (params, { deny }) => {
174
+ // @ts-expect-error - Wrong type (number instead of string)
175
+ deny(123);
176
+ // @ts-expect-error - Wrong type (object instead of string)
177
+ deny({ some: 'object' });
178
+ // String is valid both for schema and error message
179
+ // Should not error when it's a string only
180
+ deny('This is both result and error');
181
+ // Valid with a result and additional error
182
+ return deny('Result string', 'Additional error context');
183
+ },
184
+ });
185
+ const test2 = (0, vincentPolicy_1.createVincentAbilityPolicy)({
186
+ abilityParamsSchema: baseAbilitySchema,
187
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(denyFuncDifferentTypesString, 'asdkfjofs2'),
188
+ abilityParameterMappings: {
189
+ action: 'actionType',
190
+ },
191
+ });
192
+ // Test with no schema
193
+ const denyFuncDifferentTypesNoSchema = (0, vincentPolicy_1.createVincentPolicy)({
194
+ packageName: '@lit-protocol/test-policy-deny-no-schema@1.0.0',
195
+ abilityParamsSchema: zod_1.z.object({ actionType: zod_1.z.string() }),
196
+ // No schema defined
197
+ evaluate: async (params, { deny }) => {
198
+ // @ts-expect-error Can't return a string when no schema defined
199
+ deny('Error message');
200
+ // Valid - undefined is allowed (no error message)
201
+ deny();
202
+ // @ts-expect-error - Object not allowed when no schema
203
+ deny({ code: 400 });
204
+ // @ts-expect-error - Number not allowed when no schema
205
+ deny(123);
206
+ // Good to go - returning deny with no result when no schema.
207
+ return deny();
208
+ },
209
+ });
210
+ const test3 = (0, vincentPolicy_1.createVincentAbilityPolicy)({
211
+ abilityParamsSchema: baseAbilitySchema,
212
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(denyFuncDifferentTypesNoSchema, 'oi2jsldkfjsdfijsdflkj'),
213
+ abilityParameterMappings: {
214
+ action: 'actionType',
215
+ },
216
+ });
217
+ return { test1, test2, test3 };
218
+ }
219
+ /**
220
+ * Test Case 3: Test allow/deny in commit function specifically
221
+ */
222
+ function testCommitAllowDeny() {
223
+ const testCommitAllowDenyPolicy = (0, vincentPolicy_1.createVincentPolicy)({
224
+ packageName: '@lit-protocol/test-policy-commit@1.0.0',
225
+ abilityParamsSchema: zod_1.z.object({ actionType: zod_1.z.string() }),
226
+ // Commit requires a params schema
227
+ commitParamsSchema: zod_1.z.object({ confirmationId: zod_1.z.string() }),
228
+ commitAllowResultSchema: zod_1.z.object({ txId: zod_1.z.string() }),
229
+ commitDenyResultSchema: zod_1.z.object({ errorCode: zod_1.z.number() }),
230
+ // Basic evaluate
231
+ evaluate: async (params, { allow }) => {
232
+ return allow();
233
+ },
234
+ // Test commit allow/deny
235
+ commit: async (params, { allow, deny }) => {
236
+ // Type inference for params should work
237
+ const id = params.confirmationId;
238
+ if (id.startsWith('valid')) {
239
+ // Example of what would cause a TypeScript error:
240
+ // @ts-expect-error - Wrong type
241
+ allow('not an object');
242
+ // @ts-expect-error - missing response
243
+ allow();
244
+ // Valid - matches schema
245
+ return allow({ txId: `tx-${id}` });
246
+ }
247
+ else {
248
+ // Example of what would cause a TypeScript error:
249
+ // @ts-expect-error - Wrong shape
250
+ deny({ wrong: 'shape' });
251
+ // Valid - matches schema
252
+ return deny({ errorCode: 500 }, 'Invalid confirmation ID');
253
+ }
254
+ },
255
+ });
256
+ return (0, vincentPolicy_1.createVincentAbilityPolicy)({
257
+ abilityParamsSchema: baseAbilitySchema,
258
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(testCommitAllowDenyPolicy, 'owijfiuhwf98234j'),
259
+ abilityParameterMappings: {
260
+ action: 'actionType',
261
+ },
262
+ });
263
+ }
264
+ //# sourceMappingURL=allow-deny-test-cases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allow-deny-test-cases.js","sourceRoot":"","sources":["../../../src/type-inference-verification/allow-deny-test-cases.ts"],"names":[],"mappings":"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"}