@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,252 @@
1
+ "use strict";
2
+ // src/type-inference-verification/schema-test.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.testRealPolicy = void 0;
5
+ exports.testContextSignature = testContextSignature;
6
+ exports.testWithoutSchema = testWithoutSchema;
7
+ exports.testStringSchema = testStringSchema;
8
+ exports.testDifferentContexts = testDifferentContexts;
9
+ exports.testPrimitiveSchemas = testPrimitiveSchemas;
10
+ const zod_1 = require("zod");
11
+ const bundledPolicy_1 = require("../lib/policyCore/bundledPolicy/bundledPolicy");
12
+ const vincentPolicy_1 = require("../lib/policyCore/vincentPolicy");
13
+ // Base ability schema for all tests
14
+ const baseAbilitySchema = zod_1.z.object({
15
+ action: zod_1.z.string(),
16
+ target: zod_1.z.string(),
17
+ amount: zod_1.z.number(),
18
+ });
19
+ /**
20
+ * Test 1: With Schema
21
+ *
22
+ * This test verifies that TypeScript properly enforces schema constraints
23
+ * when schemas are provided.
24
+ */
25
+ const objSchema = zod_1.z.object({ id: zod_1.z.string() });
26
+ // Function signature to test types on a PolicyContext
27
+ function testContextSignature(context) {
28
+ // @ts-expect-error Should error - no args with schema
29
+ context.allow();
30
+ // @ts-expect-error Should error - wrong type
31
+ context.allow('not an object');
32
+ // @ts-expect-error Should error - wrong shape
33
+ context.allow({ notId: 'wrong property' });
34
+ // Valid - matches schema
35
+ return context.allow({ id: 'valid-id' });
36
+ }
37
+ // Test in a real policy
38
+ const realPolicy = (0, vincentPolicy_1.createVincentPolicy)({
39
+ packageName: '@lit-protocol/schema-test-policy@1.0.0',
40
+ abilityParamsSchema: zod_1.z.object({ actionType: zod_1.z.string() }),
41
+ evalAllowResultSchema: objSchema,
42
+ evaluate: async (params, { allow }) => {
43
+ // These cause TypeScript errors:
44
+ // @ts-expect-error - No args when schema exists
45
+ allow();
46
+ // @ts-expect-error - Wrong type
47
+ allow(123);
48
+ // @ts-expect-error - Wrong shape
49
+ allow({ wrong: 'field' });
50
+ // Valid case:
51
+ return allow({ id: 'test-id' });
52
+ },
53
+ });
54
+ exports.testRealPolicy = (0, vincentPolicy_1.createVincentAbilityPolicy)({
55
+ abilityParamsSchema: baseAbilitySchema,
56
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(realPolicy, '1091jkfn2039j802jf'),
57
+ abilityParameterMappings: {
58
+ action: 'actionType',
59
+ },
60
+ });
61
+ /**
62
+ * Test 2: Without Schema
63
+ *
64
+ * This test verifies that TypeScript properly enforces constraints
65
+ * when no schemas are provided (no args for allow, string or no args for deny).
66
+ */
67
+ function testWithoutSchema() {
68
+ // Function signature to test types on a PolicyContext
69
+ function testContextSignature(context) {
70
+ // @ts-expect-error Should error - no schema means no args allowed
71
+ context.allow('no schema');
72
+ // @ts-expect-error Should error - no schema means no args allowed
73
+ context.allow({ no: 'schema' });
74
+ // @ts-expect-error Can't return a string when no schema defined
75
+ context.deny('Error message');
76
+ // Valid - no args is allowed
77
+ return context.deny();
78
+ }
79
+ testContextSignature.touch = true; // Avoid 'function is never referenced ts error breaking our inference test
80
+ // Test in a real policy
81
+ const thePolicy = (0, vincentPolicy_1.createVincentPolicy)({
82
+ packageName: '@lit-protocol/schema-test-policy@1.0.0',
83
+ abilityParamsSchema: zod_1.z.object({ actionType: zod_1.z.string() }),
84
+ // No schemas defined
85
+ evaluate: async (params, { allow, deny }) => {
86
+ // These cause TypeScript errors:
87
+ // @ts-expect-error - Cannot accept arguments when no schema
88
+ allow('not allowed');
89
+ // @ts-expect-error - Cannot accept arguments when no schema
90
+ allow(123);
91
+ // @ts-expect-error - Cannot accept object when no schema
92
+ allow({ not: 'allowed' });
93
+ // @ts-expect-error - Object not allowed for deny without schema
94
+ deny({ not: 'allowed' });
95
+ // Valid cases - only one will be returned
96
+ if (Math.random() > 0.5) {
97
+ return allow();
98
+ }
99
+ else {
100
+ // @ts-expect-error Can't return a string when no schema defined
101
+ return deny('Error message');
102
+ }
103
+ },
104
+ });
105
+ return (0, vincentPolicy_1.createVincentAbilityPolicy)({
106
+ abilityParamsSchema: baseAbilitySchema,
107
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(thePolicy, '1091jkfn2039j802jf'),
108
+ abilityParameterMappings: {
109
+ action: 'actionType',
110
+ },
111
+ });
112
+ }
113
+ /**
114
+ * Test 3: String Schema
115
+ *
116
+ * This test verifies handling of string schemas, which are a special case.
117
+ */
118
+ function testStringSchema() {
119
+ // Test in a real policy
120
+ const stringSchemaPolicy = (0, vincentPolicy_1.createVincentPolicy)({
121
+ packageName: '@lit-protocol/schema-test-policy@1.0.0',
122
+ abilityParamsSchema: zod_1.z.object({ actionType: zod_1.z.string() }),
123
+ evalAllowResultSchema: zod_1.z.string(),
124
+ evalDenyResultSchema: zod_1.z.string(),
125
+ evaluate: async (params, { allow, deny }) => {
126
+ // These cause TypeScript errors:
127
+ // @ts-expect-error - No args when schema exists
128
+ allow();
129
+ // @ts-expect-error - Wrong type (number not string)
130
+ allow(123);
131
+ // @ts-expect-error - Wrong type (object not string)
132
+ allow({ not: 'a string' });
133
+ // @ts-expect-error - No args when schema exists
134
+ deny();
135
+ // @ts-expect-error - Wrong type (object not string)
136
+ deny({ not: 'a string' });
137
+ // Valid cases - only one will be returned
138
+ if (Math.random() > 0.5) {
139
+ return allow('Success message');
140
+ }
141
+ else {
142
+ return deny('Error message');
143
+ }
144
+ },
145
+ });
146
+ return (0, vincentPolicy_1.createVincentAbilityPolicy)({
147
+ abilityParamsSchema: baseAbilitySchema,
148
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(stringSchemaPolicy, '1091jkfn2039j802jf'),
149
+ abilityParameterMappings: {
150
+ action: 'actionType',
151
+ },
152
+ });
153
+ }
154
+ /**
155
+ * Test 4: Different Contexts
156
+ *
157
+ * This test verifies that different schemas are enforced correctly
158
+ * in different contexts (precheck, evaluate, commit).
159
+ */
160
+ function testDifferentContexts() {
161
+ // Different schemas for different contexts
162
+ const precheckSchema = zod_1.z.object({ validCheck: zod_1.z.boolean() });
163
+ const evalSchema = zod_1.z.object({ status: zod_1.z.string() });
164
+ const commitSchema = zod_1.z.object({ txId: zod_1.z.string() });
165
+ const differentContextsPolicy = (0, vincentPolicy_1.createVincentPolicy)({
166
+ packageName: '@lit-protocol/schema-test-policy@1.0.0',
167
+ abilityParamsSchema: zod_1.z.object({ actionType: zod_1.z.string() }),
168
+ // Define different schemas for different contexts
169
+ precheckAllowResultSchema: precheckSchema,
170
+ evalAllowResultSchema: evalSchema,
171
+ commitParamsSchema: zod_1.z.object({ confirmation: zod_1.z.string() }),
172
+ commitAllowResultSchema: commitSchema,
173
+ precheck: async (params, { allow }) => {
174
+ // These cause TypeScript errors:
175
+ // @ts-expect-error - Wrong schema (using evaluate schema)
176
+ allow({ status: 'wrong context' });
177
+ // @ts-expect-error - Wrong schema (using commit schema)
178
+ allow({ txId: 'wrong context' });
179
+ // Valid for precheck
180
+ return allow({ validCheck: true });
181
+ },
182
+ evaluate: async (params, { allow }) => {
183
+ // These cause TypeScript errors:
184
+ // @ts-expect-error - Wrong schema (using precheck schema)
185
+ allow({ validCheck: true });
186
+ // @ts-expect-error - Wrong schema (using commit schema)
187
+ allow({ txId: 'wrong context' });
188
+ // Valid for evaluate
189
+ return allow({ status: 'approved' });
190
+ },
191
+ commit: async (params, { allow }) => {
192
+ // Should have the right parameter type
193
+ const confirmation = params.confirmation;
194
+ // These cause TypeScript errors:
195
+ // @ts-expect-error - Wrong schema (using precheck schema)
196
+ allow({ validCheck: true });
197
+ // @ts-expect-error - Wrong schema (using evaluate schema)
198
+ allow({ status: 'wrong context' });
199
+ // Valid for commit
200
+ return allow({ txId: `tx-${confirmation}` });
201
+ },
202
+ });
203
+ return (0, vincentPolicy_1.createVincentAbilityPolicy)({
204
+ abilityParamsSchema: baseAbilitySchema,
205
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(differentContextsPolicy, '1091jkfn2039j802jf'),
206
+ abilityParameterMappings: {
207
+ action: 'actionType',
208
+ },
209
+ });
210
+ }
211
+ /**
212
+ * Test 5: Number and Boolean Schemas
213
+ *
214
+ * This test verifies that number and boolean schemas work correctly.
215
+ */
216
+ function testPrimitiveSchemas() {
217
+ // Test in a real policy
218
+ const primitivePolicy = (0, vincentPolicy_1.createVincentPolicy)({
219
+ packageName: '@lit-protocol/schema-test-policy@1.0.0',
220
+ abilityParamsSchema: zod_1.z.object({ actionType: zod_1.z.string() }),
221
+ evalAllowResultSchema: zod_1.z.number(),
222
+ evalDenyResultSchema: zod_1.z.boolean(),
223
+ evaluate: async (params, { allow, deny }) => {
224
+ // These cause TypeScript errors:
225
+ // @ts-expect-error - No args when schema exists
226
+ allow();
227
+ // @ts-expect-error - Wrong type (string not number)
228
+ allow('not a number');
229
+ // @ts-expect-error - Wrong type (object not number)
230
+ allow({ value: 123 });
231
+ // @ts-expect-error - No args when schema exists (except string error)
232
+ deny();
233
+ // @ts-expect-error - Wrong type (number not boolean)
234
+ deny(123);
235
+ // Valid cases - only one will be executed
236
+ if (Math.random() > 0.5) {
237
+ return allow(123);
238
+ }
239
+ else {
240
+ return deny(false, 'Operation failed');
241
+ }
242
+ },
243
+ });
244
+ return (0, vincentPolicy_1.createVincentAbilityPolicy)({
245
+ abilityParamsSchema: baseAbilitySchema,
246
+ bundledVincentPolicy: (0, bundledPolicy_1.asBundledVincentPolicy)(primitivePolicy, '1091jkfn2039j802jf'),
247
+ abilityParameterMappings: {
248
+ action: 'actionType',
249
+ },
250
+ });
251
+ }
252
+ //# sourceMappingURL=schema-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-test.js","sourceRoot":"","sources":["../../../src/type-inference-verification/schema-test.ts"],"names":[],"mappings":";AAAA,iDAAiD;;;AAkCjD,oDAYC;AAqCD,8CAsDC;AAOD,4CAwCC;AAQD,sDAmEC;AAOD,oDAwCC;AAvSD,6BAAwB;AAIxB,iFAAuF;AACvF,mEAAkG;AAElG,oCAAoC;AACpC,MAAM,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,SAAS,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAE/C,sDAAsD;AACtD,SAAgB,oBAAoB,CAAC,OAAsD;IACzF,sDAAsD;IACtD,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,6CAA6C;IAC7C,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAE/B,8CAA8C;IAC9C,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAE3C,yBAAyB;IACzB,OAAO,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,wBAAwB;AACxB,MAAM,UAAU,GAAG,IAAA,mCAAmB,EAAC;IACrC,WAAW,EAAE,wCAAwC;IACrD,mBAAmB,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACzD,qBAAqB,EAAE,SAAS;IAEhC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACpC,iCAAiC;QACjC,gDAAgD;QAChD,KAAK,EAAE,CAAC;QAER,gCAAgC;QAChC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEX,iCAAiC;QACjC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAE1B,cAAc;QACd,OAAO,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,CAAC;CACF,CAAC,CAAC;AACU,QAAA,cAAc,GAAG,IAAA,0CAA0B,EAAC;IACvD,mBAAmB,EAAE,iBAAiB;IACtC,oBAAoB,EAAE,IAAA,sCAAsB,EAAC,UAAU,EAAE,oBAA6B,CAAC;IACvF,wBAAwB,EAAE;QACxB,MAAM,EAAE,YAAY;KACrB;CACF,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAgB,iBAAiB;IAC/B,sDAAsD;IACtD,SAAS,oBAAoB,CAAC,OAAkD;QAC9E,kEAAkE;QAClE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE3B,kEAAkE;QAClE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEhC,gEAAgE;QAChE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE9B,6BAA6B;QAC7B,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IACD,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,2EAA2E;IAE9G,wBAAwB;IACxB,MAAM,SAAS,GAAG,IAAA,mCAAmB,EAAC;QACpC,WAAW,EAAE,wCAAwC;QACrD,mBAAmB,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QAEzD,qBAAqB;QAErB,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YAC1C,iCAAiC;YACjC,4DAA4D;YAC5D,KAAK,CAAC,aAAa,CAAC,CAAC;YAErB,4DAA4D;YAC5D,KAAK,CAAC,GAAG,CAAC,CAAC;YAEX,yDAAyD;YACzD,KAAK,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YAE1B,gEAAgE;YAChE,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YAEzB,0CAA0C;YAC1C,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;gBACxB,OAAO,KAAK,EAAE,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,gEAAgE;gBAChE,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IACH,OAAO,IAAA,0CAA0B,EAAC;QAChC,mBAAmB,EAAE,iBAAiB;QACtC,oBAAoB,EAAE,IAAA,sCAAsB,EAAC,SAAS,EAAE,oBAA6B,CAAC;QACtF,wBAAwB,EAAE;YACxB,MAAM,EAAE,YAAY;SACrB;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB;IAC9B,wBAAwB;IACxB,MAAM,kBAAkB,GAAG,IAAA,mCAAmB,EAAC;QAC7C,WAAW,EAAE,wCAAwC;QACrD,mBAAmB,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACzD,qBAAqB,EAAE,OAAC,CAAC,MAAM,EAAE;QACjC,oBAAoB,EAAE,OAAC,CAAC,MAAM,EAAE;QAEhC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YAC1C,iCAAiC;YACjC,gDAAgD;YAChD,KAAK,EAAE,CAAC;YAER,oDAAoD;YACpD,KAAK,CAAC,GAAG,CAAC,CAAC;YAEX,oDAAoD;YACpD,KAAK,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;YAE3B,gDAAgD;YAChD,IAAI,EAAE,CAAC;YAEP,oDAAoD;YACpD,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;YAE1B,0CAA0C;YAC1C,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;gBACxB,OAAO,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IACH,OAAO,IAAA,0CAA0B,EAAC;QAChC,mBAAmB,EAAE,iBAAiB;QACtC,oBAAoB,EAAE,IAAA,sCAAsB,EAAC,kBAAkB,EAAE,oBAA6B,CAAC;QAC/F,wBAAwB,EAAE;YACxB,MAAM,EAAE,YAAY;SACrB;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB;IACnC,2CAA2C;IAC3C,MAAM,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEpD,MAAM,uBAAuB,GAAG,IAAA,mCAAmB,EAAC;QAClD,WAAW,EAAE,wCAAwC;QACrD,mBAAmB,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QAEzD,kDAAkD;QAClD,yBAAyB,EAAE,cAAc;QACzC,qBAAqB,EAAE,UAAU;QAEjC,kBAAkB,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1D,uBAAuB,EAAE,YAAY;QAErC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YACpC,iCAAiC;YACjC,0DAA0D;YAC1D,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;YAEnC,wDAAwD;YACxD,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;YAEjC,qBAAqB;YACrB,OAAO,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YACpC,iCAAiC;YACjC,0DAA0D;YAC1D,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5B,wDAAwD;YACxD,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;YAEjC,qBAAqB;YACrB,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAClC,uCAAuC;YACvC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;YAEzC,iCAAiC;YACjC,0DAA0D;YAC1D,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5B,0DAA0D;YAC1D,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;YAEnC,mBAAmB;YACnB,OAAO,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,YAAY,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,IAAA,0CAA0B,EAAC;QAChC,mBAAmB,EAAE,iBAAiB;QACtC,oBAAoB,EAAE,IAAA,sCAAsB,EAC1C,uBAAuB,EACvB,oBAA6B,CAC9B;QACD,wBAAwB,EAAE;YACxB,MAAM,EAAE,YAAY;SACrB;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB;IAClC,wBAAwB;IACxB,MAAM,eAAe,GAAG,IAAA,mCAAmB,EAAC;QAC1C,WAAW,EAAE,wCAAwC;QACrD,mBAAmB,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACzD,qBAAqB,EAAE,OAAC,CAAC,MAAM,EAAE;QACjC,oBAAoB,EAAE,OAAC,CAAC,OAAO,EAAE;QAEjC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YAC1C,iCAAiC;YACjC,gDAAgD;YAChD,KAAK,EAAE,CAAC;YAER,oDAAoD;YACpD,KAAK,CAAC,cAAc,CAAC,CAAC;YAEtB,oDAAoD;YACpD,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAEtB,sEAAsE;YACtE,IAAI,EAAE,CAAC;YAEP,qDAAqD;YACrD,IAAI,CAAC,GAAG,CAAC,CAAC;YAEV,0CAA0C;YAC1C,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;gBACxB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IACH,OAAO,IAAA,0CAA0B,EAAC;QAChC,mBAAmB,EAAE,iBAAiB;QACtC,oBAAoB,EAAE,IAAA,sCAAsB,EAAC,eAAe,EAAE,oBAA6B,CAAC;QAC5F,wBAAwB,EAAE;YACxB,MAAM,EAAE,YAAY;SACrB;KACF,CAAC,CAAC;AACL,CAAC"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@lit-protocol/vincent-ability-sdk",
3
+ "version": "0.0.1-ea",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "dependencies": {
8
+ "ethers": "5.8.0",
9
+ "semver": "^7.7.2",
10
+ "tslib": "^2.8.1",
11
+ "zod": "^3.25.64",
12
+ "@lit-protocol/vincent-contracts-sdk": "1.0.0"
13
+ },
14
+ "main": "./dist/src/index.js",
15
+ "types": "./dist/src/index.d.ts",
16
+ "files": [
17
+ "dist/**",
18
+ "*.md"
19
+ ],
20
+ "exports": {
21
+ ".": {
22
+ "require": "./dist/src/index.js",
23
+ "import": "./dist/src/index.js"
24
+ },
25
+ "./internal": {
26
+ "require": "./dist/src/internal.js",
27
+ "import": "./dist/src/internal.js"
28
+ }
29
+ },
30
+ "devDependencies": {
31
+ "@types/semver": "^7.7.0",
32
+ "chokidar-cli": "^3.0.0",
33
+ "jsonc-eslint-parser": "^2.4.0",
34
+ "typedoc": "0.27.9",
35
+ "typedoc-material-theme": "1.3.0",
36
+ "typedoc-plugin-extras": "^4.0.0",
37
+ "typedoc-plugin-zod": "^1.4.1"
38
+ },
39
+ "scripts": {
40
+ "watch:type-tests": "chokidar 'src/**/*' --initial --await-write-finish --delay 100 --silent -c './scripts/run-typecheck.sh'",
41
+ "typecheck": "./scripts/precommit-check.sh"
42
+ }
43
+ }