@metacensus/api 0.2.0 → 0.4.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.
Files changed (39) hide show
  1. package/README.md +158 -73
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +3 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/public.d.ts +1 -1
  7. package/dist/public.d.ts.map +1 -1
  8. package/dist/public.js +2 -2
  9. package/dist/public.js.map +1 -1
  10. package/dist/signing.d.ts +2 -1
  11. package/dist/signing.d.ts.map +1 -1
  12. package/dist/signing.js +1 -1
  13. package/dist/signing.js.map +1 -1
  14. package/dist/src/client.d.ts +57 -38
  15. package/dist/src/client.d.ts.map +1 -1
  16. package/dist/src/client.js +146 -79
  17. package/dist/src/client.js.map +1 -1
  18. package/dist/src/metacensus/v1/auth.d.ts +52 -8
  19. package/dist/src/metacensus/v1/auth.d.ts.map +1 -1
  20. package/dist/src/metacensus/v1/common.d.ts +77 -31
  21. package/dist/src/metacensus/v1/common.d.ts.map +1 -1
  22. package/dist/src/metacensus/v1/common.js +0 -10
  23. package/dist/src/metacensus/v1/common.js.map +1 -1
  24. package/dist/src/metacensus/v1/prop.d.ts +44 -31
  25. package/dist/src/metacensus/v1/prop.d.ts.map +1 -1
  26. package/dist/src/metacensus/v1/prop.js +18 -18
  27. package/dist/src/metacensus/v1/prop.js.map +1 -1
  28. package/dist/src/metacensus/v1/topic.d.ts +16 -13
  29. package/dist/src/metacensus/v1/topic.d.ts.map +1 -1
  30. package/dist/src/metacensus/v1/user.d.ts +15 -12
  31. package/dist/src/metacensus/v1/user.d.ts.map +1 -1
  32. package/dist/src/route-manifest.d.ts.map +1 -1
  33. package/dist/src/route-manifest.js +9 -8
  34. package/dist/src/route-manifest.js.map +1 -1
  35. package/dist/src/signing.d.ts +84 -17
  36. package/dist/src/signing.d.ts.map +1 -1
  37. package/dist/src/signing.js +254 -68
  38. package/dist/src/signing.js.map +1 -1
  39. package/package.json +4 -4
@@ -1,34 +1,39 @@
1
- import type { UserSignature } from "./common.js";
1
+ import type { Interpretation, Signature } from "./common.js";
2
2
  export declare const protobufPackage = "metacensus.v1";
3
3
  /** Propositions and votes: the consensus mechanism. */
4
4
  /**
5
5
  * A motion a topic's members vote on, as a signed record. `author_id` and
6
- * `created` were removed: they're `user_signature.signer_id` and
7
- * `.signing_time` now.
6
+ * `created` were removed: the author is `user_signature.key_id`'s resolved
7
+ * owner, and the claimed time is `user_signature.time`.
8
8
  */
