iso-ucan 0.1.5 → 0.2.0
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.
- package/dist/src/capability.d.ts +5 -0
- package/dist/src/capability.d.ts.map +1 -1
- package/dist/src/delegation.d.ts +22 -0
- package/dist/src/delegation.d.ts.map +1 -1
- package/dist/src/envelope.d.ts +45 -3
- package/dist/src/envelope.d.ts.map +1 -1
- package/dist/src/types/envelope.d.ts +119 -0
- package/dist/src/types/envelope.d.ts.map +1 -0
- package/dist/src/types/policy.d.ts +44 -0
- package/dist/src/types/policy.d.ts.map +1 -0
- package/dist/src/types/varsig.d.ts +18 -0
- package/dist/src/types/varsig.d.ts.map +1 -0
- package/dist/src/types.d.ts +1 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils.d.ts +9 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/capability.js +5 -0
- package/src/delegation.js +24 -0
- package/src/envelope.js +88 -5
- package/src/types/envelope.ts +1 -0
- package/src/types.ts +1 -0
- package/src/utils.js +11 -0
package/dist/src/capability.d.ts
CHANGED
|
@@ -30,12 +30,17 @@ export class Capability<Schema extends StandardSchemaV1, Cmd extends string = st
|
|
|
30
30
|
*/
|
|
31
31
|
validate(args: StandardSchemaV1.InferInput<Schema>): Promise<StandardSchemaV1.Result<any>>;
|
|
32
32
|
/**
|
|
33
|
+
* Invoke this capability
|
|
34
|
+
*
|
|
33
35
|
* @param {import("./types.js").CapabilityInvokeOptions<Schema>} options
|
|
36
|
+
* @returns {Promise<Invocation>}
|
|
34
37
|
*/
|
|
35
38
|
invoke(options: import("./types.js").CapabilityInvokeOptions<Schema>): Promise<Invocation>;
|
|
36
39
|
/**
|
|
40
|
+
* Create a delegation for this capability
|
|
37
41
|
*
|
|
38
42
|
* @param {import("./types.js").CapabilityDelegateOptions} options
|
|
43
|
+
* @returns {Promise<Delegation>}
|
|
39
44
|
*/
|
|
40
45
|
delegate(options: import("./types.js").CapabilityDelegateOptions): Promise<Delegation>;
|
|
41
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../src/capability.js"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;;;;GAMG;AAEH;;;GAGG;AACH,wBAHgC,MAAM,SAAzB,gBAAkB,EACR,GAAG,SAAb,MAAQ;IAWnB;;;;OAIG;IACH,6BAJa,gBAAkB,gBAClB,MAAQ,oBACV,iBAAiB,CAAC,QAAM,EAAE,KAAG,CAAC,+BAIxC;IAfD;;OAEG;IACH,qBAFW,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,EAKxC;IAFC,eAA4B;IAC5B,SAAsB;IAYxB;;OAEG;IACH,eAFW,4BAA4B,MAAM,CAAC,yCAK7C;IAED
|
|
1
|
+
{"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../src/capability.js"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;;;;GAMG;AAEH;;;GAGG;AACH,wBAHgC,MAAM,SAAzB,gBAAkB,EACR,GAAG,SAAb,MAAQ;IAWnB;;;;OAIG;IACH,6BAJa,gBAAkB,gBAClB,MAAQ,oBACV,iBAAiB,CAAC,QAAM,EAAE,KAAG,CAAC,+BAIxC;IAfD;;OAEG;IACH,qBAFW,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,EAKxC;IAFC,eAA4B;IAC5B,SAAsB;IAYxB;;OAEG;IACH,eAFW,4BAA4B,MAAM,CAAC,yCAK7C;IAED;;;;;OAKG;IACH,gBAHW,OAAO,YAAY,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,CAoB/B;IAED;;;;;OAKG;IACH,kBAHW,OAAO,YAAY,EAAE,yBAAyB,GAC5C,OAAO,CAAC,UAAU,CAAC,CAI/B;CACF;8BAxE+B,MAAM,SAAzB,gBAAkB,EACR,GAAG,SAAb,MAAQ;YAEX,MAAM;SACN,GAAG;;sCARsB,uBAAuB;2BAH/B,iBAAiB;2BADjB,iBAAiB"}
|
package/dist/src/delegation.d.ts
CHANGED
|
@@ -51,6 +51,28 @@ export class Delegation {
|
|
|
51
51
|
*/
|
|
52
52
|
validate(options: DelegationValidateOptions): Promise<boolean>;
|
|
53
53
|
toString(): string;
|
|
54
|
+
toJSON(): {
|
|
55
|
+
token: string;
|
|
56
|
+
cid: string;
|
|
57
|
+
envelope: {
|
|
58
|
+
payload: {
|
|
59
|
+
iss: string;
|
|
60
|
+
aud: string;
|
|
61
|
+
sub: string | null;
|
|
62
|
+
cmd: string;
|
|
63
|
+
pol: Policy;
|
|
64
|
+
exp: number | null;
|
|
65
|
+
nbf: number | undefined;
|
|
66
|
+
nonce: string;
|
|
67
|
+
meta: Record<string, unknown> | undefined;
|
|
68
|
+
};
|
|
69
|
+
signature: string;
|
|
70
|
+
alg: import("iso-signatures/types").SignatureType;
|
|
71
|
+
enc: import("./types.js").VarsigEncoding;
|
|
72
|
+
spec: "dlg";
|
|
73
|
+
version: string;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
54
76
|
}
|
|
55
77
|
import type { DIDURL } from './types.js';
|
|
56
78
|
import type { DID } from './types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../../src/delegation.js"],"names":[],"mappings":"AAgBA;;;GAGG;AAEH;;GAEG;AACH;IA0CE;;;OAGG;IACH,qBAFW,OAAO,YAAY,EAAE,qBAAqB,uBAuBpD;IAED;;;OAGG;IACH,uBAFW,iBAAiB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,uBA6C7C;IAhGD;;;;;OAKG;IACH,sBAJW,OAAO,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC,SAC3C,UAAU,OACV,GAAG,EAgBb;IAvCD,qBAAqB;IACrB,KADW,MAAM,CACd;IACH,kBAAkB;IAClB,KADW,GAAG,CACX;IACH,yBAAyB;IACzB,KADW,GAAG,GAAG,IAAI,CAClB;IACH,qBAAqB;IACrB,KADW,MAAM,CACd;IACH,qBAAqB;IACrB,KADW,MAAM,CACd;IACH,iCAAiC;IACjC,KADW,MAAM,GAAG,SAAS,CAC1B;IACH,yBAAyB;IACzB,OADW,UAAU,CAChB;IACL,kDAAkD;IAClD,MADW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAC1C;IACJ,4BAA4B;IAC5B,KADW,MAAM,GAAG,IAAI,CACrB;IASD,sDAAwB;IACxB,mCAAkB;IAClB,8DAAc;IAyFhB;;OAEG;IACH,kBAFW,yBAAyB,oBAanC;IAED,mBAEC;CACF;
|
|
1
|
+
{"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../../src/delegation.js"],"names":[],"mappings":"AAgBA;;;GAGG;AAEH;;GAEG;AACH;IA0CE;;;OAGG;IACH,qBAFW,OAAO,YAAY,EAAE,qBAAqB,uBAuBpD;IAED;;;OAGG;IACH,uBAFW,iBAAiB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,uBA6C7C;IAhGD;;;;;OAKG;IACH,sBAJW,OAAO,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC,SAC3C,UAAU,OACV,GAAG,EAgBb;IAvCD,qBAAqB;IACrB,KADW,MAAM,CACd;IACH,kBAAkB;IAClB,KADW,GAAG,CACX;IACH,yBAAyB;IACzB,KADW,GAAG,GAAG,IAAI,CAClB;IACH,qBAAqB;IACrB,KADW,MAAM,CACd;IACH,qBAAqB;IACrB,KADW,MAAM,CACd;IACH,iCAAiC;IACjC,KADW,MAAM,GAAG,SAAS,CAC1B;IACH,yBAAyB;IACzB,OADW,UAAU,CAChB;IACL,kDAAkD;IAClD,MADW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAC1C;IACJ,4BAA4B;IAC5B,KADW,MAAM,GAAG,IAAI,CACrB;IASD,sDAAwB;IACxB,mCAAkB;IAClB,8DAAc;IAyFhB;;OAEG;IACH,kBAFW,yBAAyB,oBAanC;IAED,mBAEC;IACD;;;;;;;;;;;;;;;;;;;;;MAuBC;CACF;4BAxKsG,YAAY;yBAAZ,YAAY;4BAAZ,YAAY;yBAC7F,cAAc;+CADmE,YAAY;uCAAZ,YAAY"}
|
package/dist/src/envelope.d.ts
CHANGED
|
@@ -1,3 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get the signature payload for a given payload
|
|
3
|
+
*
|
|
4
|
+
* @param {object} options
|
|
5
|
+
* @param {PayloadSpec} options.spec
|
|
6
|
+
* @param {Payload} options.payload
|
|
7
|
+
* @param {string} [options.version]
|
|
8
|
+
* @param {import('iso-signatures/types').SignatureType} options.signatureType
|
|
9
|
+
*/
|
|
10
|
+
export function getSignaturePayload(options: {
|
|
11
|
+
spec: PayloadSpec;
|
|
12
|
+
payload: Payload;
|
|
13
|
+
version?: string | undefined;
|
|
14
|
+
signatureType: import("iso-signatures/types").SignatureType;
|
|
15
|
+
}): SignaturePayload;
|
|
16
|
+
/**
|
|
17
|
+
* Decode a signature payload
|
|
18
|
+
*
|
|
19
|
+
* @param {Uint8Array} bytes
|
|
20
|
+
*/
|
|
21
|
+
export function decodeSignaturePayload(bytes: Uint8Array): {
|
|
22
|
+
alg: import("iso-signatures/types").SignatureType;
|
|
23
|
+
enc: import("./types.js").VarsigEncoding;
|
|
24
|
+
payload: Payload<unknown>;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Check if a payload is an invocation payload
|
|
28
|
+
*
|
|
29
|
+
* @param {Payload} payload
|
|
30
|
+
* @returns {payload is InvocationPayload}
|
|
31
|
+
*/
|
|
32
|
+
export function isInvocationPayload(payload: Payload): payload is InvocationPayload;
|
|
33
|
+
/**
|
|
34
|
+
* Check if a payload is a delegation payload
|
|
35
|
+
*
|
|
36
|
+
* @param {Payload} payload
|
|
37
|
+
* @returns {payload is DelegationPayload}
|
|
38
|
+
*/
|
|
39
|
+
export function isDelegationPayload(payload: Payload): payload is DelegationPayload;
|
|
1
40
|
/**
|
|
2
41
|
*
|
|
3
42
|
* @param {EnvelopeSignOptions} options
|
|
@@ -24,16 +63,19 @@ export function encode(options: EnvelopeEncodeOptions): ByteView<(Uint8Array<Arr
|
|
|
24
63
|
*/
|
|
25
64
|
export function decode<Spec extends PayloadSpec>(options: EnvelopeDecodeOptions): DecodedEnvelope<Spec>;
|
|
26
65
|
/**
|
|
27
|
-
* @import { Envelope, PayloadTag, EnvelopeDecodeOptions, EnvelopeEncodeOptions, EnvelopeSignOptions, SignaturePayload, PayloadSpec, DecodedEnvelope, DelegationPayload, InvocationPayload} from './types.js'
|
|
66
|
+
* @import { Envelope, PayloadTag, EnvelopeDecodeOptions, EnvelopeEncodeOptions, EnvelopeSignOptions, SignaturePayload, PayloadSpec, DecodedEnvelope, DelegationPayload, InvocationPayload, Payload} from './types.js'
|
|
28
67
|
* @import { ByteView } from 'multiformats'
|
|
29
68
|
*/
|
|
30
69
|
/** Version */
|
|
31
70
|
export const VERSION: "1.0.0-rc.1";
|
|
32
|
-
import type {
|
|
71
|
+
import type { PayloadSpec } from './types.js';
|
|
72
|
+
import type { Payload } from './types.js';
|
|
33
73
|
import type { SignaturePayload } from './types.js';
|
|
74
|
+
import type { InvocationPayload } from './types.js';
|
|
75
|
+
import type { DelegationPayload } from './types.js';
|
|
76
|
+
import type { EnvelopeSignOptions } from './types.js';
|
|
34
77
|
import type { EnvelopeEncodeOptions } from './types.js';
|
|
35
78
|
import type { ByteView } from 'multiformats';
|
|
36
|
-
import type { PayloadSpec } from './types.js';
|
|
37
79
|
import type { EnvelopeDecodeOptions } from './types.js';
|
|
38
80
|
import type { DecodedEnvelope } from './types.js';
|
|
39
81
|
//# sourceMappingURL=envelope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/envelope.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/envelope.js"],"names":[],"mappings":"AAYA;;;;;;;;GAQG;AACH,6CALG;IAA6B,IAAI,EAAzB,WAAW;IACM,OAAO,EAAxB,OAAO;IACU,OAAO;IAC8B,aAAa,EAAnE,OAAO,sBAAsB,EAAE,aAAa;CACtD,oBAgBA;AAED;;;;GAIG;AACH,8CAFW,UAAU;;;;EAkCpB;AAED;;;;;GAKG;AACH,6CAHW,OAAO,GACL,OAAO,IAAI,iBAAiB,CAIxC;AAED;;;;;GAKG;AACH,6CAHW,OAAO,GACL,OAAO,IAAI,iBAAiB,CAIxC;AAED;;;GAGG;AACH,8BAFW,mBAAmB;;;GAgB7B;AAED;;;;;;GAMG;AACH,gCAHW,qBAAqB,yEAS/B;AAED;;;;;;;GAOG;AACH,uBAL2B,IAAI,SAAlB,WAAa,WAEf,qBAAqB,GACnB,gBAAgB,IAAI,CAAC,CAgCjC;AAtKD;;;GAGG;AAEH,cAAc;AACd,sBAAuB,YAAY,CAAA;iCALuK,YAAY;6BAAZ,YAAY;sCAAZ,YAAY;uCAAZ,YAAY;uCAAZ,YAAY;yCAAZ,YAAY;2CAAZ,YAAY;8BACzL,cAAc;2CAD+J,YAAY;qCAAZ,YAAY"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { DID, DIDURL } from 'iso-did/types';
|
|
2
|
+
import type { ISigner } from 'iso-signatures/types';
|
|
3
|
+
import type { CID } from 'multiformats';
|
|
4
|
+
import type { Policy } from './policy';
|
|
5
|
+
import type { VarsigAlgorithm, VarsigEncoding } from './varsig';
|
|
6
|
+
/**
|
|
7
|
+
* Envelope types
|
|
8
|
+
*/
|
|
9
|
+
export type PayloadSpec = 'dlg' | 'inv';
|
|
10
|
+
export type PayloadTag = `ucan/${PayloadSpec}@${string}`;
|
|
11
|
+
export interface PayloadBase {
|
|
12
|
+
/**
|
|
13
|
+
* Issuer DID (sender)
|
|
14
|
+
*/
|
|
15
|
+
iss: DIDURL;
|
|
16
|
+
/**
|
|
17
|
+
* Audience DID (receiver)
|
|
18
|
+
*/
|
|
19
|
+
aud?: DID;
|
|
20
|
+
/**
|
|
21
|
+
* Principal that the chain is about (the [Subject])
|
|
22
|
+
*/
|
|
23
|
+
sub?: DID | null;
|
|
24
|
+
/**
|
|
25
|
+
* The Command to eventually invoke
|
|
26
|
+
* @see https://github.com/ucan-wg/spec#command
|
|
27
|
+
*/
|
|
28
|
+
cmd: string;
|
|
29
|
+
/**
|
|
30
|
+
* The nonce of the UCAN
|
|
31
|
+
* @see https://github.com/ucan-wg/spec#nonce
|
|
32
|
+
*/
|
|
33
|
+
nonce: Uint8Array;
|
|
34
|
+
/**
|
|
35
|
+
* Meta (asserted, signed data) — is not delegated authority
|
|
36
|
+
*/
|
|
37
|
+
meta?: Record<string, unknown>;
|
|
38
|
+
/**
|
|
39
|
+
* Expiration UTC Unix Timestamp in seconds (valid until)
|
|
40
|
+
*/
|
|
41
|
+
exp: number | null;
|
|
42
|
+
/**
|
|
43
|
+
* "Not before" UTC Unix Timestamp in seconds (valid from)
|
|
44
|
+
*/
|
|
45
|
+
nbf?: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @see https://github.com/ucan-wg/invocation#invocation-payload
|
|
49
|
+
*/
|
|
50
|
+
export interface InvocationPayload extends PayloadBase {
|
|
51
|
+
sub: DID;
|
|
52
|
+
/**
|
|
53
|
+
* Optional if equal to subject
|
|
54
|
+
*/
|
|
55
|
+
aud?: DID;
|
|
56
|
+
/**
|
|
57
|
+
* Any [Arguments] that MUST be present in the Invocation
|
|
58
|
+
*/
|
|
59
|
+
args: Record<string, unknown>;
|
|
60
|
+
/**
|
|
61
|
+
* Delegations that prove the chain of authority
|
|
62
|
+
*/
|
|
63
|
+
prf: CID[];
|
|
64
|
+
/**
|
|
65
|
+
* Issued at time
|
|
66
|
+
*/
|
|
67
|
+
iat?: number;
|
|
68
|
+
/**
|
|
69
|
+
* An OPTIONAL CID of the Receipt that enqueued the Task
|
|
70
|
+
*/
|
|
71
|
+
cause?: CID;
|
|
72
|
+
}
|
|
73
|
+
export interface DelegationPayload<Args = unknown> extends PayloadBase {
|
|
74
|
+
aud: DID;
|
|
75
|
+
/**
|
|
76
|
+
* Subject can be null here for Powerline
|
|
77
|
+
* @see https://github.com/ucan-wg/delegation/#powerline
|
|
78
|
+
*/
|
|
79
|
+
sub: DID | null;
|
|
80
|
+
pol: Policy<Args>;
|
|
81
|
+
}
|
|
82
|
+
export type Payload<Args = unknown> = InvocationPayload | DelegationPayload<Args>;
|
|
83
|
+
export type SignaturePayload<Args = unknown> = {
|
|
84
|
+
h: Uint8Array;
|
|
85
|
+
[payloadTag: PayloadTag]: Payload<Args>;
|
|
86
|
+
};
|
|
87
|
+
export type Envelope<Args = unknown> = [Uint8Array, SignaturePayload<Args>];
|
|
88
|
+
/**
|
|
89
|
+
* @see https://github.com/ucan-wg/spec#envelope
|
|
90
|
+
*/
|
|
91
|
+
export type EnvelopeEncodeOptions = {
|
|
92
|
+
signature: Uint8Array;
|
|
93
|
+
signaturePayload: SignaturePayload;
|
|
94
|
+
};
|
|
95
|
+
export interface EnvelopeSignOptions {
|
|
96
|
+
/**
|
|
97
|
+
* @default '1.0.0'
|
|
98
|
+
*/
|
|
99
|
+
version?: string;
|
|
100
|
+
/**
|
|
101
|
+
* @default 'DAG-CBOR'
|
|
102
|
+
*/
|
|
103
|
+
enc?: VarsigEncoding;
|
|
104
|
+
spec: PayloadSpec;
|
|
105
|
+
payload: Payload;
|
|
106
|
+
signer: ISigner;
|
|
107
|
+
}
|
|
108
|
+
export interface EnvelopeDecodeOptions {
|
|
109
|
+
envelope: Uint8Array;
|
|
110
|
+
}
|
|
111
|
+
export type DecodedEnvelope<Spec extends PayloadSpec> = {
|
|
112
|
+
alg: VarsigAlgorithm;
|
|
113
|
+
enc: VarsigEncoding;
|
|
114
|
+
signature: Uint8Array;
|
|
115
|
+
payload: Spec extends 'dlg' ? DelegationPayload : InvocationPayload;
|
|
116
|
+
spec: Spec;
|
|
117
|
+
version: string;
|
|
118
|
+
};
|
|
119
|
+
//# sourceMappingURL=envelope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../src/types/envelope.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Policy types
|
|
3
|
+
* @see https://github.com/ucan-wg/delegation/#policy
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Type-safe selector utilities
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Extracts all possible paths from a data structure as string literals
|
|
10
|
+
*/
|
|
11
|
+
type PathsToStringProps<T> = T extends string | number | boolean | null | undefined ? never : T extends Array<infer U> ? `[]` | `[${number}]` | `[${number}:${number}]` | `[${number}:]` | `[:${number}]` | `[:]` | PathsToStringProps<U> : T extends object ? {
|
|
12
|
+
[K in keyof T & (string | number)]: K extends string ? `.${K}` | `.${K}?` | `.${K}${PathsToStringProps<T[K]>}` : `[${K}]` | `[${K}]?` | `[${K}]${PathsToStringProps<T[K]>}`;
|
|
13
|
+
}[keyof T & (string | number)] : never;
|
|
14
|
+
/**
|
|
15
|
+
* Flattens nested path strings into a union of all possible selectors
|
|
16
|
+
*/
|
|
17
|
+
type FlattenPaths<T> = T extends string ? T : T extends object ? {
|
|
18
|
+
[K in keyof T]: T[K] extends string ? T[K] : T[K] extends object ? FlattenPaths<T[K]> : never;
|
|
19
|
+
}[keyof T] : never;
|
|
20
|
+
/**
|
|
21
|
+
* Type-safe selector that only allows valid paths for the given data structure
|
|
22
|
+
*/
|
|
23
|
+
export type Selector<Args = unknown> = Args extends unknown ? FlattenPaths<PathsToStringProps<Args>> | '.' : string;
|
|
24
|
+
/**
|
|
25
|
+
* Extracts the type of the value at a given selector path (minimal version)
|
|
26
|
+
*/
|
|
27
|
+
type SelectorValue<T, S extends string> = S extends `.${infer K}` ? K extends keyof T ? T[K] : never : S extends `[${infer I}]` ? T extends Array<infer U> ? U : never : never;
|
|
28
|
+
/** Connectives */
|
|
29
|
+
export type EqualityOp = '==' | '!=';
|
|
30
|
+
export type Equality<Args = unknown> = [EqualityOp, Selector<Args>, unknown];
|
|
31
|
+
export type InequalityOp = '<' | '<=' | '>' | '>=';
|
|
32
|
+
export type Inequality<Args = unknown> = [InequalityOp, Selector<Args>, number];
|
|
33
|
+
export type NegateOp = 'not';
|
|
34
|
+
export type Negate<Args = unknown> = [NegateOp, Statement<Args>];
|
|
35
|
+
export type ConnectiveOp = 'and' | 'or';
|
|
36
|
+
export type Connective<Args = unknown> = [ConnectiveOp, Statement<Args>[]];
|
|
37
|
+
export type QuantifierOp = 'all' | 'any';
|
|
38
|
+
export type Quantifier<Args = unknown, Sel extends Selector<Args> = Selector<Args>> = [QuantifierOp, Sel, Statement<SelectorValue<Args, Sel>>];
|
|
39
|
+
export type LikeOp = 'like';
|
|
40
|
+
export type Like<Args = unknown> = [LikeOp, Selector<Args>, string];
|
|
41
|
+
export type Statement<Args = unknown> = Equality<Args> | Inequality<Args> | Negate<Args> | Connective<Args> | Quantifier<Args> | Like<Args>;
|
|
42
|
+
export type Policy<Args = unknown> = Statement<Args>[];
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/types/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SignatureType } from 'iso-signatures/types';
|
|
2
|
+
/**
|
|
3
|
+
* Varsig types
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Supported encoding types for data to be signed or verified
|
|
7
|
+
*/
|
|
8
|
+
export type VarsigEncoding = 'RAW' | 'DAG-CBOR';
|
|
9
|
+
/**
|
|
10
|
+
* Supported signature types
|
|
11
|
+
*/
|
|
12
|
+
export type VarsigAlgorithm = SignatureType;
|
|
13
|
+
export interface VarsigOptions {
|
|
14
|
+
enc: VarsigEncoding;
|
|
15
|
+
alg: VarsigAlgorithm;
|
|
16
|
+
}
|
|
17
|
+
export type DecodeOutput = VarsigOptions;
|
|
18
|
+
//# sourceMappingURL=varsig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"varsig.d.ts","sourceRoot":"","sources":["../../../src/types/varsig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,UAAU,CAAA;AAE/C;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,CAAA;AAE3C,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,cAAc,CAAA;IACnB,GAAG,EAAE,eAAe,CAAA;CACrB;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,CAAA"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import type { Store } from './store';
|
|
|
11
11
|
import type { Policy } from './types/policy';
|
|
12
12
|
export type { StandardSchemaV1 } from '@standard-schema/spec';
|
|
13
13
|
export type { DID, DIDURL, DIDURLObject } from 'iso-did/types';
|
|
14
|
+
export type { ISigner } from 'iso-signatures/types';
|
|
14
15
|
export * from './types/envelope';
|
|
15
16
|
export * from './types/policy';
|
|
16
17
|
export * from './types/varsig';
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @returns
|
|
9
9
|
*/
|
|
10
10
|
export function signaturePayload(envelope: import("./types.js").DecodedEnvelope<PayloadSpec>): {
|
|
11
|
-
[x: string]:
|
|
11
|
+
[x: string]: import("./types.js").InvocationPayload | import("./types.js").DelegationPayload<unknown> | Uint8Array<ArrayBuffer>;
|
|
12
12
|
h: Uint8Array<ArrayBuffer>;
|
|
13
13
|
};
|
|
14
14
|
export function nowInSeconds(): number;
|
|
@@ -117,6 +117,14 @@ export function expOrTtl({ exp, ttl }: {
|
|
|
117
117
|
* @param {unknown} policy
|
|
118
118
|
*/
|
|
119
119
|
export function assertPolicy(policy: unknown): void;
|
|
120
|
+
/**
|
|
121
|
+
* A type guard for Record<PropertyKey, unknown>.
|
|
122
|
+
*
|
|
123
|
+
* @param {unknown} value - The value to check.
|
|
124
|
+
* @returns {value is Record<PropertyKey, unknown>} Whether the specified value has a runtime type of `object` and is
|
|
125
|
+
* neither `null` nor an `Array`.
|
|
126
|
+
*/
|
|
127
|
+
export function isObject(value: unknown): value is Record<PropertyKey, unknown>;
|
|
120
128
|
export const cborValue: z.ZodLazy<z.ZodType<import("./types.js").CborValue, any, z.core.$ZodTypeInternals<import("./types.js").CborValue, any>>>;
|
|
121
129
|
export const cborObject: z.ZodRecord<z.ZodString, z.ZodLazy<z.ZodType<import("./types.js").CborValue, any, z.core.$ZodTypeInternals<import("./types.js").CborValue, any>>>>;
|
|
122
130
|
export const selector: z.ZodUnion<readonly [z.ZodLiteral<".">, z.ZodTemplateLiteral<`.${string}`>]>;
|
package/dist/src/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.js"],"names":[],"mappings":"AASA;;GAEG;AAEH;;;;;GAKG;AACH,2CAHW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC;;;EAe3D;AAED,uCAEC;AAED;;;GAGG;AACH,8BAFW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,iCAW3D;AAED;;;;;GAKG;AACH,2CAHW,OAAO,eAAe,EAAE,aAAa,WACrC,OAAO,sBAAsB,EAAE,aAAa,WA+BtD;AAED;;;;GAIG;AACH,sCAFW,MAAM,GAAG,IAAI,QAgBvB;AAED;;;;GAIG;AACH,sCAFW,MAAM,QAMhB;AAED;;;;;GAKG;AACH,qDAHW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,gBACjD,OAAO,SAAS,EAAE,QAAQ,gBAWpC;AAED;;;;;;GAMG;AACH,0CAJW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,6BACjD,OAAO,sCAAsC,EAAE,QAAQ,gBACvD,OAAO,SAAS,EAAE,QAAQ,oBAoBpC;AAED;;;;;;;;;;;;;GAaG;AACH,8CAJW,MAAM,GAEJ,IAAI,CAuChB;AAED;;;;;;;;;;;;;GAaG;AACH,mCAXW,OAAO,GAEL,IAAI,CAehB;AACD;;;;GAIG;AACH,iCAFW,OAAO,QASjB;AAED;;;;;;GAMG;AACH,iCAJW,OAAO,GAEL,IAAI,CAWhB;AAED;;;;;GAKG;AACH,sCAHW,OAAO,kBAAkB,EAAE,GAAG,gBAC9B,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,iBAQxC;AAED;;;;;;GAMG;AACH,uCAHG;IAAgC,GAAG;IACV,GAAG;CAAC,iBAU/B;AAgED;;GAEG;AACH,qCAFW,OAAO,QASjB;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.js"],"names":[],"mappings":"AASA;;GAEG;AAEH;;;;;GAKG;AACH,2CAHW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC;;;EAe3D;AAED,uCAEC;AAED;;;GAGG;AACH,8BAFW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,iCAW3D;AAED;;;;;GAKG;AACH,2CAHW,OAAO,eAAe,EAAE,aAAa,WACrC,OAAO,sBAAsB,EAAE,aAAa,WA+BtD;AAED;;;;GAIG;AACH,sCAFW,MAAM,GAAG,IAAI,QAgBvB;AAED;;;;GAIG;AACH,sCAFW,MAAM,QAMhB;AAED;;;;;GAKG;AACH,qDAHW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,gBACjD,OAAO,SAAS,EAAE,QAAQ,gBAWpC;AAED;;;;;;GAMG;AACH,0CAJW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,6BACjD,OAAO,sCAAsC,EAAE,QAAQ,gBACvD,OAAO,SAAS,EAAE,QAAQ,oBAoBpC;AAED;;;;;;;;;;;;;GAaG;AACH,8CAJW,MAAM,GAEJ,IAAI,CAuChB;AAED;;;;;;;;;;;;;GAaG;AACH,mCAXW,OAAO,GAEL,IAAI,CAehB;AACD;;;;GAIG;AACH,iCAFW,OAAO,QASjB;AAED;;;;;;GAMG;AACH,iCAJW,OAAO,GAEL,IAAI,CAWhB;AAED;;;;;GAKG;AACH,sCAHW,OAAO,kBAAkB,EAAE,GAAG,gBAC9B,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,iBAQxC;AAED;;;;;;GAMG;AACH,uCAHG;IAAgC,GAAG;IACV,GAAG;CAAC,iBAU/B;AAgED;;GAEG;AACH,qCAFW,OAAO,QASjB;AAED;;;;;;GAMG;AACH,gCAJW,OAAO,GACL,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAKjD;AAnFD,iJAeI;AACJ,4KAAyD;AAEzD,oGAGE;AAEF;;GAEG;AAEH;;GAEG;AACH,mKA4BI;AAEJ,kLAA8C;uBApCjC,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC;iCA5TP,YAAY;oBARtB,kBAAkB;oBADlB,SAAS;kBAGX,KAAK"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iso-ucan",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.2.0",
|
|
5
5
|
"description": "Isomorphic UCAN",
|
|
6
6
|
"author": "Hugo Dias <hugomrdias@gmail.com> (hugodias.me)",
|
|
7
7
|
"license": "MIT",
|
|
@@ -98,8 +98,8 @@
|
|
|
98
98
|
},
|
|
99
99
|
"files": [
|
|
100
100
|
"src",
|
|
101
|
-
"dist/src
|
|
102
|
-
"dist/src
|
|
101
|
+
"dist/src/**/*.d.ts",
|
|
102
|
+
"dist/src/**/*.d.ts.map"
|
|
103
103
|
],
|
|
104
104
|
"dependencies": {
|
|
105
105
|
"@ipld/dag-cbor": "^9.2.4",
|
|
@@ -111,8 +111,8 @@
|
|
|
111
111
|
"it-merge": "^3.0.12",
|
|
112
112
|
"multiformats": "^13.3.7",
|
|
113
113
|
"iso-base": "^4.1.0",
|
|
114
|
-
"iso-
|
|
115
|
-
"iso-
|
|
114
|
+
"iso-signatures": "^0.4.0",
|
|
115
|
+
"iso-did": "^2.0.0"
|
|
116
116
|
},
|
|
117
117
|
"devDependencies": {
|
|
118
118
|
"@types/node": "^24.1.0",
|
package/src/capability.js
CHANGED
|
@@ -45,7 +45,10 @@ export class Capability {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
|
+
* Invoke this capability
|
|
49
|
+
*
|
|
48
50
|
* @param {import("./types.js").CapabilityInvokeOptions<Schema>} options
|
|
51
|
+
* @returns {Promise<Invocation>}
|
|
49
52
|
*/
|
|
50
53
|
async invoke(options) {
|
|
51
54
|
const result = await this.schema['~standard'].validate(options.args)
|
|
@@ -68,8 +71,10 @@ export class Capability {
|
|
|
68
71
|
}
|
|
69
72
|
|
|
70
73
|
/**
|
|
74
|
+
* Create a delegation for this capability
|
|
71
75
|
*
|
|
72
76
|
* @param {import("./types.js").CapabilityDelegateOptions} options
|
|
77
|
+
* @returns {Promise<Delegation>}
|
|
73
78
|
*/
|
|
74
79
|
delegate(options) {
|
|
75
80
|
return Delegation.create({ ...options, cmd: this.cmd })
|
package/src/delegation.js
CHANGED
|
@@ -159,6 +159,30 @@ export class Delegation {
|
|
|
159
159
|
toString() {
|
|
160
160
|
return base64pad.encode(this.bytes)
|
|
161
161
|
}
|
|
162
|
+
toJSON() {
|
|
163
|
+
return {
|
|
164
|
+
token: this.toString(),
|
|
165
|
+
cid: this.cid.toString(),
|
|
166
|
+
envelope: {
|
|
167
|
+
payload: {
|
|
168
|
+
iss: this.iss.toString(),
|
|
169
|
+
aud: this.aud.toString(),
|
|
170
|
+
sub: this.sub ? this.sub.toString() : null,
|
|
171
|
+
cmd: this.cmd,
|
|
172
|
+
pol: this.pol,
|
|
173
|
+
exp: this.exp,
|
|
174
|
+
nbf: this.nbf,
|
|
175
|
+
nonce: base64pad.encode(this.nonce),
|
|
176
|
+
meta: this.meta,
|
|
177
|
+
},
|
|
178
|
+
signature: base64pad.encode(this.envelope.signature),
|
|
179
|
+
alg: this.envelope.alg,
|
|
180
|
+
enc: this.envelope.enc,
|
|
181
|
+
spec: this.envelope.spec,
|
|
182
|
+
version: this.envelope.version,
|
|
183
|
+
},
|
|
184
|
+
}
|
|
185
|
+
}
|
|
162
186
|
}
|
|
163
187
|
|
|
164
188
|
/**
|
package/src/envelope.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as cbor from '@ipld/dag-cbor'
|
|
2
|
+
import { isObject } from './utils.js'
|
|
2
3
|
import * as varsig from './varsig.js'
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
|
-
* @import { Envelope, PayloadTag, EnvelopeDecodeOptions, EnvelopeEncodeOptions, EnvelopeSignOptions, SignaturePayload, PayloadSpec, DecodedEnvelope, DelegationPayload, InvocationPayload} from './types.js'
|
|
6
|
+
* @import { Envelope, PayloadTag, EnvelopeDecodeOptions, EnvelopeEncodeOptions, EnvelopeSignOptions, SignaturePayload, PayloadSpec, DecodedEnvelope, DelegationPayload, InvocationPayload, Payload} from './types.js'
|
|
6
7
|
* @import { ByteView } from 'multiformats'
|
|
7
8
|
*/
|
|
8
9
|
|
|
@@ -10,21 +11,103 @@ import * as varsig from './varsig.js'
|
|
|
10
11
|
export const VERSION = '1.0.0-rc.1'
|
|
11
12
|
|
|
12
13
|
/**
|
|
14
|
+
* Get the signature payload for a given payload
|
|
13
15
|
*
|
|
14
|
-
* @param {
|
|
16
|
+
* @param {object} options
|
|
17
|
+
* @param {PayloadSpec} options.spec
|
|
18
|
+
* @param {Payload} options.payload
|
|
19
|
+
* @param {string} [options.version]
|
|
20
|
+
* @param {import('iso-signatures/types').SignatureType} options.signatureType
|
|
15
21
|
*/
|
|
16
|
-
export
|
|
17
|
-
const { spec, version,
|
|
22
|
+
export function getSignaturePayload(options) {
|
|
23
|
+
const { spec, version, signatureType, payload } = options
|
|
18
24
|
|
|
19
25
|
const payloadTag = /** @type {PayloadTag} */ (
|
|
20
26
|
`ucan/${spec}@${version ?? VERSION}`
|
|
21
27
|
)
|
|
22
|
-
|
|
28
|
+
|
|
29
|
+
const h = varsig.encode({ enc: 'DAG-CBOR', alg: signatureType })
|
|
23
30
|
|
|
24
31
|
const signaturePayload = /** @type {SignaturePayload} */ ({
|
|
25
32
|
h,
|
|
26
33
|
[payloadTag]: payload,
|
|
27
34
|
})
|
|
35
|
+
|
|
36
|
+
return signaturePayload
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Decode a signature payload
|
|
41
|
+
*
|
|
42
|
+
* @param {Uint8Array} bytes
|
|
43
|
+
*/
|
|
44
|
+
export function decodeSignaturePayload(bytes) {
|
|
45
|
+
const decode = /** @type typeof cbor.decode<SignaturePayload> **/ (
|
|
46
|
+
cbor.decode
|
|
47
|
+
)
|
|
48
|
+
const decoded = decode(bytes)
|
|
49
|
+
|
|
50
|
+
if (!isObject(decoded)) {
|
|
51
|
+
throw new TypeError(
|
|
52
|
+
`Invalid signature payload expected object got ${typeof decoded}`
|
|
53
|
+
)
|
|
54
|
+
}
|
|
55
|
+
if (!('h' in decoded)) {
|
|
56
|
+
throw new TypeError('Invalid signature payload missing h')
|
|
57
|
+
}
|
|
58
|
+
const keys = Object.keys(decoded)
|
|
59
|
+
if (keys.length !== 2) {
|
|
60
|
+
throw new TypeError(
|
|
61
|
+
`Invalid signature payload expected 2 keys got ${keys.length}`
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
if (!keys[1].startsWith('ucan/dlg') || !keys[1].startsWith('ucan/inv')) {
|
|
65
|
+
throw new TypeError('Invalid signature payload missing payload')
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const payloadTag = /** @type {PayloadTag} */ (keys[1])
|
|
69
|
+
const { alg, enc } = varsig.decode(decoded.h)
|
|
70
|
+
const payload = decoded[payloadTag]
|
|
71
|
+
return {
|
|
72
|
+
alg,
|
|
73
|
+
enc,
|
|
74
|
+
payload,
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Check if a payload is an invocation payload
|
|
80
|
+
*
|
|
81
|
+
* @param {Payload} payload
|
|
82
|
+
* @returns {payload is InvocationPayload}
|
|
83
|
+
*/
|
|
84
|
+
export function isInvocationPayload(payload) {
|
|
85
|
+
return 'args' in payload
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Check if a payload is a delegation payload
|
|
90
|
+
*
|
|
91
|
+
* @param {Payload} payload
|
|
92
|
+
* @returns {payload is DelegationPayload}
|
|
93
|
+
*/
|
|
94
|
+
export function isDelegationPayload(payload) {
|
|
95
|
+
return 'pol' in payload
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
*
|
|
100
|
+
* @param {EnvelopeSignOptions} options
|
|
101
|
+
*/
|
|
102
|
+
export async function sign(options) {
|
|
103
|
+
const { spec, version, signer, payload } = options
|
|
104
|
+
|
|
105
|
+
const signaturePayload = getSignaturePayload({
|
|
106
|
+
spec,
|
|
107
|
+
version,
|
|
108
|
+
signatureType: signer.signatureType,
|
|
109
|
+
payload,
|
|
110
|
+
})
|
|
28
111
|
const signature = await signer.sign(cbor.encode(signaturePayload))
|
|
29
112
|
return {
|
|
30
113
|
signature,
|
package/src/types/envelope.ts
CHANGED
|
@@ -88,6 +88,7 @@ export interface DelegationPayload<Args = unknown> extends PayloadBase {
|
|
|
88
88
|
export type Payload<Args = unknown> =
|
|
89
89
|
| InvocationPayload
|
|
90
90
|
| DelegationPayload<Args>
|
|
91
|
+
|
|
91
92
|
export type SignaturePayload<Args = unknown> = {
|
|
92
93
|
h: Uint8Array
|
|
93
94
|
[payloadTag: PayloadTag]: Payload<Args>
|
package/src/types.ts
CHANGED
|
@@ -12,6 +12,7 @@ import type { Policy } from './types/policy'
|
|
|
12
12
|
|
|
13
13
|
export type { StandardSchemaV1 } from '@standard-schema/spec'
|
|
14
14
|
export type { DID, DIDURL, DIDURLObject } from 'iso-did/types'
|
|
15
|
+
export type { ISigner } from 'iso-signatures/types'
|
|
15
16
|
export * from './types/envelope'
|
|
16
17
|
export * from './types/policy'
|
|
17
18
|
export * from './types/varsig'
|
package/src/utils.js
CHANGED
|
@@ -373,3 +373,14 @@ export function assertPolicy(policy) {
|
|
|
373
373
|
throw new TypeError(`Invalid policy: ${pretty}`, { cause: parsed.error })
|
|
374
374
|
}
|
|
375
375
|
}
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* A type guard for Record<PropertyKey, unknown>.
|
|
379
|
+
*
|
|
380
|
+
* @param {unknown} value - The value to check.
|
|
381
|
+
* @returns {value is Record<PropertyKey, unknown>} Whether the specified value has a runtime type of `object` and is
|
|
382
|
+
* neither `null` nor an `Array`.
|
|
383
|
+
*/
|
|
384
|
+
export function isObject(value) {
|
|
385
|
+
return Boolean(value) && typeof value === 'object' && !Array.isArray(value)
|
|
386
|
+
}
|