iso-ucan 1.0.0 → 2.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../../src/delegation.js"],"names":[],"mappings":"AAgBA;;;GAGG;AAEH;;GAEG;AACH;IA0CE;;;;;;OAMG;IACH,qBAFW,OAAO,YAAY,EAAE,qBAAqB,uBAuBpD;IAED;;;;;OAKG;IACH,yBAHW,MAAM,YACL;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAC,uBAiBzB;IAED;;;;OAIG;IACH,cAHgC,MAAM,SAAzB,gBAAkB,WACpB,kBAAkB,MAAM,CAAC,uBA6CnC;IA3HD;;;;;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;IAoHhB;;;;;;OAMG;IACH,kBAFW,yBAAyB,oBAanC;IAED,mBAEC;IAED;;;;;;;;;;;;;;;;;;;;;MAuBC;CACF;4BAxMwH,YAAY;yBAAZ,YAAY;4BAAZ,YAAY;yBAC/G,cAAc;+CADqF,YAAY;sCAAZ,YAAY;uCAAZ,YAAY"}
1
+ {"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../../src/delegation.js"],"names":[],"mappings":"AAmBA;;;GAGG;AAEH;;GAEG;AACH;IA0CE;;;;;;OAMG;IACH,qBAFW,OAAO,YAAY,EAAE,qBAAqB,uBAwBpD;IAED;;;;;OAKG;IACH,yBAHW,MAAM,YACL;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAC,uBAkBzB;IAED;;;;OAIG;IACH,cAHgC,MAAM,SAAzB,gBAAkB,WACpB,kBAAkB,MAAM,CAAC,uBA6CnC;IA7HD;;;;;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;IAsHhB;;;;;;OAMG;IACH,kBAFW,yBAAyB,oBAanC;IAED,mBAEC;IAED;;;;;;;;;;;;;;;;;;;;;MAuBC;CACF;4BA1MwH,YAAY;yBAAZ,YAAY;4BAAZ,YAAY;yBAC/G,cAAc;+CADqF,YAAY;sCAAZ,YAAY;uCAAZ,YAAY"}
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Parse and validate a payload tag (`ucan/<spec>@<version>`)
3
+ *
4
+ * @param {string} tag
5
+ */
6
+ export function parsePayloadTag(tag: string): {
7
+ tag: PayloadTag;
8
+ spec: PayloadSpec;
9
+ version: string;
10
+ };
1
11
  /**
2
12
  * Get the signature payload for a given payload
3
13
  *
@@ -14,14 +24,16 @@ export function getSignaturePayload(options: {
14
24
  signatureType: import("iso-signatures/types").SignatureType;
15
25
  }): SignaturePayload;
16
26
  /**
17
- * Decode a signature payload
27
+ * Decode and validate a signature payload
18
28
  *
19
29
  * @param {Uint8Array} bytes
20
30
  */
21
31
  export function decodeSignaturePayload(bytes: Uint8Array): {
22
32
  alg: import("iso-signatures/types").SignatureType;
23
- enc: import("./types.js").VarsigEncoding;
24
- payload: Payload<unknown>;
33
+ enc: "DAG-CBOR";
34
+ spec: PayloadSpec;
35
+ version: string;
36
+ payload: Payload;
25
37
  };
26
38
  /**
27
39
  * Check if a payload is an invocation payload
@@ -52,7 +64,7 @@ export function sign(options: EnvelopeSignOptions): Promise<{
52
64
  * @param {EnvelopeEncodeOptions} options
53
65
  *
54
66
  */
55
- export function encode(options: EnvelopeEncodeOptions): ByteView<(Uint8Array<ArrayBufferLike> | SignaturePayload<unknown>)[], ArrayBufferLike>;
67
+ export function encode(options: EnvelopeEncodeOptions): import("multiformats").ByteView<(Uint8Array<ArrayBufferLike> | SignaturePayload<unknown>)[], ArrayBufferLike>;
56
68
  /**
57
69
  * Decode a UCAN envelope
58
70
  *
@@ -63,11 +75,31 @@ export function encode(options: EnvelopeEncodeOptions): ByteView<(Uint8Array<Arr
63
75
  */
