feat(ucanto): capability create / inovke methods #51
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds following features:
derives
is now optional incapability({ ... })
. If not provided will use a default which:claimed.with
is same asdelegated.with
or thatclaimed.with
is insidedelegated.with
if later ends with*
.delegated.caveats
are same onclaimed.caveats
.In many instances you'd need to define custom
derives
, but I think sane default is probably a good idea.Capabilities defined with
capability()
now have.create({ with: resource, caveats: { ... } })
function which:can
field.Capabilities defined with
capability()
now have.invoke({ ... })
function which is just like.create
above, except it also takesissuer
,audience
and rest of the invocation specific options and returnsIssuedInvocation
invoke({ issuer, audience, capability: myCap.create(...), ... })
https://github.com/web3-storage/ucanto/blob/4fed8db1e55f2fef174cb3abe09ccec897375eb5/w3/store/src/store/invoke.js#L4-L69
https://github.com/web3-storage/ucanto/blob/4fed8db1e55f2fef174cb3abe09ccec897375eb5/w3/store/src/identity/invoke.js#L5-L83
IssuedInvocation
now hasdelegate()
method hopefully this sugar makes it less confusingdelegate(invocation))
invoke
previously ignored things likeexpration
etc... which is fixed now.