@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,160 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.vincentAbilityHandler = void 0;
4
+ exports.createAbilityExecutionContext = createAbilityExecutionContext;
5
+ const ethers_1 = require("ethers");
6
+ const helpers_1 = require("../abilityCore/helpers");
7
+ const typeGuards_1 = require("../abilityCore/helpers/typeGuards");
8
+ const validatePolicies_1 = require("../abilityCore/helpers/validatePolicies");
9
+ const zod_1 = require("../abilityCore/helpers/zod");
10
+ const assertSupportedAbilityVersion_1 = require("../assertSupportedAbilityVersion");
11
+ const getOnchainPolicyParams_1 = require("../policyCore/policyParameters/getOnchainPolicyParams");
12
+ const utils_1 = require("../utils");
13
+ const constants_1 = require("./constants");
14
+ const evaluatePolicies_1 = require("./evaluatePolicies");
15
+ /* eslint-disable @typescript-eslint/no-explicit-any */
16
+ function createAbilityExecutionContext({ vincentAbility, policyEvaluationResults, baseContext, }) {
17
+ if (!policyEvaluationResults.allow) {
18
+ throw new Error('Received denied policies to createAbilityExecutionContext()');
19
+ }
20
+ const newContext = {
21
+ allow: true,
22
+ evaluatedPolicies: policyEvaluationResults.evaluatedPolicies,
23
+ allowedPolicies: {},
24
+ };
25
+ const policyByPackageName = vincentAbility.supportedPolicies.policyByPackageName;
26
+ const allowedKeys = Object.keys(policyEvaluationResults.allowedPolicies);
27
+ for (const packageName of allowedKeys) {
28
+ const entry = policyEvaluationResults.allowedPolicies[packageName];
29
+ const policy = policyByPackageName[packageName];
30
+ const vincentPolicy = policy.vincentPolicy;
31
+ if (!entry) {
32
+ throw new Error(`Missing entry on allowedPolicies for policy: ${packageName}`);
33
+ }
34
+ const resultWrapper = {
35
+ result: entry.result,
36
+ };
37
+ // TODO: Collect results of commit calls and add to the execution context result
38
+ if (vincentPolicy.commit) {
39
+ const commitFn = vincentPolicy.commit;
40
+ resultWrapper.commit = (commitParams) => {
41
+ return commitFn(commitParams, baseContext);
42
+ };
43
+ }
44
+ newContext.allowedPolicies[packageName] =
45
+ resultWrapper;
46
+ }
47
+ return newContext;
48
+ }
49
+ /** @hidden */
50
+ const vincentAbilityHandler = ({ vincentAbility, abilityParams, context, }) => {
51
+ return async () => {
52
+ (0, assertSupportedAbilityVersion_1.assertSupportedAbilityVersion)(vincentAbilityApiVersion);
53
+ let policyEvalResults = undefined;
54
+ const abilityIpfsCid = LitAuth.actionIpfsIds[0];
55
+ const appDelegateeAddress = ethers_1.ethers.utils.getAddress(LitAuth.authSigAddress);
56
+ // Build an initial baseContext -- we will add info as we execute, so if an error is encountered the consumer gets
57
+ // all of the info we did find along the way
58
+ const baseContext = {
59
+ delegation: {
60
+ delegateeAddress: appDelegateeAddress,
61
+ // delegatorPkpInfo: null,
62
+ },
63
+ abilityIpfsCid,
64
+ // appId: undefined,
65
+ // appVersion: undefined,
66
+ };
67
+ try {
68
+ const delegationRpcUrl = await Lit.Actions.getRpcUrl({ chain: 'yellowstone' });
69
+ const parsedOrFail = (0, zod_1.validateOrFail)(abilityParams, vincentAbility.abilityParamsSchema, 'execute', 'input');
70
+ if ((0, typeGuards_1.isAbilityFailureResult)(parsedOrFail)) {
71
+ Lit.Actions.setResponse({
72
+ response: JSON.stringify({
73
+ abilityExecutionResult: parsedOrFail,
74
+ }),
75
+ });
76
+ return;
77
+ }
78
+ const userPkpInfo = await (0, helpers_1.getPkpInfo)({
79
+ litPubkeyRouterAddress: constants_1.LIT_DATIL_PUBKEY_ROUTER_ADDRESS,
80
+ yellowstoneRpcUrl: delegationRpcUrl,
81
+ pkpEthAddress: context.delegatorPkpEthAddress,
82
+ });
83
+ baseContext.delegation.delegatorPkpInfo = userPkpInfo;
84
+ const { decodedPolicies, appId, appVersion } = await (0, getOnchainPolicyParams_1.getPoliciesAndAppVersion)({
85
+ delegationRpcUrl,
86
+ appDelegateeAddress,
87
+ agentWalletPkpEthAddress: context.delegatorPkpEthAddress,
88
+ abilityIpfsCid,
89
+ });
90
+ baseContext.appId = appId.toNumber();
91
+ baseContext.appVersion = appVersion.toNumber();
92
+ const validatedPolicies = await (0, validatePolicies_1.validatePolicies)({
93
+ decodedPolicies,
94
+ vincentAbility,
95
+ parsedAbilityParams: parsedOrFail,
96
+ abilityIpfsCid,
97
+ });
98
+ console.log('validatedPolicies', JSON.stringify(validatedPolicies, utils_1.bigintReplacer));
99
+ const policyEvaluationResults = await (0, evaluatePolicies_1.evaluatePolicies)({
100
+ validatedPolicies,
101
+ vincentAbility,
102
+ context: baseContext,
103
+ vincentAbilityApiVersion,
104
+ });
105
+ console.log('policyEvaluationResults', JSON.stringify(policyEvaluationResults, utils_1.bigintReplacer));
106
+ policyEvalResults = policyEvaluationResults;
107
+ if (!policyEvalResults.allow) {
108
+ Lit.Actions.setResponse({
109
+ response: JSON.stringify({
110
+ abilityContext: {
111
+ ...baseContext,
112
+ policiesContext: policyEvaluationResults,
113
+ },
114
+ abilityExecutionResult: {
115
+ success: false,
116
+ },
117
+ }),
118
+ });
119
+ return;
120
+ }
121
+ const executeContext = createAbilityExecutionContext({
122
+ vincentAbility,
123
+ policyEvaluationResults,
124
+ baseContext,
125
+ });
126
+ const abilityExecutionResult = await vincentAbility.execute({
127
+ abilityParams: parsedOrFail,
128
+ }, {
129
+ ...baseContext,
130
+ policiesContext: executeContext,
131
+ });
132
+ console.log('abilityExecutionResult', JSON.stringify(abilityExecutionResult, utils_1.bigintReplacer));
133
+ Lit.Actions.setResponse({
134
+ response: JSON.stringify({
135
+ abilityExecutionResult,
136
+ abilityContext: {
137
+ ...baseContext,
138
+ policiesContext: policyEvaluationResults,
139
+ },
140
+ }),
141
+ });
142
+ }
143
+ catch (err) {
144
+ Lit.Actions.setResponse({
145
+ response: JSON.stringify({
146
+ abilityContext: {
147
+ ...baseContext,
148
+ policiesContext: policyEvalResults,
149
+ },
150
+ abilityExecutionResult: {
151
+ success: false,
152
+ runtimeError: err instanceof Error ? err.message : String(err),
153
+ },
154
+ }),
155
+ });
156
+ }
157
+ };
158
+ };
159
+ exports.vincentAbilityHandler = vincentAbilityHandler;
160
+ //# sourceMappingURL=vincentAbilityHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vincentAbilityHandler.js","sourceRoot":"","sources":["../../../../src/lib/handlers/vincentAbilityHandler.ts"],"names":[],"mappings":";;;AAwCA,sEAmEC;AAzGD,mCAAgC;AAYhC,oDAAoD;AACpD,kEAA2E;AAC3E,8EAA2E;AAC3E,oDAA4D;AAC5D,oFAAiF;AACjF,kGAAiG;AACjG,oCAA0C;AAC1C,2CAA8D;AAC9D,yDAAsD;AAiBtD,uDAAuD;AACvD,SAAgB,6BAA6B,CAK3C,EACA,cAAc,EACd,uBAAuB,EACvB,WAAW,GAcZ;IACC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,UAAU,GAAyD;QACvE,KAAK,EAAE,IAAI;QACX,iBAAiB,EAAE,uBAAuB,CAAC,iBAAiB;QAC5D,eAAe,EAAE,EAA6E;KAC/F,CAAC;IAEF,MAAM,mBAAmB,GAAG,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC;IACjF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAEtE,CAAC;IAEF,KAAK,MAAM,WAAW,IAAI,WAAW,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,uBAAuB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAE3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,gDAAgD,WAAqB,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,MAAM,aAAa,GAGf;YACF,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;QAEF,gFAAgF;QAChF,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC;YACtC,aAAa,CAAC,MAAM,GAAG,CAAC,YAAY,EAAE,EAAE;gBACtC,OAAO,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAC7C,CAAC,CAAC;QACJ,CAAC;QAED,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC;YACrC,aAA4G,CAAC;IACjH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,cAAc;AACP,MAAM,qBAAqB,GAAG,CAKnC,EACA,cAAc,EACd,aAAa,EACb,OAAO,GAcR,EAAE,EAAE;IACH,OAAO,KAAK,IAAI,EAAE;QAChB,IAAA,6DAA6B,EAAC,wBAAwB,CAAC,CAAC;QAExD,IAAI,iBAAiB,GACnB,SAAS,CAAC;QACZ,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,mBAAmB,GAAG,eAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAE5E,kHAAkH;QAClH,4CAA4C;QAC5C,MAAM,WAAW,GAAG;YAClB,UAAU,EAAE;gBACV,gBAAgB,EAAE,mBAAmB;gBACrC,0BAA0B;aAC3B;YACD,cAAc;YACd,oBAAoB;YACpB,yBAAyB;SACnB,CAAC;QAET,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;YAE/E,MAAM,YAAY,GAAG,IAAA,oBAAc,EACjC,aAAa,EACb,cAAc,CAAC,mBAAmB,EAClC,SAAS,EACT,OAAO,CACR,CAAC;YAEF,IAAI,IAAA,mCAAsB,EAAC,YAAY,CAAC,EAAE,CAAC;gBACzC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;oBACtB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;wBACvB,sBAAsB,EAAE,YAAY;qBACrC,CAAC;iBACH,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,IAAA,oBAAU,EAAC;gBACnC,sBAAsB,EAAE,2CAA+B;gBACvD,iBAAiB,EAAE,gBAAgB;gBACnC,aAAa,EAAE,OAAO,CAAC,sBAAsB;aAC9C,CAAC,CAAC;YACH,WAAW,CAAC,UAAU,CAAC,gBAAgB,GAAG,WAAW,CAAC;YAEtD,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,iDAAwB,EAAC;gBAC5E,gBAAgB;gBAChB,mBAAmB;gBACnB,wBAAwB,EAAE,OAAO,CAAC,sBAAsB;gBACxD,cAAc;aACf,CAAC,CAAC;YACH,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;YAE/C,MAAM,iBAAiB,GAAG,MAAM,IAAA,mCAAgB,EAAC;gBAC/C,eAAe;gBACf,cAAc;gBACd,mBAAmB,EAAE,YAAY;gBACjC,cAAc;aACf,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,sBAAc,CAAC,CAAC,CAAC;YAEpF,MAAM,uBAAuB,GAAG,MAAM,IAAA,mCAAgB,EAAC;gBACrD,iBAAiB;gBACjB,cAAc;gBACd,OAAO,EAAE,WAAW;gBACpB,wBAAwB;aACzB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CACT,yBAAyB,EACzB,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE,sBAAc,CAAC,CACxD,CAAC;YAEF,iBAAiB,GAAG,uBAAuB,CAAC;YAE5C,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;gBAC7B,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;oBACtB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;wBACvB,cAAc,EAAE;4BACd,GAAG,WAAW;4BACd,eAAe,EAAE,uBAAuB;yBACa;wBACvD,sBAAsB,EAAE;4BACtB,OAAO,EAAE,KAAK;yBACf;qBACF,CAAC;iBACH,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,MAAM,cAAc,GAAG,6BAA6B,CAAC;gBACnD,cAAc;gBACd,uBAAuB;gBACvB,WAAW;aACZ,CAAC,CAAC;YAEH,MAAM,sBAAsB,GAAG,MAAM,cAAc,CAAC,OAAO,CACzD;gBACE,aAAa,EAAE,YAAY;aAC5B,EACD;gBACE,GAAG,WAAW;gBACd,eAAe,EAAE,cAAc;aAChC,CACF,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,sBAAc,CAAC,CAAC,CAAC;YAE9F,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;gBACtB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;oBACvB,sBAAsB;oBACtB,cAAc,EAAE;wBACd,GAAG,WAAW;wBACd,eAAe,EAAE,uBAAuB;qBACa;iBACxD,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;gBACtB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;oBACvB,cAAc,EAAE;wBACd,GAAG,WAAW;wBACd,eAAe,EAAE,iBAAiB;qBACa;oBACjD,sBAAsB,EAAE;wBACtB,OAAO,EAAE,KAAK;wBACd,YAAY,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBAC/D;iBACF,CAAC;aACH,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AA9JW,QAAA,qBAAqB,yBA8JhC"}
@@ -0,0 +1,13 @@
1
+ import type { z } from 'zod';
2
+ import type { PolicyConsumerContext, VincentPolicy } from '../types';
3
+ /** @hidden */
4
+ export declare function vincentPolicyHandler<PackageName extends string, PolicyAbilityParams extends z.ZodType, UserParams extends z.ZodType | undefined = undefined, EvalAllowResult extends z.ZodType | undefined = undefined, EvalDenyResult extends z.ZodType | undefined = undefined>({ vincentPolicy, context, abilityParams, }: {
5
+ vincentPolicy: VincentPolicy<PackageName, PolicyAbilityParams, UserParams, any, // PrecheckAllowResult
6
+ any, // PrecheckDenyResult
7
+ EvalAllowResult, EvalDenyResult, any, // CommitParams
8
+ any, // CommitAllowResult
9
+ any>;
10
+ abilityParams: unknown;
11
+ context: PolicyConsumerContext;
12
+ }): Promise<void>;
13
+ //# sourceMappingURL=vincentPolicyHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vincentPolicyHandler.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/vincentPolicyHandler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAI7B,OAAO,KAAK,EAAoB,qBAAqB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA2BvF,cAAc;AACd,wBAAsB,oBAAoB,CACxC,WAAW,SAAS,MAAM,EAC1B,mBAAmB,SAAS,CAAC,CAAC,OAAO,EACrC,UAAU,SAAS,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,EACpD,eAAe,SAAS,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,EACzD,cAAc,SAAS,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,EACxD,EACA,aAAa,EACb,OAAO,EACP,aAAa,GACd,EAAE;IACD,aAAa,EAAE,aAAa,CAC1B,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,GAAG,EAAE,sBAAsB;IAC3B,GAAG,EAAE,qBAAqB;IAC1B,eAAe,EACf,cAAc,EACd,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,oBAAoB;IACzB,GAAG,CACJ,CAAC;IACF,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,qBAAqB,CAAC;CAChC,iBAqEA"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ // src/lib/handlers/vincentPolicyHandler.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.vincentPolicyHandler = vincentPolicyHandler;
5
+ const ethers_1 = require("ethers");
6
+ const helpers_1 = require("../abilityCore/helpers");
7
+ const assertSupportedAbilityVersion_1 = require("../assertSupportedAbilityVersion");
8
+ const helpers_2 = require("../policyCore/helpers");
9
+ const getOnchainPolicyParams_1 = require("../policyCore/policyParameters/getOnchainPolicyParams");
10
+ const utils_1 = require("../utils");
11
+ const constants_1 = require("./constants");
12
+ /** @hidden */
13
+ async function vincentPolicyHandler({ vincentPolicy, context, abilityParams, }) {
14
+ (0, assertSupportedAbilityVersion_1.assertSupportedAbilityVersion)(vincentAbilityApiVersion);
15
+ const { delegatorPkpEthAddress, abilityIpfsCid } = context; // FIXME: Set from ipfsCidsStack when it's shipped
16
+ console.log('actionIpfsIds:', LitAuth.actionIpfsIds.join(','));
17
+ const policyIpfsCid = LitAuth.actionIpfsIds[0];
18
+ console.log('context:', JSON.stringify(context, utils_1.bigintReplacer));
19
+ try {
20
+ const delegationRpcUrl = await Lit.Actions.getRpcUrl({
21
+ chain: 'yellowstone',
22
+ });
23
+ const userPkpInfo = await (0, helpers_1.getPkpInfo)({
24
+ litPubkeyRouterAddress: constants_1.LIT_DATIL_PUBKEY_ROUTER_ADDRESS,
25
+ yellowstoneRpcUrl: delegationRpcUrl,
26
+ pkpEthAddress: delegatorPkpEthAddress,
27
+ });
28
+ const appDelegateeAddress = ethers_1.ethers.utils.getAddress(LitAuth.authSigAddress);
29
+ console.log('appDelegateeAddress', appDelegateeAddress);
30
+ const { decodedPolicies, appId, appVersion } = await (0, getOnchainPolicyParams_1.getPoliciesAndAppVersion)({
31
+ delegationRpcUrl,
32
+ appDelegateeAddress,
33
+ agentWalletPkpEthAddress: delegatorPkpEthAddress,
34
+ abilityIpfsCid,
35
+ });
36
+ const baseContext = {
37
+ delegation: {
38
+ delegateeAddress: appDelegateeAddress,
39
+ delegatorPkpInfo: userPkpInfo,
40
+ },
41
+ abilityIpfsCid: abilityIpfsCid,
42
+ appId: appId.toNumber(),
43
+ appVersion: appVersion.toNumber(),
44
+ };
45
+ const onChainPolicyParams = await (0, getOnchainPolicyParams_1.getDecodedPolicyParams)({
46
+ decodedPolicies,
47
+ policyIpfsCid,
48
+ });
49
+ console.log('onChainPolicyParams:', JSON.stringify(onChainPolicyParams, utils_1.bigintReplacer));
50
+ const evaluateResult = await vincentPolicy.evaluate({
51
+ abilityParams,
52
+ userParams: onChainPolicyParams,
53
+ }, baseContext);
54
+ console.log('evaluateResult:', JSON.stringify(evaluateResult, utils_1.bigintReplacer));
55
+ Lit.Actions.setResponse({
56
+ response: JSON.stringify({
57
+ ...evaluateResult,
58
+ }),
59
+ });
60
+ }
61
+ catch (error) {
62
+ console.log('Policy evaluation failed:', error.message, error.stack);
63
+ Lit.Actions.setResponse({
64
+ response: JSON.stringify((0, helpers_2.createDenyResult)({
65
+ runtimeError: error instanceof Error ? error.message : String(error),
66
+ })),
67
+ });
68
+ }
69
+ }
70
+ //# sourceMappingURL=vincentPolicyHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vincentPolicyHandler.js","sourceRoot":"","sources":["../../../../src/lib/handlers/vincentPolicyHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { VincentPolicy } from '../../types';
2
+ import type { BundledVincentPolicy } from './types';
3
+ /** @hidden */
4
+ export declare function asBundledVincentPolicy<const VP extends VincentPolicy<any, any, any, any, any, any, any, any, any, any, any, any, any>, const IpfsCid extends string>(vincentPolicy: VP, ipfsCid: IpfsCid): BundledVincentPolicy<VP, IpfsCid>;
5
+ //# sourceMappingURL=bundledPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundledPolicy.d.ts","sourceRoot":"","sources":["../../../../../src/lib/policyCore/bundledPolicy/bundledPolicy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAIpD,cAAc;AACd,wBAAgB,sBAAsB,CACpC,KAAK,CAAC,EAAE,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC/F,KAAK,CAAC,OAAO,SAAS,MAAM,EAC5B,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,oBAAoB,CAAC,EAAE,EAAE,OAAO,CAAC,CAexE"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ // src/lib/policyCore/bundledPolicy/bundledPolicy.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.asBundledVincentPolicy = asBundledVincentPolicy;
5
+ const constants_1 = require("../../constants");
6
+ /** @hidden */
7
+ function asBundledVincentPolicy(vincentPolicy, ipfsCid) {
8
+ const bundledPolicy = {
9
+ ipfsCid,
10
+ vincentPolicy,
11
+ };
12
+ // Add non-enumerable 'magic' property
13
+ Object.defineProperty(bundledPolicy, 'vincentAbilityApiVersion', {
14
+ value: constants_1.VINCENT_TOOL_API_VERSION,
15
+ writable: false,
16
+ enumerable: true,
17
+ configurable: false,
18
+ });
19
+ return bundledPolicy;
20
+ }
21
+ //# sourceMappingURL=bundledPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundledPolicy.js","sourceRoot":"","sources":["../../../../../src/lib/policyCore/bundledPolicy/bundledPolicy.ts"],"names":[],"mappings":";AAAA,oDAAoD;;AAQpD,wDAkBC;AArBD,+CAA2D;AAE3D,cAAc;AACd,SAAgB,sBAAsB,CAGpC,aAAiB,EAAE,OAAgB;IACnC,MAAM,aAAa,GAAG;QACpB,OAAO;QACP,aAAa;KACuB,CAAC;IAEvC,sCAAsC;IACtC,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,0BAA0B,EAAE;QAC/D,KAAK,EAAE,oCAAwB;QAC/B,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IAEH,OAAO,aAAmF,CAAC;AAC7F,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { VincentPolicy } from '../../types';
2
+ /**
3
+ * A VincentPolicy bundled with an IPFS CID
4
+ * This ensures only correctly constructed objects are assignable.
5
+ *
6
+ * @typeParam VP - The Vincent Policy that was bundled for usage
7
+ * @typeParam IpfsCid - The IPFS CID that the bundled ability was published to
8
+ *
9
+ * @category Interfaces
10
+ */
11
+ export type BundledVincentPolicy<VP extends VincentPolicy<any, any, any, any, any, any, any, any, any, any, any, any, any>, IpfsCid extends string = string, VincentAbilityApiVersion extends string = string> = {
12
+ readonly ipfsCid: IpfsCid;
13
+ readonly vincentPolicy: VP;
14
+ /** @hidden */
15
+ readonly vincentAbilityApiVersion: VincentAbilityApiVersion;
16
+ };
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/policyCore/bundledPolicy/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,CAC9B,EAAE,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACzF,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/B,wBAAwB,SAAS,MAAM,GAAG,MAAM,IAC9C;IAEF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC;IAC3B,cAAc;IACd,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;CAC7D,CAAC"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // src/lib/policyCore/bundledPolicy/types.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/lib/policyCore/bundledPolicy/types.ts"],"names":[],"mappings":";AAAA,4CAA4C"}
@@ -0,0 +1,5 @@
1
+ export { createDenyResult } from './resultCreators';
2
+ export { isPolicyResponse, isPolicyAllowResponse, isPolicyDenyResponse } from './typeGuards';
3
+ export { validateOrDeny, getValidatedParamsOrDeny } from './zod';
4
+ export { getSchemaForPolicyResponseResult } from './zod';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/policyCore/helpers/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,gCAAgC,EAAE,MAAM,OAAO,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ // src/lib/policyCore/helpers/index.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getSchemaForPolicyResponseResult = exports.getValidatedParamsOrDeny = exports.validateOrDeny = exports.isPolicyDenyResponse = exports.isPolicyAllowResponse = exports.isPolicyResponse = exports.createDenyResult = void 0;
5
+ var resultCreators_1 = require("./resultCreators");
6
+ Object.defineProperty(exports, "createDenyResult", { enumerable: true, get: function () { return resultCreators_1.createDenyResult; } });
7
+ var typeGuards_1 = require("./typeGuards");
8
+ Object.defineProperty(exports, "isPolicyResponse", { enumerable: true, get: function () { return typeGuards_1.isPolicyResponse; } });
9
+ Object.defineProperty(exports, "isPolicyAllowResponse", { enumerable: true, get: function () { return typeGuards_1.isPolicyAllowResponse; } });
10
+ Object.defineProperty(exports, "isPolicyDenyResponse", { enumerable: true, get: function () { return typeGuards_1.isPolicyDenyResponse; } });
11
+ var zod_1 = require("./zod");
12
+ Object.defineProperty(exports, "validateOrDeny", { enumerable: true, get: function () { return zod_1.validateOrDeny; } });
13
+ Object.defineProperty(exports, "getValidatedParamsOrDeny", { enumerable: true, get: function () { return zod_1.getValidatedParamsOrDeny; } });
14
+ var zod_2 = require("./zod");
15
+ Object.defineProperty(exports, "getSchemaForPolicyResponseResult", { enumerable: true, get: function () { return zod_2.getSchemaForPolicyResponseResult; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/policyCore/helpers/index.ts"],"names":[],"mappings":";AAAA,sCAAsC;;;AAEtC,mDAAoD;AAA3C,kHAAA,gBAAgB,OAAA;AACzB,2CAA6F;AAApF,8GAAA,gBAAgB,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AAAE,kHAAA,oBAAoB,OAAA;AACtE,6BAAiE;AAAxD,qGAAA,cAAc,OAAA;AAAE,+GAAA,wBAAwB,OAAA;AACjD,6BAAyD;AAAhD,uHAAA,gCAAgC,OAAA"}
@@ -0,0 +1,38 @@
1
+ import type { z, ZodType } from 'zod';
2
+ import type { PolicyResponseAllow, PolicyResponseDeny, PolicyResponseDenyNoResult, PolicyEvaluationResultContext, SchemaValidationError } from '../../types';
3
+ /**
4
+ * Overload: return a fully-typed deny response with a result
5
+ */
6
+ export declare function createDenyResult<T>(params: {
7
+ runtimeError?: string;
8
+ result: T;
9
+ schemaValidationError?: SchemaValidationError;
10
+ }): PolicyResponseDeny<T>;
11
+ /**
12
+ * Overload: return a deny response with no result
13
+ */
14
+ export declare function createDenyResult(params: {
15
+ runtimeError: string;
16
+ schemaValidationError?: SchemaValidationError;
17
+ }): PolicyResponseDenyNoResult;
18
+ export declare function createDenyNoResult(runtimeError: string, schemaValidationError?: SchemaValidationError): PolicyResponseDenyNoResult;
19
+ /**
20
+ * Overload: return a fully-typed allow response with a result
21
+ */
22
+ export declare function createAllowResult<T>(params: {
23
+ result: T;
24
+ }): PolicyResponseAllow<T>;
25
+ export declare function createAllowEvaluationResult<PolicyMapByPackageName extends Record<string, any>>(params: {
26
+ evaluatedPolicies: Array<keyof PolicyMapByPackageName>;
27
+ allowedPolicies: PolicyEvaluationResultContext<PolicyMapByPackageName>['allowedPolicies'];
28
+ }): PolicyEvaluationResultContext<PolicyMapByPackageName>;
29
+ export declare function createDenyEvaluationResult<PolicyMapByPackageName extends Record<string, any>>(params: {
30
+ evaluatedPolicies: Array<keyof PolicyMapByPackageName>;
31
+ allowedPolicies: PolicyEvaluationResultContext<PolicyMapByPackageName>['allowedPolicies'];
32
+ deniedPolicy: PolicyEvaluationResultContext<PolicyMapByPackageName>['deniedPolicy'];
33
+ }): PolicyEvaluationResultContext<PolicyMapByPackageName>;
34
+ export declare function wrapAllow<T extends ZodType<any, any, any>>(value: z.infer<T>): PolicyResponseAllow<z.infer<T>>;
35
+ export declare function wrapDeny<T extends ZodType<any, any, any>>(runtimeError: string, result: z.infer<T>, schemaValidationError?: SchemaValidationError): PolicyResponseDeny<z.infer<T>>;
36
+ export declare function returnNoResultDeny<T extends ZodType<any, any, any> | undefined>(runtimeError: string, schemaValidationError?: SchemaValidationError): T extends ZodType<any, any, any> ? PolicyResponseDeny<z.infer<T>> : PolicyResponseDenyNoResult;
37
+ export declare function isTypedAllowResponse<T extends ZodType<any, any, any>>(val: unknown): val is PolicyResponseAllow<z.infer<T>>;
38
+ //# sourceMappingURL=resultCreators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resultCreators.d.ts","sourceRoot":"","sources":["../../../../../src/lib/policyCore/helpers/resultCreators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ // src/lib/policyCore/helpers/resultCreators.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.createDenyResult = createDenyResult;
5
+ exports.createDenyNoResult = createDenyNoResult;
6
+ exports.createAllowResult = createAllowResult;
7
+ exports.createAllowEvaluationResult = createAllowEvaluationResult;
8
+ exports.createDenyEvaluationResult = createDenyEvaluationResult;
9
+ exports.wrapAllow = wrapAllow;
10
+ exports.wrapDeny = wrapDeny;
11
+ exports.returnNoResultDeny = returnNoResultDeny;
12
+ exports.isTypedAllowResponse = isTypedAllowResponse;
13
+ /**
14
+ * Implementation
15
+ */
16
+ function createDenyResult(params) {
17
+ if (params.result === undefined) {
18
+ return {
19
+ allow: false,
20
+ runtimeError: params.runtimeError,
21
+ result: undefined,
22
+ ...(params.schemaValidationError
23
+ ? { schemaValidationError: params.schemaValidationError }
24
+ : {}),
25
+ };
26
+ }
27
+ return {
28
+ allow: false,
29
+ runtimeError: params.runtimeError,
30
+ result: params.result,
31
+ ...(params.schemaValidationError
32
+ ? { schemaValidationError: params.schemaValidationError }
33
+ : {}),
34
+ };
35
+ }
36
+ function createDenyNoResult(runtimeError, schemaValidationError) {
37
+ return createDenyResult({ runtimeError, schemaValidationError });
38
+ }
39
+ /**
40
+ * Overload: return an allow response with no result
41
+ */
42
+ /**
43
+ * Implementation
44
+ */
45
+ function createAllowResult(params) {
46
+ if (params.result === undefined) {
47
+ return {
48
+ allow: true,
49
+ result: undefined,
50
+ };
51
+ }
52
+ return {
53
+ allow: true,
54
+ result: params.result,
55
+ };
56
+ }
57
+ function createAllowEvaluationResult(params) {
58
+ return {
59
+ allow: true,
60
+ evaluatedPolicies: params.evaluatedPolicies,
61
+ allowedPolicies: params.allowedPolicies,
62
+ deniedPolicy: undefined, // important for union discrimination
63
+ };
64
+ }
65
+ function createDenyEvaluationResult(params) {
66
+ return {
67
+ allow: false,
68
+ evaluatedPolicies: params.evaluatedPolicies,
69
+ allowedPolicies: params.allowedPolicies,
70
+ deniedPolicy: params.deniedPolicy,
71
+ };
72
+ }
73
+ // Wraps a validated value as a typed allow result
74
+ function wrapAllow(value) {
75
+ return createAllowResult({ result: value });
76
+ }
77
+ // Wraps a deny result as fully typed (for schema-defined denials)
78
+ function wrapDeny(runtimeError, result, schemaValidationError) {
79
+ return createDenyResult({ runtimeError, result, schemaValidationError });
80
+ }
81
+ // Wraps a schema-less denial into a conditionally valid deny return
82
+ function returnNoResultDeny(runtimeError, schemaValidationError) {
83
+ return createDenyNoResult(runtimeError, schemaValidationError);
84
+ }
85
+ // Optionally: type guard if needed
86
+ function isTypedAllowResponse(val) {
87
+ return typeof val === 'object' && val !== null && val.allow === true;
88
+ }
89
+ //# sourceMappingURL=resultCreators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resultCreators.js","sourceRoot":"","sources":["../../../../../src/lib/policyCore/helpers/resultCreators.ts"],"names":[],"mappings":";AAAA,+CAA+C;;AA+B/C,4CAwBC;AAED,gDAKC;AAcD,8CAcC;AAED,kEAYC;AAED,gEAaC;AAGD,8BAIC;AAGD,4BAMC;AAGD,gDAKC;AAGD,oDAIC;AA1HD;;GAEG;AACH,SAAgB,gBAAgB,CAAI,MAInC;IACC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,MAAM,EAAE,SAAkB;YAC1B,GAAG,CAAC,MAAM,CAAC,qBAAqB;gBAC9B,CAAC,CAAC,EAAE,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,EAAE;gBACzD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,CAAC,MAAM,CAAC,qBAAqB;YAC9B,CAAC,CAAC,EAAE,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,EAAE;YACzD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAChC,YAAoB,EACpB,qBAA6C;IAE7C,OAAO,gBAAgB,CAAC,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAC,CAAC;AACnE,CAAC;AAOD;;GAEG;AAEH;;GAEG;AACH,SAAgB,iBAAiB,CAAI,MAEpC;IACC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO;YACL,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,SAAkB;SAC3B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC;AAED,SAAgB,2BAA2B,CAEzC,MAGD;IACC,OAAO;QACL,KAAK,EAAE,IAAI;QACX,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,YAAY,EAAE,SAAS,EAAE,qCAAqC;KACN,CAAC;AAC7D,CAAC;AAED,SAAgB,0BAA0B,CAExC,MAID;IACC,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,YAAY,EAAE,MAAM,CAAC,YAAY;KACuB,CAAC;AAC7D,CAAC;AAED,kDAAkD;AAClD,SAAgB,SAAS,CACvB,KAAiB;IAEjB,OAAO,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,kEAAkE;AAClE,SAAgB,QAAQ,CACtB,YAAoB,EACpB,MAAkB,EAClB,qBAA6C;IAE7C,OAAO,gBAAgB,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,oEAAoE;AACpE,SAAgB,kBAAkB,CAChC,YAAoB,EACpB,qBAA6C;IAE7C,OAAO,kBAAkB,CAAC,YAAY,EAAE,qBAAqB,CAAQ,CAAC;AACxE,CAAC;AAED,mCAAmC;AACnC,SAAgB,oBAAoB,CAClC,GAAY;IAEZ,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAK,GAAW,CAAC,KAAK,KAAK,IAAI,CAAC;AAChF,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { z } from 'zod';
2
+ import type { PolicyResponse, PolicyResponseAllow, PolicyResponseDeny, SchemaValidationError } from '../../types';
3
+ export declare function isZodValidationDenyResult(result: unknown): result is SchemaValidationError;
4
+ export declare function isPolicyDenyResponse<T>(val: unknown): val is PolicyResponseDeny<T>;
5
+ export declare function isPolicyAllowResponse<T>(val: unknown): val is PolicyResponseAllow<T>;
6
+ export declare function isPolicyResponse<AllowResult extends z.ZodType, DenyResult extends z.ZodType>(value: unknown): value is PolicyResponse<AllowResult, DenyResult>;
7
+ //# sourceMappingURL=typeGuards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeGuards.d.ts","sourceRoot":"","sources":["../../../../../src/lib/policyCore/helpers/typeGuards.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAErB,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,qBAAqB,CAE1F;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAElF;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAEpF;AAED,wBAAgB,gBAAgB,CAAC,WAAW,SAAS,CAAC,CAAC,OAAO,EAAE,UAAU,SAAS,CAAC,CAAC,OAAO,EAC1F,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC,CAOlD"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ // src/lib/policyCore/helpers/typeGuards.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.isZodValidationDenyResult = isZodValidationDenyResult;
5
+ exports.isPolicyDenyResponse = isPolicyDenyResponse;
6
+ exports.isPolicyAllowResponse = isPolicyAllowResponse;
7
+ exports.isPolicyResponse = isPolicyResponse;
8
+ function isZodValidationDenyResult(result) {
9
+ return typeof result === 'object' && result !== null && 'zodError' in result;
10
+ }
11
+ function isPolicyDenyResponse(val) {
12
+ return typeof val === 'object' && val !== null && val.allow === false;
13
+ }
14
+ function isPolicyAllowResponse(val) {
15
+ return typeof val === 'object' && val !== null && val.allow === true;
16
+ }
17
+ function isPolicyResponse(value) {
18
+ return (typeof value === 'object' &&
19
+ value !== null &&
20
+ 'allow' in value &&
21
+ typeof value.allow === 'boolean');
22
+ }
23
+ //# sourceMappingURL=typeGuards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeGuards.js","sourceRoot":"","sources":["../../../../../src/lib/policyCore/helpers/typeGuards.ts"],"names":[],"mappings":";AAAA,2CAA2C;;AAY3C,8DAEC;AAED,oDAEC;AAED,sDAEC;AAED,4CASC;AArBD,SAAgB,yBAAyB,CAAC,MAAe;IACvD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,UAAU,IAAI,MAAM,CAAC;AAC/E,CAAC;AAED,SAAgB,oBAAoB,CAAI,GAAY;IAClD,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAK,GAAW,CAAC,KAAK,KAAK,KAAK,CAAC;AACjF,CAAC;AAED,SAAgB,qBAAqB,CAAI,GAAY;IACnD,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAK,GAAW,CAAC,KAAK,KAAK,IAAI,CAAC;AAChF,CAAC;AAED,SAAgB,gBAAgB,CAC9B,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAO,IAAI,KAAK;QAChB,OAAQ,KAAa,CAAC,KAAK,KAAK,SAAS,CAC1C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,55 @@
1
+ import type { ZodType } from 'zod';
2
+ import { z } from 'zod';
3
+ import type { PolicyResponseDeny } from '../../types';
4
+ /**
5
+ * Matches the minimum structure of a PolicyResponse.
6
+ * This is useful when validating that a response shape is at least plausible.
7
+ */
8
+ export declare const PolicyResponseShape: z.ZodObject<{
9
+ allow: z.ZodBoolean;
10
+ result: z.ZodUnknown;
11
+ }, "strip", z.ZodTypeAny, {
12
+ allow: boolean;
13
+ result?: unknown;
14
+ }, {
15
+ allow: boolean;
16
+ result?: unknown;
17
+ }>;
18
+ /**
19
+ * Validates a value using a Zod schema (or requires undefined if none given).
20
+ * Returns parsed result or a standardized deny object.
21
+ *
22
+ * @param value - The raw value to validate
23
+ * @param schema - A Zod schema to apply, or undefined (meaning: must be undefined)
24
+ * @param phase - One of 'evaluate' | 'precheck' | 'commit'
25
+ * @param stage - 'parameters' (before calling the lifecycle phase) or 'result' (after receiving the result)
26
+ *
27
+ * @returns The parsed result, or a PolicyResponseDeny with a ZodValidationDenyResult
28
+ */
29
+ export declare function validateOrDeny<T extends ZodType<any, any, any>>(value: unknown, schema: T, phase: 'evaluate' | 'precheck' | 'commit', stage: 'input' | 'output'): z.infer<T> | PolicyResponseDeny<never>;
30
+ export declare function getValidatedParamsOrDeny<TAbilityParams extends z.ZodType<any, any, any>, TUserParams extends z.ZodType<any, any, any>>({ rawAbilityParams, rawUserParams, abilityParamsSchema, userParamsSchema, phase, }: {
31
+ rawAbilityParams: unknown;
32
+ rawUserParams: unknown;
33
+ abilityParamsSchema: TAbilityParams;
34
+ userParamsSchema: TUserParams;
35
+ phase: 'evaluate' | 'precheck';
36
+ }): PolicyResponseDeny<never> | {
37
+ abilityParams: z.infer<TAbilityParams>;
38
+ userParams: z.infer<TUserParams>;
39
+ };
40
+ /**
41
+ * Given an unknown policy response result and the known allow/deny schemas,
42
+ * this function returns the appropriate Zod schema to use when validating `.result`.
43
+ *
44
+ * - If the response shape is invalid, returns a Zod schema matching the PolicyResponse structure.
45
+ * - If the shape is valid, returns either the allow or deny result schema.
46
+ */
47
+ export declare function getSchemaForPolicyResponseResult({ value, allowResultSchema, denyResultSchema, }: {
48
+ value: unknown;
49
+ allowResultSchema: z.ZodType<any, any, any>;
50
+ denyResultSchema: z.ZodType<any, any, any>;
51
+ }): {
52
+ schemaToUse: z.ZodType<any, any, any>;
53
+ parsedType: 'allow' | 'deny' | 'unknown';
54
+ };
55
+ //# sourceMappingURL=zod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../../../../src/lib/policyCore/helpers/zod.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAMtD;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAC;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC7D,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,EACzC,KAAK,EAAE,OAAO,GAAG,QAAQ,GACxB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAiBxC;AAED,wBAAgB,wBAAwB,CACtC,cAAc,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC/C,WAAW,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5C,EACA,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,GACN,EAAE;IACD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,cAAc,CAAC;IACpC,gBAAgB,EAAE,WAAW,CAAC;IAC9B,KAAK,EAAE,UAAU,GAAG,UAAU,CAAC;CAChC,GACG,kBAAkB,CAAC,KAAK,CAAC,GACzB;IACE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACvC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;CAClC,CAeJ;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,EAC/C,KAAK,EACL,iBAAiB,EACjB,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5C,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CAC5C,GAAG;IACF,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CAC1C,CAkBA"}