64
76
  export function decode<Spec extends PayloadSpec>(options: EnvelopeDecodeOptions): DecodedEnvelope<Spec>;
65
77
  /**
66
- * @import { Envelope, PayloadTag, EnvelopeDecodeOptions, EnvelopeEncodeOptions, EnvelopeSignOptions, SignaturePayload, PayloadSpec, DecodedEnvelope, DelegationPayload, InvocationPayload, Payload} from './types.js'
67
- * @import { ByteView } from 'multiformats'
78
+ * @import { PayloadTag, EnvelopeDecodeOptions, EnvelopeEncodeOptions, EnvelopeSignOptions, SignaturePayload, PayloadSpec, DecodedEnvelope, DelegationPayload, InvocationPayload, Payload} from './types.js'
79
+ */
80
+ /**
81
+ * Payload tag version used for new tokens (`ucan/dlg@1.0.0`, `ucan/inv@1.0.0`)
82
+ *
83
+ * @see https://github.com/ucan-wg/delegation#type-tag
84
+ * @see https://github.com/ucan-wg/invocation#type-tag
85
+ */
86
+ export const VERSION: "1.0.0";
87
+ /**
88
+ * Payload tag versions accepted on decode.
89
+ *
90
+ * `1.0.0-rc.1` is still accepted so tokens issued by iso-ucan <= 1.0.0 keep
91
+ * verifying. New tokens are always encoded with {@link VERSION}.
92
+ *
93
+ * @type {readonly string[]}
94
+ */
95
+ export const SUPPORTED_VERSIONS: readonly string[];
96
+ /**
97
+ * Payload specs
98
+ *
99
+ * @type {readonly PayloadSpec[]}
68
100
  */
69
- /** Version */
70
- export const VERSION: "1.0.0-rc.1";
101
+ export const SPECS: readonly PayloadSpec[];
102
+ import type { PayloadTag } from './types.js';
71
103
  import type { PayloadSpec } from './types.js';
72
104
  import type { Payload } from './types.js';
73
105
  import type { SignaturePayload } from './types.js';
@@ -75,7 +107,6 @@ import type { InvocationPayload } from './types.js';
75
107
  import type { DelegationPayload } from './types.js';
76
108
  import type { EnvelopeSignOptions } from './types.js';
77
109
  import type { EnvelopeEncodeOptions } from './types.js';
78
- import type { ByteView } from 'multiformats';
79
110
  import type { EnvelopeDecodeOptions } from './types.js';
80
111
  import type { DecodedEnvelope } from './types.js';
81
112
  //# sourceMappingURL=envelope.d.ts.map
@@ -1 +1 @@
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,0FAS/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"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/envelope.js"],"names":[],"mappings":"AAmCA;;;;GAIG;AACH,qCAFW,MAAM;SAsBU,UAAU;;;EACpC;AAED;;;;;;;;GAQG;AACH,6CALG;IAA6B,IAAI,EAAzB,WAAW;IACM,OAAO,EAAxB,OAAO;IACU,OAAO;IAC8B,aAAa,EAAnE,OAAO,sBAAsB,EAAE,aAAa;CACtD,oBAgBA;AA0DD;;;;GAIG;AACH,8CAFW,UAAU;;;;;aAPG,OAAO;EAW9B;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,iHAS/B;AAED;;;;;;;GAOG;AACH,uBAL2B,IAAI,SAAlB,WAAa,WAEf,qBAAqB,GACnB,gBAAgB,IAAI,CAAC,CAgCjC;AAnPD;;GAEG;AAEH;;;;;GAKG;AACH,sBAAuB,OAAO,CAAA;AAE9B;;;;;;;GAOG;AACH,iCAFU,SAAS,MAAM,EAAE,CAE6C;AAExE;;;;GAIG;AACH,oBAFU,SAAS,WAAW,EAAE,CAEyC;gCA1BuH,YAAY;iCAAZ,YAAY;6BAAZ,YAAY;sCAAZ,YAAY;uCAAZ,YAAY;uCAAZ,YAAY;yCAAZ,YAAY;2CAAZ,YAAY;2CAAZ,YAAY;qCAAZ,YAAY"}
@@ -6,7 +6,6 @@
6
6
  export function assertProofs(payload: import("./types.js").InvocationPayload, proofs: Delegation[]): boolean;