9
- export interface Prop {
10
- /** Minted by the server, outside the signature. */
9
+ export interface PropSigned {
10
+ /** Minted by the server, outside every signature. */
11
11
  id: string;
12
+ /** Server's observation; see Signature.time for the author's claim. */
13
+ recorded?: string | undefined;
14
+ content?: Prop | undefined;
15
+ /** How to read this record; sealed by both signatures below. */
16
+ interpretation?: Interpretation | undefined;
17
+ /** The participant vouches for `content`. */
18
+ userSignature?: Signature | undefined;
12
19
  /**
13
- * Server's observation; see UserSignature.signing_time for the author's
14
- * claim.
20
+ * The institution vouches for `user_signature` (it nests over it); see
21
+ * UserSigned and README.md, "The signing chain".
15
22
  */
16
- recorded?: string | undefined;
17
- content?: PropContent | undefined;
18
- userSignature?: UserSignature | undefined;
23
+ institutionalSignature?: Signature | undefined;
19
24
  }
20
25
  /**
21
26
  * What a prop's author signs; carries `topic_id` but not the prop's own
22
27
  * server-minted id.
23
28
  */
24
- export interface PropContent {
29
+ export interface Prop {
25
30
  topicId: string;
26
- type: PropContent_Type;
27
- /** The text `VoteContent.citations` indexes into. */
31
+ type: Prop_Type;
32
+ /** The text `Vote.citations` indexes into. */
28
33
  description: string;
29
34
  }
30
35
  /** What the proposition would do if it passed. */
31
- export declare enum PropContent_Type {
36
+ export declare enum Prop_Type {
32
37
  Unspecified = "Unspecified",
33
38
  Statement = "Statement",
34
39
  TopicQuestion = "TopicQuestion",
@@ -42,25 +47,30 @@ export declare enum PropContent_Type {
42
47
  * One member's position on one prop, keyed by `(propId, userId)`; a second
43
48
  * vote from the same user replaces the first rather than adding to it.
44
49
  */
45
- export interface Vote {
50
+ export interface VoteSigned {
46
51
  /**
47
52
  * Server's observation, and the only ordering a reader may use —
48
- * `user_signature.signing_time` is the voter's own claim.
53
+ * `user_signature.time` is the voter's own claim.
49
54
  */
50
55
  recorded?: string | undefined;
51
- content?: VoteContent | undefined;
52
- userSignature?: UserSignature | undefined;
56
+ content?: Vote | undefined;
57
+ /** How to read this record; sealed by both signatures below. */
58
+ interpretation?: Interpretation | undefined;
59
+ /** The participant vouches for `content`. */
60
+ userSignature?: Signature | undefined;
61
+ /** The institution vouches for `user_signature`; see UserSigned. */
62
+ institutionalSignature?: Signature | undefined;
53
63
  }
54
64
  /**
55
- * What a voter signs. `user_id` duplicates `user_signature.signer_id` by
56
- * design; persistence owes refusing the two when they disagree (see
65
+ * What a voter signs. `user_id` duplicates the author `user_signature.key_id`
66
+ * resolves to; persistence owes refusing the two when they disagree (see
57
67
  * README.md, "Open questions").
58
68
  */
59
- export interface VoteContent {
69
+ export interface Vote {
60
70
  topicId: string;
61
71
  propId: string;
62
72
  userId: string;
63
- position: VoteContent_Position;
73
+ position: Vote_Position;
64
74
  explanation: string;
65
75
  /**
66
76
  * Highlighted spans of the prop's `description`; meaningful only for
@@ -68,7 +78,7 @@ export interface VoteContent {
68
78
  */
69
79
  citations: PropCitation[];
70
80
  }
71
- export declare enum VoteContent_Position {
81
+ export declare enum Vote_Position {
72
82
  Unspecified = "Unspecified",
73
83
  For = "For",
74
84
  Against = "Against",
@@ -83,20 +93,22 @@ export interface PropListRequest {
83
93
  topicId: string;
84
94
  }
85
95
  export interface PropList {
86
- items: Prop[];
96
+ items: PropSigned[];
87
97
  }
88
98
  export interface PropGetRequest {
89
99
  topicId: string;
90
100
  propId: string;
91
101
  }
92
102
  /**
93
- * No author field — that's `user_signature.signer_id`. `topic_id` is bound
94
- * by the path and re-signed inside `content`; the two must agree.
103
+ * No author field — the author is `user_signature.key_id`'s resolved owner.
104
+ * `topic_id` is bound by the path and re-signed inside `content`; the two must
105
+ * agree. `interpretation` is the client's, re-stamped onto the stored record.
95
106
  */
96
107
  export interface PropCreateRequest {
97
108
  topicId: string;
98
- content?: PropContent | undefined;
99
- userSignature?: UserSignature | undefined;
109
+ content?: Prop | undefined;
110
+ interpretation?: Interpretation | undefined;
111
+ userSignature?: Signature | undefined;
100
112
  }
101
113
  export interface VoteListRequest {
102
114
  topicId: string;
@@ -104,7 +116,7 @@ export interface VoteListRequest {
104
116
  }
105
117
  /** The only way to read a prop's votes. */
106
118
  export interface VoteList {
107
- items: Vote[];
119
+ items: VoteSigned[];
108
120
  }
109
121
  /**
110
122
  * Replaces the caller's previous vote rather than creating a new one; both
@@ -113,7 +125,8 @@ export interface VoteList {
113
125
  export interface VoteSetRequest {
114
126
  topicId: string;
115
127
  propId: string;
116
- content?: VoteContent | undefined;
117
- userSignature?: UserSignature | undefined;
128
+ content?: Vote | undefined;
129
+ interpretation?: Interpretation | undefined;
130
+ userSignature?: Signature | undefined;
118
131
  }
119
132
  //# sourceMappingURL=prop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prop.d.ts","sourceRoot":"","sources":["../../../../src/metacensus/v1/prop.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAE/C,uDAAuD;AAEvD;;;;GAIG;AACH,MAAM,WAAW,IAAI;IACnB,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;IACvB,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,kDAAkD;AAClD,oBAAY,gBAAgB;IAC1B,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,uBAAuB,4BAA4B;IACnD,wBAAwB,6BAA6B;CACtD;AAED;;;GAGG;AACH,MAAM,WAAW,IAAI;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,oBAAY,oBAAoB;IAC9B,WAAW,gBAAgB;IAC3B,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2CAA2C;AAC3C,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C"}
1
+ {"version":3,"file":"prop.d.ts","sourceRoot":"","sources":["../../../../src/metacensus/v1/prop.ts"],"names":[],"mappings":"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"}
@@ -5,22 +5,22 @@
5
5
  // source: metacensus/v1/prop.proto
6
6
  export const protobufPackage = "metacensus.v1";
7
7
  /** What the proposition would do if it passed. */
8
- export var PropContent_Type;
9
- (function (PropContent_Type) {
10
- PropContent_Type["Unspecified"] = "Unspecified";
11
- PropContent_Type["Statement"] = "Statement";
12
- PropContent_Type["TopicQuestion"] = "TopicQuestion";
13
- PropContent_Type["TopicChange"] = "TopicChange";
14
- PropContent_Type["UserAdmit"] = "UserAdmit";
15
- PropContent_Type["UserExpulse"] = "UserExpulse";
16
- PropContent_Type["PaperExtractionComplete"] = "PaperExtractionComplete";
17
- PropContent_Type["PaperIncludeMetaAnalysis"] = "PaperIncludeMetaAnalysis";
18
- })(PropContent_Type || (PropContent_Type = {}));
19
- export var VoteContent_Position;
20
- (function (VoteContent_Position) {
21
- VoteContent_Position["Unspecified"] = "Unspecified";
22
- VoteContent_Position["For"] = "For";
23
- VoteContent_Position["Against"] = "Against";
24
- VoteContent_Position["Abstain"] = "Abstain";
25
- })(VoteContent_Position || (VoteContent_Position = {}));
8
+ export var Prop_Type;
9
+ (function (Prop_Type) {
10
+ Prop_Type["Unspecified"] = "Unspecified";
11
+ Prop_Type["Statement"] = "Statement";
12
+ Prop_Type["TopicQuestion"] = "TopicQuestion";
13
+ Prop_Type["TopicChange"] = "TopicChange";
14
+ Prop_Type["UserAdmit"] = "UserAdmit";
15
+ Prop_Type["UserExpulse"] = "UserExpulse";
16
+ Prop_Type["PaperExtractionComplete"] = "PaperExtractionComplete";
17
+ Prop_Type["PaperIncludeMetaAnalysis"] = "PaperIncludeMetaAnalysis";
18
+ })(Prop_Type || (Prop_Type = {}));
19
+ export var Vote_Position;
20
+ (function (Vote_Position) {
21
+ Vote_Position["Unspecified"] = "Unspecified";
22
+ Vote_Position["For"] = "For";
23
+ Vote_Position["Against"] = "Against";
24
+ Vote_Position["Abstain"] = "Abstain";
25
+ })(Vote_Position || (Vote_Position = {}));
26
26
  //# sourceMappingURL=prop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prop.js","sourceRoot":"","sources":["../../../../src/metacensus/v1/prop.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,YAAY;AACZ,gCAAgC;AAChC,iCAAiC;AACjC,mCAAmC;AAKnC,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAgC/C,kDAAkD;AAClD,MAAM,CAAN,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC1B,+CAA2B,CAAA;IAC3B,2CAAuB,CAAA;IACvB,mDAA+B,CAAA;IAC/B,+CAA2B,CAAA;IAC3B,2CAAuB,CAAA;IACvB,+CAA2B,CAAA;IAC3B,uEAAmD,CAAA;IACnD,yEAAqD,CAAA;AACvD,CAAC,EATW,gBAAgB,KAAhB,gBAAgB,QAS3B;AAkCD,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC9B,mDAA2B,CAAA;IAC3B,mCAAW,CAAA;IACX,2CAAmB,CAAA;IACnB,2CAAmB,CAAA;AACrB,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B"}
1
+ {"version":3,"file":"prop.js","sourceRoot":"","sources":["../../../../src/metacensus/v1/prop.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,YAAY;AACZ,gCAAgC;AAChC,iCAAiC;AACjC,mCAAmC;AAKnC,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AA2C/C,kDAAkD;AAClD,MAAM,CAAN,IAAY,SASX;AATD,WAAY,SAAS;IACnB,wCAA2B,CAAA;IAC3B,oCAAuB,CAAA;IACvB,4CAA+B,CAAA;IAC/B,wCAA2B,CAAA;IAC3B,oCAAuB,CAAA;IACvB,wCAA2B,CAAA;IAC3B,gEAAmD,CAAA;IACnD,kEAAqD,CAAA;AACvD,CAAC,EATW,SAAS,KAAT,SAAS,QASpB;AA6CD,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,4CAA2B,CAAA;IAC3B,4BAAW,CAAA;IACX,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;AACrB,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB"}
@@ -1,37 +1,40 @@
1
- import type { UserSignature } from "./common.js";
1
+ import type { Interpretation, Signature } from "./common.js";
2
2
  export declare const protobufPackage = "metacensus.v1";
3
3
  /** Topics and their membership. */
4
4
  /** A systematic review in progress, as a signed record. */
5
- export interface Topic {
6
- /** Minted by the server, outside the signature. */
5
+ export interface TopicSigned {
6
+ /** Minted by the server, outside every signature. */
7
7
  id: string;
8
- /**
9
- * Server's observation; see UserSignature.signing_time for the author's
10
- * claim.
11
- */
8
+ /** Server's observation; see Signature.time for the author's claim. */
12
9
  recorded?: string | undefined;
13
- content?: TopicContent | undefined;
14
- userSignature?: UserSignature | undefined;
10
+ content?: Topic | undefined;
11
+ /** How to read this record; sealed by both signatures below. */
12
+ interpretation?: Interpretation | undefined;
13
+ /** The participant vouches for `content`. */
14
+ userSignature?: Signature | undefined;
15
+ /** The institution vouches for `user_signature`; see UserSigned. */
16
+ institutionalSignature?: Signature | undefined;
15
17
  }
16
18
  /**
17
19
  * What a topic's author signs; carries no id — the server mints the
18
20
  * topic's key.
19
21
  */
20
- export interface TopicContent {
22
+ export interface Topic {
21
23
  name: string;
22
24
  description: string;
23
25
  }
24
26
  export interface TopicListRequest {
25
27
  }
26
28
  export interface TopicList {
27
- items: Topic[];
29
+ items: TopicSigned[];
28
30
  }
29
31
  export interface TopicGetRequest {
30
32
  topicId: string;
31
33
  }
32
34
  export interface TopicCreateRequest {
33
- content?: TopicContent | undefined;
34
- userSignature?: UserSignature | undefined;
35
+ content?: Topic | undefined;
36
+ interpretation?: Interpretation | undefined;
37
+ userSignature?: Signature | undefined;
35
38
  }
36
39
  /**
37
40
  * A user's membership of a topic. No backend implements the member routes
@@ -1 +1 @@
1
- {"version":3,"file":"topic.d.ts","sourceRoot":"","sources":["../../../../src/metacensus/v1/topic.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAE/C,mCAAmC;AAEnC,2DAA2D;AAC3D,MAAM,WAAW,KAAK;IACpB,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACnC,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,KAAK,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACnC,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"topic.d.ts","sourceRoot":"","sources":["../../../../src/metacensus/v1/topic.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7D,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAE/C,mCAAmC;AAEnC,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EACJ,KAAK,GACL,SAAS,CAAC;IACd,gEAAgE;IAChE,cAAc,CAAC,EACX,cAAc,GACd,SAAS,CAAC;IACd,6CAA6C;IAC7C,aAAa,CAAC,EACV,SAAS,GACT,SAAS,CAAC;IACd,oEAAoE;IACpE,sBAAsB,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CAChD;AAED;;;GAGG;AACH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAC5C,aAAa,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -1,25 +1,28 @@
1
- import type { UserContent, UserSignature } from "./common.js";
1
+ import type { Interpretation, Signature, User } from "./common.js";
2
2
  export declare const protobufPackage = "metacensus.v1";
3
3
  /** Users. Sign-up and login live in auth.proto. */
4
4
  /**
5
- * A signed record. Also the key directory: reading a user's enrolling
6
- * `user_signature.public_key` is how a verifier resolves a `key_id`.
5
+ * A signed record. Also the key directory: a user's enrolling key (carried on
6
+ * the SignUpRequest that created them) is how a verifier resolves a `key_id` to
7
+ * its trust anchor.
7
8
  */
8
- export interface User {
9
- /** Minted by the server, outside the signature. */
9
+ export interface UserSigned {
10
+ /** Minted by the server, outside every signature. */
10
11
  id: string;
11
- /**
12
- * Server's observation; see UserSignature.signing_time for the author's
13
- * claim.
14
- */
12
+ /** Server's observation; see Signature.time for the author's claim. */
15
13
  recorded?: string | undefined;
16
- content?: UserContent | undefined;
17
- userSignature?: UserSignature | undefined;
14
+ content?: User | undefined;
15
+ /** How to read this record; sealed by both signatures below. */
16
+ interpretation?: Interpretation | undefined;
17
+ /** The participant vouches for `content`. */
18
+ userSignature?: Signature | undefined;
19
+ /** The institution vouches for `user_signature`; see the Signature type. */
20
+ institutionalSignature?: Signature | undefined;
18
21
  }
19
22
  export interface UserListRequest {
20
23
  }
21
24
  export interface UserList {
22
- items: User[];
25
+ items: UserSigned[];
23
26
  }
24
27
  export interface UserGetRequest {
25
28
  userId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/metacensus/v1/user.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE9D,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAE/C,mDAAmD;AAEnD;;;GAGG;AACH,MAAM,WAAW,IAAI;IACnB,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;CAC/B;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,gDAAgD;AAChD,MAAM,WAAW,cAAc;CAC9B"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/metacensus/v1/user.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnE,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAE/C,mDAAmD;AAEnD;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EACJ,IAAI,GACJ,SAAS,CAAC;IACd,gEAAgE;IAChE,cAAc,CAAC,EACX,cAAc,GACd,SAAS,CAAC;IACd,6CAA6C;IAC7C,aAAa,CAAC,EACV,SAAS,GACT,SAAS,CAAC;IACd,4EAA4E;IAC5E,sBAAsB,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CAChD;AAED,MAAM,WAAW,eAAe;CAC/B;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,gDAAgD;AAChD,MAAM,WAAW,cAAc;CAC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"route-manifest.d.ts","sourceRoot":"","sources":["../../src/route-manifest.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,SAAS,uBAAuB,CAAC;AAK9C,eAAO,MAAM,YAAY,uBAAuB,CAAC;AAMjD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,MAAM,EAAE,SAAS,KAAK,EAmBlC,CAAC"}
1
+ {"version":3,"file":"route-manifest.d.ts","sourceRoot":"","sources":["../../src/route-manifest.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,SAAS,uBAAuB,CAAC;AAK9C,eAAO,MAAM,YAAY,uBAAuB,CAAC;AAMjD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,MAAM,EAAE,SAAS,KAAK,EAoBlC,CAAC"}
@@ -16,21 +16,22 @@ export const publicPrefix = "/metacensus/public";
16
16
  export const routes = [
17
17
  { prefix: apiPrefix, service: "AuthRoutes", rpc: "Login", method: "POST", path: "/login", params: [], query: [], body: "*", signed: false, request: "LoginRequest", response: "Session" },
18
18
  { prefix: apiPrefix, service: "AuthRoutes", rpc: "SignUp", method: "POST", path: "/signup", params: [], query: [], body: "*", signed: true, request: "SignUpRequest", response: "Session" },
19
- { prefix: apiPrefix, service: "AuthRoutes", rpc: "Logout", method: "POST", path: "/logout", params: [], query: [], body: "", signed: false, request: "LogoutRequest", response: "LogoutResponse" },
19
+ { prefix: apiPrefix, service: "AuthRoutes", rpc: "Refresh", method: "POST", path: "/refresh", params: [], query: [], body: "*", signed: false, request: "RefreshRequest", response: "Session" },
20
+ { prefix: apiPrefix, service: "AuthRoutes", rpc: "Logout", method: "POST", path: "/logout", params: [], query: [], body: "*", signed: false, request: "LogoutRequest", response: "LogoutResponse" },
20
21
  { prefix: apiPrefix, service: "HealthRoutes", rpc: "Healthcheck", method: "GET", path: "/healthcheck", params: [], query: [], body: "", signed: false, request: "HealthcheckRequest", response: "HealthcheckResponse" },
21
22
  { prefix: apiPrefix, service: "PropRoutes", rpc: "ListProps", method: "GET", path: "/topic/{topicId}/prop", params: ["topicId"], query: [], body: "", signed: false, request: "PropListRequest", response: "PropList" },
22
- { prefix: apiPrefix, service: "PropRoutes", rpc: "GetProp", method: "GET", path: "/topic/{topicId}/prop/{propId}", params: ["topicId", "propId"], query: [], body: "", signed: false, request: "PropGetRequest", response: "Prop" },
23
- { prefix: apiPrefix, service: "PropRoutes", rpc: "CreateProp", method: "POST", path: "/topic/{topicId}/prop", params: ["topicId"], query: [], body: "*", signed: true, request: "PropCreateRequest", response: "Prop" },
23
+ { prefix: apiPrefix, service: "PropRoutes", rpc: "GetProp", method: "GET", path: "/topic/{topicId}/prop/{propId}", params: ["topicId", "propId"], query: [], body: "", signed: false, request: "PropGetRequest", response: "PropSigned" },
24
+ { prefix: apiPrefix, service: "PropRoutes", rpc: "CreateProp", method: "POST", path: "/topic/{topicId}/prop", params: ["topicId"], query: [], body: "*", signed: true, request: "PropCreateRequest", response: "PropSigned" },
24
25
  { prefix: apiPrefix, service: "PropRoutes", rpc: "ListVotes", method: "GET", path: "/topic/{topicId}/prop/{propId}/vote", params: ["topicId", "propId"], query: [], body: "", signed: false, request: "VoteListRequest", response: "VoteList" },
25
- { prefix: apiPrefix, service: "PropRoutes", rpc: "SetVote", method: "POST", path: "/topic/{topicId}/prop/{propId}/vote", params: ["topicId", "propId"], query: [], body: "*", signed: true, request: "VoteSetRequest", response: "Vote" },
26
+ { prefix: apiPrefix, service: "PropRoutes", rpc: "SetVote", method: "POST", path: "/topic/{topicId}/prop/{propId}/vote", params: ["topicId", "propId"], query: [], body: "*", signed: true, request: "VoteSetRequest", response: "VoteSigned" },
26
27
  { prefix: apiPrefix, service: "TopicRoutes", rpc: "ListTopics", method: "GET", path: "/topic", params: [], query: [], body: "", signed: false, request: "TopicListRequest", response: "TopicList" },
27
- { prefix: apiPrefix, service: "TopicRoutes", rpc: "GetTopic", method: "GET", path: "/topic/{topicId}", params: ["topicId"], query: [], body: "", signed: false, request: "TopicGetRequest", response: "Topic" },
28
- { prefix: apiPrefix, service: "TopicRoutes", rpc: "CreateTopic", method: "POST", path: "/topic", params: [], query: [], body: "*", signed: true, request: "TopicCreateRequest", response: "Topic" },
28
+ { prefix: apiPrefix, service: "TopicRoutes", rpc: "GetTopic", method: "GET", path: "/topic/{topicId}", params: ["topicId"], query: [], body: "", signed: false, request: "TopicGetRequest", response: "TopicSigned" },
29
+ { prefix: apiPrefix, service: "TopicRoutes", rpc: "CreateTopic", method: "POST", path: "/topic", params: [], query: [], body: "*", signed: true, request: "TopicCreateRequest", response: "TopicSigned" },
29
30
  { prefix: apiPrefix, service: "TopicRoutes", rpc: "ListMembers", method: "GET", path: "/topic/{topicId}/member", params: ["topicId"], query: [], body: "", signed: false, request: "MemberListRequest", response: "MemberList" },
30
31
  { prefix: apiPrefix, service: "TopicRoutes", rpc: "GetMember", method: "GET", path: "/topic/{topicId}/member/{userId}", params: ["topicId", "userId"], query: [], body: "", signed: false, request: "MemberGetRequest", response: "Member" },
31
32
  { prefix: apiPrefix, service: "UserRoutes", rpc: "ListUsers", method: "GET", path: "/user", params: [], query: [], body: "", signed: false, request: "UserListRequest", response: "UserList" },
32
- { prefix: apiPrefix, service: "UserRoutes", rpc: "GetUser", method: "GET", path: "/user/{userId}", params: ["userId"], query: [], body: "", signed: false, request: "UserGetRequest", response: "User" },
33
- { prefix: apiPrefix, service: "UserRoutes", rpc: "GetSelf", method: "GET", path: "/self", params: [], query: [], body: "", signed: false, request: "SelfGetRequest", response: "User" },
33
+ { prefix: apiPrefix, service: "UserRoutes", rpc: "GetUser", method: "GET", path: "/user/{userId}", params: ["userId"], query: [], body: "", signed: false, request: "UserGetRequest", response: "UserSigned" },
34
+ { prefix: apiPrefix, service: "UserRoutes", rpc: "GetSelf", method: "GET", path: "/self", params: [], query: [], body: "", signed: false, request: "SelfGetRequest", response: "UserSigned" },
34
35
  { prefix: publicPrefix, service: "PartnerRoutes", rpc: "SubmitPartnerInterest", method: "POST", path: "/partner", params: [], query: [], body: "*", signed: false, request: "PartnerSubmission", response: "PartnerReceipt" },
35
36
  ];
36
37
  //# sourceMappingURL=route-manifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"route-manifest.js","sourceRoot":"","sources":["../../src/route-manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-manifest.js","sourceRoot":"","sources":["../../src/route-manifest.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,84 @@
1
- import type { UserSignature } from "./metacensus/v1/common.js";
2
- export declare const SPEC = "metacensus.sig/1";
1
+ import type { Interpretation, Signature, Signature_Assertion } from "./metacensus/v1/common.js";
2
+ type Bytes = Uint8Array<ArrayBuffer>;
3
+ export declare const SPEC = "metacensus.sig/2";
4
+ export declare const TYPE_GET = "webauthn.get";
5
+ export declare const TYPE_COUNTERSIGN = "metacensus.countersign";
6
+ export declare const FLAG_UP: number;
7
+ export declare const FLAG_UV: number;
8
+ export declare const FLAG_BE: number;
9
+ export declare const FLAG_BS: number;
3
10
  /**
4
- * `value` as RFC 8785 canonical JSON of a ts-proto message — shaped to
5
- * match what protojson emits on the Go side (see buf.gen.yaml, wire.test.mjs).
11
+ * A value as RFC 8785 canonical JSON of a ts-proto message — shaped to match
12
+ * what protojson emits on the Go side (see buf.gen.yaml, wire.test.mjs).
6
13
  */
7
14
  export declare function canonicalize(value: unknown): string;
15
+ /** An Interpretation for content of the given full proto name, under this SPEC. */
16
+ export declare function interpretation(contentType: string): Interpretation;
8
17
  /**
9
- * The exact string the digest is taken over — exported so a mismatch between
10
- * implementations shows up as two strings, not two hashes.
18
+ * The exact string the participant digest is taken over: {content,
19
+ * interpretation, keyId, time}. Exported so a mismatch between implementations
20
+ * shows up as two strings, not two hashes.
11
21
  */
12
- export declare function signingInput(content: unknown, signature: UserSignature): string;
13
- /** SHA-384 over `signingInput`. */
14
- export declare function digest(content: unknown, signature: UserSignature): Promise<ArrayBuffer>;
22
+ export declare function userSigningInput(content: unknown, interp: Interpretation, keyId: string, time: string): string;
23
+ /** The string the institutional digest is taken over: {signature, interpretation, keyId, time}. */
24
+ export declare function countersignInput(userSignature: Signature, interp: Interpretation, keyId: string, time: string): string;
25
+ /** SHA-256 over userSigningInput — the participant assertion's challenge. */
26
+ export declare function userChallenge(content: unknown, interp: Interpretation, keyId: string, time: string): Promise<Bytes>;
27
+ /** SHA-256 over countersignInput — the institutional assertion's challenge. */
28
+ export declare function countersignChallenge(userSignature: Signature, interp: Interpretation, keyId: string, time: string): Promise<Bytes>;
29
+ /** The clientDataJSON fields a headless signer sets; a passkey's carries more. */
30
+ export interface ClientData {
31
+ type: string;
32
+ origin?: string;
33
+ }
15
34
  /**
16
- * Signs `content`, returning the `value` for the signature. Fills in
17
- * nothing else — the other fields are the signer's own claims and are
18
- * already inside the digest.
35
+ * authenticatorData for a headless signer: SHA-256(rpId) ‖ flags ‖ signCount(0).
36
+ * A participant's comes from the authenticator with the real UV/BE/BS flags.
19
37
  */
20
- export declare function sign(privateKey: CryptoKey, content: unknown, signature: UserSignature): Promise<string>;
21
- /** Checks `signature` against `content` under `publicKey`. */
22
- export declare function verify(publicKey: CryptoKey, content: unknown, signature: UserSignature): Promise<boolean>;
38
+ export declare function authenticatorData(rpId: string, flags: number): Promise<Bytes>;
39
+ /**
40
+ * Builds the assertion a headless signer emits: fills the challenge, serialises
41
+ * clientDataJSON, and signs authenticatorData ‖ SHA-256(clientDataJSON) with
42
+ * privateKey, DER-encoded as WebAuthn does. authData carries the honest flags
43
+ * (see authenticatorData). For a participant, the browser produces all of this
44
+ * and this module only verifies it.
45
+ */
46
+ export declare function assert(privateKey: CryptoKey, challenge: Bytes, authData: Bytes, clientData: ClientData): Promise<Signature_Assertion>;
47
+ /**
48
+ * What a verifier requires of an assertion's own metadata — the one honest
49
+ * difference between the layers, and a check here rather than a second verify
50
+ * path. `type` is the required clientDataJSON.type; `origins`, when non-empty,
51
+ * is the closed set a participant assertion must name, and when empty requires
52
+ * no origin (a headless signer); `requireUV` demands the user-verified flag.
53
+ */
54
+ export interface Policy {
55
+ type: string;
56
+ origins: string[];
57
+ requireUV: boolean;
58
+ }
59
+ /** Accepts a passkey assertion: webauthn.get from a known origin, user-verified. */
60
+ export declare function participantPolicy(...origins: string[]): Policy;
61
+ /** Accepts the headless countersignature: the institutional type, no origin. */
62
+ export declare function institutionPolicy(): Policy;
63
+ /**
64
+ * Checks one assertion against a challenge under publicKey and policy: the
65
+ * challenge binding, then the assertion's own metadata, then the signature over
66
+ * the wrapper. clientDataJSON is hashed as stored and only parsed to read
67
+ * `challenge`/`type`; it is never re-serialised.
68
+ */
69
+ export declare function verifyAssertion(publicKey: CryptoKey, assertion: Signature_Assertion, challenge: Bytes, policy: Policy): Promise<boolean>;
70
+ /**
71
+ * Checks a participant signature over content: the interpretation is this
72
+ * scheme's and names content's type, the assertion binds to the record's
73
+ * digest, and it satisfies policy. Resolving publicKey — the enrolled key keyId
74
+ * names — is the caller's, except at sign-up (see enrolledKey).
75
+ */
76
+ export declare function verifyUser(publicKey: CryptoKey, content: unknown, interp: Interpretation, signature: Signature, policy: Policy): Promise<boolean>;
77
+ /**
78
+ * Checks an institutional signature nesting over userSignature: it binds to
79
+ * userSignature (plus the record's interpretation) and satisfies policy.
80
+ */
81
+ export declare function verifyCountersign(publicKey: CryptoKey, userSignature: Signature, interp: Interpretation, institutional: Signature, policy: Policy): Promise<boolean>;
23
82
  /** Generates a signing keypair. The private key is non-extractable. */
24
83
  export declare function generateKeyPair(): Promise<CryptoKeyPair>;
25
84
  /**
@@ -30,8 +89,16 @@ export declare function encodePublicKey(publicKey: CryptoKey): Promise<string>;
30
89
  /** Reads what `encodePublicKey` wrote. */
31
90
  export declare function decodePublicKey(encoded: string): Promise<CryptoKey>;
32
91
  /**
33
- * base64url of SHA-256 over the SPKI DER — `UserSignature.keyId`. Derived
34
- * rather than minted, so a client can compute it before it has an account.
92
+ * base64url of SHA-256 over the SPKI DER — `Signature.keyId`. Derived rather
93
+ * than minted, so a client can compute it before it has an account.
35
94
  */
36
95
  export declare function keyId(publicKey: CryptoKey): Promise<string>;
96
+ /**
97
+ * Resolves the key being enrolled at sign-up, the one write whose key is not
98
+ * yet in persistence: the key offered must thumbprint to the keyId claimed, or
99
+ * a key that is not the sender's could be enrolled under their account. Every
100
+ * other record resolves keyId against its owner's enrolled key.
101
+ */
102
+ export declare function enrolledKey(publicKey: string, claimedKeyId: string): Promise<CryptoKey>;
103
+ export {};
37
104
  //# sourceMappingURL=signing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../src/signing.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI/D,eAAO,MAAM,IAAI,qBAAqB,CAAC;AAcvC;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAyBnD;AAoDD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,GAAG,MAAM,CAO/E;AAED,mCAAmC;AACnC,wBAAsB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAG7F;AAED;;;;GAIG;AACH,wBAAsB,IAAI,CACxB,UAAU,EAAE,SAAS,EACrB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,aAAa,GACvB,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED,8DAA8D;AAC9D,wBAAsB,MAAM,CAC1B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,aAAa,GACvB,OAAO,CAAC,OAAO,CAAC,CAIlB;AAqBD,uEAAuE;AACvE,wBAAsB,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC,CAE9D;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAE3E;AAED,0CAA0C;AAC1C,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAEzE;AAED;;;GAGG;AACH,wBAAsB,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAGjE"}
1
+ {"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../src/signing.ts"],"names":[],"mappings":"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"}