@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":"parameter-inference-tests-tool.d.ts","sourceRoot":"","sources":["../../../src/type-inference-verification/parameter-inference-tests-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,537 @@
1
+ "use strict";
2
+ // src/type-inference-verification/parameter-inference-tests-ability.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.testBasicParameterInference = testBasicParameterInference;
5
+ exports.testPolicyResultInference = testPolicyResultInference;
6
+ exports.testComplexDestructuring = testComplexDestructuring;
7
+ exports.testAdvancedParameterValidation = testAdvancedParameterValidation;
8
+ exports.testMissingTypes = testMissingTypes;
9
+ /**
10
+ * Ability Parameter Type Inference Testing
11
+ *
12
+ * This file tests the TypeScript type inference for ability parameters,
13
+ * policy results, and context manipulation.
14
+ */
15
+ const zod_1 = require("zod");
16
+ const helpers_1 = require("../lib/abilityCore/helpers");
17
+ const vincentAbility_1 = require("../lib/abilityCore/vincentAbility");
18
+ const bundledPolicy_1 = require("../lib/policyCore/bundledPolicy/bundledPolicy");
19
+ const vincentPolicy_1 = require("../lib/policyCore/vincentPolicy");
20
+ // Define a schema for our test cases
21
+ const testSchema = zod_1.z.object({
22
+ action: zod_1.z.string(),
23
+ target: zod_1.z.string(),
24
+ options: zod_1.z
25
+ .object({
26
+ priority: zod_1.z.number().optional(),
27
+ dryRun: zod_1.z.boolean().optional(),
28
+ })
29
+ .optional(),
30
+ });
31
+ /* eslint-disable @typescript-eslint/no-unused-vars */
32
+ /**
33
+ * Test Case 1: Basic parameter type inference
34
+ */
35
+ function testBasicParameterInference() {
36
+ // Create a simple policy for testing
37
+ const basicParamInferPolicy = (0, vincentPolicy_1.createVincentPolicy)({
38
+ packageName: '@lit-protocol/test-policy@1.0.0',
39
+ abilityParamsSchema: zod_1.z.object({
40
+ operation: zod_1.z.string(),
41
+ }),
42
+ evalAllowResultSchema: zod_1.z.object({
43
+ allowed: zod_1.z.boolean(),
44
+ }),
45
+ evaluate: async (_, { allow }) => {
46
+ return allow({ allowed: true });
47
+ },
48
+ });
49
+ const testPolicy = (0, vincentPolicy_1.createVincentAbilityPolicy)({
50
+ abilityParamsSchema: testSchema,
51
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(basicParamInferPolicy, '209oifusfdj'),
52
+ abilityParameterMappings: {
53
+ action: 'operation',
54
+ },
55
+ });
56
+ return (0, vincentAbility_1.createVincentAbility)({
57
+ packageName: '@lit-protocol/yesability3@1.0.0',
58
+ abilityDescription: 'Yes Ability',
59
+ abilityParamsSchema: testSchema,
60
+ supportedPolicies: (0, helpers_1.supportedPoliciesForAbility)([testPolicy]),
61
+ precheck: async ({ abilityParams }, { succeed }) => {
62
+ // Params should have the correct types
63
+ const { action, target, options } = abilityParams;
64
+ // String operations should work on string fields
65
+ action.toUpperCase();
66
+ target.toLowerCase();
67
+ // @ts-expect-error - Using number methods on string
68
+ action.toFixed(2);
69
+ // Optional field access should work
70
+ if (options) {
71
+ const { priority, dryRun } = options;
72
+ // Number operations should work if present
73
+ if (priority !== undefined) {
74
+ priority.toFixed(2);
75
+ // @ts-expect-error - Using string methods on number
76
+ priority.toUpperCase();
77
+ }
78
+ // Boolean operations should work if present
79
+ if (dryRun !== undefined) {
80
+ const isDry = dryRun === true;
81
+ console.log(isDry);
82
+ // @ts-expect-error - Using string methods on boolean
83
+ dryRun.toUpperCase();
84
+ }
85
+ }
86
+ return succeed();
87
+ },
88
+ execute: async ({ abilityParams }, { succeed }) => {
89
+ // Same parameter validation in execute
90
+ const { action, target, options } = abilityParams;
91
+ console.log(target);
92
+ // String operations should work
93
+ action.toUpperCase();
94
+ // @ts-expect-error - Using array methods on string
95
+ action.push('new');
96
+ // Optional fields with correct types
97
+ if (options?.priority) {
98
+ options.priority.toFixed(2);
99
+ }
100
+ return succeed();
101
+ },
102
+ });
103
+ }
104
+ /**
105
+ * Test Case 2: Policy result type inference
106
+ */
107
+ function testPolicyResultInference() {
108
+ // Create a policy with complex result type
109
+ const resultInferPolicy = (0, vincentPolicy_1.createVincentPolicy)({
110
+ packageName: '@lit-protocol/complex-policy@1.0.0',
111
+ abilityParamsSchema: zod_1.z.object({
112
+ command: zod_1.z.string(),
113
+ }),
114
+ evalAllowResultSchema: zod_1.z.object({
115
+ level: zod_1.z.enum(['low', 'medium', 'high']),
116
+ metadata: zod_1.z.object({
117
+ timestamp: zod_1.z.number(),
118
+ signature: zod_1.z.string(),
119
+ }),
120
+ flags: zod_1.z.array(zod_1.z.string()),
121
+ }),
122
+ evaluate: async (params, { allow }) => {
123
+ return allow({
124
+ level: 'medium',
125
+ metadata: {
126
+ timestamp: Date.now(),
127
+ signature: 'sig123',
128
+ },
129
+ flags: ['verbose', 'secure'],
130
+ });
131
+ },
132
+ });
133
+ const complexPolicy = (0, vincentPolicy_1.createVincentAbilityPolicy)({
134
+ abilityParamsSchema: testSchema,
135
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(resultInferPolicy, '-0932i0fjs0jfd'),
136
+ abilityParameterMappings: {
137
+ action: 'command',
138
+ },
139
+ });
140
+ // Create policy with commit function
141
+ const commitResultPolicy = (0, vincentPolicy_1.createVincentPolicy)({
142
+ packageName: '@lit-protocol/commit-policy@1.0.0',
143
+ abilityParamsSchema: zod_1.z.object({
144
+ resource: zod_1.z.string(),
145
+ }),
146
+ evalAllowResultSchema: zod_1.z.object({
147
+ transactionId: zod_1.z.string(),
148
+ }),
149
+ commitParamsSchema: zod_1.z.object({
150
+ transactionId: zod_1.z.string(),
151
+ status: zod_1.z.enum(['complete', 'abort']),
152
+ }),
153
+ commitAllowResultSchema: zod_1.z.object({
154
+ success: zod_1.z.boolean(),
155
+ timestamp: zod_1.z.number(),
156
+ }),
157
+ evaluate: async (params, { allow }) => {
158
+ return allow({
159
+ transactionId: 'tx123',
160
+ });
161
+ },
162
+ commit: async (params, { allow }) => {
163
+ return allow({
164
+ success: params.status === 'complete',
165
+ timestamp: Date.now(),
166
+ });
167
+ },
168
+ });
169
+ const commitPolicy = (0, vincentPolicy_1.createVincentAbilityPolicy)({
170
+ abilityParamsSchema: testSchema,
171
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(commitResultPolicy, '1098u2098qjfn'),
172
+ abilityParameterMappings: {
173
+ target: 'resource',
174
+ },
175
+ });
176
+ return (0, vincentAbility_1.createVincentAbility)({
177
+ packageName: '@lit-protocol/abilityPlusPlus@1.0.0',
178
+ abilityDescription: 'Plus Plus Ability',
179
+ abilityParamsSchema: testSchema,
180
+ supportedPolicies: (0, helpers_1.supportedPoliciesForAbility)([complexPolicy, commitPolicy]),
181
+ precheck: async (params, { policiesContext, succeed }) => {
182
+ // Testing allow/deny branch type inference
183
+ if (policiesContext.allow) {
184
+ // When allowed, policy results should be accessible
185
+ if (policiesContext.allowedPolicies['@lit-protocol/complex-policy@1.0.0']) {
186
+ const { level, metadata, flags } = policiesContext.allowedPolicies['@lit-protocol/complex-policy@1.0.0'].result;
187
+ // Enum type should be correctly inferred
188
+ switch (level) {
189
+ case 'low':
190
+ case 'medium':
191
+ case 'high':
192
+ break;
193
+ // @ts-expect-error - Invalid enum value
194
+ case 'invalid':
195
+ break;
196
+ }
197
+ // Nested objects should be correctly typed
198
+ const { timestamp, signature } = metadata;
199
+ timestamp.toFixed(0);
200
+ signature.toUpperCase();
201
+ // @ts-expect-error - Using wrong method type
202
+ timestamp.toUpperCase();
203
+ // Arrays should be correctly typed
204
+ flags.forEach((flag) => {
205
+ flag.toUpperCase();
206
+ });
207
+ // @ts-expect-error - flags is string[], not number[]
208
+ flags.map((flag) => flag.toFixed(2));
209
+ }
210
+ // @ts-expect-error - denyPolicyResult shouldn't exist when allowed
211
+ const denyResult = policiesContext.deniedPolicy;
212
+ }
213
+ else {
214
+ // When denied, denyPolicyResult should exist
215
+ const { packageName, result } = policiesContext.deniedPolicy;
216
+ console.log(packageName, result);
217
+ }
218
+ return succeed();
219
+ },
220
+ execute: async (params, { policiesContext, succeed }) => {
221
+ // Testing commit function type inference
222
+ if (policiesContext.allowedPolicies['@lit-protocol/commit-policy@1.0.0']) {
223
+ const { transactionId } = policiesContext.allowedPolicies['@lit-protocol/commit-policy@1.0.0'].result;
224
+ // Commit function should be correctly typed
225
+ const commitFn = policiesContext.allowedPolicies['@lit-protocol/commit-policy@1.0.0']?.commit;
226
+ // Valid commit parameters
227
+ const commitResult = await commitFn({
228
+ transactionId,
229
+ status: 'complete',
230
+ });
231
+ await commitFn({
232
+ transactionId,
233
+ // @ts-expect-error - Invalid enum value
234
+ status: 'invalid',
235
+ });
236
+ // @ts-expect-error - Missing required parameter
237
+ await commitFn({
238
+ transactionId,
239
+ });
240
+ // Result type checking
241
+ if (commitResult.allow) {
242
+ const { success, timestamp } = commitResult.result;
243
+ // Boolean operations
244
+ const isSuccess = success === true;
245
+ console.log(isSuccess);
246
+ // Number operations
247
+ timestamp.toFixed(0);
248
+ // @ts-expect-error - Using wrong method
249
+ success.toFixed(0);
250
+ }
251
+ }
252
+ return succeed();
253
+ },
254
+ });
255
+ }
256
+ /**
257
+ * Test Case 3: Complex destructuring and inference
258
+ */
259
+ function testComplexDestructuring() {
260
+ // Create a simple policy
261
+ const complexDestructurePolicy = (0, vincentPolicy_1.createVincentPolicy)({
262
+ packageName: '@lit-protocol/test-policy@1.0.0',
263
+ abilityParamsSchema: zod_1.z.object({
264
+ action: zod_1.z.string(),
265
+ }),
266
+ evalAllowResultSchema: zod_1.z.object({
267
+ data: zod_1.z.any(),
268
+ }),
269
+ evaluate: async (params, { allow }) => {
270
+ return allow({ data: {} });
271
+ },
272
+ });
273
+ const testPolicy = (0, vincentPolicy_1.createVincentAbilityPolicy)({
274
+ abilityParamsSchema: testSchema,
275
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(complexDestructurePolicy, '1-093iofijn209j'),
276
+ abilityParameterMappings: {
277
+ action: 'action',
278
+ },
279
+ });
280
+ // Define success and failure schemas
281
+ const successSchema = zod_1.z.object({
282
+ result: zod_1.z.union([zod_1.z.string(), zod_1.z.number(), zod_1.z.boolean(), zod_1.z.array(zod_1.z.string())]),
283
+ metadata: zod_1.z.record(zod_1.z.string()),
284
+ });
285
+ const failSchema = zod_1.z.object({
286
+ error: zod_1.z.object({
287
+ code: zod_1.z.number(),
288
+ message: zod_1.z.string(),
289
+ }),
290
+ });
291
+ return (0, vincentAbility_1.createVincentAbility)({
292
+ packageName: '@lit-protocol/abilityPlus@1.0.0',
293
+ abilityDescription: 'Plus Ability',
294
+ abilityParamsSchema: testSchema,
295
+ supportedPolicies: (0, helpers_1.supportedPoliciesForAbility)([testPolicy]),
296
+ executeSuccessSchema: successSchema,
297
+ executeFailSchema: failSchema,
298
+ precheck: async (params, { succeed }) => {
299
+ return succeed();
300
+ },
301
+ execute: async (params, { succeed, fail }) => {
302
+ // Validate that types are preserved through destructuring
303
+ // Check complex union type handling
304
+ succeed({
305
+ // String is valid in the union
306
+ result: 'string result',
307
+ metadata: { source: 'test' },
308
+ });
309
+ succeed({
310
+ // Number is valid in the union
311
+ result: 123,
312
+ metadata: { source: 'test' },
313
+ });
314
+ succeed({
315
+ // Array of strings is valid in the union
316
+ result: ['one', 'two', 'three'],
317
+ metadata: { source: 'test' },
318
+ });
319
+ succeed({
320
+ // @ts-expect-error - Object is not in the union
321
+ result: { key: 'value' },
322
+ metadata: { source: 'test' },
323
+ });
324
+ succeed({
325
+ // @ts-expect-error - Array of numbers is not in the union
326
+ result: [1, 2, 3],
327
+ metadata: { source: 'test' },
328
+ });
329
+ // Test complex nested object validation
330
+ fail({
331
+ error: {
332
+ code: 500,
333
+ message: 'Internal error',
334
+ },
335
+ });
336
+ fail({
337
+ error: {
338
+ code: 400,
339
+ message: 'Bad request',
340
+ },
341
+ });
342
+ fail({
343
+ error: {
344
+ // @ts-expect-error - Wrong type for code
345
+ code: '400', // Should be number
346
+ message: 'Bad request',
347
+ },
348
+ });
349
+ fail({
350
+ // @ts-expect-error - Missing required message
351
+ error: {
352
+ code: 400,
353
+ },
354
+ });
355
+ return succeed({
356
+ result: 'final result',
357
+ metadata: { status: 'complete' },
358
+ });
359
+ },
360
+ });
361
+ }
362
+ /**
363
+ * Test Case 4: Advanced parameter validation
364
+ */
365
+ function testAdvancedParameterValidation() {
366
+ // Create a schema with complex types
367
+ const advancedSchema = zod_1.z.object({
368
+ action: zod_1.z.enum(['create', 'read', 'update', 'delete']),
369
+ target: zod_1.z.string().regex(/^[a-z0-9-]+$/),
370
+ data: zod_1.z
371
+ .union([
372
+ zod_1.z.object({ type: zod_1.z.literal('string'), value: zod_1.z.string() }),
373
+ zod_1.z.object({ type: zod_1.z.literal('number'), value: zod_1.z.number() }),
374
+ zod_1.z.object({ type: zod_1.z.literal('boolean'), value: zod_1.z.boolean() }),
375
+ ])
376
+ .optional(),
377
+ metadata: zod_1.z.record(zod_1.z.string()).optional(),
378
+ });
379
+ // Create a policy
380
+ const advancedParamPolicy = (0, vincentPolicy_1.createVincentPolicy)({
381
+ packageName: '@lit-protocol/test-policy@1.0.0',
382
+ abilityParamsSchema: zod_1.z.object({
383
+ op: zod_1.z.string(),
384
+ }),
385
+ evalAllowResultSchema: zod_1.z.boolean(),
386
+ evaluate: async (params, { allow }) => {
387
+ return allow(true);
388
+ },
389
+ });
390
+ const testPolicy = (0, vincentPolicy_1.createVincentAbilityPolicy)({
391
+ abilityParamsSchema: advancedSchema,
392
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(advancedParamPolicy, '1-093iofijn209j'),
393
+ abilityParameterMappings: {
394
+ action: 'op',
395
+ },
396
+ });
397
+ return (0, vincentAbility_1.createVincentAbility)({
398
+ packageName: '@lit-protocol/plusplusability@1.0.0',
399
+ abilityDescription: 'Plus Plus Ability',
400
+ abilityParamsSchema: advancedSchema,
401
+ supportedPolicies: (0, helpers_1.supportedPoliciesForAbility)([testPolicy]),
402
+ precheck: async ({ abilityParams }, { succeed }) => {
403
+ // Test enum type inference
404
+ const { action } = abilityParams;
405
+ // Valid enum values should be allowed
406
+ switch (action) {
407
+ case 'create':
408
+ case 'read':
409
+ case 'update':
410
+ case 'delete':
411
+ break;
412
+ // @ts-expect-error - Invalid enum value
413
+ case 'invalid':
414
+ break;
415
+ }
416
+ // Test discriminated union type inference
417
+ if (abilityParams.data) {
418
+ // TypeScript should narrow based on the 'type' field
419
+ switch (abilityParams.data.type) {
420
+ case 'string':
421
+ // Value should be a string when type is 'string'
422
+ abilityParams.data.value.toUpperCase();
423
+ // @ts-expect-error - Not a number operation
424
+ abilityParams.data.value.toFixed(2);
425
+ break;
426
+ case 'number':
427
+ // Value should be a number when type is 'number'
428
+ abilityParams.data.value.toFixed(2);
429
+ // @ts-expect-error - Not a string operation
430
+ abilityParams.data.value.toUpperCase();
431
+ break;
432
+ case 'boolean': {
433
+ // Value should be a boolean when type is 'boolean'
434
+ const isTrue = abilityParams.data.value === true;
435
+ console.log(isTrue);
436
+ // @ts-expect-error - Not a string operation
437
+ params.data.value.toUpperCase();
438
+ break;
439
+ }
440
+ }
441
+ }
442
+ return succeed();
443
+ },
444
+ execute: async ({ abilityParams }, { succeed }) => {
445
+ // Further test discriminated union handling
446
+ if (abilityParams.data) {
447
+ const { type, value } = abilityParams.data;
448
+ if (type === 'string') {
449
+ // String operations
450
+ value.includes('test');
451
+ }
452
+ else if (type === 'number') {
453
+ // Number operations
454
+ value.toFixed(2);
455
+ // @ts-expect-error - Not available on number
456
+ value.includes('test');
457
+ }
458
+ else if (type === 'boolean') {
459
+ // Boolean operations
460
+ const isFalse = !value;
461
+ console.log(isFalse);
462
+ // @ts-expect-error - Not available on boolean
463
+ value.toFixed(2);
464
+ }
465
+ }
466
+ return succeed();
467
+ },
468
+ });
469
+ }
470
+ /**
471
+ * Test Case 5: Validating missing types cause errors
472
+ */
473
+ function testMissingTypes() {
474
+ // Create a policy
475
+ const missingTypesPolicy = (0, vincentPolicy_1.createVincentPolicy)({
476
+ packageName: '@lit-protocol/test-policy@1.0.0',
477
+ abilityParamsSchema: zod_1.z.object({ op: zod_1.z.string() }),
478
+ evalAllowResultSchema: zod_1.z.object({ data: zod_1.z.string() }),
479
+ evaluate: async (_, { allow }) => {
480
+ return allow({ data: 'test' });
481
+ },
482
+ });
483
+ const testPolicy = (0, vincentPolicy_1.createVincentAbilityPolicy)({
484
+ abilityParamsSchema: testSchema,
485
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(missingTypesPolicy, '20198jfgnfj'),
486
+ abilityParameterMappings: { action: 'op' },
487
+ });
488
+ // Define result schema
489
+ const successSchema = zod_1.z.object({
490
+ result: zod_1.z.string(),
491
+ });
492
+ // Case where success schema is defined but fail schema is not
493
+ const abilityWithOnlySuccessSchema = (0, vincentAbility_1.createVincentAbility)({
494
+ packageName: '@lit-protocol/abilityofglory@1.0.0',
495
+ abilityDescription: 'Glory Ability',
496
+ abilityParamsSchema: testSchema,
497
+ supportedPolicies: (0, helpers_1.supportedPoliciesForAbility)([testPolicy]),
498
+ executeSuccessSchema: successSchema,
499
+ precheck: async (_, { succeed }) => {
500
+ return succeed();
501
+ },
502
+ execute: async (_, { succeed, fail }) => {
503
+ // Should be able to succeed with schema
504
+ succeed({ result: 'test' });
505
+ // @ts-expect-error Can't return a string when no schema defined
506
+ fail('Error message');
507
+ // @ts-expect-error - Can't fail with an object when no fail schema defined
508
+ fail({ error: 'message' });
509
+ return succeed({ result: 'final' });
510
+ },
511
+ });
512
+ // Case with failSchema but no successSchema
513
+ const failSchema = zod_1.z.object({
514
+ error: zod_1.z.string(),
515
+ });
516
+ const abilityWithOnlyFailSchema = (0, vincentAbility_1.createVincentAbility)({
517
+ packageName: '@lit-protocol/lets-ability-this@1.0.0',
518
+ abilityDescription: "Let's Ability This",
519
+ abilityParamsSchema: testSchema,
520
+ supportedPolicies: (0, helpers_1.supportedPoliciesForAbility)([testPolicy]),
521
+ executeFailSchema: failSchema,
522
+ precheck: async (params, { succeed }) => {
523
+ return succeed();
524
+ },
525
+ execute: async (params, { succeed, fail }) => {
526
+ // Should be able to succeed with no args since no success schema
527
+ succeed();
528
+ // Should be able to fail with schema
529
+ fail({ error: 'test error' });
530
+ // @ts-expect-error - Can't succeed with an object when no success schema defined
531
+ succeed({ result: 'success' });
532
+ return succeed();
533
+ },
534
+ });
535
+ return { abilityWithOnlySuccessSchema, abilityWithOnlyFailSchema };
536
+ }
537
+ //# sourceMappingURL=parameter-inference-tests-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameter-inference-tests-tool.js","sourceRoot":"","sources":["../../../src/type-inference-verification/parameter-inference-tests-tool.ts"],"names":[],"mappings":"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"}