7
7
  /**
8
8
  * @import {Delegation} from './delegation.js'
9
- * @import {CID} from 'multiformats'
10
9
  */
11
10
  /**
12
11
  * UCAN Invocation
@@ -53,5 +52,5 @@ export class Invocation {
53
52
  bytes: Uint8Array<ArrayBufferLike>;
54
53
  }
55
54
  import type { Delegation } from './delegation.js';
56
- import type { CID } from 'multiformats';
55
+ import { CID } from 'multiformats/cid';
57
56
  //# sourceMappingURL=invocation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invocation.d.ts","sourceRoot":"","sources":["../../src/invocation.js"],"names":[],"mappings":"AAmPA;;;;GAIG;AACH,sCAHW,OAAO,YAAY,EAAE,iBAAiB,UACtC,UAAU,EAAE,WA6DtB;AAjSD;;;GAGG;AAEH;;GAEG;AACH;IAuCE;;;OAGG;IACH,qBAFW,OAAO,YAAY,EAAE,qBAAqB,uBA6DpD;IAED;;OAEG;IACH,uBAFW,OAAO,YAAY,EAAE,iBAAiB,uBAmEhD;IAtJD;;;;;;;OAOG;IACH,sBANW,OAAO,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC,SAC3C,UAAU,OACV,GAAG,eACH,UAAU,EAAE,aACZ,MAAM,EAShB;IApCD;;OAEG;IACH,aAFU,UAAU,EAAE,CAEX;IAEX;;OAEG;IACH,KAFU,GAAG,CAEV;IAEH;;;;;;;;OAQG;IACH,WAFU,MAAM,CAEP;IAWP,sDAAwB;IACxB,gDAA+B;IAC/B,mCAAkB;CA4IrB;gCApL4B,iBAAiB;yBACxB,cAAc"}
1
+ {"version":3,"file":"invocation.d.ts","sourceRoot":"","sources":["../../src/invocation.js"],"names":[],"mappings":"AAgRA;;;;GAIG;AACH,sCAHW,OAAO,YAAY,EAAE,iBAAiB,UACtC,UAAU,EAAE,WA6DtB;AA3TD;;GAEG;AAEH;;GAEG;AACH;IAuCE;;;OAGG;IACH,qBAFW,OAAO,YAAY,EAAE,qBAAqB,uBAoEpD;IAED;;OAEG;IACH,uBAFW,OAAO,YAAY,EAAE,iBAAiB,uBAiEhD;IA3JD;;;;;;;OAOG;IACH,sBANW,OAAO,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC,SAC3C,UAAU,OACV,GAAG,eACH,UAAU,EAAE,aACZ,MAAM,EAShB;IApCD;;OAEG;IACH,aAFU,UAAU,EAAE,CAEX;IAEX;;OAEG;IACH,KAFU,GAAG,CAEV;IAEH;;;;;;;;OAQG;IACH,WAFU,MAAM,CAEP;IAWP,sDAAwB;IACxB,gDAA+B;IAC/B,mCAAkB;CAiJrB;gCAxL4B,iBAAiB;oBApB1B,kBAAkB"}
@@ -1,10 +1,124 @@
1
+ /**
2
+ * Parse a UCAN policy selector into segments.
3
+ *
4
+ * Consumes the whole string and throws a `TypeError` on anything that is not
5
+ * valid selector syntax. Supported forms:
6
+ *
7
+ * - `.` identity
8
+ * - `.name` dotted field name, where name matches `[A-Za-z_][A-Za-z0-9_]*`
9
+ * - `["any string"]` unambiguous field name, with JSON string escapes
10
+ * - `[]` collection values
11
+ * - `[n]`, `[-n]` list index
12
+ * - `[a:b]`, `[a:]`, `[:b]` list slice
13
+ * - a trailing `?` on any segment (repeated `?` collapse into one)
14
+ *
15
+ * A selector MUST start with `.` and MUST NOT contain `..`.
16
+ *
17
+ * @see https://github.com/ucan-wg/delegation#selectors
18
+ *
19
+ * @param {string} selector
20
+ * @returns {SelectorSegment[]}
21
+ */
22
+ export function parseSelector(selector: string): SelectorSegment[];
23
+ /**
24
+ * Resolve a selector against data.
25
+ *
26
+ * @param {unknown} data - The data to select from.
27
+ * @param {string} selector - The selector, e.g. `.foo[0].bar`.
28
+ * @returns {{ ok: true, value: unknown } | { ok: false }} `ok: false` when the selector can't be resolved.
29
+ * @throws {TypeError} If the selector is not valid syntax.
30
+ */
31
+ export function select(data: unknown, selector: string): {
32
+ ok: true;
33
+ value: unknown;
34
+ } | {
35
+ ok: false;
36
+ };
37
+ /**
38
+ * Converts a UCAN glob pattern to a regular expression.
39
+ *
40
+ * `*` matches zero or more characters, including newlines. `\*` matches a
41
+ * literal `*`. The spec defines no other escapes, so a `\` that is not
42
+ * followed by `*` is a literal backslash. For example, the pattern `\\*` is a
43
+ * literal `\` followed by `\*`, and only matches the string `\*`.
44
+ *
45
+ * @see https://github.com/ucan-wg/delegation#glob-matching
46
+ *
47
+ * @param {string} pattern
48
+ * @returns {RegExp}
49
+ */
50
+ export function likeRegex(pattern: string): RegExp;
51
+ /**
52
+ * Check the structure of a policy and parse its selectors.
53
+ *
54
+ * This does not check that `==` / `!=` values are IPLD values. Delegations
55
+ * are fully validated with `assertPolicy` (in `utils.js`) when created or
56
+ * decoded.
57
+ *
58
+ * @param {unknown} policy
59
+ * @returns {CompiledStatement[]}
60
+ * @throws {TypeError} If the policy is malformed.
61
+ */
62
+ export function compilePolicy(policy: unknown): CompiledStatement[];
1
63
  /**
2
64
  * Validates invocation arguments against a UCAN policy.
3
65
  *
66
+ * A malformed policy (unknown operator, wrong arity, invalid selector, ...)
67
+ * never validates: the result is `false` for any `args`.
68
+ *
4
69
  * @template {unknown} Args
5
70
  * @param {Args} args The arguments of the eventual invocation.
6
71
  * @param {import("./types.js").Policy<Args>} policy An array of policy statements.
7
72
  * @returns {boolean} True if the args are valid according to the policy, false otherwise.
8
73
  */
9
74
  export function validate<Args extends unknown>(args: Args, policy: import("./types.js").Policy<Args>): boolean;
75
+ export type CompiledStatement = {
76
+ op: "==";
77
+ selector: SelectorSegment[];
78
+ value: unknown;
79
+ } | {
80
+ op: "<" | "<=" | ">" | ">=";
81
+ selector: SelectorSegment[];
82
+ value: number | bigint;
83
+ } | {
84
+ op: "like";
85
+ selector: SelectorSegment[];
86
+ regex: RegExp;
87
+ } | {
88
+ op: "not";
89
+ statement: CompiledStatement;
90
+ } | {
91
+ op: "and" | "or";
92
+ statements: CompiledStatement[];
93
+ } | {
94
+ op: "all" | "any";
95
+ selector: SelectorSegment[];
96
+ statement: CompiledStatement;
97
+ };
98
+ export type SegmentBase = {
99
+ /**
100
+ * - Whether the segment ends with `?`: when it fails to resolve, the whole selector returns `null`.
101
+ */
102
+ optional: boolean;
103
+ /**
104
+ * - The exact text of the selector this segment was parsed from, including a leading `.` and trailing `?`s.
105
+ */
106
+ source: string;
107
+ };
108
+ export type SegmentData = {
109
+ kind: "identity";
110
+ } | {
111
+ kind: "field";
112
+ key: string;
113
+ } | {
114
+ kind: "index";
115
+ index: number;
116
+ } | {
117
+ kind: "slice";
118
+ start: number | undefined;
119
+ end: number | undefined;
120
+ } | {
121
+ kind: "iterate";
122
+ };
123
+ export type SelectorSegment = SegmentData & SegmentBase;
10
124
  //# sourceMappingURL=policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/policy.js"],"names":[],"mappings":"AAoQA;;;;;;;GAOG;AACH,yBALuB,IAAI,SAAd,OAAS,QACX,IAAI,UACJ,OAAO,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAC/B,OAAO,CAKnB"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/policy.js"],"names":[],"mappings":"AAqIA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wCAHW,MAAM,GACJ,eAAe,EAAE,CA2E7B;AAqFD;;;;;;;GAOG;AACH,6BALW,OAAO,YACP,MAAM,GACJ;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAMxD;AAsGD;;;;;;;;;;;;GAYG;AACH,mCAHW,MAAM,GACJ,MAAM,CAoBlB;AAmHD;;;;;;;;;;GAUG;AACH,sCAJW,OAAO,GACL,iBAAiB,EAAE,CAQ/B;AAiED;;;;;;;;;;GAUG;AACH,yBALuB,IAAI,SAAd,OAAS,QACX,IAAI,UACJ,OAAO,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAC/B,OAAO,CAYnB;gCAtNY;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC/D;IAAE,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GACpF;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,iBAAiB,CAAA;CAAE,GAC3C;IAAE,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,iBAAiB,EAAE,CAAA;CAAE,GACrD;IAAE,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAC;IAAC,SAAS,EAAE,iBAAiB,CAAA;CAAE;;;;;cAxczE,OAAO;;;;YACP,MAAM;;0BAEP;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;8BAGb,WAAW,GAAG,WAAW"}
@@ -39,10 +39,6 @@ export interface PayloadBase {
39
39
  * Expiration UTC Unix Timestamp in seconds (valid until)
40
40
  */
41
41
  exp: number | null;
42
- /**
43
- * "Not before" UTC Unix Timestamp in seconds (valid from)
44
- */
45
- nbf?: number;
46
42
  }
47
43
  /**
48
44
  * @see https://github.com/ucan-wg/invocation#invocation-payload
@@ -78,6 +74,10 @@ export interface DelegationPayload<Args = unknown> extends PayloadBase {
78
74
  */
79
75
  sub: DID | null;
80
76
  pol: Policy<Args>;
77
+ /**
78
+ * "Not before" UTC Unix Timestamp in seconds (valid from)
79
+ */
80
+ nbf?: number;
81
81
  }
82
82
  export type Payload<Args = unknown> = InvocationPayload | DelegationPayload<Args>;
83
83
  export type SignaturePayload<Args = unknown> = {
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../src/types/envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../src/types/envelope.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  /**
9
9
  * Extracts all possible paths from a data structure as string literals
10
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 ? {
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
12
  [K in keyof T & (string | number)]: K extends string ? `.${K}` | `.${K}?` | `.${K}${PathsToStringProps<T[K]>}` : `[${K}]` | `[${K}]?` | `[${K}]${PathsToStringProps<T[K]>}`;
13
13
  }[keyof T & (string | number)] : never;
14
14
  /**
@@ -29,7 +29,11 @@ type SelectorValue<T, S extends string> = S extends `.${infer K}` ? K extends ke
29
29
  export type EqualityOp = '==' | '!=';
30
30
  export type Equality<Args = unknown> = [EqualityOp, Selector<Args>, unknown];
31
31
  export type InequalityOp = '<' | '<=' | '>' | '>=';
32
- export type Inequality<Args = unknown> = [InequalityOp, Selector<Args>, number];
32
+ export type Inequality<Args = unknown> = [
33
+ InequalityOp,
34
+ Selector<Args>,
35
+ number | bigint
36
+ ];
33
37
  export type NegateOp = 'not';
34
38
  export type Negate<Args = unknown> = [NegateOp, Statement<Args>];
35
39
  export type ConnectiveOp = 'and' | 'or';
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/types/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/types/policy.ts"],"names":[],"mappings":"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"}
@@ -108,13 +108,21 @@ export interface InvocationOptions extends DelegationValidateOptions {
108
108
  * Issued at time in seconds
109
109
  */
110
110
  iat?: number;
111
- nbf?: number;
112
111
  nonce?: Uint8Array;
113
112
  cause?: CID;
113
+ /**
114
+ * Metadata, omitted from the payload when empty
115
+ */
114
116
  meta?: CborObject;
115
117
  }
116
118
  export interface InvocationFromOptions extends DelegationValidateOptions {
117
119
  bytes: Uint8Array;
120
+ /**
121
+ * The current time in seconds, used for the invocation's own `exp`, the time
122
+ * bounds of its proofs and `maxTtl`. Mostly used for testing.
123
+ * @default Math.floor(Date.now() / 1000)
124
+ */
125
+ now?: number;
118
126
  audience?: VerifiableDID;
119
127
  resolveProof: ResolveProof;
120
128
  /**
@@ -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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"}
@@ -17,6 +17,17 @@ export function nowInSeconds(): number;
17
17
  * @param {import('./types.js').DecodedEnvelope<PayloadSpec>} envelope
18
18
  */
19
19
  export function cid(envelope: import("./types.js").DecodedEnvelope<PayloadSpec>): Promise<CID<any, 113, 18, 1>>;
20
+ /**
21
+ * Assert that `bytes` is the canonical DAG-CBOR encoding of `envelope`.
22
+ *
23
+ * {@link cid} hashes the re-encoded envelope, and the DAG-CBOR decoder accepts
24
+ * some non-canonical input (e.g. unsorted map keys or short floats). Without
25
+ * this check, different byte strings would share a CID.
26
+ *
27
+ * @param {import('./types.js').DecodedEnvelope<PayloadSpec>} envelope
28
+ * @param {Uint8Array} bytes
29
+ */
30
+ export function assertCanonical(envelope: import("./types.js").DecodedEnvelope<PayloadSpec>, bytes: Uint8Array): void;
20
31
  /**
21
32
  * Replay key of a UCAN: the CID of its signature payload, the exact bytes the
22
33
  * signature covers.
@@ -42,6 +53,14 @@ export function isSigAndDidCompatible(did: import("iso-did/types").VerifiableDID
42
53
  * @param {number} [now]
43
54
  */
44
55
  export function assertExpiration(exp: number | null, now?: number): void;
56
+ /**
57
+ * Validate an optional UCAN timestamp (e.g. `nbf` or `iat`): when present it
58
+ * must be an integer number of seconds within ±(2^53 − 1).
59
+ *
60
+ * @param {unknown} value
61
+ * @param {string} name - Field name used in the error message
62
+ */
63
+ export function assertTimestamp(value: unknown, name: string): void;
45
64
  /**
46
65
  * Validate the not before time of a UCAN
47
66
  *
@@ -183,12 +202,21 @@ export function assertPolicy(policy: unknown): void;
183
202
  export function isObject(value: unknown): value is Record<PropertyKey, unknown>;
184
203
  export const cborValue: z.ZodLazy<z.ZodType<import("./types.js").CborValue, any, z.core.$ZodTypeInternals<import("./types.js").CborValue, any>>>;
185
204
  export const cborObject: z.ZodRecord<z.ZodString, z.ZodLazy<z.ZodType<import("./types.js").CborValue, any, z.core.$ZodTypeInternals<import("./types.js").CborValue, any>>>>;
186
- export const selector: z.ZodUnion<readonly [z.ZodLiteral<".">, z.ZodTemplateLiteral<`.${string}`>]>;
205
+ /**
206
+ * Policy selector, validated with {@link parseSelector}.
207
+ *
208
+ * @see https://github.com/ucan-wg/delegation#selectors
209
+ */
210
+ export const selector: z.ZodString;
187
211
  /**
188
212
  * @typedef {z.infer<typeof selector>} Selector
189
213
  */
190
214
  /**
191
- * Statement
215
+ * Statement, as defined by the spec's IPLD schema. Every statement is a tuple
216
+ * of exact arity. Inequality values are integers or floats; large integers
217
+ * decode from dag-cbor as `bigint`.
218
+ *
219
+ * @see https://github.com/ucan-wg/delegation#policy
192
220
  */
193
221
  export const statement: z.ZodLazy<z.ZodType<import("./types.js").Statement<unknown>, any, z.core.$ZodTypeInternals<import("./types.js").Statement<unknown>, any>>>;
194
222
  export const policySchema: z.ZodArray<z.ZodLazy<z.ZodType<import("./types.js").Statement<unknown>, any, z.core.$ZodTypeInternals<import("./types.js").Statement<unknown>, any>>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.js"],"names":[],"mappings":"AAUA;;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;;;;;;;;;GASG;AACH,oCAFW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,mBAM3D;AAED;;;;;GAKG;AACH,2CAHW,OAAO,eAAe,EAAE,aAAa,WACrC,OAAO,sBAAsB,EAAE,aAAa,WA+BtD;AAED;;;;;GAKG;AACH,sCAHW,MAAM,GAAG,IAAI,QACb,MAAM,QAchB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,QACN,MAAM,QAMhB;AAED;;;;;GAKG;AACH,qDAHW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,gBACjD,OAAO,SAAS,EAAE,QAAQ,gBAYpC;AAED;;;;;;GAMG;AACH,0CAJW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,6BACjD,OAAO,sCAAsC,EAAE,QAAQ,gBACvD,OAAO,SAAS,EAAE,QAAQ,oBAwBpC;AAED;;;;;;;;;;;;;GAaG;AACH,sCAJW,MAAM,SACN,MAAM,GACJ,OAAO,CAKnB;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;AAqDD;;;;;;;;;;;;;;GAcG;AACH,0CAJW,OAAO,sBAAsB,EAAE,aAAa,aAC5C,UAAU,GACR,UAAU,EAAE,CAyCxB;AAED;;;;;;GAMG;AACH,yCAFW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,mCAQ3D;AAED;;;;;;;;;GASG;AACH,2CAHW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,gBACjD,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,iBAWxC;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;iCAreP,YAAY;oBARtB,kBAAkB;oBADlB,SAAS;kBAGX,QAAQ"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.js"],"names":[],"mappings":"AAWA;;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;;;;;;;;;GASG;AACH,0CAHW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,SACjD,UAAU,QAapB;AAED;;;;;;;;;GASG;AACH,oCAFW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,mBAM3D;AAED;;;;;GAKG;AACH,2CAHW,OAAO,eAAe,EAAE,aAAa,WACrC,OAAO,sBAAsB,EAAE,aAAa,WA+BtD;AAED;;;;;GAKG;AACH,sCAHW,MAAM,GAAG,IAAI,QACb,MAAM,QAchB;AAED;;;;;;GAMG;AACH,uCAHW,OAAO,QACP,MAAM,QAQhB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,QACN,MAAM,QAMhB;AAED;;;;;GAKG;AACH,qDAHW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,gBACjD,OAAO,SAAS,EAAE,QAAQ,gBAYpC;AAED;;;;;;GAMG;AACH,0CAJW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,6BACjD,OAAO,sCAAsC,EAAE,QAAQ,gBACvD,OAAO,SAAS,EAAE,QAAQ,oBAwBpC;AAED;;;;;;;;;;;;;GAaG;AACH,sCAJW,MAAM,SACN,MAAM,GACJ,OAAO,CAKnB;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;AAqDD;;;;;;;;;;;;;;GAcG;AACH,0CAJW,OAAO,sBAAsB,EAAE,aAAa,aAC5C,UAAU,GACR,UAAU,EAAE,CAyCxB;AAED;;;;;;GAMG;AACH,yCAFW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,mCAQ3D;AAED;;;;;;;;;GASG;AACH,2CAHW,OAAO,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,gBACjD,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,iBAWxC;AAED;;;;;;GAMG;AACH,uCAHG;IAAgC,GAAG;IACV,GAAG;CAAC,iBAU/B;AA+ED;;GAEG;AACH,qCAFW,OAAO,QASjB;AAED;;;;;;GAMG;AACH,gCAJW,OAAO,GACL,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAKjD;AAlGD,iJAeI;AACJ,4KAAyD;AAEzD;;;;GAIG;AACH,mCASE;AAEF;;GAEG;AAEH;;;;;;GAMG;AACH,mKA4BI;AAEJ,kLAA8C;uBAxCjC,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC;iCAthBP,YAAY;oBATtB,kBAAkB;oBADlB,SAAS;kBAGX,QAAQ"}
@@ -2,7 +2,6 @@
2
2
  * @param {import('./types.js').VarsigOptions} options
3
3
  */
4
4
  export function encode(options: import("./types.js").VarsigOptions): Uint8Array<ArrayBuffer>;
5
- /**
6
5
  /**
7
6
  * Decode varsig header
8
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"varsig.d.ts","sourceRoot":"","sources":["../../src/varsig.js"],"names":[],"mappings":"AAuDA;;GAEG;AACH,gCAFW,OAAO,YAAY,EAAE,aAAa,2BAc5C;AA2BD;;;;;;GAMG;AACH,4BAHW,UAAU,GACR,OAAO,YAAY,EAAE,YAAY,CAsD7C;AAvJD,qBAAsB,EAAI,CAAA;AAC1B,sBAAuB,CAAI,CAAA;AAC3B,8BAA+B,KAAM,CAAA;AAErC;;GAEG;AACH,4BAFU,MAAM,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,cAAc,CAAC,CAK5D;AAED;;GAEG;AACH,yBAFU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM9B"}
1
+ {"version":3,"file":"varsig.d.ts","sourceRoot":"","sources":["../../src/varsig.js"],"names":[],"mappings":"AAuDA;;GAEG;AACH,gCAFW,OAAO,YAAY,EAAE,aAAa,2BAc5C;AA2BD;;;;;GAKG;AACH,4BAHW,UAAU,GACR,OAAO,YAAY,EAAE,YAAY,CAkE7C;AAlKD,qBAAsB,EAAI,CAAA;AAC1B,sBAAuB,CAAI,CAAA;AAC3B,8BAA+B,KAAM,CAAA;AAErC;;GAEG;AACH,4BAFU,MAAM,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,cAAc,CAAC,CAK5D;AAED;;GAEG;AACH,yBAFU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM9B"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "iso-ucan",
3
3
  "type": "module",
4
- "version": "1.0.0",
4
+ "version": "2.0.0",
5
5
  "description": "Isomorphic UCAN",
6
6
  "author": "Hugo Dias <hugomrdias@gmail.com> (hugodias.me)",
7
7
  "license": "MIT",
package/src/delegation.js CHANGED
@@ -3,12 +3,15 @@ import { parse as didParse } from 'iso-did'
3
3
  import { randomBytes } from 'iso-web/crypto'
4
4
  import * as Envelope from './envelope.js'
5
5
  import {
6
+ assertCanonical,
6
7
  assertExpiration,
7
8
  assertIsValidCommand,
8
9
  assertMeta,
9
10
  assertNonce,
10
11
  assertNotBefore,
11
12
  assertNotRevoked,
13
+ assertPolicy,
14
+ assertTimestamp,
12
15
  cid,
13
16
  expOrTtl,
14
17
  verifySignature,
@@ -84,6 +87,7 @@ export class Delegation {
84
87
  )
85
88
  }
86
89
 
90
+ assertCanonical(envelope, bytes)
87
91
  assertStructure(envelope.payload, options.now)
88
92
 
89
93
  await verifySignature(envelope, verifierResolver, didResolveOptions)
@@ -112,6 +116,7 @@ export class Delegation {
112
116
  )
113
117
  }
114
118
 
119
+ assertCanonical(envelope, bytes)
115
120
  assertStructure(envelope.payload, options.now)
116
121
  const _cid = await cid(envelope)
117
122
  return new Delegation(envelope, bytes, _cid)
@@ -232,9 +237,10 @@ function assertStructure(payload, now) {
232
237
 
233
238
  assertIsValidCommand(payload.cmd)
234
239
  assertExpiration(payload.exp, now)
240
+ assertTimestamp(payload.nbf, 'nbf')
235
241
  assertNonce(payload.nonce)
236
242
 
237
- // assertPolicy(payload.pol)
243
+ assertPolicy(payload.pol)
238
244
 
239
245
  assertMeta(payload.meta)
240
246
  }